| 1 | From fbef4dff80be6254e36ab5b9c655d248a3991ded Mon Sep 17 00:00:00 2001 |
| 2 | From: Jonas Gorski <jonas.gorski@gmail.com> |
| 3 | Date: Sat, 24 Nov 2012 12:08:22 +0100 |
| 4 | Subject: [PATCH 3.7] spi/bcm63xx: fix transfer bits_per_words check |
| 5 | |
| 6 | Transfers often do not have bits_per_words set, so use the spi device's |
| 7 | bits_per_words in this case. |
| 8 | |
| 9 | This fixes the driver rejecting valid transfers e.g. generated by |
| 10 | spi_write() or spi_read(). |
| 11 | |
| 12 | Cc: stable@vger.kernel.org |
| 13 | Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> |
| 14 | --- |
| 15 | drivers/spi/spi-bcm63xx.c | 3 ++- |
| 16 | 1 file changed, 2 insertions(+), 1 deletion(-) |
| 17 | |
| 18 | --- a/drivers/spi/spi-bcm63xx.c |
| 19 | +++ b/drivers/spi/spi-bcm63xx.c |
| 20 | @@ -103,7 +103,8 @@ static int bcm63xx_spi_check_transfer(st |
| 21 | { |
| 22 | u8 bits_per_word; |
| 23 | |
| 24 | - bits_per_word = (t) ? t->bits_per_word : spi->bits_per_word; |
| 25 | + bits_per_word = (t && t->bits_per_word) ? |
| 26 | + t->bits_per_word : spi->bits_per_word; |
| 27 | if (bits_per_word != 8) { |
| 28 | dev_err(&spi->dev, "%s, unsupported bits_per_word=%d\n", |
| 29 | __func__, bits_per_word); |
| 30 | |