summaryrefslogtreecommitdiff
path: root/target/linux/brcm63xx/patches-3.6/106-bcm63xx-fix-transfer-bits_per_words-check.patch
blob: 37d9d49d6fea325f9746e47edbe55203059a8154 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
From fbef4dff80be6254e36ab5b9c655d248a3991ded Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jonas.gorski@gmail.com>
Date: Sat, 24 Nov 2012 12:08:22 +0100
Subject: [PATCH 3.7] spi/bcm63xx: fix transfer bits_per_words check

Transfers often do not have bits_per_words set, so use the spi device's
bits_per_words in this case.

This fixes the driver rejecting valid transfers e.g. generated by
spi_write() or spi_read().

Cc: stable@vger.kernel.org
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
 drivers/spi/spi-bcm63xx.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/spi/spi-bcm63xx.c
+++ b/drivers/spi/spi-bcm63xx.c
@@ -103,7 +103,8 @@ static int bcm63xx_spi_check_transfer(st
 {
 	u8 bits_per_word;
 
-	bits_per_word = (t) ? t->bits_per_word : spi->bits_per_word;
+	bits_per_word = (t && t->bits_per_word) ?
+			t->bits_per_word : spi->bits_per_word;
 	if (bits_per_word != 8) {
 		dev_err(&spi->dev, "%s, unsupported bits_per_word=%d\n",
 			__func__, bits_per_word);