On Aero/Sea A0 cards retry MPT Fusion registers reads for max three times
Due to HW Errta on Aero/Sea A0 chipset on secure boot mode & on heavy IO load, sometimes read operation on MPT Fusion registers will give zero value, So, as a workaround driver will retry the MPT Fusion register read operation for max three times upon reading zero value form these registers. Submitted by: Sreekanth Reddy <sreekanth.reddy@broadcom.com> Reviewed by: Kashyap Desai <Kashyap.Desai@broadcom.com> Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc
This commit is contained in:
parent
34c5490d26
commit
34213bec59
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=342534
@ -530,7 +530,14 @@ struct scsi_read_capacity_eedp
|
||||
static __inline uint32_t
|
||||
mpr_regread(struct mpr_softc *sc, uint32_t offset)
|
||||
{
|
||||
return (bus_space_read_4(sc->mpr_btag, sc->mpr_bhandle, offset));
|
||||
uint32_t ret_val, i = 0;
|
||||
do {
|
||||
ret_val =
|
||||
bus_space_read_4(sc->mpr_btag, sc->mpr_bhandle, offset);
|
||||
} while((sc->mpr_flags & MPR_FLAGS_SEA_IOC) &&
|
||||
(ret_val == 0) && (++i < 3));
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
static __inline void
|
||||
|
Loading…
Reference in New Issue
Block a user