On Thu, Oct 31, 2019 at 6:12 AM Deepak Ukey <deepak.ukey@xxxxxxxxxxxxx> wrote: > > From: ianyar <ianyar@xxxxxxxxxx> > > The function mpi_uninit_check takes longer for inbound doorbell > register to be cleared. Increased the timeout substantially so > that the driver does not fail to load. > > Signed-off-by: ianyar <ianyar@xxxxxxxxxx> > Signed-off-by: Deepak Ukey <deepak.ukey@xxxxxxxxxxxxx> > Signed-off-by: Viswas G <Viswas.G@xxxxxxxxxxxxx> Looks fine. Acked-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxx> > --- > drivers/scsi/pm8001/pm80xx_hwi.c | 4 ++-- > drivers/scsi/pm8001/pm80xx_hwi.h | 3 +++ > 2 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c > index 6057610263c1..9d04e5cfffb4 100644 > --- a/drivers/scsi/pm8001/pm80xx_hwi.c > +++ b/drivers/scsi/pm8001/pm80xx_hwi.c > @@ -735,9 +735,9 @@ static int mpi_init_check(struct pm8001_hba_info *pm8001_ha) > pm8001_cw32(pm8001_ha, 0, MSGU_IBDB_SET, SPCv_MSGU_CFG_TABLE_UPDATE); > /* wait until Inbound DoorBell Clear Register toggled */ > if (IS_SPCV_12G(pm8001_ha->pdev)) { > - max_wait_count = 4 * 1000 * 1000;/* 4 sec */ > + max_wait_count = SPCV_DOORBELL_CLEAR_TIMEOUT; > } else { > - max_wait_count = 2 * 1000 * 1000;/* 2 sec */ > + max_wait_count = SPC_DOORBELL_CLEAR_TIMEOUT; > } > do { > udelay(1); > diff --git a/drivers/scsi/pm8001/pm80xx_hwi.h b/drivers/scsi/pm8001/pm80xx_hwi.h > index dc9ab7689060..701951a0f715 100644 > --- a/drivers/scsi/pm8001/pm80xx_hwi.h > +++ b/drivers/scsi/pm8001/pm80xx_hwi.h > @@ -220,6 +220,9 @@ > #define SAS_DOPNRJT_RTRY_TMO 128 > #define SAS_COPNRJT_RTRY_TMO 128 > > +#define SPCV_DOORBELL_CLEAR_TIMEOUT (30 * 1000 * 1000) /* 30 sec */ > +#define SPC_DOORBELL_CLEAR_TIMEOUT (15 * 1000 * 1000) /* 15 sec */ > + > /* > Making ORR bigger than IT NEXUS LOSS which is 2000000us = 2 second. > Assuming a bigger value 3 second, 3000000/128 = 23437.5 where 128 > -- > 2.16.3 >