diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-02-24 23:17:07 +0300 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-02-24 23:17:07 +0300 |
commit | e11d57ca0b6dada29007ce3ad3db6c84034a768f (patch) | |
tree | 39ad0c208e2cb3da79f958bd0e9d0d12b8e5f8fe /drivers/scsi/qla2xxx/qla_isr.c | |
parent | 317495b25ec1f0beb0dbac8ee0dfec59a1addf03 (diff) | |
parent | a2c06ee2fe5b48a71e697bae00c6e7195fc016b6 (diff) | |
download | linux-e11d57ca0b6dada29007ce3ad3db6c84034a768f.tar.xz |
Merge remote-tracking branch 'airlied/drm-core-next' into drm-nouveau-next
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 1f06ddd9bdd1..d17ed9a94a0c 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -321,6 +321,7 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb) struct qla_hw_data *ha = vha->hw; struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; struct device_reg_24xx __iomem *reg24 = &ha->iobase->isp24; + struct device_reg_82xx __iomem *reg82 = &ha->iobase->isp82; uint32_t rscn_entry, host_pid; uint8_t rscn_queue_index; unsigned long flags; @@ -498,6 +499,7 @@ skip_rio: case MBA_LOOP_DOWN: /* Loop Down Event */ mbx = IS_QLA81XX(ha) ? RD_REG_WORD(®24->mailbox4) : 0; + mbx = IS_QLA82XX(ha) ? RD_REG_WORD(®82->mailbox_out[4]) : mbx; DEBUG2(printk("scsi(%ld): Asynchronous LOOP DOWN " "(%x %x %x %x).\n", vha->host_no, mb[1], mb[2], mb[3], mbx)); @@ -2491,14 +2493,15 @@ skip_msix: skip_msi: ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler, - IRQF_SHARED, QLA2XXX_DRIVER_NAME, rsp); + ha->flags.msi_enabled ? 0 : IRQF_SHARED, + QLA2XXX_DRIVER_NAME, rsp); if (ret) { qla_printk(KERN_WARNING, ha, "Failed to reserve interrupt %d already in use.\n", ha->pdev->irq); goto fail; } - ha->flags.inta_enabled = 1; + clear_risc_ints: /* |