On 01/21/2014 10:34 AM, Roger Quadros wrote:On 01/20/2014 06:48 PM, Hans de Goede wrote:Hi,
On 01/20/2014 03:41 PM, Roger Quadros wrote:Hi,
Some platforms have a PHY hooked up to the SATA controller.
The PHY needs to be initialized and powered up for SATA to work.
We do that using the Generic PHY framework in PATCH 3.
In order to support SATA on the OMAP platforms we need to runtime
resume the device before use. PATCH 4 takes care of that.
Thanks for keeping me in the loop on this. I'm afraid this conflicts
quite a bit with my recent ahci_platform.c work, not a big problem
really, the series can go in either way.
Your phy support will slot nicely into the new ahci_platform_get_resources
and ahci_platform_enable_resources functions my refactoring introduces,
looking at it from this pov it might be better / easier to rebase your series
on top of the v4 of my series I've just send.
Which brings me to one comment about your series why are you not doing phy_exit
and phy_init on suspend resp. resume ? The phy can use quite a bit of power,
if the phy init / exit end up in ahci_platform_enable_resources /
ahci_platform_disable_resources, this will happen automatically for better or
worse. So it would be good to test if this would work or not ...
Right. Bartlomiej had pointed this out earlier, but I just wasn't very sure about it.
Is it sufficient to just call phy_power_off() in suspend and phy_power_on() in resume?
Or do we call phy_exit() and phy_init() respectively as well.
Kishon, any suggestions?
OK. Answering my own question.
On OMAP platform we power down the phy in phy_power_off() and idle the DPLL in phy_exit(),
so my guess is both should be called in suspend() to save the most power.