aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_isr.c
diff options
context:
space:
mode:
authorAndrew Vasquez <andrew.vasquez@qlogic.com>2009-03-24 12:07:55 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-04-03 10:22:44 -0400
commit08029990b25b76b1bc167336358bd21812567f2a (patch)
tree87cb617366a61bd643818996cc6186e817e23b63 /drivers/scsi/qla2xxx/qla_isr.c
parent534841b3c110b0f149513c7695751879951d3f22 (diff)
[SCSI] qla2xxx: Refactor request/response-queue register handling.
Original code used an overabundance of indirect pointers to function helpers. Instead, the driver can exploit the immutable properties of a queue's ISP-association and ID, which are both known at queue initialization-time. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c18
1 files changed, 1 insertions, 17 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index f250e5b7897c..8e91f4aec977 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -1499,7 +1499,6 @@ qla24xx_mbx_completion(scsi_qla_host_t *vha, uint16_t mb0)
1499void 1499void
1500qla24xx_process_response_queue(struct rsp_que *rsp) 1500qla24xx_process_response_queue(struct rsp_que *rsp)
1501{ 1501{
1502 struct qla_hw_data *ha = rsp->hw;
1503 struct sts_entry_24xx *pkt; 1502 struct sts_entry_24xx *pkt;
1504 struct scsi_qla_host *vha; 1503 struct scsi_qla_host *vha;
1505 1504
@@ -1553,7 +1552,7 @@ qla24xx_process_response_queue(struct rsp_que *rsp)
1553 } 1552 }
1554 1553
1555 /* Adjust ring index */ 1554 /* Adjust ring index */
1556 ha->isp_ops->wrt_rsp_reg(ha, rsp->id, rsp->ring_index); 1555 WRT_REG_DWORD(rsp->rsp_q_out, rsp->ring_index);
1557} 1556}
1558 1557
1559static void 1558static void
@@ -2117,18 +2116,3 @@ int qla25xx_request_irq(struct rsp_que *rsp)
2117 msix->rsp = rsp; 2116 msix->rsp = rsp;
2118 return ret; 2117 return ret;
2119} 2118}
2120
2121void
2122qla25xx_wrt_rsp_reg(struct qla_hw_data *ha, uint16_t id, uint16_t index)
2123{
2124 device_reg_t __iomem *reg = (void *) ha->mqiobase + QLA_QUE_PAGE * id;
2125 WRT_REG_DWORD(&reg->isp25mq.rsp_q_out, index);
2126}
2127
2128void
2129qla24xx_wrt_rsp_reg(struct qla_hw_data *ha, uint16_t id, uint16_t index)
2130{
2131 device_reg_t __iomem *reg = (void *) ha->iobase;
2132 WRT_REG_DWORD(&reg->isp24.rsp_q_out, index);
2133}
2134