diff options
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 22 |
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 | |||
1446 | qla24xx_process_response_queue(struct rsp_que *rsp) | 1446 | qla24xx_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(®->isp25mq.rsp_q_out, rsp->ring_index); | ||
1505 | else | ||
1506 | WRT_REG_DWORD(®->isp24.rsp_q_out, rsp->ring_index); | ||
1507 | } | 1503 | } |
1508 | 1504 | ||
1509 | static void | 1505 | static 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 | ||
2076 | void | ||
2077 | qla25xx_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(®->isp25mq.rsp_q_out, index); | ||
2081 | } | ||
2082 | |||
2083 | void | ||
2084 | qla24xx_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(®->isp24.rsp_q_out, index); | ||
2088 | } | ||
2089 | |||