git: 0c3d88b9ab38 - stable/13 - nvme: Explain a workaround a little better

From: Alexander Motin <mav_at_FreeBSD.org>
Date: Fri, 21 Jan 2022 02:26:59 UTC
The branch stable/13 has been updated by mav:

URL: https://cgit.FreeBSD.org/src/commit/?id=0c3d88b9ab385b6b84e77629676eda74211af65c

commit 0c3d88b9ab385b6b84e77629676eda74211af65c
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2021-10-01 15:53:10 +0000
Commit:     Alexander Motin <mav@FreeBSD.org>
CommitDate: 2022-01-21 02:07:30 +0000

    nvme: Explain a workaround a little better
    
    The don't touch the mmio of the drive after we do a EN 1->0 transition
    is only for a tiny number of dirves that have this unforunate issue.
    
    Sponsored by:           Netflix
    
    (cherry picked from commit 77054a897f6440632267e75ebe31793c7555b79e)
---
 sys/dev/nvme/nvme_ctrlr.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c
index 10b30c584f71..eb95fa33b90b 100644
--- a/sys/dev/nvme/nvme_ctrlr.c
+++ b/sys/dev/nvme/nvme_ctrlr.c
@@ -318,10 +318,10 @@ nvme_ctrlr_disable(struct nvme_controller *ctrlr)
 
 	cc &= ~NVME_CC_REG_EN_MASK;
 	nvme_mmio_write_4(ctrlr, cc, cc);
+
 	/*
-	 * Some drives have issues with accessing the mmio after we
-	 * disable, so delay for a bit after we write the bit to
-	 * cope with these issues.
+	 * A few drives have firmware bugs that freeze the drive if we access
+	 * the mmio too soon after we disable.
 	 */
 	if (ctrlr->quirks & QUIRK_DELAY_B4_CHK_RDY)
 		pause("nvmeR", MSEC_2_TICKS(B4_CHK_RDY_DELAY_MS));