scsi: ufs: make HCE polling more compact to improve initialization latency
authorStanley Chu <stanley.chu@mediatek.com>
Wed, 18 Mar 2020 10:40:15 +0000 (18:40 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 27 Mar 2020 02:07:15 +0000 (22:07 -0400)
Reduce the waiting period between each HCE (Host Controller Enable) polling
from 5 ms to 1 ms. Also increase the maximum polling times to make "total
polling time" roughly the same.

This change could make HCE initialization faster to improve latency of
ufshcd initialization, error recovery, and resume behaviors.

Link: https://lore.kernel.org/r/20200318104016.28049-7-stanley.chu@mediatek.com
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Reviewed-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufshcd.c

index 01839eef08cb7ba2282b16c71b1d4fef63df926e..153743eef082a459d4926e7b715a9b08551b9741 100644 (file)
@@ -4238,7 +4238,7 @@ int ufshcd_hba_enable(struct ufs_hba *hba)
        ufshcd_delay_us(hba->hba_enable_delay_us, 100);
 
        /* wait for the host controller to complete initialization */
-       retry = 10;
+       retry = 50;
        while (ufshcd_is_hba_active(hba)) {
                if (retry) {
                        retry--;
@@ -4247,7 +4247,7 @@ int ufshcd_hba_enable(struct ufs_hba *hba)
                                "Controller enable failed\n");
                        return -EIO;
                }
-               usleep_range(5000, 5100);
+               usleep_range(1000, 1100);
        }
 
        /* enable UIC related interrupts */