~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/mips/lib/floppy-std.c

Version: ~ [ linux-5.9.1 ] ~ [ linux-5.8.16 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.72 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.152 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.202 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.240 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.240 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.85 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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  * Access the floppy hardware on PC style hardware
  7  *
  8  * Copyright (C) 1996, 1997, 1998, 2003 by Ralf Baechle
  9  */
 10 #include <linux/delay.h>
 11 #include <linux/init.h>
 12 #include <linux/ioport.h>
 13 #include <linux/sched.h>
 14 #include <linux/kernel.h>
 15 #include <linux/linkage.h>
 16 #include <linux/types.h>
 17 #include <linux/mm.h>
 18 
 19 #include <asm/bootinfo.h>
 20 #include <asm/cachectl.h>
 21 #include <asm/dma.h>
 22 #include <asm/floppy.h>
 23 #include <asm/io.h>
 24 #include <asm/irq.h>
 25 #include <asm/pgtable.h>
 26 
 27 /*
 28  * How to access the FDC's registers.
 29  */
 30 static unsigned char std_fd_inb(unsigned int port)
 31 {
 32         return inb_p(port);
 33 }
 34 
 35 static void std_fd_outb(unsigned char value, unsigned int port)
 36 {
 37         outb_p(value, port);
 38 }
 39 
 40 /*
 41  * How to access the floppy DMA functions.
 42  */
 43 static void std_fd_enable_dma(int channel)
 44 {
 45         enable_dma(channel);
 46 }
 47 
 48 static void std_fd_disable_dma(int channel)
 49 {
 50         disable_dma(channel);
 51 }
 52 
 53 static int std_fd_request_dma(int channel)
 54 {
 55         return request_dma(channel, "floppy");
 56 }
 57 
 58 static void std_fd_free_dma(int channel)
 59 {
 60         free_dma(channel);
 61 }
 62 
 63 static void std_fd_clear_dma_ff(int channel)
 64 {
 65         clear_dma_ff(channel);
 66 }
 67 
 68 static void std_fd_set_dma_mode(int channel, char mode)
 69 {
 70         set_dma_mode(channel, mode);
 71 }
 72 
 73 static void std_fd_set_dma_addr(int channel, unsigned int addr)
 74 {
 75         set_dma_addr(channel, addr);
 76 }
 77 
 78 static void std_fd_set_dma_count(int channel, unsigned int count)
 79 {
 80         set_dma_count(channel, count);
 81 }
 82 
 83 static int std_fd_get_dma_residue(int channel)
 84 {
 85         return get_dma_residue(channel);
 86 }
 87 
 88 static void std_fd_enable_irq(int irq)
 89 {
 90         enable_irq(irq);
 91 }
 92 
 93 static void std_fd_disable_irq(int irq)
 94 {
 95         disable_irq(irq);
 96 }
 97 
 98 static unsigned long std_fd_getfdaddr1(void)
 99 {
100         return 0x3f0;
101 }
102 
103 static unsigned long std_fd_dma_mem_alloc(unsigned long size)
104 {
105         unsigned long mem;
106 
107         mem = __get_dma_pages(GFP_KERNEL, get_order(size));
108 
109         return mem;
110 }
111 
112 static void std_fd_dma_mem_free(unsigned long addr, unsigned long size)
113 {
114         free_pages(addr, get_order(size));
115 }
116 
117 static unsigned long std_fd_drive_type(unsigned long n)
118 {
119         if (n == 0)
120                 return 4;       /* 3,5", 1.44mb */
121 
122         return 0;
123 }
124 
125 struct fd_ops std_fd_ops = {
126         /*
127          * How to access the floppy controller's ports
128          */
129         std_fd_inb,
130         std_fd_outb,
131         /*
132          * How to access the floppy DMA functions.
133          */
134         std_fd_enable_dma,
135         std_fd_disable_dma,
136         std_fd_request_dma,
137         std_fd_free_dma,
138         std_fd_clear_dma_ff,
139         std_fd_set_dma_mode,
140         std_fd_set_dma_addr,
141         std_fd_set_dma_count,
142         std_fd_get_dma_residue,
143         std_fd_enable_irq,
144         std_fd_disable_irq,
145         std_fd_getfdaddr1,
146         std_fd_dma_mem_alloc,
147         std_fd_dma_mem_free,
148         std_fd_drive_type
149 };
150 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp