Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[ARM] EBSA110: Add readsw/readsl/writesw/writesl

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Russell King and committed by
Russell King
27350afd 7ab3f8d5

+48
+40
arch/arm/mach-ebsa110/io.c
··· 102 102 EXPORT_SYMBOL(__readw); 103 103 EXPORT_SYMBOL(__readl); 104 104 105 + void readsw(void __iomem *addr, void *data, int len) 106 + { 107 + void __iomem *a = __isamem_convert_addr(addr); 108 + 109 + BUG_ON((unsigned long)addr & 1); 110 + 111 + __raw_readsw(a, data, len); 112 + } 113 + EXPORT_SYMBOL(readsw); 114 + 115 + void readsl(void __iomem *addr, void *data, int len) 116 + { 117 + void __iomem *a = __isamem_convert_addr(addr); 118 + 119 + BUG_ON((unsigned long)addr & 3); 120 + 121 + __raw_readsl(a, data, len); 122 + } 123 + EXPORT_SYMBOL(readsl); 124 + 105 125 void __writeb(u8 val, void __iomem *addr) 106 126 { 107 127 void __iomem *a = __isamem_convert_addr(addr); ··· 156 136 EXPORT_SYMBOL(__writeb); 157 137 EXPORT_SYMBOL(__writew); 158 138 EXPORT_SYMBOL(__writel); 139 + 140 + void writesw(void __iomem *addr, void *data, int len) 141 + { 142 + void __iomem *a = __isamem_convert_addr(addr); 143 + 144 + BUG_ON((unsigned long)addr & 1); 145 + 146 + __raw_writesw(a, data, len); 147 + } 148 + EXPORT_SYMBOL(writesw); 149 + 150 + void writesl(void __iomem *addr, void *data, int len) 151 + { 152 + void __iomem *a = __isamem_convert_addr(addr); 153 + 154 + BUG_ON((unsigned long)addr & 3); 155 + 156 + __raw_writesl(a, data, len); 157 + } 158 + EXPORT_SYMBOL(writesl); 159 159 160 160 #define SUPERIO_PORT(p) \ 161 161 (((p) >> 3) == (0x3f8 >> 3) || \
+8
include/asm-arm/arch-ebsa110/io.h
··· 81 81 extern void outsw(unsigned int port, const void *buf, int sz); 82 82 extern void outsl(unsigned int port, const void *buf, int sz); 83 83 84 + /* can't support writesb atm */ 85 + extern void writesw(void __iomem *addr, const void *data, int wordlen); 86 + extern void writesl(void __iomem *addr, const void *data, int longlen); 87 + 88 + /* can't support readsb atm */ 89 + extern void readsw(const void __iomem *addr, void *data, int wordlen); 90 + extern void readsl(const void __iomem *addr, void *data, int longlen); 91 + 84 92 #endif