提交 0ad2deea 编写于 作者: V Virupax Sadashivpetimath 提交者: Linus Walleij

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: NViresh Kumar <viresh.kumar@st.com>
Signed-off-by: NVirupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com>
Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
上级 d4b6af2e
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册