Skip to content

Commit

Permalink
spi/pl022: disable the PL022 block when unused
Browse files Browse the repository at this point in the history
Make sure we clear the enable bit when the block is not used.
This will save some energy in certain hardware versions.

Reviewed-by: Viresh Kumar <viresh.kumar@st.com>
Signed-off-by: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Virupax Sadashivpetimath authored and Linus Walleij committed Dec 1, 2011
1 parent d4b6af2 commit 0ad2dee
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion drivers/spi/spi-pl022.c
Original file line number Diff line number Diff line change
Expand Up @@ -1512,8 +1512,12 @@ static void pump_messages(struct work_struct *work)
/* Lock queue and check for queue work */
spin_lock_irqsave(&pl022->queue_lock, flags);
if (list_empty(&pl022->queue) || !pl022->running) {
if (pl022->busy)
if (pl022->busy) {
/* nothing more to do - disable spi/ssp and power off */
writew((readw(SSP_CR1(pl022->virtbase)) &
(~SSP_CR1_MASK_SSE)), SSP_CR1(pl022->virtbase));
pm_runtime_put(&pl022->adev->dev);
}
pl022->busy = false;
spin_unlock_irqrestore(&pl022->queue_lock, flags);
return;
Expand Down

0 comments on commit 0ad2dee

Please sign in to comment.