From c978dc061e6808af223d0ed2a004ef452a0a06e0 Mon Sep 17 00:00:00 2001 From: Zheng Chongzhen Date: Sat, 11 May 2024 10:33:40 +0000 Subject: [PATCH] anolis: sw64: ahci: fix port reset ANBZ: #4688 AHCI-1.1 10.4.2 says software shall wait at least 1 millisecond before clearing PxSCTL.DET to 0h, but this is not sufficient on SW64 platform. By experiment, the wait time is extended to 100 millisecond. Signed-off-by: Zheng Chongzhen Reviewed-by: He Sheng Signed-off-by: Gu Zitao --- drivers/ata/libata-sata.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/ata/libata-sata.c b/drivers/ata/libata-sata.c index c16423e44525..043e6f01c49a 100644 --- a/drivers/ata/libata-sata.c +++ b/drivers/ata/libata-sata.c @@ -567,7 +567,10 @@ int sata_link_hardreset(struct ata_link *link, const unsigned long *timing, /* Couldn't find anything in SATA I/II specs, but AHCI-1.1 * 10.4.2 says at least 1 ms. */ - ata_msleep(link->ap, 1); + if (IS_ENABLED(CONFIG_SW64)) + ata_msleep(link->ap, 100); + else + ata_msleep(link->ap, 1); /* bring link back */ rc = sata_link_resume(link, timing, deadline); -- Gitee