diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2015-02-03 00:36:21 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2015-03-22 23:29:40 -0400 |
commit | f5718726714cd6114876c4e3ca9b6992ab81176c (patch) | |
tree | c8cfe34ac28b22e89e8f5aac01c615ac61fbb221 /drivers/scsi/mesh.c | |
parent | 9eccca0843205f87c00404b663188b88eb248051 (diff) |
powerpc: Move Power Macintosh drivers to generic byteswappers
ppc has special instruction forms to efficiently load and store values
in non-native endianness. These can be accessed via the arch-specific
{ld,st}_le{16,32}() inlines in arch/powerpc/include/asm/swab.h.
However, gcc is perfectly capable of generating the byte-reversing
load/store instructions when using the normal, generic cpu_to_le*() and
le*_to_cpu() functions eaning the arch-specific functions don't have much
point.
Worse the "le" in the names of the arch specific functions is now
misleading, because they always generate byte-reversing forms, but some
ppc machines can now run a little-endian kernel.
To start getting rid of the arch-specific forms, this patch removes them
from all the old Power Macintosh drivers, replacing them with the
generic byteswappers.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'drivers/scsi/mesh.c')
-rw-r--r-- | drivers/scsi/mesh.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/scsi/mesh.c b/drivers/scsi/mesh.c index 57a95e2c3442..555367f00228 100644 --- a/drivers/scsi/mesh.c +++ b/drivers/scsi/mesh.c | |||
@@ -1287,9 +1287,9 @@ static void set_dma_cmds(struct mesh_state *ms, struct scsi_cmnd *cmd) | |||
1287 | } | 1287 | } |
1288 | if (dma_len > 0xffff) | 1288 | if (dma_len > 0xffff) |
1289 | panic("mesh: scatterlist element >= 64k"); | 1289 | panic("mesh: scatterlist element >= 64k"); |
1290 | st_le16(&dcmds->req_count, dma_len - off); | 1290 | dcmds->req_count = cpu_to_le16(dma_len - off); |
1291 | st_le16(&dcmds->command, dma_cmd); | 1291 | dcmds->command = cpu_to_le16(dma_cmd); |
1292 | st_le32(&dcmds->phy_addr, dma_addr + off); | 1292 | dcmds->phy_addr = cpu_to_le32(dma_addr + off); |
1293 | dcmds->xfer_status = 0; | 1293 | dcmds->xfer_status = 0; |
1294 | ++dcmds; | 1294 | ++dcmds; |
1295 | dtot += dma_len - off; | 1295 | dtot += dma_len - off; |
@@ -1303,15 +1303,15 @@ static void set_dma_cmds(struct mesh_state *ms, struct scsi_cmnd *cmd) | |||
1303 | static char mesh_extra_buf[64]; | 1303 | static char mesh_extra_buf[64]; |
1304 | 1304 | ||
1305 | dtot = sizeof(mesh_extra_buf); | 1305 | dtot = sizeof(mesh_extra_buf); |
1306 | st_le16(&dcmds->req_count, dtot); | 1306 | dcmds->req_count = cpu_to_le16(dtot); |
1307 | st_le32(&dcmds->phy_addr, virt_to_phys(mesh_extra_buf)); | 1307 | dcmds->phy_addr = cpu_to_le32(virt_to_phys(mesh_extra_buf)); |
1308 | dcmds->xfer_status = 0; | 1308 | dcmds->xfer_status = 0; |
1309 | ++dcmds; | 1309 | ++dcmds; |
1310 | } | 1310 | } |
1311 | dma_cmd += OUTPUT_LAST - OUTPUT_MORE; | 1311 | dma_cmd += OUTPUT_LAST - OUTPUT_MORE; |
1312 | st_le16(&dcmds[-1].command, dma_cmd); | 1312 | dcmds[-1].command = cpu_to_le16(dma_cmd); |
1313 | memset(dcmds, 0, sizeof(*dcmds)); | 1313 | memset(dcmds, 0, sizeof(*dcmds)); |
1314 | st_le16(&dcmds->command, DBDMA_STOP); | 1314 | dcmds->command = cpu_to_le16(DBDMA_STOP); |
1315 | ms->dma_count = dtot; | 1315 | ms->dma_count = dtot; |
1316 | } | 1316 | } |
1317 | 1317 | ||