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 /arch/powerpc | |
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 'arch/powerpc')
-rw-r--r-- | arch/powerpc/include/asm/dbdma.h | 12 | ||||
-rw-r--r-- | arch/powerpc/include/asm/vga.h | 4 |
2 files changed, 8 insertions, 8 deletions
diff --git a/arch/powerpc/include/asm/dbdma.h b/arch/powerpc/include/asm/dbdma.h index e23f07e73cb3..6c69836b4ec2 100644 --- a/arch/powerpc/include/asm/dbdma.h +++ b/arch/powerpc/include/asm/dbdma.h | |||
@@ -42,12 +42,12 @@ struct dbdma_regs { | |||
42 | * DBDMA command structure. These fields are all little-endian! | 42 | * DBDMA command structure. These fields are all little-endian! |
43 | */ | 43 | */ |
44 | struct dbdma_cmd { | 44 | struct dbdma_cmd { |
45 | unsigned short req_count; /* requested byte transfer count */ | 45 | __le16 req_count; /* requested byte transfer count */ |
46 | unsigned short command; /* command word (has bit-fields) */ | 46 | __le16 command; /* command word (has bit-fields) */ |
47 | unsigned int phy_addr; /* physical data address */ | 47 | __le32 phy_addr; /* physical data address */ |
48 | unsigned int cmd_dep; /* command-dependent field */ | 48 | __le32 cmd_dep; /* command-dependent field */ |
49 | unsigned short res_count; /* residual count after completion */ | 49 | __le16 res_count; /* residual count after completion */ |
50 | unsigned short xfer_status; /* transfer status */ | 50 | __le16 xfer_status; /* transfer status */ |
51 | }; | 51 | }; |
52 | 52 | ||
53 | /* DBDMA command values in command field */ | 53 | /* DBDMA command values in command field */ |
diff --git a/arch/powerpc/include/asm/vga.h b/arch/powerpc/include/asm/vga.h index e5f8dd366212..ab3acd2f2786 100644 --- a/arch/powerpc/include/asm/vga.h +++ b/arch/powerpc/include/asm/vga.h | |||
@@ -25,12 +25,12 @@ | |||
25 | 25 | ||
26 | static inline void scr_writew(u16 val, volatile u16 *addr) | 26 | static inline void scr_writew(u16 val, volatile u16 *addr) |
27 | { | 27 | { |
28 | st_le16(addr, val); | 28 | *addr = cpu_to_le16(val); |
29 | } | 29 | } |
30 | 30 | ||
31 | static inline u16 scr_readw(volatile const u16 *addr) | 31 | static inline u16 scr_readw(volatile const u16 *addr) |
32 | { | 32 | { |
33 | return ld_le16(addr); | 33 | return le16_to_cpu(*addr); |
34 | } | 34 | } |
35 | 35 | ||
36 | #define VT_BUF_HAVE_MEMCPYW | 36 | #define VT_BUF_HAVE_MEMCPYW |