Update controller properties(read OCR capability bit) when MR_EVT_CTRL_PROP_CHANGED recieved.
Submitted by: Sumit Saxena <sumit.saxena@broadcom.com> Reviewed by: Kashyap Desai <Kashyap.Desai@broadcom.com> MFC after: 3 days Sponsored by: Broadcom Limited/AVAGO Technologies
This commit is contained in:
parent
808517a4f9
commit
8bc320add0
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=309287
@ -3250,7 +3250,11 @@ mrsas_get_ctrl_info(struct mrsas_softc *sc)
|
|||||||
dcmd->sgl.sge32[0].phys_addr = sc->ctlr_info_phys_addr;
|
dcmd->sgl.sge32[0].phys_addr = sc->ctlr_info_phys_addr;
|
||||||
dcmd->sgl.sge32[0].length = sizeof(struct mrsas_ctrl_info);
|
dcmd->sgl.sge32[0].length = sizeof(struct mrsas_ctrl_info);
|
||||||
|
|
||||||
retcode = mrsas_issue_polled(sc, cmd);
|
if (!sc->mask_interrupts)
|
||||||
|
retcode = mrsas_issue_blocked_cmd(sc, cmd);
|
||||||
|
else
|
||||||
|
retcode = mrsas_issue_polled(sc, cmd);
|
||||||
|
|
||||||
if (retcode == ETIMEDOUT)
|
if (retcode == ETIMEDOUT)
|
||||||
goto dcmd_timeout;
|
goto dcmd_timeout;
|
||||||
else
|
else
|
||||||
@ -3261,6 +3265,8 @@ mrsas_get_ctrl_info(struct mrsas_softc *sc)
|
|||||||
|
|
||||||
sc->use_seqnum_jbod_fp =
|
sc->use_seqnum_jbod_fp =
|
||||||
sc->ctrl_info->adapterOperations3.useSeqNumJbodFP;
|
sc->ctrl_info->adapterOperations3.useSeqNumJbodFP;
|
||||||
|
sc->disableOnlineCtrlReset =
|
||||||
|
sc->ctrl_info->properties.OnOffProperties.disableOnlineCtrlReset;
|
||||||
|
|
||||||
dcmd_timeout:
|
dcmd_timeout:
|
||||||
mrsas_free_ctlr_info_cmd(sc);
|
mrsas_free_ctlr_info_cmd(sc);
|
||||||
@ -3268,6 +3274,9 @@ mrsas_get_ctrl_info(struct mrsas_softc *sc)
|
|||||||
if (do_ocr)
|
if (do_ocr)
|
||||||
sc->do_timedout_reset = MFI_DCMD_TIMEOUT_OCR;
|
sc->do_timedout_reset = MFI_DCMD_TIMEOUT_OCR;
|
||||||
|
|
||||||
|
if (!sc->mask_interrupts)
|
||||||
|
mrsas_release_mfi_cmd(cmd);
|
||||||
|
|
||||||
return (retcode);
|
return (retcode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4379,7 +4388,6 @@ mrsas_aen_handler(struct mrsas_softc *sc)
|
|||||||
mrsas_bus_scan_sim(sc, sc->sim_1);
|
mrsas_bus_scan_sim(sc, sc->sim_1);
|
||||||
else
|
else
|
||||||
goto skip_register_aen;
|
goto skip_register_aen;
|
||||||
doscan = 0;
|
|
||||||
break;
|
break;
|
||||||
case MR_EVT_PD_REMOVED:
|
case MR_EVT_PD_REMOVED:
|
||||||
fail_aen = mrsas_get_pd_list(sc);
|
fail_aen = mrsas_get_pd_list(sc);
|
||||||
@ -4387,13 +4395,11 @@ mrsas_aen_handler(struct mrsas_softc *sc)
|
|||||||
mrsas_bus_scan_sim(sc, sc->sim_1);
|
mrsas_bus_scan_sim(sc, sc->sim_1);
|
||||||
else
|
else
|
||||||
goto skip_register_aen;
|
goto skip_register_aen;
|
||||||
doscan = 0;
|
|
||||||
break;
|
break;
|
||||||
case MR_EVT_LD_OFFLINE:
|
case MR_EVT_LD_OFFLINE:
|
||||||
case MR_EVT_CFG_CLEARED:
|
case MR_EVT_CFG_CLEARED:
|
||||||
case MR_EVT_LD_DELETED:
|
case MR_EVT_LD_DELETED:
|
||||||
mrsas_bus_scan_sim(sc, sc->sim_0);
|
mrsas_bus_scan_sim(sc, sc->sim_0);
|
||||||
doscan = 0;
|
|
||||||
break;
|
break;
|
||||||
case MR_EVT_LD_CREATED:
|
case MR_EVT_LD_CREATED:
|
||||||
fail_aen = mrsas_get_ld_list(sc);
|
fail_aen = mrsas_get_ld_list(sc);
|
||||||
@ -4401,15 +4407,18 @@ mrsas_aen_handler(struct mrsas_softc *sc)
|
|||||||
mrsas_bus_scan_sim(sc, sc->sim_0);
|
mrsas_bus_scan_sim(sc, sc->sim_0);
|
||||||
else
|
else
|
||||||
goto skip_register_aen;
|
goto skip_register_aen;
|
||||||
doscan = 0;
|
|
||||||
break;
|
break;
|
||||||
case MR_EVT_CTRL_HOST_BUS_SCAN_REQUESTED:
|
case MR_EVT_CTRL_HOST_BUS_SCAN_REQUESTED:
|
||||||
case MR_EVT_FOREIGN_CFG_IMPORTED:
|
case MR_EVT_FOREIGN_CFG_IMPORTED:
|
||||||
case MR_EVT_LD_STATE_CHANGE:
|
case MR_EVT_LD_STATE_CHANGE:
|
||||||
doscan = 1;
|
doscan = 1;
|
||||||
break;
|
break;
|
||||||
|
case MR_EVT_CTRL_PROP_CHANGED:
|
||||||
|
fail_aen = mrsas_get_ctrl_info(sc);
|
||||||
|
if (fail_aen)
|
||||||
|
goto skip_register_aen;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
doscan = 0;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1449,6 +1449,7 @@ enum MR_PD_QUERY_TYPE {
|
|||||||
#define MR_EVT_LD_DELETED 0x008b
|
#define MR_EVT_LD_DELETED 0x008b
|
||||||
#define MR_EVT_FOREIGN_CFG_IMPORTED 0x00db
|
#define MR_EVT_FOREIGN_CFG_IMPORTED 0x00db
|
||||||
#define MR_EVT_LD_OFFLINE 0x00fc
|
#define MR_EVT_LD_OFFLINE 0x00fc
|
||||||
|
#define MR_EVT_CTRL_PROP_CHANGED 0x012f
|
||||||
#define MR_EVT_CTRL_HOST_BUS_SCAN_REQUESTED 0x0152
|
#define MR_EVT_CTRL_HOST_BUS_SCAN_REQUESTED 0x0152
|
||||||
|
|
||||||
enum MR_PD_STATE {
|
enum MR_PD_STATE {
|
||||||
|
Loading…
Reference in New Issue
Block a user