lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 21 Jan 2014 14:59:57 +0100
From:	Hans de Goede <hdegoede@...hat.com>
To:	Roger Quadros <rogerq@...com>, tj@...nel.org, kishon@...com
CC:	sergei.shtylyov@...entembedded.com, b.zolnierkie@...sung.com,
	arnd@...db.de, linux-ide@...r.kernel.org,
	linux-kernel@...r.kernel.org, devicetree@...r.kernel.org
Subject: Re: [PATCH v5 0/4] ata: ahci_platform: Add PHY support and OMAP support

Hi,

On 01/21/2014 12:59 PM, Roger Quadros wrote:
> 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.

Right, this would also match nicely with putting both the phy_init and the phy_power_on call
in ahci_platform_enable_resources in ahci_platform.c as it looks after v4 of my ahci_platform
rework patch-set, see:
https://github.com/jwrdegoede/linux-sunxi/blob/sunxi-devel/drivers/ata/ahci_platform.c

If this goes there it will be automatically called on both probe and resume (and the counterparts
should go to ahci_platform_disable_resources, which will be called on suspend and remove).

As said before I don't really have a preference for in which order these patches go upstream,
but can you please check that calling phy_poweroff + phy_exit on suspend and undo on resume
does not cause issues ?  If it does I need to rethink how things will work after my refactoring,
because currently all the clks / optional regulator and now also optional phy get en/disabled in
one go through ahci_platform_en/disable_resources.

Thanks & Regards,

Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ