X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=drivers%2Fscsi%2Fqla2xxx%2Fqla_isr.c;h=d5fb79a880018cf7f0ddb461e3fcf1df5a68451f;hb=17d98630a4f2a38537618503ad0c7ec97ba461ca;hp=eb4b43d7697f1c8c21f20d43fa0646fcea85b78b;hpb=20c09df7eb9c92a40e0ecf654b6e8f14c8583b9e;p=karo-tx-linux.git 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 qla24xx_process_response_queue(struct rsp_que *rsp) { struct qla_hw_data *ha = rsp->hw; - device_reg_t __iomem *reg = ISP_QUE_REG(ha, rsp->id); struct sts_entry_24xx *pkt; struct scsi_qla_host *vha; @@ -1500,10 +1499,7 @@ qla24xx_process_response_queue(struct rsp_que *rsp) } /* Adjust ring index */ - if (ha->mqenable) - WRT_REG_DWORD(®->isp25mq.rsp_q_out, rsp->ring_index); - else - WRT_REG_DWORD(®->isp24.rsp_q_out, rsp->ring_index); + ha->isp_ops->wrt_rsp_reg(ha, rsp->id, rsp->ring_index); } static void @@ -1702,7 +1698,7 @@ qla25xx_msix_rsp_q(int irq, void *dev_id) if (!rsp->id) msix_disabled_hccr &= __constant_cpu_to_le32(BIT_22); else - msix_disabled_hccr &= BIT_6; + msix_disabled_hccr &= __constant_cpu_to_le32(BIT_6); qla24xx_process_response_queue(rsp); @@ -2077,3 +2073,17 @@ int qla25xx_request_irq(struct rsp_que *rsp) return ret; } +void +qla25xx_wrt_rsp_reg(struct qla_hw_data *ha, uint16_t id, uint16_t index) +{ + device_reg_t __iomem *reg = (void *) ha->mqiobase + QLA_QUE_PAGE * id; + WRT_REG_DWORD(®->isp25mq.rsp_q_out, index); +} + +void +qla24xx_wrt_rsp_reg(struct qla_hw_data *ha, uint16_t id, uint16_t index) +{ + device_reg_t __iomem *reg = (void *) ha->iobase; + WRT_REG_DWORD(®->isp24.rsp_q_out, index); +} +