2022-01-13 15:47:07

by Paul Menzel

[permalink] [raw]
Subject: [PATCH 2/2] ata: Warn about removal of debounce delay in Linux 5.19

The delay is only needed for a few buggy chipsets (PHYs(?)). As 200 ms
is quite a lot in today times, announce the change of the default in
Linux 5.19, and call for tests and reports.
---
drivers/ata/libata-sata.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/ata/libata-sata.c b/drivers/ata/libata-sata.c
index 29a815e2b7248..026ffcfaeaf26 100644
--- a/drivers/ata/libata-sata.c
+++ b/drivers/ata/libata-sata.c
@@ -318,9 +318,13 @@ int sata_link_resume(struct ata_link *link, const unsigned long *params,
* debouncing. Duration can be configured with module
* parameter debounce_delay_ms.
*/
- if (!(link->flags & ATA_LFLAG_NO_DEBOUNCE_DELAY))
+ if (!(link->flags & ATA_LFLAG_NO_DEBOUNCE_DELAY)) {
ata_msleep(link->ap,
(libata_debounce_delay_ms < 0) ? 200 : libata_debounce_delay_ms);
+ if (libata_debounce_delay_ms < 0)
+ /* negative values are default */
+ ata_link_warn(link, "Due to historical reasons a 200 ms delay is applied in sata_link_resume(). Most controllers do not need that, so the default will change to 0 ms in Linux 5.19. Please test with lower values using libata.debounce_delay_ms and report the results <[email protected]>.\n");
+ }

/* is SControl restored correctly? */
if ((rc = sata_scr_read(link, SCR_CONTROL, &scontrol)))
--
2.30.2