aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_isr.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index eb4b43d7697f..d5fb79a88001 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -1446,7 +1446,6 @@ void
1446qla24xx_process_response_queue(struct rsp_que *rsp) 1446qla24xx_process_response_queue(struct rsp_que *rsp)
1447{ 1447{
1448 struct qla_hw_data *ha = rsp->hw; 1448 struct qla_hw_data *ha = rsp->hw;
1449 device_reg_t __iomem *reg = ISP_QUE_REG(ha, rsp->id);
1450 struct sts_entry_24xx *pkt; 1449 struct sts_entry_24xx *pkt;
1451 struct scsi_qla_host *vha; 1450 struct scsi_qla_host *vha;
1452 1451
@@ -1500,10 +1499,7 @@ qla24xx_process_response_queue(struct rsp_que *rsp)
1500 } 1499 }
1501 1500
1502 /* Adjust ring index */ 1501 /* Adjust ring index */
1503 if (ha->mqenable) 1502 ha->isp_ops->wrt_rsp_reg(ha, rsp->id, rsp->ring_index);
1504 WRT_REG_DWORD(&reg->isp25mq.rsp_q_out, rsp->ring_index);
1505 else
1506 WRT_REG_DWORD(&reg->isp24.rsp_q_out, rsp->ring_index);
1507} 1503}
1508 1504
1509static void 1505static void
@@ -1702,7 +1698,7 @@ qla25xx_msix_rsp_q(int irq, void *dev_id)
1702 if (!rsp->id) 1698 if (!rsp->id)
1703 msix_disabled_hccr &= __constant_cpu_to_le32(BIT_22); 1699 msix_disabled_hccr &= __constant_cpu_to_le32(BIT_22);
1704 else 1700 else
1705 msix_disabled_hccr &= BIT_6; 1701 msix_disabled_hccr &= __constant_cpu_to_le32(BIT_6);
1706 1702
1707 qla24xx_process_response_queue(rsp); 1703 qla24xx_process_response_queue(rsp);
1708 1704
@@ -2077,3 +2073,17 @@ int qla25xx_request_irq(struct rsp_que *rsp)
2077 return ret; 2073 return ret;
2078} 2074}
2079 2075
2076void
2077qla25xx_wrt_rsp_reg(struct qla_hw_data *ha, uint16_t id, uint16_t index)
2078{
2079 device_reg_t __iomem *reg = (void *) ha->mqiobase + QLA_QUE_PAGE * id;
2080 WRT_REG_DWORD(&reg->isp25mq.rsp_q_out, index);
2081}
2082
2083void
2084qla24xx_wrt_rsp_reg(struct qla_hw_data *ha, uint16_t id, uint16_t index)
2085{
2086 device_reg_t __iomem *reg = (void *) ha->iobase;
2087 WRT_REG_DWORD(&reg->isp24.rsp_q_out, index);
2088}
2089