diff options
Diffstat (limited to 'arch/cris/include/asm/io.h')
| -rw-r--r-- | arch/cris/include/asm/io.h | 39 |
1 files changed, 33 insertions, 6 deletions
diff --git a/arch/cris/include/asm/io.h b/arch/cris/include/asm/io.h index 32567bc2a421..ac12ae2b9286 100644 --- a/arch/cris/include/asm/io.h +++ b/arch/cris/include/asm/io.h | |||
| @@ -133,12 +133,39 @@ static inline void writel(unsigned int b, volatile void __iomem *addr) | |||
| 133 | #define insb(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,1,count) : 0) | 133 | #define insb(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,1,count) : 0) |
| 134 | #define insw(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,2,count) : 0) | 134 | #define insw(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,2,count) : 0) |
| 135 | #define insl(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,4,count) : 0) | 135 | #define insl(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,4,count) : 0) |
| 136 | #define outb(data,port) if (cris_iops) cris_iops->write_io(port,(void*)(unsigned)data,1,1) | 136 | static inline void outb(unsigned char data, unsigned int port) |
| 137 | #define outw(data,port) if (cris_iops) cris_iops->write_io(port,(void*)(unsigned)data,2,1) | 137 | { |
| 138 | #define outl(data,port) if (cris_iops) cris_iops->write_io(port,(void*)(unsigned)data,4,1) | 138 | if (cris_iops) |
| 139 | #define outsb(port,addr,count) if(cris_iops) cris_iops->write_io(port,(void*)addr,1,count) | 139 | cris_iops->write_io(port, (void *) &data, 1, 1); |
| 140 | #define outsw(port,addr,count) if(cris_iops) cris_iops->write_io(port,(void*)addr,2,count) | 140 | } |
| 141 | #define outsl(port,addr,count) if(cris_iops) cris_iops->write_io(port,(void*)addr,3,count) | 141 | static inline void outw(unsigned short data, unsigned int port) |
| 142 | { | ||
| 143 | if (cris_iops) | ||
| 144 | cris_iops->write_io(port, (void *) &data, 2, 1); | ||
| 145 | } | ||
| 146 | static inline void outl(unsigned int data, unsigned int port) | ||
| 147 | { | ||
| 148 | if (cris_iops) | ||
| 149 | cris_iops->write_io(port, (void *) &data, 4, 1); | ||
| 150 | } | ||
| 151 | static inline void outsb(unsigned int port, const void *addr, | ||
| 152 | unsigned long count) | ||
| 153 | { | ||
| 154 | if (cris_iops) | ||
| 155 | cris_iops->write_io(port, (void *)addr, 1, count); | ||
| 156 | } | ||
| 157 | static inline void outsw(unsigned int port, const void *addr, | ||
| 158 | unsigned long count) | ||
| 159 | { | ||
| 160 | if (cris_iops) | ||
| 161 | cris_iops->write_io(port, (void *)addr, 2, count); | ||
| 162 | } | ||
| 163 | static inline void outsl(unsigned int port, const void *addr, | ||
| 164 | unsigned long count) | ||
| 165 | { | ||
| 166 | if (cris_iops) | ||
| 167 | cris_iops->write_io(port, (void *)addr, 4, count); | ||
| 168 | } | ||
| 142 | 169 | ||
| 143 | /* | 170 | /* |
| 144 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem | 171 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem |
