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
|
||||
(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
|
||||
|
|
|
@ -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
|
||||
#+ bugfix/ia64/ia64-Add-accept4-syscall.patch
|
||||
+ bugfix/arm/ixp4xx_iobe.patch
|
||||
|
|
Loading…
Reference in New Issue