spi: pic32: Set proper bits_per_word_mask
authorAxel Lin <axel.lin@ingics.com>
Mon, 25 Apr 2016 23:31:15 +0000 (07:31 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 26 Apr 2016 10:14:35 +0000 (11:14 +0100)
This driver only supports 8/16/32 bits_per_word, so set
master->bits_per_word_mask accordingly. With this change, we can remove
the spi->bits_per_word checking in pic32_spi_setup as it's done by spi
core.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-pic32.c

index f8313ea..4eeb8a8 100644 (file)
@@ -592,16 +592,6 @@ static int pic32_spi_setup(struct spi_device *spi)
                return -EINVAL;
        }
 
-       switch (spi->bits_per_word) {
-       case 8:
-       case 16:
-       case 32:
-               break;
-       default:
-               dev_err(&spi->dev, "Invalid bits_per_word defined\n");
-               return -EINVAL;
-       }
-
        /* PIC32 spi controller can drive /CS during transfer depending
         * on tx fifo fill-level. /CS will stay asserted as long as TX
         * fifo is non-empty, else will be deasserted indicating
@@ -791,7 +781,8 @@ static int pic32_spi_probe(struct platform_device *pdev)
        master->setup           = pic32_spi_setup;
        master->cleanup         = pic32_spi_cleanup;
        master->flags           = SPI_MASTER_MUST_TX | SPI_MASTER_MUST_RX;
-       master->bits_per_word_mask      = SPI_BPW_RANGE_MASK(8, 32);
+       master->bits_per_word_mask      = SPI_BPW_MASK(8) | SPI_BPW_MASK(16) |
+                                         SPI_BPW_MASK(32);
        master->transfer_one            = pic32_spi_one_transfer;
        master->prepare_message         = pic32_spi_prepare_message;
        master->unprepare_message       = pic32_spi_unprepare_message;