diff options
author | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-11-26 13:35:30 +0000 |
---|---|---|
committer | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-11-26 13:35:30 +0000 |
commit | c1646179c70c96832acaa021a1dea9ecce0ad08f (patch) | |
tree | 80e96d2650eb728b5ad8f4ae1a7ca2a7d4c3cf7c /target/linux/brcm63xx/patches-3.3/109-bcm63xx-fix-transfer-bits_per_words-check.patch | |
parent | 42351c0a043a8acf14085ad26373df2e0379538e (diff) | |
download | openwrt-c1646179c70c96832acaa021a1dea9ecce0ad08f.tar.gz openwrt-c1646179c70c96832acaa021a1dea9ecce0ad08f.zip |
AA: bcm63xx: fix spi transfer handling
* Accept transfers without bits_per_word set.
* Work around the inability of the hardware of keeping CS asserted.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@34386 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm63xx/patches-3.3/109-bcm63xx-fix-transfer-bits_per_words-check.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-3.3/109-bcm63xx-fix-transfer-bits_per_words-check.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/patches-3.3/109-bcm63xx-fix-transfer-bits_per_words-check.patch b/target/linux/brcm63xx/patches-3.3/109-bcm63xx-fix-transfer-bits_per_words-check.patch new file mode 100644 index 000000000..37d9d49d6 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.3/109-bcm63xx-fix-transfer-bits_per_words-check.patch @@ -0,0 +1,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); |