Thread (10 messages) 10 messages, 2 authors, 2015-05-20

[PATCH] i2c: designware: separate ops for system_sleep_pm and runtime_pm

flat view

From: Jisheng Zhang <hidden>
Date: 2015-05-19 12:36:14
Also in: linux-i2c, lkml

Dear Mika,

On Mon, 18 May 2015 11:28:23 +0300
Mika Westerberg [off-list ref] wrote:
On Fri, May 15, 2015 at 08:31:39PM +0800, Jisheng Zhang wrote:
quoted
Commit 1fc2fe204cb9 ("i2c: designware: Add runtime PM hooks") adds
runtime pm support using the same ops for system sleep and runtime pm.
When suspend to ram, the i2c host may have been runtime suspended, thus
i2c_dw_disable() hangs.
It hangs because it has already been powered off, right?
Either be powered off or clock gated or even both.
quoted
This patch fixes this issue by separating ops for system sleep pm and
runtime pm, and in the system suspend/resume path, runtime pm apis are
used to ensure the device is at correct state.
I can see that this fixes the issue with the platform driver (as the
platform bus core doesn't power on the device automatically as opposed
to other buses, like PCI). However, I'm thinking that can we do better
here.

Instead of powering the device on again, can't we leave it in low power
state? Recently added 'dev->power.direct_complete' may be used to
achieve that, I think.
how to handle runtime suspended via just being clock gated? Currently the
only solution is using the runtime pm apis to ensure the device is in a working
state during s2ram. What's your opinion?

Thanks,
Jisheng
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help