Lines Matching defs:dmanr

181 static __inline__ void enable_dma(unsigned int dmanr)
185 if (dmanr != 4) {
189 if (dmanr <= 3) {
190 dma_outb(dmanr, DMA1_MASK_REG);
193 dma_outb(dmanr & 3, DMA2_MASK_REG);
197 static __inline__ void disable_dma(unsigned int dmanr)
199 if (dmanr <= 3)
200 dma_outb(dmanr | 4, DMA1_MASK_REG);
202 dma_outb((dmanr & 3) | 4, DMA2_MASK_REG);
212 static __inline__ void clear_dma_ff(unsigned int dmanr)
214 if (dmanr <= 3)
221 static __inline__ void set_dma_mode(unsigned int dmanr, char mode)
223 if (dmanr <= 3)
224 dma_outb(mode | dmanr, DMA1_MODE_REG);
226 dma_outb(mode | (dmanr & 3), DMA2_MODE_REG);
234 static __inline__ void set_dma_page(unsigned int dmanr, int pagenr)
236 switch (dmanr) {
271 static __inline__ void set_dma_addr(unsigned int dmanr, unsigned int phys)
273 if (dmanr <= 3) {
275 ((dmanr & 3) << 1) + IO_DMA1_BASE);
277 ((dmanr & 3) << 1) + IO_DMA1_BASE);
280 ((dmanr & 3) << 2) + IO_DMA2_BASE);
282 ((dmanr & 3) << 2) + IO_DMA2_BASE);
284 set_dma_page(dmanr, phys >> 16);
296 static __inline__ void set_dma_count(unsigned int dmanr, unsigned int count)
299 if (dmanr <= 3) {
301 ((dmanr & 3) << 1) + 1 + IO_DMA1_BASE);
303 ((dmanr & 3) << 1) + 1 + IO_DMA1_BASE);
306 ((dmanr & 3) << 2) + 2 + IO_DMA2_BASE);
308 ((dmanr & 3) << 2) + 2 + IO_DMA2_BASE);
321 static __inline__ int get_dma_residue(unsigned int dmanr)
323 unsigned int io_port = (dmanr <= 3)
324 ? ((dmanr & 3) << 1) + 1 + IO_DMA1_BASE
325 : ((dmanr & 3) << 2) + 2 + IO_DMA2_BASE;
333 return (dmanr <= 3) ? count : (count << 1);
339 extern int request_dma(unsigned int dmanr, const char *device_id);
341 extern void free_dma(unsigned int dmanr);