diff options
Diffstat (limited to 'target/linux/brcm63xx/patches-2.6.35/120-spi-bitbang-norxtx-support.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-2.6.35/120-spi-bitbang-norxtx-support.patch | 237 |
1 files changed, 0 insertions, 237 deletions
diff --git a/target/linux/brcm63xx/patches-2.6.35/120-spi-bitbang-norxtx-support.patch b/target/linux/brcm63xx/patches-2.6.35/120-spi-bitbang-norxtx-support.patch deleted file mode 100644 index 762bc66..0000000 --- a/target/linux/brcm63xx/patches-2.6.35/120-spi-bitbang-norxtx-support.patch +++ /dev/null @@ -1,237 +0,0 @@ -From 04bb2a031cf95b34b7432dd47b318a932a895b4c Mon Sep 17 00:00:00 2001 -From: Marek Szyprowski <m.szyprowski@samsung.com> -Date: Wed, 30 Jun 2010 14:27:32 -0600 -Subject: [PATCH] spi/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes - -This patch adds a new flags argument to bitbang_txrx_be_cpha0 and -bitbang_txrx_be_cpha1 transfer functions. This enables support for -SPI_MASTER_NO_{TX,RX} transfer modes. The change should have no impact -on speed of the existing drivers. bitbank_txrx_* functions are usually -inlined into the drivers. When the argument is equal to constant zero, -the optimizer would be able to eliminate the dead code (flags checks) -easily. Tested on ARM and GCC 4.4.x and in all cases the checks were -eliminated in the inlined function. - -Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com> -Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> -Acked-by: David Brownell <dbrownell@users.sourceforge.net> -Signed-off-by: Grant Likely <grant.likely@secretlab.ca> ---- - drivers/spi/spi_bitbang_txrx.h | 16 ++++++++++------ - drivers/spi/spi_butterfly.c | 2 +- - drivers/spi/spi_gpio.c | 8 ++++---- - drivers/spi/spi_lm70llp.c | 2 +- - drivers/spi/spi_s3c24xx_gpio.c | 8 ++++---- - drivers/spi/spi_sh_sci.c | 8 ++++---- - 6 files changed, 24 insertions(+), 20 deletions(-) - ---- a/drivers/spi/spi_bitbang_txrx.h -+++ b/drivers/spi/spi_bitbang_txrx.h -@@ -44,7 +44,7 @@ - - static inline u32 - bitbang_txrx_be_cpha0(struct spi_device *spi, -- unsigned nsecs, unsigned cpol, -+ unsigned nsecs, unsigned cpol, unsigned flags, - u32 word, u8 bits) - { - /* if (cpol == 0) this is SPI_MODE_0; else this is SPI_MODE_2 */ -@@ -53,7 +53,8 @@ bitbang_txrx_be_cpha0(struct spi_device - for (word <<= (32 - bits); likely(bits); bits--) { - - /* setup MSB (to slave) on trailing edge */ -- setmosi(spi, word & (1 << 31)); -+ if ((flags & SPI_MASTER_NO_TX) == 0) -+ setmosi(spi, word & (1 << 31)); - spidelay(nsecs); /* T(setup) */ - - setsck(spi, !cpol); -@@ -61,7 +62,8 @@ bitbang_txrx_be_cpha0(struct spi_device - - /* sample MSB (from slave) on leading edge */ - word <<= 1; -- word |= getmiso(spi); -+ if ((flags & SPI_MASTER_NO_RX) == 0) -+ word |= getmiso(spi); - setsck(spi, cpol); - } - return word; -@@ -69,7 +71,7 @@ bitbang_txrx_be_cpha0(struct spi_device - - static inline u32 - bitbang_txrx_be_cpha1(struct spi_device *spi, -- unsigned nsecs, unsigned cpol, -+ unsigned nsecs, unsigned cpol, unsigned flags, - u32 word, u8 bits) - { - /* if (cpol == 0) this is SPI_MODE_1; else this is SPI_MODE_3 */ -@@ -79,7 +81,8 @@ bitbang_txrx_be_cpha1(struct spi_device - - /* setup MSB (to slave) on leading edge */ - setsck(spi, !cpol); -- setmosi(spi, word & (1 << 31)); -+ if ((flags & SPI_MASTER_NO_TX) == 0) -+ setmosi(spi, word & (1 << 31)); - spidelay(nsecs); /* T(setup) */ - - setsck(spi, cpol); -@@ -87,7 +90,8 @@ bitbang_txrx_be_cpha1(struct spi_device - - /* sample MSB (from slave) on trailing edge */ - word <<= 1; -- word |= getmiso(spi); -+ if ((flags & SPI_MASTER_NO_RX) == 0) -+ word |= getmiso(spi); - } - return word; - } ---- a/drivers/spi/spi_butterfly.c -+++ b/drivers/spi/spi_butterfly.c -@@ -156,7 +156,7 @@ butterfly_txrx_word_mode0(struct spi_dev - unsigned nsecs, - u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits); -+ return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits); - } - - /*----------------------------------------------------------------------*/ ---- a/drivers/spi/spi_gpio.c -+++ b/drivers/spi/spi_gpio.c -@@ -157,25 +157,25 @@ static inline void spidelay(unsigned nse - static u32 spi_gpio_txrx_word_mode0(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits); -+ return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits); - } - - static u32 spi_gpio_txrx_word_mode1(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha1(spi, nsecs, 0, word, bits); -+ return bitbang_txrx_be_cpha1(spi, nsecs, 0, 0, word, bits); - } - - static u32 spi_gpio_txrx_word_mode2(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha0(spi, nsecs, 1, word, bits); -+ return bitbang_txrx_be_cpha0(spi, nsecs, 1, 0, word, bits); - } - - static u32 spi_gpio_txrx_word_mode3(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha1(spi, nsecs, 1, word, bits); -+ return bitbang_txrx_be_cpha1(spi, nsecs, 1, 0, word, bits); - } - - /*----------------------------------------------------------------------*/ ---- a/drivers/spi/spi_lm70llp.c -+++ b/drivers/spi/spi_lm70llp.c -@@ -191,7 +191,7 @@ static void lm70_chipselect(struct spi_d - */ - static u32 lm70_txrx(struct spi_device *spi, unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits); -+ return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits); - } - - static void spi_lm70llp_attach(struct parport *p) ---- a/drivers/spi/spi_s3c24xx_gpio.c -+++ b/drivers/spi/spi_s3c24xx_gpio.c -@@ -64,25 +64,25 @@ static inline u32 getmiso(struct spi_dev - static u32 s3c2410_spigpio_txrx_mode0(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits); -+ return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits); - } - - static u32 s3c2410_spigpio_txrx_mode1(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha1(spi, nsecs, 0, word, bits); -+ return bitbang_txrx_be_cpha1(spi, nsecs, 0, 0, word, bits); - } - - static u32 s3c2410_spigpio_txrx_mode2(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha0(spi, nsecs, 1, word, bits); -+ return bitbang_txrx_be_cpha0(spi, nsecs, 1, 0, word, bits); - } - - static u32 s3c2410_spigpio_txrx_mode3(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha1(spi, nsecs, 1, word, bits); -+ return bitbang_txrx_be_cpha1(spi, nsecs, 1, 0, word, bits); - } - - ---- a/drivers/spi/spi_sh_sci.c -+++ b/drivers/spi/spi_sh_sci.c -@@ -83,25 +83,25 @@ static inline u32 getmiso(struct spi_dev - static u32 sh_sci_spi_txrx_mode0(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits); -+ return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits); - } - - static u32 sh_sci_spi_txrx_mode1(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha1(spi, nsecs, 0, word, bits); -+ return bitbang_txrx_be_cpha1(spi, nsecs, 0, 0, word, bits); - } - - static u32 sh_sci_spi_txrx_mode2(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha0(spi, nsecs, 1, word, bits); -+ return bitbang_txrx_be_cpha0(spi, nsecs, 1, 0, word, bits); - } - - static u32 sh_sci_spi_txrx_mode3(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha1(spi, nsecs, 1, word, bits); -+ return bitbang_txrx_be_cpha1(spi, nsecs, 1, 0, word, bits); - } - - static void sh_sci_spi_chipselect(struct spi_device *dev, int value) ---- a/drivers/spi/spi_gpio_old.c -+++ b/drivers/spi/spi_gpio_old.c -@@ -80,25 +80,25 @@ static inline void do_spidelay(struct sp - static u32 spi_gpio_txrx_mode0(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits); -+ return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits); - } - - static u32 spi_gpio_txrx_mode1(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha1(spi, nsecs, 0, word, bits); -+ return bitbang_txrx_be_cpha1(spi, nsecs, 0, 0, word, bits); - } - - static u32 spi_gpio_txrx_mode2(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha0(spi, nsecs, 1, word, bits); -+ return bitbang_txrx_be_cpha0(spi, nsecs, 1, 0, word, bits); - } - - static u32 spi_gpio_txrx_mode3(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) - { -- return bitbang_txrx_be_cpha1(spi, nsecs, 1, word, bits); -+ return bitbang_txrx_be_cpha1(spi, nsecs, 1, 0, word, bits); - } - - static void spi_gpio_chipselect(struct spi_device *dev, int on) |