microblaze: Add support for ioreadXX/iowriteXX_rep
Reuse versions from asm-generic functions. Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
parent
191d5eca24
commit
9998517a27
@ -248,4 +248,94 @@ static inline void __iomem *__ioremap(phys_addr_t address, unsigned long size,
|
|||||||
#define ioport_map(port, nr) ((void __iomem *)(port))
|
#define ioport_map(port, nr) ((void __iomem *)(port))
|
||||||
#define ioport_unmap(addr)
|
#define ioport_unmap(addr)
|
||||||
|
|
||||||
|
/* from asm-generic/io.h */
|
||||||
|
#ifndef insb
|
||||||
|
static inline void insb(unsigned long addr, void *buffer, int count)
|
||||||
|
{
|
||||||
|
if (count) {
|
||||||
|
u8 *buf = buffer;
|
||||||
|
do {
|
||||||
|
u8 x = inb(addr);
|
||||||
|
*buf++ = x;
|
||||||
|
} while (--count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef insw
|
||||||
|
static inline void insw(unsigned long addr, void *buffer, int count)
|
||||||
|
{
|
||||||
|
if (count) {
|
||||||
|
u16 *buf = buffer;
|
||||||
|
do {
|
||||||
|
u16 x = inw(addr);
|
||||||
|
*buf++ = x;
|
||||||
|
} while (--count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef insl
|
||||||
|
static inline void insl(unsigned long addr, void *buffer, int count)
|
||||||
|
{
|
||||||
|
if (count) {
|
||||||
|
u32 *buf = buffer;
|
||||||
|
do {
|
||||||
|
u32 x = inl(addr);
|
||||||
|
*buf++ = x;
|
||||||
|
} while (--count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef outsb
|
||||||
|
static inline void outsb(unsigned long addr, const void *buffer, int count)
|
||||||
|
{
|
||||||
|
if (count) {
|
||||||
|
const u8 *buf = buffer;
|
||||||
|
do {
|
||||||
|
outb(*buf++, addr);
|
||||||
|
} while (--count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef outsw
|
||||||
|
static inline void outsw(unsigned long addr, const void *buffer, int count)
|
||||||
|
{
|
||||||
|
if (count) {
|
||||||
|
const u16 *buf = buffer;
|
||||||
|
do {
|
||||||
|
outw(*buf++, addr);
|
||||||
|
} while (--count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef outsl
|
||||||
|
static inline void outsl(unsigned long addr, const void *buffer, int count)
|
||||||
|
{
|
||||||
|
if (count) {
|
||||||
|
const u32 *buf = buffer;
|
||||||
|
do {
|
||||||
|
outl(*buf++, addr);
|
||||||
|
} while (--count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ioread8_rep(p, dst, count) \
|
||||||
|
insb((unsigned long) (p), (dst), (count))
|
||||||
|
#define ioread16_rep(p, dst, count) \
|
||||||
|
insw((unsigned long) (p), (dst), (count))
|
||||||
|
#define ioread32_rep(p, dst, count) \
|
||||||
|
insl((unsigned long) (p), (dst), (count))
|
||||||
|
|
||||||
|
#define iowrite8_rep(p, src, count) \
|
||||||
|
outsb((unsigned long) (p), (src), (count))
|
||||||
|
#define iowrite16_rep(p, src, count) \
|
||||||
|
outsw((unsigned long) (p), (src), (count))
|
||||||
|
#define iowrite32_rep(p, src, count) \
|
||||||
|
outsl((unsigned long) (p), (src), (count))
|
||||||
|
|
||||||
#endif /* _ASM_MICROBLAZE_IO_H */
|
#endif /* _ASM_MICROBLAZE_IO_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user