Commit f20f43c3 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Martin K. Petersen

scsi: qla1280: use lower_32_bits and upper_32_bits instead of reinventing them

This also moves the optimization for builds with 32-bit dma_addr_t to
the compiler (where it belongs) instead of opencoding it.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 88693b3c
...@@ -390,13 +390,6 @@ ...@@ -390,13 +390,6 @@
#define QLA_64BIT_PTR 1 #define QLA_64BIT_PTR 1
#endif #endif
#ifdef QLA_64BIT_PTR
#define pci_dma_hi32(a) ((a >> 16) >> 16)
#else
#define pci_dma_hi32(a) 0
#endif
#define pci_dma_lo32(a) (a & 0xffffffff)
#define NVRAM_DELAY() udelay(500) /* 2 microseconds */ #define NVRAM_DELAY() udelay(500) /* 2 microseconds */
#if defined(__ia64__) && !defined(ia64_platform_is) #if defined(__ia64__) && !defined(ia64_platform_is)
...@@ -1790,8 +1783,8 @@ qla1280_load_firmware_dma(struct scsi_qla_host *ha) ...@@ -1790,8 +1783,8 @@ qla1280_load_firmware_dma(struct scsi_qla_host *ha)
mb[4] = cnt; mb[4] = cnt;
mb[3] = ha->request_dma & 0xffff; mb[3] = ha->request_dma & 0xffff;
mb[2] = (ha->request_dma >> 16) & 0xffff; mb[2] = (ha->request_dma >> 16) & 0xffff;
mb[7] = pci_dma_hi32(ha->request_dma) & 0xffff; mb[7] = upper_32_bits(ha->request_dma) & 0xffff;
mb[6] = pci_dma_hi32(ha->request_dma) >> 16; mb[6] = upper_32_bits(ha->request_dma) >> 16;
dprintk(2, "%s: op=%d 0x%p = 0x%4x,0x%4x,0x%4x,0x%4x\n", dprintk(2, "%s: op=%d 0x%p = 0x%4x,0x%4x,0x%4x,0x%4x\n",
__func__, mb[0], __func__, mb[0],
(void *)(long)ha->request_dma, (void *)(long)ha->request_dma,
...@@ -1810,8 +1803,8 @@ qla1280_load_firmware_dma(struct scsi_qla_host *ha) ...@@ -1810,8 +1803,8 @@ qla1280_load_firmware_dma(struct scsi_qla_host *ha)
mb[4] = cnt; mb[4] = cnt;
mb[3] = p_tbuf & 0xffff; mb[3] = p_tbuf & 0xffff;
mb[2] = (p_tbuf >> 16) & 0xffff; mb[2] = (p_tbuf >> 16) & 0xffff;
mb[7] = pci_dma_hi32(p_tbuf) & 0xffff; mb[7] = upper_32_bits(p_tbuf) & 0xffff;
mb[6] = pci_dma_hi32(p_tbuf) >> 16; mb[6] = upper_32_bits(p_tbuf) >> 16;
err = qla1280_mailbox_command(ha, BIT_4 | BIT_3 | BIT_2 | err = qla1280_mailbox_command(ha, BIT_4 | BIT_3 | BIT_2 |
BIT_1 | BIT_0, mb); BIT_1 | BIT_0, mb);
...@@ -1933,8 +1926,8 @@ qla1280_init_rings(struct scsi_qla_host *ha) ...@@ -1933,8 +1926,8 @@ qla1280_init_rings(struct scsi_qla_host *ha)
mb[3] = ha->request_dma & 0xffff; mb[3] = ha->request_dma & 0xffff;
mb[2] = (ha->request_dma >> 16) & 0xffff; mb[2] = (ha->request_dma >> 16) & 0xffff;
mb[4] = 0; mb[4] = 0;
mb[7] = pci_dma_hi32(ha->request_dma) & 0xffff; mb[7] = upper_32_bits(ha->request_dma) & 0xffff;
mb[6] = pci_dma_hi32(ha->request_dma) >> 16; mb[6] = upper_32_bits(ha->request_dma) >> 16;
if (!(status = qla1280_mailbox_command(ha, BIT_7 | BIT_6 | BIT_4 | if (!(status = qla1280_mailbox_command(ha, BIT_7 | BIT_6 | BIT_4 |
BIT_3 | BIT_2 | BIT_1 | BIT_0, BIT_3 | BIT_2 | BIT_1 | BIT_0,
&mb[0]))) { &mb[0]))) {
...@@ -1947,8 +1940,8 @@ qla1280_init_rings(struct scsi_qla_host *ha) ...@@ -1947,8 +1940,8 @@ qla1280_init_rings(struct scsi_qla_host *ha)
mb[3] = ha->response_dma & 0xffff; mb[3] = ha->response_dma & 0xffff;
mb[2] = (ha->response_dma >> 16) & 0xffff; mb[2] = (ha->response_dma >> 16) & 0xffff;
mb[5] = 0; mb[5] = 0;
mb[7] = pci_dma_hi32(ha->response_dma) & 0xffff; mb[7] = upper_32_bits(ha->response_dma) & 0xffff;
mb[6] = pci_dma_hi32(ha->response_dma) >> 16; mb[6] = upper_32_bits(ha->response_dma) >> 16;
status = qla1280_mailbox_command(ha, BIT_7 | BIT_6 | BIT_5 | status = qla1280_mailbox_command(ha, BIT_7 | BIT_6 | BIT_5 |
BIT_3 | BIT_2 | BIT_1 | BIT_0, BIT_3 | BIT_2 | BIT_1 | BIT_0,
&mb[0]); &mb[0]);
...@@ -2914,13 +2907,13 @@ qla1280_64bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp) ...@@ -2914,13 +2907,13 @@ qla1280_64bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
SCSI_BUS_32(cmd)); SCSI_BUS_32(cmd));
#endif #endif
*dword_ptr++ = *dword_ptr++ =
cpu_to_le32(pci_dma_lo32(dma_handle)); cpu_to_le32(lower_32_bits(dma_handle));
*dword_ptr++ = *dword_ptr++ =
cpu_to_le32(pci_dma_hi32(dma_handle)); cpu_to_le32(upper_32_bits(dma_handle));
*dword_ptr++ = cpu_to_le32(sg_dma_len(s)); *dword_ptr++ = cpu_to_le32(sg_dma_len(s));
dprintk(3, "S/G Segment phys_addr=%x %x, len=0x%x\n", dprintk(3, "S/G Segment phys_addr=%x %x, len=0x%x\n",
cpu_to_le32(pci_dma_hi32(dma_handle)), cpu_to_le32(upper_32_bits(dma_handle)),
cpu_to_le32(pci_dma_lo32(dma_handle)), cpu_to_le32(lower_32_bits(dma_handle)),
cpu_to_le32(sg_dma_len(sg_next(s)))); cpu_to_le32(sg_dma_len(sg_next(s))));
remseg--; remseg--;
} }
...@@ -2976,14 +2969,14 @@ qla1280_64bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp) ...@@ -2976,14 +2969,14 @@ qla1280_64bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
SCSI_BUS_32(cmd)); SCSI_BUS_32(cmd));
#endif #endif
*dword_ptr++ = *dword_ptr++ =
cpu_to_le32(pci_dma_lo32(dma_handle)); cpu_to_le32(lower_32_bits(dma_handle));
*dword_ptr++ = *dword_ptr++ =
cpu_to_le32(pci_dma_hi32(dma_handle)); cpu_to_le32(upper_32_bits(dma_handle));
*dword_ptr++ = *dword_ptr++ =
cpu_to_le32(sg_dma_len(s)); cpu_to_le32(sg_dma_len(s));
dprintk(3, "S/G Segment Cont. phys_addr=%x %x, len=0x%x\n", dprintk(3, "S/G Segment Cont. phys_addr=%x %x, len=0x%x\n",
cpu_to_le32(pci_dma_hi32(dma_handle)), cpu_to_le32(upper_32_bits(dma_handle)),
cpu_to_le32(pci_dma_lo32(dma_handle)), cpu_to_le32(lower_32_bits(dma_handle)),
cpu_to_le32(sg_dma_len(s))); cpu_to_le32(sg_dma_len(s)));
} }
remseg -= cnt; remseg -= cnt;
...@@ -3178,10 +3171,10 @@ qla1280_32bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp) ...@@ -3178,10 +3171,10 @@ qla1280_32bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
if (cnt == 4) if (cnt == 4)
break; break;
*dword_ptr++ = *dword_ptr++ =
cpu_to_le32(pci_dma_lo32(sg_dma_address(s))); cpu_to_le32(lower_32_bits(sg_dma_address(s)));
*dword_ptr++ = cpu_to_le32(sg_dma_len(s)); *dword_ptr++ = cpu_to_le32(sg_dma_len(s));
dprintk(3, "S/G Segment phys_addr=0x%lx, len=0x%x\n", dprintk(3, "S/G Segment phys_addr=0x%lx, len=0x%x\n",
(pci_dma_lo32(sg_dma_address(s))), (lower_32_bits(sg_dma_address(s))),
(sg_dma_len(s))); (sg_dma_len(s)));
remseg--; remseg--;
} }
...@@ -3224,13 +3217,13 @@ qla1280_32bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp) ...@@ -3224,13 +3217,13 @@ qla1280_32bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
if (cnt == 7) if (cnt == 7)
break; break;
*dword_ptr++ = *dword_ptr++ =
cpu_to_le32(pci_dma_lo32(sg_dma_address(s))); cpu_to_le32(lower_32_bits(sg_dma_address(s)));
*dword_ptr++ = *dword_ptr++ =
cpu_to_le32(sg_dma_len(s)); cpu_to_le32(sg_dma_len(s));
dprintk(1, dprintk(1,
"S/G Segment Cont. phys_addr=0x%x, " "S/G Segment Cont. phys_addr=0x%x, "
"len=0x%x\n", "len=0x%x\n",
cpu_to_le32(pci_dma_lo32(sg_dma_address(s))), cpu_to_le32(lower_32_bits(sg_dma_address(s))),
cpu_to_le32(sg_dma_len(s))); cpu_to_le32(sg_dma_len(s)));
} }
remseg -= cnt; remseg -= cnt;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment