root/arch/mips/include/asm/mach-generic/floppy.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. fd_inb
  2. fd_outb
  3. fd_enable_dma
  4. fd_disable_dma
  5. fd_request_dma
  6. fd_free_dma
  7. fd_clear_dma_ff
  8. fd_set_dma_mode
  9. fd_set_dma_addr
  10. fd_set_dma_count
  11. fd_get_dma_residue
  12. fd_enable_irq
  13. fd_disable_irq
  14. fd_request_irq
  15. fd_free_irq
  16. fd_getfdaddr1
  17. fd_dma_mem_alloc
  18. fd_dma_mem_free
  19. fd_drive_type

   1 /*
   2  * This file is subject to the terms and conditions of the GNU General Public
   3  * License.  See the file "COPYING" in the main directory of this archive
   4  * for more details.
   5  *
   6  * Copyright (C) 1996, 1997, 1998, 2003 by Ralf Baechle
   7  */
   8 #ifndef __ASM_MACH_GENERIC_FLOPPY_H
   9 #define __ASM_MACH_GENERIC_FLOPPY_H
  10 
  11 #include <linux/delay.h>
  12 #include <linux/ioport.h>
  13 #include <linux/sched.h>
  14 #include <linux/linkage.h>
  15 #include <linux/types.h>
  16 #include <linux/mm.h>
  17 
  18 #include <asm/bootinfo.h>
  19 #include <asm/cachectl.h>
  20 #include <asm/dma.h>
  21 #include <asm/floppy.h>
  22 #include <asm/io.h>
  23 #include <asm/irq.h>
  24 #include <asm/pgtable.h>
  25 
  26 /*
  27  * How to access the FDC's registers.
  28  */
  29 static inline unsigned char fd_inb(unsigned int port)
  30 {
  31         return inb_p(port);
  32 }
  33 
  34 static inline void fd_outb(unsigned char value, unsigned int port)
  35 {
  36         outb_p(value, port);
  37 }
  38 
  39 /*
  40  * How to access the floppy DMA functions.
  41  */
  42 static inline void fd_enable_dma(void)
  43 {
  44         enable_dma(FLOPPY_DMA);
  45 }
  46 
  47 static inline void fd_disable_dma(void)
  48 {
  49         disable_dma(FLOPPY_DMA);
  50 }
  51 
  52 static inline int fd_request_dma(void)
  53 {
  54         return request_dma(FLOPPY_DMA, "floppy");
  55 }
  56 
  57 static inline void fd_free_dma(void)
  58 {
  59         free_dma(FLOPPY_DMA);
  60 }
  61 
  62 static inline void fd_clear_dma_ff(void)
  63 {
  64         clear_dma_ff(FLOPPY_DMA);
  65 }
  66 
  67 static inline void fd_set_dma_mode(char mode)
  68 {
  69         set_dma_mode(FLOPPY_DMA, mode);
  70 }
  71 
  72 static inline void fd_set_dma_addr(char *addr)
  73 {
  74         set_dma_addr(FLOPPY_DMA, (unsigned long) addr);
  75 }
  76 
  77 static inline void fd_set_dma_count(unsigned int count)
  78 {
  79         set_dma_count(FLOPPY_DMA, count);
  80 }
  81 
  82 static inline int fd_get_dma_residue(void)
  83 {
  84         return get_dma_residue(FLOPPY_DMA);
  85 }
  86 
  87 static inline void fd_enable_irq(void)
  88 {
  89         enable_irq(FLOPPY_IRQ);
  90 }
  91 
  92 static inline void fd_disable_irq(void)
  93 {
  94         disable_irq(FLOPPY_IRQ);
  95 }
  96 
  97 static inline int fd_request_irq(void)
  98 {
  99         return request_irq(FLOPPY_IRQ, floppy_interrupt,
 100                            0, "floppy", NULL);
 101 }
 102 
 103 static inline void fd_free_irq(void)
 104 {
 105         free_irq(FLOPPY_IRQ, NULL);
 106 }
 107 
 108 #define fd_free_irq()           free_irq(FLOPPY_IRQ, NULL);
 109 
 110 
 111 static inline unsigned long fd_getfdaddr1(void)
 112 {
 113         return 0x3f0;
 114 }
 115 
 116 static inline unsigned long fd_dma_mem_alloc(unsigned long size)
 117 {
 118         return __get_dma_pages(GFP_KERNEL, get_order(size));
 119 }
 120 
 121 static inline void fd_dma_mem_free(unsigned long addr, unsigned long size)
 122 {
 123         free_pages(addr, get_order(size));
 124 }
 125 
 126 static inline unsigned long fd_drive_type(unsigned long n)
 127 {
 128         if (n == 0)
 129                 return 4;       /* 3,5", 1.44mb */
 130 
 131         return 0;
 132 }
 133 
 134 #endif /* __ASM_MACH_GENERIC_FLOPPY_H */

/* [<][>][^][v][top][bottom][index][help] */