On 7/28/2025 11:01 AM, Damien Le Moal wrote:
On 7/25/25 3:43 PM, Borah, Chaitanya Kumar wrote:
For some context in our kms_pm_rpm tests, we enable min_power policy for SATA
so that we can reach deep runtime power states and restore the original policy
after finishing. [5][6]
IIUC, the above change is based on spec and not something which can be
reverted. So as I see it, we have to drop this code path for external ports.
However I am not sure if we can achieve deep power states without enforcing it
through the sysfs entry.
Atleast for the basic-rte subtest, the test passes if we comment out the
functions controlling the SATA ports. We will need more testing to determine if
this approach work. Any thoughts on it?
Also, are there other ways to detect a port is external other than receiving
EOPNOTSUPP on the sysfs write?
I completely forgot to mention one important thing: please check your test
machine BIOS settings and see if you have "hotplug support" set to enable for
SATA ports. If it is, set that BIOS setting to disable and you will see the
SATA port as a regular one, not as an external port. So LPM support will be
back and your test program will not need changes.
Not all BIOSes have such setting though. Most of the machine I have do have it
though and I checked that it does affect how the ahci driver sees the port
(external or regular with LPM).
Found a "Hot Plug" setting (thanks to Mika!) in our testing device's
BIOS but it does not seem to have any effect.
We also have an option called "External", toggling that did not help either.
There is another configuration which was *readonly*.
"Configured as eSATA" -> "Hot Plug supported"
Not sure if it is relevant to our discussion.
Regards
Chaitanya