(adding Mario Limonciello in CC) On Thu, 2024-02-01 at 17:14 +0100, Niklas Cassel wrote: > This revives a patch sent out almost two years ago from Mario > Limonciello: > https://lore.kernel.org/linux-ide/20220524170508.563-1-mario.limonciello@xxxxxxx/T/#u > > The reason why we did not merge it back then, is because LPM and > hotplug events are mutually exclusive. > > I've added a patch that checks if the port is external, i.e. either > hotplug capable or eSATA. For external ports, we never enable LPM, as > that will break hotplug. > > For ports that do not advertise themselves as external (typically > laptops), we set the LPM policy as requested. > > This matches how Microsoft Windows does things. > Thanks to Werner Fischer for suggesting something like this at last > year's ALPSS conference. Thank you for the discussions last year at the ALPSS and thanks a lot for implementing this now. > There might of course be some platform firmware that e.g. incorrectly > marks its port as internal, even though it is external, but if we > find any such platforms we will need to deal with them using quirks. I plan some testing within the upcoming two weeks. I'll do testing with the Elkhart-Lake based system (0x4b63 SATA controller) to verify whether LPM is activated. And I'll reach out to colleagues to test with hot-pluggable servers. Especially I'll try for them to get a system with an AMD 0x7901 SATA controller like Supermicro H12SSL-NT, as the default "board_ahci_mobile" for this SATA controller - see commit 1527f69204fe ("ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile") - lead to Hot-Plug not working with default Ubuntu or Proxmox Kernels [1]. As especially for AMD systems identical SATA controllers (like 0x7901 in this case) can be used in both mobile systems and servers, Niklas' new patch series could could bring lasting improvement here. [1] https://www.thomas-krenn.com/en/wiki/AMD_EPYC_Server_with_Ubuntu_-_Enable_SATA_Hot-Swap -- Best regards, Werner Fischer