On 7/29/25 01:37, Borah, Chaitanya Kumar wrote: >> The question is though: do we want the user to "ignore" hotplug capability >> and >> instead priviledge low power states. I guess we should have such capability. >> > > Atleast a case can be made for debugging and testing use-cases. > >>> Also, are there other ways to detect a port is external other than >>> receiving EOPNOTSUPP on the sysfs write? >> >> There is not. But it would be easy to add a sysfs port attribute, e.g. >> /sys/class/ata_port/ata1/external which says "0" for regular ports and "1" >> for >> external ports. We could also make this attribute writable in the case of >> external port so that doing: >> >> echo 0 > /sys/class/ata_port/ata1/external >> >> forces the kernel to ignore the external nature of the port and allow user >> control of the port/device LPM state. >> >> Would that work for your case ? >> > > Something like this should solve our problem.
I looked at this, but it is not a trivial change because of how we manage features, which is that we do not really differentiate between "port/device supports feature X" and "Disable X because of Y". So disabling something at runtime instead of at device scan time (or revalidation) needs some code massaging to remember the initial "port/device supports feature X". One thing that would be easy to add is a "libata.force=ignore_external_ports" module parameter to completely ignore the external nature of ports. That probably will be the easiest solution for your case. -- Damien Le Moal Western Digital Research