diff options
| author | David Gibson | 2015-02-03 06:36:21 +0100 | 
|---|---|---|
| committer | Benjamin Herrenschmidt | 2015-03-23 04:29:40 +0100 | 
| commit | f5718726714cd6114876c4e3ca9b6992ab81176c (patch) | |
| tree | c8cfe34ac28b22e89e8f5aac01c615ac61fbb221 /arch/powerpc | |
| parent | Linux 4.0-rc3 (diff) | |
| download | kernel-qcow2-linux-f5718726714cd6114876c4e3ca9b6992ab81176c.tar.gz kernel-qcow2-linux-f5718726714cd6114876c4e3ca9b6992ab81176c.tar.xz kernel-qcow2-linux-f5718726714cd6114876c4e3ca9b6992ab81176c.zip | |
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 {   * DBDMA command structure.  These fields are all little-endian!   */  struct dbdma_cmd { -    unsigned short req_count;	/* requested byte transfer count */ -    unsigned short command;	/* command word (has bit-fields) */ -    unsigned int   phy_addr;	/* physical data address */ -    unsigned int   cmd_dep;	/* command-dependent field */ -    unsigned short res_count;	/* residual count after completion */ -    unsigned short xfer_status;	/* transfer status */ +	__le16 req_count;	/* requested byte transfer count */ +	__le16 command;		/* command word (has bit-fields) */ +	__le32 phy_addr;	/* physical data address */ +	__le32 cmd_dep;		/* command-dependent field */ +	__le16 res_count;	/* residual count after completion */ +	__le16 xfer_status;	/* transfer status */  };  /* 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 @@  static inline void scr_writew(u16 val, volatile u16 *addr)  { -    st_le16(addr, val); +	*addr = cpu_to_le16(val);  }  static inline u16 scr_readw(volatile const u16 *addr)  { -    return ld_le16(addr); +	return le16_to_cpu(*addr);  }  #define VT_BUF_HAVE_MEMCPYW | 
