[SCSI] qla2xxx: Properly handle 32 bit mailbox register for ISPFX00.
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
1ca60e3b0d
commit
965c77a62b
@ -2916,9 +2916,9 @@ qlafx00_async_event(scsi_qla_host_t *vha)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case QLAFX00_MBA_PORT_UPDATE: /* Port database update */
|
case QLAFX00_MBA_PORT_UPDATE: /* Port database update */
|
||||||
ha->aenmb[1] = RD_REG_WORD(®->aenmailbox1);
|
ha->aenmb[1] = RD_REG_DWORD(®->aenmailbox1);
|
||||||
ha->aenmb[2] = RD_REG_WORD(®->aenmailbox2);
|
ha->aenmb[2] = RD_REG_DWORD(®->aenmailbox2);
|
||||||
ha->aenmb[3] = RD_REG_WORD(®->aenmailbox3);
|
ha->aenmb[3] = RD_REG_DWORD(®->aenmailbox3);
|
||||||
ql_dbg(ql_dbg_async, vha, 0x5077,
|
ql_dbg(ql_dbg_async, vha, 0x5077,
|
||||||
"Asynchronous port Update received "
|
"Asynchronous port Update received "
|
||||||
"aenmb[0]: %x, aenmb[1]: %x, aenmb[2]: %x, aenmb[3]: %x\n",
|
"aenmb[0]: %x, aenmb[1]: %x, aenmb[2]: %x, aenmb[3]: %x\n",
|
||||||
@ -2975,7 +2975,7 @@ static void
|
|||||||
qlafx00_mbx_completion(scsi_qla_host_t *vha, uint32_t mb0)
|
qlafx00_mbx_completion(scsi_qla_host_t *vha, uint32_t mb0)
|
||||||
{
|
{
|
||||||
uint16_t cnt;
|
uint16_t cnt;
|
||||||
uint16_t __iomem *wptr;
|
uint32_t __iomem *wptr;
|
||||||
struct qla_hw_data *ha = vha->hw;
|
struct qla_hw_data *ha = vha->hw;
|
||||||
struct device_reg_fx00 __iomem *reg = &ha->iobase->ispfx00;
|
struct device_reg_fx00 __iomem *reg = &ha->iobase->ispfx00;
|
||||||
|
|
||||||
@ -2985,10 +2985,10 @@ qlafx00_mbx_completion(scsi_qla_host_t *vha, uint32_t mb0)
|
|||||||
/* Load return mailbox registers. */
|
/* Load return mailbox registers. */
|
||||||
ha->flags.mbox_int = 1;
|
ha->flags.mbox_int = 1;
|
||||||
ha->mailbox_out32[0] = mb0;
|
ha->mailbox_out32[0] = mb0;
|
||||||
wptr = (uint16_t __iomem *)®->mailbox17;
|
wptr = (uint32_t __iomem *)®->mailbox17;
|
||||||
|
|
||||||
for (cnt = 1; cnt < ha->mbx_count; cnt++) {
|
for (cnt = 1; cnt < ha->mbx_count; cnt++) {
|
||||||
ha->mailbox_out32[cnt] = RD_REG_WORD(wptr);
|
ha->mailbox_out32[cnt] = RD_REG_DWORD(wptr);
|
||||||
wptr++;
|
wptr++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user