| From fd316941cfee1fbd12746afea83720fb7823888a Mon Sep 17 00:00:00 2001 |
| From: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com> |
| Date: Tue, 12 Jun 2012 15:10:58 +0200 |
| Subject: spi/pl022: disable port when unused |
| |
| From: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com> |
| |
| commit fd316941cfee1fbd12746afea83720fb7823888a upstream. |
| |
| Commit ffbbdd21329f3e15eeca6df2d4bc11c04d9d91c0 |
| "spi: create a message queueing infrastructure" |
| Accidentally deleted the logic to disable the port |
| when unused leading to higher power consumption. |
| Fix this up. |
| |
| Cc: Vinit Shenoy <vinit.shenoy@st.com> |
| Signed-off-by: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com> |
| Signed-off-by: Linus Walleij <linus.walleij@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/spi/spi-pl022.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/drivers/spi/spi-pl022.c |
| +++ b/drivers/spi/spi-pl022.c |
| @@ -489,6 +489,11 @@ static void giveback(struct pl022 *pl022 |
| pl022->cur_transfer = NULL; |
| pl022->cur_chip = NULL; |
| spi_finalize_current_message(pl022->master); |
| + |
| + /* disable the SPI/SSP operation */ |
| + writew((readw(SSP_CR1(pl022->virtbase)) & |
| + (~SSP_CR1_MASK_SSE)), SSP_CR1(pl022->virtbase)); |
| + |
| } |
| |
| /** |