spi: bitbang: Use typedef for txrx_*() callbacks
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 17 May 2024 19:40:20 +0000 (22:40 +0300)
committerMark Brown <broonie@kernel.org>
Mon, 27 May 2024 00:33:22 +0000 (01:33 +0100)
With a typedef for the txrx_*() callbacks the code looks neater.
Note that typedef for a function is okay to have.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://msgid.link/r/20240517194104.747328-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-bitbang.c
include/linux/spi/spi_bitbang.h

index ca5cc67555c534557ac9c847f644d6631b5b6efb..d88110acdc5f498203c8bf7ee98369cc2482e91a 100644 (file)
  * working quickly, or testing for differences that aren't speed related.
  */
 
+typedef unsigned int (*spi_bb_txrx_bufs_fn)(struct spi_device *, spi_bb_txrx_word_fn,
+                                           unsigned int, struct spi_transfer *,
+                                           unsigned int);
+
 struct spi_bitbang_cs {
        unsigned        nsecs;  /* (clock cycle time)/2 */
-       u32             (*txrx_word)(struct spi_device *spi, unsigned nsecs,
-                                       u32 word, u8 bits, unsigned flags);
-       unsigned        (*txrx_bufs)(struct spi_device *,
-                                       u32 (*txrx_word)(
-                                               struct spi_device *spi,
-                                               unsigned nsecs,
-                                               u32 word, u8 bits,
-                                               unsigned flags),
-                                       unsigned, struct spi_transfer *,
-                                       unsigned);
+       spi_bb_txrx_word_fn txrx_word;
+       spi_bb_txrx_bufs_fn txrx_bufs;
 };
 
 static unsigned bitbang_txrx_8(
        struct spi_device       *spi,
-       u32                     (*txrx_word)(struct spi_device *spi,
-                                       unsigned nsecs,
-                                       u32 word, u8 bits,
-                                       unsigned flags),
+       spi_bb_txrx_word_fn txrx_word,
        unsigned                ns,
        struct spi_transfer     *t,
        unsigned flags
@@ -83,10 +76,7 @@ static unsigned bitbang_txrx_8(
 
 static unsigned bitbang_txrx_16(
        struct spi_device       *spi,
-       u32                     (*txrx_word)(struct spi_device *spi,
-                                       unsigned nsecs,
-                                       u32 word, u8 bits,
-                                       unsigned flags),
+       spi_bb_txrx_word_fn txrx_word,
        unsigned                ns,
        struct spi_transfer     *t,
        unsigned flags
@@ -112,10 +102,7 @@ static unsigned bitbang_txrx_16(
 
 static unsigned bitbang_txrx_32(
        struct spi_device       *spi,
-       u32                     (*txrx_word)(struct spi_device *spi,
-                                       unsigned nsecs,
-                                       u32 word, u8 bits,
-                                       unsigned flags),
+       spi_bb_txrx_word_fn txrx_word,
        unsigned                ns,
        struct spi_transfer     *t,
        unsigned flags
index b930eca2ef7bcd8be536c07b0fa38bd11bde0481..7ca08b430ed560c1aaf247b4259ab9450798036f 100644 (file)
@@ -4,6 +4,8 @@
 
 #include <linux/workqueue.h>
 
+typedef u32 (*spi_bb_txrx_word_fn)(struct spi_device *, unsigned int, u32, u8, unsigned int);
+
 struct spi_bitbang {
        struct mutex            lock;
        u8                      busy;
@@ -28,9 +30,8 @@ struct spi_bitbang {
        int     (*txrx_bufs)(struct spi_device *spi, struct spi_transfer *t);
 
        /* txrx_word[SPI_MODE_*]() just looks like a shift register */
-       u32     (*txrx_word[4])(struct spi_device *spi,
-                       unsigned nsecs,
-                       u32 word, u8 bits, unsigned flags);
+       spi_bb_txrx_word_fn txrx_word[4];
+
        int     (*set_line_direction)(struct spi_device *spi, bool output);
 };