mirror of https://gitee.com/openkylin/linux.git
spi/pl022: disable the PL022 block when unused
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>
This commit is contained in:
parent
d4b6af2e0e
commit
0ad2deeab5
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue