spi: Merge spi_controller.{slave,target}_abort()
authorGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 4 Nov 2022 10:01:27 +0000 (11:01 +0100)
committerMark Brown <broonie@kernel.org>
Fri, 4 Nov 2022 13:00:06 +0000 (13:00 +0000)
Mixing SPI slave/target handlers and SPI slave/target controllers using
legacy and modern naming does not work well: there are now two different
callbacks for aborting a slave/target operation, of which only one is
populated, while spi_{slave,target}_abort() check and use only one,
which may be the unpopulated one.

Fix this by merging the slave/target abort callbacks into a single
callback using a union, like is already done for the slave/target flags.

Fixes: b8d3b056a78dcc94 ("spi: introduce new helpers with using modern naming")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/809c82d54b85dd87ef7ee69fc93016085be85cec.1667555967.git.geert+renesas@glider.be
Signed-off-by: Mark Brown <broonie@kernel.org>
include/linux/spi/spi.h

index 798c302..9a32495 100644 (file)
@@ -655,8 +655,10 @@ struct spi_controller {
                               struct spi_message *message);
        int (*unprepare_message)(struct spi_controller *ctlr,
                                 struct spi_message *message);
-       int (*slave_abort)(struct spi_controller *ctlr);
-       int (*target_abort)(struct spi_controller *ctlr);
+       union {
+               int (*slave_abort)(struct spi_controller *ctlr);
+               int (*target_abort)(struct spi_controller *ctlr);
+       };
 
        /*
         * These hooks are for drivers that use a generic implementation