bcm63xx: fix spi transfer handling
[openwrt/svn-archive/archive.git] / target / linux / brcm63xx / patches-3.3 / 109-bcm63xx-fix-transfer-bits_per_words-check.patch
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);