add io{read,write}{16,32}be functions to ixp4xx

svn path=/dists/trunk/linux-2.6/; revision=18265
This commit is contained in:
Arnaud Patard 2011-11-13 19:27:56 +00:00
parent 6f5b287580
commit fcaba866b2
3 changed files with 107 additions and 0 deletions

3
debian/changelog vendored
View File

@ -24,6 +24,9 @@ linux-2.6 (3.1.1-1) UNRELEASED; urgency=low
* [x86] Add amilo-rfkill driver for some Fujitsu-Siemens Amilo laptops
(Closes: #631664)
[ Arnaud Patard ]
* [arm] add missing ioread/write be functions to ixp4xx to fix FTBFS
-- Ben Hutchings <ben@decadent.org.uk> Fri, 04 Nov 2011 15:05:47 +0000
linux-2.6 (3.1.0-1~experimental.1) experimental; urgency=low

View File

@ -0,0 +1,103 @@
ixp4xx: add io{read,write}{16,32}be functions
Some driver are now requiring some be io functions, add noted in
commit (06901bd83412db5a31de7526e637101ed0c2c472). Otherwise, it may lead
to build errors like this one :
drivers/net/mlx4/en_tx.c: In function mlx4_en_xmit:
drivers/net/mlx4/en_tx.c:815: error: implicit declaration of function iowrite32be
make[3]: *** [drivers/net/mlx4/en_tx.o] Error 1
make[2]: *** [drivers/net/mlx4] Error 2
make[1]: *** [drivers/net] Error 2
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Index: linux-3.1/arch/arm/mach-ixp4xx/include/mach/io.h
===================================================================
--- linux-3.1.orig/arch/arm/mach-ixp4xx/include/mach/io.h 2011-11-13 14:14:50.662853902 +0100
+++ linux-3.1/arch/arm/mach-ixp4xx/include/mach/io.h 2011-11-13 14:19:38.522841236 +0100
@@ -387,6 +387,20 @@ static inline unsigned int ioread16(cons
#endif
}
+#define ioread16be(p) ioread16be(p)
+static inline unsigned int ioread16be(const void __iomem *addr)
+{
+ unsigned long port = (unsigned long __force)addr;
+ if (__is_io_address(port))
+ return (unsigned int)inw(port & PIO_MASK);
+ else
+#ifndef CONFIG_IXP4XX_INDIRECT_PCI
+ return be16_to_cpu((__force __be16)__raw_readw(addr));
+#else
+ return be16_to_cpu((__force __le16)(unsigned int)__indirect_readw(addr));
+#endif
+}
+
#define ioread16_rep(p, v, c) ioread16_rep(p, v, c)
static inline void ioread16_rep(const void __iomem *addr, void *vaddr,
u32 count)
@@ -417,6 +431,21 @@ static inline unsigned int ioread32(cons
}
}
+#define ioread32be(p) ioread32be(p)
+static inline unsigned int ioread32be(const void __iomem *addr)
+{
+ unsigned long port = (unsigned long __force)addr;
+ if (__is_io_address(port))
+ return (unsigned int)inl(port & PIO_MASK);
+ else {
+#ifndef CONFIG_IXP4XX_INDIRECT_PCI
+ return be32_to_cpu((__force __be32)__raw_readl(addr));
+#else
+ return be32_to_cpu((__force __be32)(unsigned int)__indirect_readl(addr));
+#endif
+ }
+}
+
#define ioread32_rep(p, v, c) ioread32_rep(p, v, c)
static inline void ioread32_rep(const void __iomem *addr, void *vaddr,
u32 count)
@@ -475,6 +504,20 @@ static inline void iowrite16(u16 value,
#endif
}
+#define iowrite16be(v, p) iowrite16be(v, p)
+static inline void iowrite16be(u16 value, void __iomem *addr)
+{
+ unsigned long port = (unsigned long __force)addr;
+ if (__is_io_address(port))
+ outw(value, port & PIO_MASK);
+ else
+#ifndef CONFIG_IXP4XX_INDIRECT_PCI
+ __raw_writew(cpu_to_be16(value), addr);
+#else
+ __indirect_writew(cpu_to_be16(value), addr);
+#endif
+}
+
#define iowrite16_rep(p, v, c) iowrite16_rep(p, v, c)
static inline void iowrite16_rep(void __iomem *addr, const void *vaddr,
u32 count)
@@ -504,6 +547,20 @@ static inline void iowrite32(u32 value,
#endif
}
+#define iowrite32be(v, p) iowrite32be(v, p)
+static inline void iowrite32be(u32 value, void __iomem *addr)
+{
+ unsigned long port = (unsigned long __force)addr;
+ if (__is_io_address(port))
+ outl(value, port & PIO_MASK);
+ else
+#ifndef CONFIG_IXP4XX_INDIRECT_PCI
+ __raw_writel((u32 __force)cpu_to_be32(value), addr);
+#else
+ __indirect_writel((u32 __force)cpu_to_be32(value), addr);
+#endif
+}
+
#define iowrite32_rep(p, v, c) iowrite32_rep(p, v, c)
static inline void iowrite32_rep(void __iomem *addr, const void *vaddr,
u32 count)

View File

@ -62,3 +62,4 @@
# Defer until we're sure about the system call number
#+ bugfix/ia64/ia64-Add-accept4-syscall.patch
+ bugfix/arm/ixp4xx_iobe.patch