|
@@ -33,11 +33,6 @@
|
|
|
#include <ioremap.h>
|
|
|
#include <mangle-port.h>
|
|
|
|
|
|
-/*
|
|
|
- * Slowdown I/O port space accesses for antique hardware.
|
|
|
- */
|
|
|
-#undef CONF_SLOWDOWN_IO
|
|
|
-
|
|
|
/*
|
|
|
* Raw operations are never swapped in software. OTOH values that raw
|
|
|
* operations are working on may or may not have been swapped by the bus
|
|
@@ -89,33 +84,6 @@ static inline void set_io_port_base(unsigned long base)
|
|
|
#define PIO_MASK IO_SPACE_LIMIT
|
|
|
#define PIO_RESERVED 0x0UL
|
|
|
|
|
|
-/*
|
|
|
- * Thanks to James van Artsdalen for a better timing-fix than
|
|
|
- * the two short jumps: using outb's to a nonexistent port seems
|
|
|
- * to guarantee better timings even on fast machines.
|
|
|
- *
|
|
|
- * On the other hand, I'd like to be sure of a non-existent port:
|
|
|
- * I feel a bit unsafe about using 0x80 (should be safe, though)
|
|
|
- *
|
|
|
- * Linus
|
|
|
- *
|
|
|
- */
|
|
|
-
|
|
|
-#define __SLOW_DOWN_IO \
|
|
|
- __asm__ __volatile__( \
|
|
|
- "sb\t$0,0x80(%0)" \
|
|
|
- : : "r" (mips_io_port_base));
|
|
|
-
|
|
|
-#ifdef CONF_SLOWDOWN_IO
|
|
|
-#ifdef REALLY_SLOW_IO
|
|
|
-#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
|
|
|
-#else
|
|
|
-#define SLOW_DOWN_IO __SLOW_DOWN_IO
|
|
|
-#endif
|
|
|
-#else
|
|
|
-#define SLOW_DOWN_IO
|
|
|
-#endif
|
|
|
-
|
|
|
/*
|
|
|
* virt_to_phys - map virtual addresses to physical
|
|
|
* @address: address to remap
|
|
@@ -399,7 +367,7 @@ static inline type pfx##read##bwlq(const volatile void __iomem *mem) \
|
|
|
return pfx##ioswab##bwlq(__mem, __val); \
|
|
|
}
|
|
|
|
|
|
-#define __BUILD_IOPORT_SINGLE(pfx, bwlq, type, p, slow) \
|
|
|
+#define __BUILD_IOPORT_SINGLE(pfx, bwlq, type, p) \
|
|
|
\
|
|
|
static inline void pfx##out##bwlq##p(type val, unsigned long port) \
|
|
|
{ \
|
|
@@ -416,7 +384,6 @@ static inline void pfx##out##bwlq##p(type val, unsigned long port) \
|
|
|
BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long)); \
|
|
|
\
|
|
|
*__addr = __val; \
|
|
|
- slow; \
|
|
|
} \
|
|
|
\
|
|
|
static inline type pfx##in##bwlq##p(unsigned long port) \
|
|
@@ -429,7 +396,6 @@ static inline type pfx##in##bwlq##p(unsigned long port) \
|
|
|
BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long)); \
|
|
|
\
|
|
|
__val = *__addr; \
|
|
|
- slow; \
|
|
|
\
|
|
|
/* prevent prefetching of coherent DMA data prematurely */ \
|
|
|
rmb(); \
|
|
@@ -452,8 +418,8 @@ BUILDIO_MEM(l, u32)
|
|
|
BUILDIO_MEM(q, u64)
|
|
|
|
|
|
#define __BUILD_IOPORT_PFX(bus, bwlq, type) \
|
|
|
- __BUILD_IOPORT_SINGLE(bus, bwlq, type, ,) \
|
|
|
- __BUILD_IOPORT_SINGLE(bus, bwlq, type, _p, SLOW_DOWN_IO)
|
|
|
+ __BUILD_IOPORT_SINGLE(bus, bwlq, type,) \
|
|
|
+ __BUILD_IOPORT_SINGLE(bus, bwlq, type, _p)
|
|
|
|
|
|
#define BUILDIO_IOPORT(bwlq, type) \
|
|
|
__BUILD_IOPORT_PFX(, bwlq, type) \
|