add io{read,write}{16,32}be functions to ixp4xx
svn path=/dists/trunk/linux-2.6/; revision=18265
This commit is contained in:
parent
6f5b287580
commit
fcaba866b2
|
@ -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
|
* [x86] Add amilo-rfkill driver for some Fujitsu-Siemens Amilo laptops
|
||||||
(Closes: #631664)
|
(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
|
-- 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
|
linux-2.6 (3.1.0-1~experimental.1) experimental; urgency=low
|
||||||
|
|
|
@ -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)
|
|
@ -62,3 +62,4 @@
|
||||||
|
|
||||||
# Defer until we're sure about the system call number
|
# Defer until we're sure about the system call number
|
||||||
#+ bugfix/ia64/ia64-Add-accept4-syscall.patch
|
#+ bugfix/ia64/ia64-Add-accept4-syscall.patch
|
||||||
|
+ bugfix/arm/ixp4xx_iobe.patch
|
||||||
|
|
Loading…
Reference in New Issue