[PATCH 1/6] spi/pl022: only enable RX interrupts when TX is complete

2011-11-09 Thread Linus Walleij
From: Chris Blair chris.bl...@stericsson.com

For interrupt mode transfers, start with only TX interrupts enabled
to reduce the overall number of interrupts received. Once TX is
complete, enable RX interrupts to complete the transfer.

Signed-off-by: Chris Blair chris.bl...@stericsson.com
Signed-off-by: Linus Walleij linus.wall...@linaro.org
---
 drivers/spi/spi-pl022.c |   14 +-
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c
index 5559b22..b251926 100644
--- a/drivers/spi/spi-pl022.c
+++ b/drivers/spi/spi-pl022.c
@@ -1244,9 +1244,9 @@ static irqreturn_t pl022_interrupt_handler(int irq, void 
*dev_id)
 
if ((pl022-tx == pl022-tx_end)  (flag == 0)) {
flag = 1;
-   /* Disable Transmit interrupt */
-   writew(readw(SSP_IMSC(pl022-virtbase)) 
-  (~SSP_IMSC_MASK_TXIM),
+   /* Disable Transmit interrupt, enable receive interrupt */
+   writew((readw(SSP_IMSC(pl022-virtbase)) 
+  ~SSP_IMSC_MASK_TXIM) | SSP_IMSC_MASK_RXIM,
   SSP_IMSC(pl022-virtbase));
}
 
@@ -1379,12 +1379,16 @@ static void pump_transfers(unsigned long data)
}
 
 err_config_dma:
-   writew(ENABLE_ALL_INTERRUPTS, SSP_IMSC(pl022-virtbase));
+   /* enable all interrupts except RX */
+   writew(ENABLE_ALL_INTERRUPTS  ~SSP_IMSC_MASK_RXIM, 
SSP_IMSC(pl022-virtbase));
 }
 
 static void do_interrupt_dma_transfer(struct pl022 *pl022)
 {
-   u32 irqflags = ENABLE_ALL_INTERRUPTS;
+   /* default is to enable all interrupts except RX -
+* this will be enabled once TX is complete
+*/
+   u32 irqflags = ENABLE_ALL_INTERRUPTS  ~SSP_IMSC_MASK_RXIM;
 
/* Enable target chip */
pl022-cur_chip-cs_control(SSP_CHIP_SELECT);
-- 
1.7.3.2


--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


Re: [PATCH 1/6] spi/pl022: only enable RX interrupts when TX is complete

2011-11-09 Thread Viresh Kumar
On 11/9/2011 4:08 PM, Linus WALLEIJ wrote:
 + /* default is to enable all interrupts except RX -
 +  * this will be enabled once TX is complete
 +  */

Other than fixing this multiline comment, everything other looks fine.

Reviewed-by: Viresh Kumar viresh.ku...@st.com

-- 
viresh

--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general