|
@@ -35,7 +35,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
35
|
35
|
*
|
36
|
36
|
* This routine uses MMX instructions.
|
37
|
37
|
*/
|
38
|
|
-static uint64_t x86_readq ( volatile uint64_t *io_addr ) {
|
|
38
|
+static __unused uint64_t i386_readq ( volatile uint64_t *io_addr ) {
|
39
|
39
|
uint64_t data;
|
40
|
40
|
__asm__ __volatile__ ( "pushl %%edx\n\t"
|
41
|
41
|
"pushl %%eax\n\t"
|
|
@@ -56,7 +56,7 @@ static uint64_t x86_readq ( volatile uint64_t *io_addr ) {
|
56
|
56
|
*
|
57
|
57
|
* This routine uses MMX instructions.
|
58
|
58
|
*/
|
59
|
|
-static void x86_writeq ( uint64_t data, volatile uint64_t *io_addr ) {
|
|
59
|
+static __unused void i386_writeq ( uint64_t data, volatile uint64_t *io_addr ) {
|
60
|
60
|
__asm__ __volatile__ ( "pushl %%edx\n\t"
|
61
|
61
|
"pushl %%eax\n\t"
|
62
|
62
|
"movq (%%esp), %%mm0\n\t"
|
|
@@ -75,11 +75,9 @@ PROVIDE_IOAPI_INLINE ( x86, io_to_bus );
|
75
|
75
|
PROVIDE_IOAPI_INLINE ( x86, readb );
|
76
|
76
|
PROVIDE_IOAPI_INLINE ( x86, readw );
|
77
|
77
|
PROVIDE_IOAPI_INLINE ( x86, readl );
|
78
|
|
-PROVIDE_IOAPI ( x86, readq, x86_readq );
|
79
|
78
|
PROVIDE_IOAPI_INLINE ( x86, writeb );
|
80
|
79
|
PROVIDE_IOAPI_INLINE ( x86, writew );
|
81
|
80
|
PROVIDE_IOAPI_INLINE ( x86, writel );
|
82
|
|
-PROVIDE_IOAPI ( x86, writeq, x86_writeq );
|
83
|
81
|
PROVIDE_IOAPI_INLINE ( x86, inb );
|
84
|
82
|
PROVIDE_IOAPI_INLINE ( x86, inw );
|
85
|
83
|
PROVIDE_IOAPI_INLINE ( x86, inl );
|
|
@@ -94,3 +92,10 @@ PROVIDE_IOAPI_INLINE ( x86, outsw );
|
94
|
92
|
PROVIDE_IOAPI_INLINE ( x86, outsl );
|
95
|
93
|
PROVIDE_IOAPI_INLINE ( x86, iodelay );
|
96
|
94
|
PROVIDE_IOAPI_INLINE ( x86, mb );
|
|
95
|
+#ifdef __x86_64__
|
|
96
|
+PROVIDE_IOAPI_INLINE ( x86, readq );
|
|
97
|
+PROVIDE_IOAPI_INLINE ( x86, writeq );
|
|
98
|
+#else
|
|
99
|
+PROVIDE_IOAPI ( x86, readq, i386_readq );
|
|
100
|
+PROVIDE_IOAPI ( x86, writeq, i386_writeq );
|
|
101
|
+#endif
|