Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
3b68c558
Commit
3b68c558
authored
Nov 17, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/davem/net-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
abcf6780
a265b149
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
114 additions
and
247 deletions
+114
-247
Documentation/kernel-parameters.txt
Documentation/kernel-parameters.txt
+5
-3
drivers/ide/cris/ide-v10.c
drivers/ide/cris/ide-v10.c
+46
-127
drivers/ide/ide-cd.c
drivers/ide/ide-cd.c
+3
-3
drivers/ide/ide-cd.h
drivers/ide/ide-cd.h
+3
-3
drivers/ide/ide-disk.c
drivers/ide/ide-disk.c
+2
-2
drivers/ide/ide-dma.c
drivers/ide/ide-dma.c
+0
-1
drivers/ide/ide-probe.c
drivers/ide/ide-probe.c
+1
-1
drivers/ide/ide-proc.c
drivers/ide/ide-proc.c
+15
-5
drivers/ide/ide.c
drivers/ide/ide.c
+1
-1
drivers/ide/legacy/hd.c
drivers/ide/legacy/hd.c
+4
-4
drivers/ide/legacy/qd65xx.c
drivers/ide/legacy/qd65xx.c
+1
-1
drivers/ide/legacy/qd65xx.h
drivers/ide/legacy/qd65xx.h
+1
-1
drivers/ide/pci/aec62xx.h
drivers/ide/pci/aec62xx.h
+2
-2
drivers/ide/pci/cs5520.c
drivers/ide/pci/cs5520.c
+1
-1
drivers/ide/pci/cy82c693.c
drivers/ide/pci/cy82c693.c
+1
-1
drivers/ide/pci/hpt366.h
drivers/ide/pci/hpt366.h
+19
-19
drivers/ide/pci/pdc202xx_new.c
drivers/ide/pci/pdc202xx_new.c
+0
-56
drivers/ide/pci/pdc202xx_old.c
drivers/ide/pci/pdc202xx_old.c
+1
-1
drivers/ide/pci/sc1200.c
drivers/ide/pci/sc1200.c
+2
-2
drivers/ide/pci/serverworks.h
drivers/ide/pci/serverworks.h
+1
-1
drivers/ide/pci/trm290.c
drivers/ide/pci/trm290.c
+1
-1
drivers/isdn/divert/divert_init.c
drivers/isdn/divert/divert_init.c
+0
-1
drivers/isdn/divert/divert_procfs.c
drivers/isdn/divert/divert_procfs.c
+0
-1
drivers/isdn/divert/isdn_divert.c
drivers/isdn/divert/isdn_divert.c
+2
-9
drivers/isdn/divert/isdn_divert.h
drivers/isdn/divert/isdn_divert.h
+2
-0
No files found.
Documentation/kernel-parameters.txt
View file @
3b68c558
...
...
@@ -504,10 +504,12 @@ running once the system is up.
icn= [HW,ISDN]
Format: <io>[,<membase>[,<icn_id>[,<icn_id2>]]]
ide= [HW] (E)IDE subsystem
Format: ide=nodma or ide=doubler or ide=reverse
See Documentation/ide.txt.
ide?= [HW] (E)IDE subsystem
Config (iomem/irq), tuning or debugging
(serialize,reset,no{dma,tune,probe}) or chipset
specific parameters.
Format: ide?=noprobe or chipset specific parameters.
See Documentation/ide.txt.
idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed
...
...
drivers/ide/cris/ide-v10.c
View file @
3b68c558
...
...
@@ -30,6 +30,7 @@
#include <linux/hdreg.h>
#include <linux/ide.h>
#include <linux/init.h>
#include <linux/scatterlist.h>
#include <asm/io.h>
#include <asm/arch/svinto.h>
...
...
@@ -50,6 +51,9 @@ static int e100_read_command = 0;
#define LOWDB(x)
#define D(x)
static
int
e100_ide_build_dmatable
(
ide_drive_t
*
drive
);
static
ide_startstop_t
etrax_dma_intr
(
ide_drive_t
*
drive
);
void
etrax100_ide_outw
(
unsigned
short
data
,
unsigned
long
reg
)
{
int
timeleft
;
...
...
@@ -202,16 +206,13 @@ etrax100_ide_inb(unsigned long reg)
#define ATA_PIO0_HOLD 4
static
int
e100_dma_check
(
ide_drive_t
*
drive
);
static
int
e100_dma_begin
(
ide_drive_t
*
drive
);
static
void
e100_dma_start
(
ide_drive_t
*
drive
);
static
int
e100_dma_end
(
ide_drive_t
*
drive
);
static
int
e100_dma_read
(
ide_drive_t
*
drive
);
static
int
e100_dma_write
(
ide_drive_t
*
drive
);
static
void
e100_ide_input_data
(
ide_drive_t
*
drive
,
void
*
,
unsigned
int
);
static
void
e100_ide_output_data
(
ide_drive_t
*
drive
,
void
*
,
unsigned
int
);
static
void
e100_atapi_input_bytes
(
ide_drive_t
*
drive
,
void
*
,
unsigned
int
);
static
void
e100_atapi_output_bytes
(
ide_drive_t
*
drive
,
void
*
,
unsigned
int
);
static
int
e100_dma_off
(
ide_drive_t
*
drive
);
static
int
e100_dma_verbose
(
ide_drive_t
*
drive
);
/*
...
...
@@ -276,6 +277,40 @@ static void tune_e100_ide(ide_drive_t *drive, byte pio)
}
}
static
int
e100_dma_setup
(
ide_drive_t
*
drive
)
{
struct
request
*
rq
=
drive
->
hwif
->
hwgroup
->
rq
;
if
(
rq_data_dir
(
rq
))
{
e100_read_command
=
0
;
RESET_DMA
(
ATA_TX_DMA_NBR
);
/* sometimes the DMA channel get stuck so we need to do this */
WAIT_DMA
(
ATA_TX_DMA_NBR
);
}
else
{
e100_read_command
=
1
;
RESET_DMA
(
ATA_RX_DMA_NBR
);
/* sometimes the DMA channel get stuck so we need to do this */
WAIT_DMA
(
ATA_RX_DMA_NBR
);
}
/* set up the Etrax DMA descriptors */
if
(
e100_ide_build_dmatable
(
drive
))
{
ide_map_sg
(
drive
,
rq
);
return
1
;
}
return
0
;
}
static
void
e100_dma_exec_cmd
(
ide_drive_t
*
drive
,
u8
command
)
{
/* set the irq handler which will finish the request when DMA is done */
ide_set_handler
(
drive
,
&
etrax_dma_intr
,
WAIT_CMD
,
NULL
);
/* issue cmd to drive */
etrax100_ide_outb
(
command
,
IDE_COMMAND_REG
);
}
void
__init
init_e100_ide
(
void
)
{
...
...
@@ -297,18 +332,15 @@ init_e100_ide (void)
hwif
->
atapi_output_bytes
=
&
e100_atapi_output_bytes
;
hwif
->
ide_dma_check
=
&
e100_dma_check
;
hwif
->
ide_dma_end
=
&
e100_dma_end
;
hwif
->
ide_dma_write
=
&
e100_dma_write
;
hwif
->
ide_dma_read
=
&
e100_dma_rea
d
;
hwif
->
ide_dma_begin
=
&
e100_dma_begin
;
hwif
->
dma_setup
=
&
e100_dma_setup
;
hwif
->
dma_exec_cmd
=
&
e100_dma_exec_cm
d
;
hwif
->
dma_start
=
&
e100_dma_start
;
hwif
->
OUTB
=
&
etrax100_ide_outb
;
hwif
->
OUTW
=
&
etrax100_ide_outw
;
hwif
->
OUTBSYNC
=
&
etrax100_ide_outbsync
;
hwif
->
INB
=
&
etrax100_ide_inb
;
hwif
->
INW
=
&
etrax100_ide_inw
;
hwif
->
ide_dma_off_quietly
=
&
e100_dma_off
;
hwif
->
ide_dma_verbose
=
&
e100_dma_verbose
;
hwif
->
sg_table
=
kmalloc
(
sizeof
(
struct
scatterlist
)
*
PRD_ENTRIES
,
GFP_KERNEL
);
}
/* actually reset and configure the etrax100 ide/ata interface */
...
...
@@ -401,12 +433,6 @@ static int e100_dma_off (ide_drive_t *drive)
return
0
;
}
static
int
e100_dma_verbose
(
ide_drive_t
*
drive
)
{
printk
(
", DMA(mode 2)"
);
return
0
;
}
static
etrax_dma_descr
mydescr
;
/*
...
...
@@ -618,20 +644,9 @@ static int e100_ide_build_dmatable (ide_drive_t *drive)
ata_tot_size
=
0
;
if
(
HWGROUP
(
drive
)
->
rq
->
flags
&
REQ_DRIVE_TASKFILE
)
{
u8
*
virt_addr
=
rq
->
buffer
;
int
sector_count
=
rq
->
nr_sectors
;
memset
(
&
sg
[
0
],
0
,
sizeof
(
*
sg
));
sg
[
0
].
page
=
virt_to_page
(
virt_addr
);
sg
[
0
].
offset
=
offset_in_page
(
virt_addr
);
sg
[
0
].
length
=
sector_count
*
SECTOR_SIZE
;
hwif
->
sg_nents
=
i
=
1
;
}
else
{
hwif
->
sg_nents
=
i
=
blk_rq_map_sg
(
drive
->
queue
,
rq
,
hwif
->
sg_table
);
}
ide_map_sg
(
drive
,
rq
);
i
=
hwif
->
sg_nents
;
while
(
i
)
{
/*
...
...
@@ -768,10 +783,6 @@ static ide_startstop_t etrax_dma_intr (ide_drive_t *drive)
* sector address using CHS or LBA. All that remains is to prepare for DMA
* and then issue the actual read/write DMA/PIO command to the drive.
*
* For ATAPI devices, we just prepare for DMA and return. The caller should
* then issue the packet command to the drive and call us again with
* ide_dma_begin afterwards.
*
* Returns 0 if all went well.
* Returns 1 if DMA read/write could not be started, in which case
* the caller should revert to PIO for the current request.
...
...
@@ -788,35 +799,9 @@ static int e100_dma_end(ide_drive_t *drive)
return
0
;
}
static
int
e100_start_dma
(
ide_drive_t
*
drive
,
int
atapi
,
int
reading
)
static
void
e100_dma_start
(
ide_drive_t
*
drive
)
{
if
(
reading
)
{
RESET_DMA
(
ATA_RX_DMA_NBR
);
/* sometimes the DMA channel get stuck so we need to do this */
WAIT_DMA
(
ATA_RX_DMA_NBR
);
/* set up the Etrax DMA descriptors */
if
(
e100_ide_build_dmatable
(
drive
))
return
1
;
if
(
!
atapi
)
{
/* set the irq handler which will finish the request when DMA is done */
ide_set_handler
(
drive
,
&
etrax_dma_intr
,
WAIT_CMD
,
NULL
);
/* issue cmd to drive */
if
((
HWGROUP
(
drive
)
->
rq
->
flags
&
REQ_DRIVE_TASKFILE
)
&&
(
drive
->
addressing
==
1
))
{
ide_task_t
*
args
=
HWGROUP
(
drive
)
->
rq
->
special
;
etrax100_ide_outb
(
args
->
tfRegister
[
IDE_COMMAND_OFFSET
],
IDE_COMMAND_REG
);
}
else
if
(
drive
->
addressing
)
{
etrax100_ide_outb
(
WIN_READDMA_EXT
,
IDE_COMMAND_REG
);
}
else
{
etrax100_ide_outb
(
WIN_READDMA
,
IDE_COMMAND_REG
);
}
}
if
(
e100_read_command
)
{
/* begin DMA */
/* need to do this before RX DMA due to a chip bug
...
...
@@ -849,32 +834,6 @@ static int e100_start_dma(ide_drive_t *drive, int atapi, int reading)
}
else
{
/* writing */
RESET_DMA
(
ATA_TX_DMA_NBR
);
/* sometimes the DMA channel get stuck so we need to do this */
WAIT_DMA
(
ATA_TX_DMA_NBR
);
/* set up the Etrax DMA descriptors */
if
(
e100_ide_build_dmatable
(
drive
))
return
1
;
if
(
!
atapi
)
{
/* set the irq handler which will finish the request when DMA is done */
ide_set_handler
(
drive
,
&
etrax_dma_intr
,
WAIT_CMD
,
NULL
);
/* issue cmd to drive */
if
((
HWGROUP
(
drive
)
->
rq
->
flags
&
REQ_DRIVE_TASKFILE
)
&&
(
drive
->
addressing
==
1
))
{
ide_task_t
*
args
=
HWGROUP
(
drive
)
->
rq
->
special
;
etrax100_ide_outb
(
args
->
tfRegister
[
IDE_COMMAND_OFFSET
],
IDE_COMMAND_REG
);
}
else
if
(
drive
->
addressing
)
{
etrax100_ide_outb
(
WIN_WRITEDMA_EXT
,
IDE_COMMAND_REG
);
}
else
{
etrax100_ide_outb
(
WIN_WRITEDMA
,
IDE_COMMAND_REG
);
}
}
/* begin DMA */
*
R_DMA_CH2_FIRST
=
virt_to_phys
(
ata_descrs
);
...
...
@@ -897,44 +856,4 @@ static int e100_start_dma(ide_drive_t *drive, int atapi, int reading)
D
(
printk
(
"dma write of %d bytes.
\n
"
,
ata_tot_size
));
}
return
0
;
}
static
int
e100_dma_write
(
ide_drive_t
*
drive
)
{
e100_read_command
=
0
;
/* ATAPI-devices (not disks) first call ide_dma_read/write to set the direction
* then they call ide_dma_begin after they have issued the appropriate drive command
* themselves to actually start the chipset DMA. so we just return here if we're
* not a diskdrive.
*/
if
(
drive
->
media
!=
ide_disk
)
return
0
;
return
e100_start_dma
(
drive
,
0
,
0
);
}
static
int
e100_dma_read
(
ide_drive_t
*
drive
)
{
e100_read_command
=
1
;
/* ATAPI-devices (not disks) first call ide_dma_read/write to set the direction
* then they call ide_dma_begin after they have issued the appropriate drive command
* themselves to actually start the chipset DMA. so we just return here if we're
* not a diskdrive.
*/
if
(
drive
->
media
!=
ide_disk
)
return
0
;
return
e100_start_dma
(
drive
,
0
,
1
);
}
static
int
e100_dma_begin
(
ide_drive_t
*
drive
)
{
/* begin DMA, used by ATAPI devices which want to issue the
* appropriate IDE command themselves.
*
* they have already called ide_dma_read/write to set the
* static reading flag, now they call ide_dma_begin to do
* the real stuff. we tell our code below not to issue
* any IDE commands itself and jump into it.
*/
return
e100_start_dma
(
drive
,
1
,
e100_read_command
);
}
drivers/ide/ide-cd.c
View file @
3b68c558
...
...
@@ -562,7 +562,7 @@ static void cdrom_queue_request_sense(ide_drive_t *drive, void *sense,
/*
* ide_error() takes action based on the error returned by the drive.
*/
ide_startstop_t
ide_cdrom_error
(
ide_drive_t
*
drive
,
const
char
*
msg
,
byte
stat
)
static
ide_startstop_t
ide_cdrom_error
(
ide_drive_t
*
drive
,
const
char
*
msg
,
byte
stat
)
{
struct
request
*
rq
;
byte
err
;
...
...
@@ -598,7 +598,7 @@ ide_startstop_t ide_cdrom_error (ide_drive_t *drive, const char *msg, byte stat)
return
ide_stopped
;
}
ide_startstop_t
ide_cdrom_abort
(
ide_drive_t
*
drive
,
const
char
*
msg
)
static
ide_startstop_t
ide_cdrom_abort
(
ide_drive_t
*
drive
,
const
char
*
msg
)
{
struct
request
*
rq
;
...
...
@@ -3430,7 +3430,7 @@ static struct block_device_operations idecd_ops = {
};
/* options */
char
*
ignore
=
NULL
;
static
char
*
ignore
=
NULL
;
module_param
(
ignore
,
charp
,
0400
);
MODULE_DESCRIPTION
(
"ATAPI CD-ROM Driver"
);
...
...
drivers/ide/ide-cd.h
View file @
3b68c558
...
...
@@ -519,7 +519,7 @@ struct cdrom_info {
/* The generic packet command opcodes for CD/DVD Logical Units,
* From Table 57 of the SFF8090 Ver. 3 (Mt. Fuji) draft standard. */
const
struct
{
static
const
struct
{
unsigned
short
packet_command
;
const
char
*
const
text
;
}
packet_command_texts
[]
=
{
...
...
@@ -577,7 +577,7 @@ const struct {
/* From Table 303 of the SFF8090 Ver. 3 (Mt. Fuji) draft standard. */
const
char
*
const
sense_key_texts
[
16
]
=
{
static
const
char
*
const
sense_key_texts
[
16
]
=
{
"No sense data"
,
"Recovered error"
,
"Not ready"
,
...
...
@@ -597,7 +597,7 @@ const char * const sense_key_texts[16] = {
};
/* From Table 304 of the SFF8090 Ver. 3 (Mt. Fuji) draft standard. */
const
struct
{
static
const
struct
{
unsigned
long
asc_ascq
;
const
char
*
const
text
;
}
sense_data_texts
[]
=
{
...
...
drivers/ide/ide-disk.c
View file @
3b68c558
...
...
@@ -390,7 +390,7 @@ static u8 idedisk_dump_status (ide_drive_t *drive, const char *msg, u8 stat)
return
err
;
}
ide_startstop_t
idedisk_error
(
ide_drive_t
*
drive
,
const
char
*
msg
,
u8
stat
)
static
ide_startstop_t
idedisk_error
(
ide_drive_t
*
drive
,
const
char
*
msg
,
u8
stat
)
{
ide_hwif_t
*
hwif
;
struct
request
*
rq
;
...
...
@@ -450,7 +450,7 @@ ide_startstop_t idedisk_error (ide_drive_t *drive, const char *msg, u8 stat)
return
ide_stopped
;
}
ide_startstop_t
idedisk_abort
(
ide_drive_t
*
drive
,
const
char
*
msg
)
static
ide_startstop_t
idedisk_abort
(
ide_drive_t
*
drive
,
const
char
*
msg
)
{
ide_hwif_t
*
hwif
;
struct
request
*
rq
;
...
...
drivers/ide/ide-dma.c
View file @
3b68c558
...
...
@@ -129,7 +129,6 @@ static const struct drive_list_entry drive_blacklist [] = {
{
"CD-532E-A"
,
"ALL"
},
{
"E-IDE CD-ROM CR-840"
,
"ALL"
},
{
"CD-ROM Drive/F5A"
,
"ALL"
},
{
"RICOH CD-R/RW MP7083A"
,
"ALL"
},
{
"WPI CDD-820"
,
"ALL"
},
{
"SAMSUNG CD-ROM SC-148C"
,
"ALL"
},
{
"SAMSUNG CD-ROM SC-148F"
,
"ALL"
},
...
...
drivers/ide/ide-probe.c
View file @
3b68c558
...
...
@@ -1149,7 +1149,7 @@ static int ata_lock(dev_t dev, void *data)
extern
ide_driver_t
idedefault_driver
;
struct
kobject
*
ata_probe
(
dev_t
dev
,
int
*
part
,
void
*
data
)
st
atic
st
ruct
kobject
*
ata_probe
(
dev_t
dev
,
int
*
part
,
void
*
data
)
{
ide_hwif_t
*
hwif
=
data
;
int
unit
=
*
part
>>
PARTN_BITS
;
...
...
drivers/ide/ide-proc.c
View file @
3b68c558
...
...
@@ -124,6 +124,18 @@ static int proc_ide_read_identify
PROC_IDE_READ_RETURN
(
page
,
start
,
off
,
count
,
eof
,
len
);
}
static
void
proc_ide_settings_warn
(
void
)
{
static
int
warned
=
0
;
if
(
warned
)
return
;
printk
(
KERN_WARNING
"Warning: /proc/ide/hd?/settings interface is "
"obsolete, and will be removed soon!
\n
"
);
warned
=
1
;
}
static
int
proc_ide_read_settings
(
char
*
page
,
char
**
start
,
off_t
off
,
int
count
,
int
*
eof
,
void
*
data
)
{
...
...
@@ -132,8 +144,7 @@ static int proc_ide_read_settings
char
*
out
=
page
;
int
len
,
rc
,
mul_factor
,
div_factor
;
printk
(
KERN_WARNING
"Warning: /proc/ide/hd?/settings interface is "
"obsolete, and will be removed soon!
\n
"
);
proc_ide_settings_warn
();
down
(
&
ide_setting_sem
);
out
+=
sprintf
(
out
,
"name
\t\t\t
value
\t\t
min
\t\t
max
\t\t
mode
\n
"
);
...
...
@@ -171,12 +182,11 @@ static int proc_ide_write_settings(struct file *file, const char __user *buffer,
ide_settings_t
*
setting
;
char
*
buf
,
*
s
;
printk
(
KERN_WARNING
"Warning: /proc/ide/hd?/settings interface is "
"obsolete, and will be removed soon!
\n
"
);
if
(
!
capable
(
CAP_SYS_ADMIN
))
return
-
EACCES
;
proc_ide_settings_warn
();
if
(
count
>=
PAGE_SIZE
)
return
-
EINVAL
;
...
...
drivers/ide/ide.c
View file @
3b68c558
...
...
@@ -1846,7 +1846,7 @@ int __init ide_setup (char *s)
#endif
/* CONFIG_BLK_DEV_IDEDOUBLER */
if
(
!
strcmp
(
s
,
"ide=nodma"
))
{
printk
(
"
IDE
: Prevented DMA
\n
"
);
printk
(
"
: Prevented DMA
\n
"
);
noautodma
=
1
;
return
1
;
}
...
...
drivers/ide/legacy/hd.c
View file @
3b68c558
...
...
@@ -174,7 +174,7 @@ unsigned long read_timer(void)
}
#endif
void
__init
hd_setup
(
char
*
str
,
int
*
ints
)
static
void
__init
hd_setup
(
char
*
str
,
int
*
ints
)
{
int
hdind
=
0
;
...
...
@@ -239,7 +239,7 @@ static void dump_status (const char *msg, unsigned int stat)
#endif
}
void
check_status
(
void
)
static
void
check_status
(
void
)
{
int
i
=
inb_p
(
HD_STATUS
);
...
...
@@ -386,7 +386,7 @@ static void reset_hd(void)
* drive enters "idle", "standby", or "sleep" mode, so if the status looks
* "good", we just ignore the interrupt completely.
*/
void
unexpected_hd_interrupt
(
void
)
static
void
unexpected_hd_interrupt
(
void
)
{
unsigned
int
stat
=
inb_p
(
HD_STATUS
);
...
...
@@ -551,7 +551,7 @@ static void hd_times_out(unsigned long dummy)
enable_irq
(
HD_IRQ
);
}
int
do_special_op
(
struct
hd_i_struct
*
disk
,
struct
request
*
req
)
static
int
do_special_op
(
struct
hd_i_struct
*
disk
,
struct
request
*
req
)
{
if
(
disk
->
recalibrate
)
{
disk
->
recalibrate
=
0
;
...
...
drivers/ide/legacy/qd65xx.c
View file @
3b68c558
...
...
@@ -101,7 +101,7 @@ static void qd_write_reg (u8 content, unsigned long reg)
spin_unlock_irqrestore
(
&
ide_lock
,
flags
);
}
u8
__init
qd_read_reg
(
unsigned
long
reg
)
static
u8
__init
qd_read_reg
(
unsigned
long
reg
)
{
unsigned
long
flags
;
u8
read
;
...
...
drivers/ide/legacy/qd65xx.h
View file @
3b68c558
...
...
@@ -46,7 +46,7 @@
/* Drive specific timing taken from DOS driver v3.7 */
struct
qd65xx_timing_s
{
st
atic
st
ruct
qd65xx_timing_s
{
s8
offset
;
/* ofset from the beginning of Model Number" */
char
model
[
4
];
/* 4 chars from Model number, no conversion */
s16
active
;
/* active time */
...
...
drivers/ide/pci/aec62xx.h
View file @
3b68c558
...
...
@@ -11,7 +11,7 @@ struct chipset_bus_clock_list_entry {
byte
ultra_settings
;
};
struct
chipset_bus_clock_list_entry
aec6xxx_33_base
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
aec6xxx_33_base
[]
=
{
{
XFER_UDMA_6
,
0x31
,
0x07
},
{
XFER_UDMA_5
,
0x31
,
0x06
},
{
XFER_UDMA_4
,
0x31
,
0x05
},
...
...
@@ -31,7 +31,7 @@ struct chipset_bus_clock_list_entry aec6xxx_33_base [] = {
{
0
,
0x00
,
0x00
}
};
struct
chipset_bus_clock_list_entry
aec6xxx_34_base
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
aec6xxx_34_base
[]
=
{
{
XFER_UDMA_6
,
0x41
,
0x06
},
{
XFER_UDMA_5
,
0x41
,
0x05
},
{
XFER_UDMA_4
,
0x41
,
0x04
},
...
...
drivers/ide/pci/cs5520.c
View file @
3b68c558
...
...
@@ -58,7 +58,7 @@ struct pio_clocks
int
recovery
;
};
struct
pio_clocks
cs5520_pio_clocks
[]
=
{
st
atic
st
ruct
pio_clocks
cs5520_pio_clocks
[]
=
{
{
3
,
6
,
11
},
{
2
,
5
,
6
},
{
1
,
4
,
3
},
...
...
drivers/ide/pci/cy82c693.c
View file @
3b68c558
...
...
@@ -183,7 +183,7 @@ static void cy82c693_dma_enable (ide_drive_t *drive, int mode, int single)
/*
* used to set DMA mode for CY82C693 (single and multi modes)
*/
int
cy82c693_ide_dma_on
(
ide_drive_t
*
drive
)
static
int
cy82c693_ide_dma_on
(
ide_drive_t
*
drive
)
{
struct
hd_driveid
*
id
=
drive
->
id
;
...
...
drivers/ide/pci/hpt366.h
View file @
3b68c558
...
...
@@ -10,7 +10,7 @@
#undef HPT_DELAY_INTERRUPT
#undef HPT_SERIALIZE_IO
const
char
*
quirk_drives
[]
=
{
static
const
char
*
quirk_drives
[]
=
{
"QUANTUM FIREBALLlct08 08"
,
"QUANTUM FIREBALLP KA6.4"
,
"QUANTUM FIREBALLP LM20.4"
,
...
...
@@ -18,7 +18,7 @@ const char *quirk_drives[] = {
NULL
};
const
char
*
bad_ata100_5
[]
=
{
static
const
char
*
bad_ata100_5
[]
=
{
"IBM-DTLA-307075"
,
"IBM-DTLA-307060"
,
"IBM-DTLA-307045"
,
...
...
@@ -37,7 +37,7 @@ const char *bad_ata100_5[] = {
NULL
};
const
char
*
bad_ata66_4
[]
=
{
static
const
char
*
bad_ata66_4
[]
=
{
"IBM-DTLA-307075"
,
"IBM-DTLA-307060"
,
"IBM-DTLA-307045"
,
...
...
@@ -56,12 +56,12 @@ const char *bad_ata66_4[] = {
NULL
};
const
char
*
bad_ata66_3
[]
=
{
static
const
char
*
bad_ata66_3
[]
=
{
"WDC AC310200R"
,
NULL
};
const
char
*
bad_ata33
[]
=
{
static
const
char
*
bad_ata33
[]
=
{
"Maxtor 92720U8"
,
"Maxtor 92040U6"
,
"Maxtor 91360U4"
,
"Maxtor 91020U3"
,
"Maxtor 90845U3"
,
"Maxtor 90650U2"
,
"Maxtor 91360D8"
,
"Maxtor 91190D7"
,
"Maxtor 91020D6"
,
"Maxtor 90845D5"
,
"Maxtor 90680D4"
,
"Maxtor 90510D3"
,
"Maxtor 90340D2"
,
"Maxtor 91152D8"
,
"Maxtor 91008D7"
,
"Maxtor 90845D6"
,
"Maxtor 90840D6"
,
"Maxtor 90720D5"
,
"Maxtor 90648D5"
,
"Maxtor 90576D4"
,
...
...
@@ -99,7 +99,7 @@ struct chipset_bus_clock_list_entry {
* PIO.
* 31 FIFO enable.
*/
struct
chipset_bus_clock_list_entry
forty_base_hpt366
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
forty_base_hpt366
[]
=
{
{
XFER_UDMA_4
,
0x900fd943
},
{
XFER_UDMA_3
,
0x900ad943
},
{
XFER_UDMA_2
,
0x900bd943
},
...
...
@@ -118,7 +118,7 @@ struct chipset_bus_clock_list_entry forty_base_hpt366[] = {
{
0
,
0x0120d9d9
}
};
struct
chipset_bus_clock_list_entry
thirty_three_base_hpt366
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
thirty_three_base_hpt366
[]
=
{
{
XFER_UDMA_4
,
0x90c9a731
},
{
XFER_UDMA_3
,
0x90cfa731
},
{
XFER_UDMA_2
,
0x90caa731
},
...
...
@@ -137,7 +137,7 @@ struct chipset_bus_clock_list_entry thirty_three_base_hpt366[] = {
{
0
,
0x0120a7a7
}
};
struct
chipset_bus_clock_list_entry
twenty_five_base_hpt366
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
twenty_five_base_hpt366
[]
=
{
{
XFER_UDMA_4
,
0x90c98521
},
{
XFER_UDMA_3
,
0x90cf8521
},
...
...
@@ -158,7 +158,7 @@ struct chipset_bus_clock_list_entry twenty_five_base_hpt366[] = {
};
/* from highpoint documentation. these are old values */
struct
chipset_bus_clock_list_entry
thirty_three_base_hpt370
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
thirty_three_base_hpt370
[]
=
{
/* { XFER_UDMA_5, 0x1A85F442, 0x16454e31 }, */
{
XFER_UDMA_5
,
0x16454e31
},
{
XFER_UDMA_4
,
0x16454e31
},
...
...
@@ -179,7 +179,7 @@ struct chipset_bus_clock_list_entry thirty_three_base_hpt370[] = {
{
0
,
0x06514e57
}
};
struct
chipset_bus_clock_list_entry
sixty_six_base_hpt370
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
sixty_six_base_hpt370
[]
=
{
{
XFER_UDMA_5
,
0x14846231
},
{
XFER_UDMA_4
,
0x14886231
},
{
XFER_UDMA_3
,
0x148c6231
},
...
...
@@ -200,7 +200,7 @@ struct chipset_bus_clock_list_entry sixty_six_base_hpt370[] = {
};
/* these are the current (4 sep 2001) timings from highpoint */
struct
chipset_bus_clock_list_entry
thirty_three_base_hpt370a
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
thirty_three_base_hpt370a
[]
=
{
{
XFER_UDMA_5
,
0x12446231
},
{
XFER_UDMA_4
,
0x12446231
},
{
XFER_UDMA_3
,
0x126c6231
},
...
...
@@ -221,7 +221,7 @@ struct chipset_bus_clock_list_entry thirty_three_base_hpt370a[] = {
};
/* 2x 33MHz timings */
struct
chipset_bus_clock_list_entry
sixty_six_base_hpt370a
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
sixty_six_base_hpt370a
[]
=
{
{
XFER_UDMA_5
,
0x1488e673
},
{
XFER_UDMA_4
,
0x1488e673
},
{
XFER_UDMA_3
,
0x1498e673
},
...
...
@@ -241,7 +241,7 @@ struct chipset_bus_clock_list_entry sixty_six_base_hpt370a[] = {
{
0
,
0x0d02bf5f
}
};
struct
chipset_bus_clock_list_entry
fifty_base_hpt370a
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
fifty_base_hpt370a
[]
=
{
{
XFER_UDMA_5
,
0x12848242
},
{
XFER_UDMA_4
,
0x12ac8242
},
{
XFER_UDMA_3
,
0x128c8242
},
...
...
@@ -261,7 +261,7 @@ struct chipset_bus_clock_list_entry fifty_base_hpt370a[] = {
{
0
,
0x0ac1f48a
}
};
struct
chipset_bus_clock_list_entry
thirty_three_base_hpt372
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
thirty_three_base_hpt372
[]
=
{
{
XFER_UDMA_6
,
0x1c81dc62
},
{
XFER_UDMA_5
,
0x1c6ddc62
},
{
XFER_UDMA_4
,
0x1c8ddc62
},
...
...
@@ -282,7 +282,7 @@ struct chipset_bus_clock_list_entry thirty_three_base_hpt372[] = {
{
0
,
0x0d029d5e
}
};
struct
chipset_bus_clock_list_entry
fifty_base_hpt372
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
fifty_base_hpt372
[]
=
{
{
XFER_UDMA_5
,
0x12848242
},
{
XFER_UDMA_4
,
0x12ac8242
},
{
XFER_UDMA_3
,
0x128c8242
},
...
...
@@ -302,7 +302,7 @@ struct chipset_bus_clock_list_entry fifty_base_hpt372[] = {
{
0
,
0x0a81f443
}
};
struct
chipset_bus_clock_list_entry
sixty_six_base_hpt372
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
sixty_six_base_hpt372
[]
=
{
{
XFER_UDMA_6
,
0x1c869c62
},
{
XFER_UDMA_5
,
0x1cae9c62
},
{
XFER_UDMA_4
,
0x1c8a9c62
},
...
...
@@ -323,7 +323,7 @@ struct chipset_bus_clock_list_entry sixty_six_base_hpt372[] = {
{
0
,
0x0d029d26
}
};
struct
chipset_bus_clock_list_entry
thirty_three_base_hpt374
[]
=
{
st
atic
st
ruct
chipset_bus_clock_list_entry
thirty_three_base_hpt374
[]
=
{
{
XFER_UDMA_6
,
0x12808242
},
{
XFER_UDMA_5
,
0x12848242
},
{
XFER_UDMA_4
,
0x12ac8242
},
...
...
@@ -345,7 +345,7 @@ struct chipset_bus_clock_list_entry thirty_three_base_hpt374[] = {
};
#if 0
struct chipset_bus_clock_list_entry fifty_base_hpt374[] = {
st
atic st
ruct chipset_bus_clock_list_entry fifty_base_hpt374[] = {
{ XFER_UDMA_6, },
{ XFER_UDMA_5, },
{ XFER_UDMA_4, },
...
...
@@ -365,7 +365,7 @@ struct chipset_bus_clock_list_entry fifty_base_hpt374[] = {
};
#endif
#if 0
struct chipset_bus_clock_list_entry sixty_six_base_hpt374[] = {
st
atic st
ruct chipset_bus_clock_list_entry sixty_six_base_hpt374[] = {
{ XFER_UDMA_6, 0x12406231 }, /* checkme */
{ XFER_UDMA_5, 0x12446231 },
0x14846231
...
...
drivers/ide/pci/pdc202xx_new.c
View file @
3b68c558
...
...
@@ -234,62 +234,6 @@ static void pdcnew_new_reset (ide_drive_t *drive)
HWIF
(
drive
)
->
channel
?
"Secondary"
:
"Primary"
);
}
static
void
pdcnew_reset_host
(
ide_hwif_t
*
hwif
)
{
// unsigned long high_16 = hwif->dma_base - (8*(hwif->channel));
unsigned
long
high_16
=
hwif
->
dma_master
;
u8
udma_speed_flag
=
hwif
->
INB
(
high_16
|
0x001f
);
hwif
->
OUTB
((
udma_speed_flag
|
0x10
),
(
high_16
|
0x001f
));
mdelay
(
100
);
hwif
->
OUTB
((
udma_speed_flag
&
~
0x10
),
(
high_16
|
0x001f
));
mdelay
(
2000
);
/* 2 seconds ?! */
printk
(
KERN_WARNING
"PDC202XX: %s channel reset.
\n
"
,
hwif
->
channel
?
"Secondary"
:
"Primary"
);
}
void
pdcnew_reset
(
ide_drive_t
*
drive
)
{
ide_hwif_t
*
hwif
=
HWIF
(
drive
);
ide_hwif_t
*
mate
=
hwif
->
mate
;
pdcnew_reset_host
(
hwif
);
pdcnew_reset_host
(
mate
);
#if 0
/*
* FIXME: Have to kick all the drives again :-/
* What a pain in the ACE!
*/
if (hwif->present) {
u16 hunit = 0;
for (hunit = 0; hunit < MAX_DRIVES; ++hunit) {
ide_drive_t *hdrive = &hwif->drives[hunit];
if (hdrive->present) {
if (hwif->ide_dma_check)
hwif->ide_dma_check(hdrive);
else
hwif->tuneproc(hdrive, 5);
}
}
}
if (mate->present) {
u16 munit = 0;
for (munit = 0; munit < MAX_DRIVES; ++munit) {
ide_drive_t *mdrive = &mate->drives[munit];
if (mdrive->present) {
if (mate->ide_dma_check)
mate->ide_dma_check(mdrive);
else
mate->tuneproc(mdrive, 5);
}
}
}
#else
hwif
->
tuneproc
(
drive
,
5
);
#endif
}
#ifdef CONFIG_PPC_PMAC
static
void
__devinit
apple_kiwi_init
(
struct
pci_dev
*
pdev
)
{
...
...
drivers/ide/pci/pdc202xx_old.c
View file @
3b68c558
...
...
@@ -457,7 +457,7 @@ static void pdc202xx_reset_host (ide_hwif_t *hwif)
hwif
->
channel
?
"Secondary"
:
"Primary"
);
}
void
pdc202xx_reset
(
ide_drive_t
*
drive
)
static
void
pdc202xx_reset
(
ide_drive_t
*
drive
)
{
ide_hwif_t
*
hwif
=
HWIF
(
drive
);
ide_hwif_t
*
mate
=
hwif
->
mate
;
...
...
drivers/ide/pci/sc1200.c
View file @
3b68c558
...
...
@@ -72,7 +72,7 @@ extern char *ide_xfer_verbose (byte xfer_rate);
/*
* Set a new transfer mode at the drive
*/
int
sc1200_set_xfer_mode
(
ide_drive_t
*
drive
,
byte
mode
)
static
int
sc1200_set_xfer_mode
(
ide_drive_t
*
drive
,
byte
mode
)
{
printk
(
"%s: sc1200_set_xfer_mode(%s)
\n
"
,
drive
->
name
,
ide_xfer_verbose
(
mode
));
return
ide_config_drive_speed
(
drive
,
mode
);
...
...
@@ -263,7 +263,7 @@ static int sc1200_config_dma (ide_drive_t *drive)
*
* returns 1 on error, 0 otherwise
*/
int
sc1200_ide_dma_end
(
ide_drive_t
*
drive
)
static
int
sc1200_ide_dma_end
(
ide_drive_t
*
drive
)
{
ide_hwif_t
*
hwif
=
HWIF
(
drive
);
unsigned
long
dma_base
=
hwif
->
dma_base
;
...
...
drivers/ide/pci/serverworks.h
View file @
3b68c558
...
...
@@ -13,7 +13,7 @@
/* Seagate Barracuda ATA IV Family drives in UDMA mode 5
* can overrun their FIFOs when used with the CSB5 */
const
char
*
svwks_bad_ata100
[]
=
{
static
const
char
*
svwks_bad_ata100
[]
=
{
"ST320011A"
,
"ST340016A"
,
"ST360021A"
,
...
...
drivers/ide/pci/trm290.c
View file @
3b68c558
...
...
@@ -249,7 +249,7 @@ static int trm290_ide_dma_test_irq (ide_drive_t *drive)
/*
* Invoked from ide-dma.c at boot time.
*/
void
__devinit
init_hwif_trm290
(
ide_hwif_t
*
hwif
)
static
void
__devinit
init_hwif_trm290
(
ide_hwif_t
*
hwif
)
{
unsigned
int
cfgbase
=
0
;
unsigned
long
flags
;
...
...
drivers/isdn/divert/divert_init.c
View file @
3b68c558
...
...
@@ -62,7 +62,6 @@ static int __init divert_init(void)
static
void
__exit
divert_exit
(
void
)
{
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
int
i
;
spin_lock_irqsave
(
&
divert_lock
,
flags
);
...
...
drivers/isdn/divert/divert_procfs.c
View file @
3b68c558
...
...
@@ -182,7 +182,6 @@ isdn_divert_ioctl(struct inode *inode, struct file *file,
divert_ioctl
dioctl
;
int
i
;
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
divert_rule
*
rulep
;
char
*
cp
;
...
...
drivers/isdn/divert/isdn_divert.c
View file @
3b68c558
...
...
@@ -48,13 +48,14 @@ static struct deflect_struc *table_head = NULL;
static
struct
deflect_struc
*
table_tail
=
NULL
;
static
unsigned
char
extern_wait_max
=
4
;
/* maximum wait in s for external process */
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
/***************************/
/* timer callback function */
/***************************/
static
void
deflect_timer_expire
(
ulong
arg
)
{
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
struct
call_struc
*
cs
=
(
struct
call_struc
*
)
arg
;
spin_lock_irqsave
(
&
divert_lock
,
flags
);
...
...
@@ -109,7 +110,6 @@ int cf_command(int drvid, int mode,
u_char
proc
,
char
*
msn
,
u_char
service
,
char
*
fwd_nr
,
ulong
*
procid
)
{
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
int
retval
,
msnlen
;
int
fwd_len
;
char
*
p
,
*
ielenp
,
tmp
[
60
];
...
...
@@ -204,7 +204,6 @@ int deflect_extern_action(u_char cmd, ulong callid, char *to_nr)
{
struct
call_struc
*
cs
;
isdn_ctrl
ic
;
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
int
i
;
if
((
cmd
&
0x7F
)
>
2
)
return
(
-
EINVAL
);
/* invalid command */
...
...
@@ -275,7 +274,6 @@ int deflect_extern_action(u_char cmd, ulong callid, char *to_nr)
int
insertrule
(
int
idx
,
divert_rule
*
newrule
)
{
struct
deflect_struc
*
ds
,
*
ds1
=
NULL
;
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
if
(
!
(
ds
=
(
struct
deflect_struc
*
)
kmalloc
(
sizeof
(
struct
deflect_struc
),
GFP_KERNEL
)))
...
...
@@ -321,7 +319,6 @@ int insertrule(int idx, divert_rule *newrule)
int
deleterule
(
int
idx
)
{
struct
deflect_struc
*
ds
,
*
ds1
;
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
if
(
idx
<
0
)
{
spin_lock_irqsave
(
&
divert_lock
,
flags
);
...
...
@@ -389,7 +386,6 @@ divert_rule *getruleptr(int idx)
int
isdn_divert_icall
(
isdn_ctrl
*
ic
)
{
int
retval
=
0
;
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
struct
call_struc
*
cs
=
NULL
;
struct
deflect_struc
*
dv
;
char
*
p
,
*
p1
;
...
...
@@ -540,7 +536,6 @@ int isdn_divert_icall(isdn_ctrl *ic)
void
deleteprocs
(
void
)
{
struct
call_struc
*
cs
,
*
cs1
;
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
spin_lock_irqsave
(
&
divert_lock
,
flags
);
cs
=
divert_head
;
...
...
@@ -698,7 +693,6 @@ int prot_stat_callback(isdn_ctrl *ic)
{
struct
call_struc
*
cs
,
*
cs1
;
int
i
;
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
cs
=
divert_head
;
/* start of list */
cs1
=
NULL
;
...
...
@@ -790,7 +784,6 @@ int prot_stat_callback(isdn_ctrl *ic)
int
isdn_divert_stat_callback
(
isdn_ctrl
*
ic
)
{
struct
call_struc
*
cs
,
*
cs1
;
unsigned
long
flags
;
spinlock_t
divert_lock
=
SPIN_LOCK_UNLOCKED
;
int
retval
;
retval
=
-
1
;
...
...
drivers/isdn/divert/isdn_divert.h
View file @
3b68c558
...
...
@@ -114,6 +114,8 @@ struct divert_info
/**************/
/* Prototypes */
/**************/
extern
spinlock_t
divert_lock
;
extern
ulong
if_used
;
/* number of interface users */
extern
int
divert_dev_deinit
(
void
);
extern
int
divert_dev_init
(
void
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment