Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
mips
include
asm
mach-generic
floppy.h
Go to the documentation of this file.
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/init.h
>
13
#include <
linux/ioport.h
>
14
#include <linux/sched.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
inline
unsigned
char
fd_inb
(
unsigned
int
port
)
31
{
32
return
inb_p
(port);
33
}
34
35
static
inline
void
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
inline
void
fd_enable_dma
(
void
)
44
{
45
enable_dma
(FLOPPY_DMA);
46
}
47
48
static
inline
void
fd_disable_dma
(
void
)
49
{
50
disable_dma
(FLOPPY_DMA);
51
}
52
53
static
inline
int
fd_request_dma
(
void
)
54
{
55
return
request_dma
(FLOPPY_DMA,
"floppy"
);
56
}
57
58
static
inline
void
fd_free_dma
(
void
)
59
{
60
free_dma
(FLOPPY_DMA);
61
}
62
63
static
inline
void
fd_clear_dma_ff
(
void
)
64
{
65
clear_dma_ff(FLOPPY_DMA);
66
}
67
68
static
inline
void
fd_set_dma_mode
(
char
mode
)
69
{
70
set_dma_mode
(FLOPPY_DMA, mode);
71
}
72
73
static
inline
void
fd_set_dma_addr
(
char
*
addr
)
74
{
75
set_dma_addr(FLOPPY_DMA, (
unsigned
long
) addr);
76
}
77
78
static
inline
void
fd_set_dma_count
(
unsigned
int
count
)
79
{
80
set_dma_count
(FLOPPY_DMA, count);
81
}
82
83
static
inline
int
fd_get_dma_residue
(
void
)
84
{
85
return
get_dma_residue
(FLOPPY_DMA);
86
}
87
88
static
inline
void
fd_enable_irq
(
void
)
89
{
90
enable_irq
(FLOPPY_IRQ);
91
}
92
93
static
inline
void
fd_disable_irq
(
void
)
94
{
95
disable_irq
(FLOPPY_IRQ);
96
}
97
98
static
inline
int
fd_request_irq
(
void
)
99
{
100
return
request_irq
(FLOPPY_IRQ,
floppy_interrupt
,
101
0,
"floppy"
,
NULL
);
102
}
103
104
static
inline
void
fd_free_irq
(
void
)
105
{
106
free_irq
(FLOPPY_IRQ,
NULL
);
107
}
108
109
#define fd_free_irq() free_irq(FLOPPY_IRQ, NULL);
110
111
112
static
inline
unsigned
long
fd_getfdaddr1(
void
)
113
{
114
return
0x3f0;
115
}
116
117
static
inline
unsigned
long
fd_dma_mem_alloc
(
unsigned
long
size
)
118
{
119
unsigned
long
mem
;
120
121
mem =
__get_dma_pages
(
GFP_KERNEL
,
get_order
(size));
122
123
return
mem
;
124
}
125
126
static
inline
void
fd_dma_mem_free
(
unsigned
long
addr,
unsigned
long
size)
127
{
128
free_pages
(addr,
get_order
(size));
129
}
130
131
static
inline
unsigned
long
fd_drive_type
(
unsigned
long
n
)
132
{
133
if
(n == 0)
134
return
4;
/* 3,5", 1.44mb */
135
136
return
0;
137
}
138
139
#endif
/* __ASM_MACH_GENERIC_FLOPPY_H */
Generated on Thu Jan 10 2013 12:49:36 for Linux Kernel by
1.8.2