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
928ce049
Commit
928ce049
authored
Oct 01, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bart.bkbits.net/ide-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
7d9ace4c
997b00dd
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
111 additions
and
209 deletions
+111
-209
drivers/ide/Kconfig
drivers/ide/Kconfig
+7
-0
drivers/ide/arm/Makefile
drivers/ide/arm/Makefile
+1
-0
drivers/ide/arm/bast-ide.c
drivers/ide/arm/bast-ide.c
+71
-0
drivers/ide/ide-probe.c
drivers/ide/ide-probe.c
+0
-9
drivers/ide/ide-proc.c
drivers/ide/ide-proc.c
+7
-20
drivers/ide/ide-taskfile.c
drivers/ide/ide-taskfile.c
+0
-33
drivers/ide/pci/aec62xx.c
drivers/ide/pci/aec62xx.c
+2
-45
drivers/ide/pci/aec62xx.h
drivers/ide/pci/aec62xx.h
+0
-7
drivers/ide/pci/cmd640.c
drivers/ide/pci/cmd640.c
+4
-2
drivers/ide/pci/piix.c
drivers/ide/pci/piix.c
+19
-24
drivers/ide/pci/triflex.c
drivers/ide/pci/triflex.c
+0
-62
include/linux/ide.h
include/linux/ide.h
+0
-7
No files found.
drivers/ide/Kconfig
View file @
928ce049
...
@@ -830,6 +830,13 @@ config BLK_DEV_IDE_RAPIDE
...
@@ -830,6 +830,13 @@ config BLK_DEV_IDE_RAPIDE
Say Y here if you want to support the Yellowstone RapIDE controller
Say Y here if you want to support the Yellowstone RapIDE controller
manufactured for use with Acorn computers.
manufactured for use with Acorn computers.
config BLK_DEV_IDE_BAST
tristate "Simtec BAST / Thorcom VR1000 IDE support"
depends on ARM && (ARCH_BAST || MACH_VR100)
help
Say Y here if you want to support the onboard IDE channels on the
Simtec BAST or the Thorcom VR1000
config BLK_DEV_GAYLE
config BLK_DEV_GAYLE
bool "Amiga Gayle IDE interface support"
bool "Amiga Gayle IDE interface support"
depends on AMIGA
depends on AMIGA
...
...
drivers/ide/arm/Makefile
View file @
928ce049
obj-$(CONFIG_BLK_DEV_IDE_ICSIDE)
+=
icside.o
obj-$(CONFIG_BLK_DEV_IDE_ICSIDE)
+=
icside.o
obj-$(CONFIG_BLK_DEV_IDE_RAPIDE)
+=
rapide.o
obj-$(CONFIG_BLK_DEV_IDE_RAPIDE)
+=
rapide.o
obj-$(CONFIG_BLK_DEV_IDE_BAST)
+=
bast-ide.o
EXTRA_CFLAGS
:=
-Idrivers
/ide
EXTRA_CFLAGS
:=
-Idrivers
/ide
drivers/ide/arm/bast-ide.c
0 → 100644
View file @
928ce049
/* linux/drivers/ide/arm/bast-ide.c
*
* Copyright (c) 2003-2004 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
*/
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/ide.h>
#include <linux/init.h>
#include <asm/mach-types.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/arch/map.h>
#include <asm/arch/bast-map.h>
#include <asm/arch/bast-irq.h>
/* list of registered interfaces */
static
ide_hwif_t
*
ifs
[
2
];
static
int
__init
bastide_register
(
unsigned
int
base
,
unsigned
int
aux
,
int
irq
,
ide_hwif_t
**
hwif
)
{
hw_regs_t
hw
;
int
i
;
memset
(
&
hw
,
0
,
sizeof
(
hw
));
base
+=
BAST_IDE_CS
;
aux
+=
BAST_IDE_CS
;
for
(
i
=
IDE_DATA_OFFSET
;
i
<=
IDE_STATUS_OFFSET
;
i
++
)
{
hw
.
io_ports
[
i
]
=
(
unsigned
long
)
base
;
base
+=
0x20
;
}
hw
.
io_ports
[
IDE_CONTROL_OFFSET
]
=
aux
+
(
6
*
0x20
);
hw
.
irq
=
irq
;
ide_register_hw
(
&
hw
,
hwif
);
return
0
;
}
static
int
__init
bastide_init
(
void
)
{
/* we can treat the VR1000 and the BAST the same */
if
(
!
(
machine_is_bast
()
||
machine_is_vr1000
()))
return
0
;
printk
(
"BAST: IDE driver, (c) 2003-2004 Simtec Electronics
\n
"
);
bastide_register
(
BAST_VA_IDEPRI
,
BAST_VA_IDEPRIAUX
,
IRQ_IDE0
,
&
ifs
[
0
]);
bastide_register
(
BAST_VA_IDESEC
,
BAST_VA_IDESECAUX
,
IRQ_IDE1
,
&
ifs
[
1
]);
return
0
;
}
module_init
(
bastide_init
);
MODULE_AUTHOR
(
"Ben Dooks <ben@simtec.co.uk>"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_DESCRIPTION
(
"Simtec BAST / Thorcom VR1000 IDE driver"
);
drivers/ide/ide-probe.c
View file @
928ce049
...
@@ -389,15 +389,6 @@ static int try_to_identify (ide_drive_t *drive, u8 cmd)
...
@@ -389,15 +389,6 @@ static int try_to_identify (ide_drive_t *drive, u8 cmd)
*/
*/
printk
(
"%s: IRQ probe failed (0x%lx)
\n
"
,
printk
(
"%s: IRQ probe failed (0x%lx)
\n
"
,
drive
->
name
,
cookie
);
drive
->
name
,
cookie
);
#ifdef CONFIG_BLK_DEV_CMD640
#ifdef CMD640_DUMP_REGS
if
(
hwif
->
chipset
==
ide_cmd640
)
{
printk
(
"%s: Hmmm.. probably a driver "
"problem.
\n
"
,
drive
->
name
);
CMD640_DUMP_REGS
;
}
#endif
/* CMD640_DUMP_REGS */
#endif
/* CONFIG_BLK_DEV_CMD640 */
}
}
}
}
}
}
...
...
drivers/ide/ide-proc.c
View file @
928ce049
...
@@ -361,26 +361,13 @@ static int proc_ide_read_identify
...
@@ -361,26 +361,13 @@ static int proc_ide_read_identify
len
=
sprintf
(
page
,
"
\n
"
);
len
=
sprintf
(
page
,
"
\n
"
);
if
(
drive
)
if
(
drive
)
{
{
unsigned
short
*
val
=
(
unsigned
short
*
)
page
;
unsigned
short
*
val
=
(
unsigned
short
*
)
page
;
/*
BUG_ON
(
!
drive
->
driver
);
* The current code can't handle a driverless
* identify query taskfile. Now the right fix is
* to add a 'default' driver but that is a bit
* more work.
*
* FIXME: this has to be fixed for hotswap devices
*/
if
(
DRIVER
(
drive
))
err
=
taskfile_lib_get_identify
(
drive
,
page
);
err
=
taskfile_lib_get_identify
(
drive
,
page
);
else
/* This relies on the ID changes */
if
(
!
err
)
{
val
=
(
unsigned
short
*
)
drive
->
id
;
if
(
!
err
)
{
char
*
out
=
((
char
*
)
page
)
+
(
SECTOR_WORDS
*
4
);
char
*
out
=
((
char
*
)
page
)
+
(
SECTOR_WORDS
*
4
);
page
=
out
;
page
=
out
;
do
{
do
{
...
...
drivers/ide/ide-taskfile.c
View file @
928ce049
...
@@ -103,30 +103,6 @@ int taskfile_lib_get_identify (ide_drive_t *drive, u8 *buf)
...
@@ -103,30 +103,6 @@ int taskfile_lib_get_identify (ide_drive_t *drive, u8 *buf)
EXPORT_SYMBOL
(
taskfile_lib_get_identify
);
EXPORT_SYMBOL
(
taskfile_lib_get_identify
);
#ifdef CONFIG_IDE_TASK_IOCTL_DEBUG
void
debug_taskfile
(
ide_drive_t
*
drive
,
ide_task_t
*
args
)
{
printk
(
KERN_INFO
"%s: "
,
drive
->
name
);
// printk("TF.0=x%02x ", args->tfRegister[IDE_DATA_OFFSET]);
printk
(
"TF.1=x%02x "
,
args
->
tfRegister
[
IDE_FEATURE_OFFSET
]);
printk
(
"TF.2=x%02x "
,
args
->
tfRegister
[
IDE_NSECTOR_OFFSET
]);
printk
(
"TF.3=x%02x "
,
args
->
tfRegister
[
IDE_SECTOR_OFFSET
]);
printk
(
"TF.4=x%02x "
,
args
->
tfRegister
[
IDE_LCYL_OFFSET
]);
printk
(
"TF.5=x%02x "
,
args
->
tfRegister
[
IDE_HCYL_OFFSET
]);
printk
(
"TF.6=x%02x "
,
args
->
tfRegister
[
IDE_SELECT_OFFSET
]);
printk
(
"TF.7=x%02x
\n
"
,
args
->
tfRegister
[
IDE_COMMAND_OFFSET
]);
printk
(
KERN_INFO
"%s: "
,
drive
->
name
);
// printk("HTF.0=x%02x ", args->hobRegister[IDE_DATA_OFFSET]);
printk
(
"HTF.1=x%02x "
,
args
->
hobRegister
[
IDE_FEATURE_OFFSET
]);
printk
(
"HTF.2=x%02x "
,
args
->
hobRegister
[
IDE_NSECTOR_OFFSET
]);
printk
(
"HTF.3=x%02x "
,
args
->
hobRegister
[
IDE_SECTOR_OFFSET
]);
printk
(
"HTF.4=x%02x "
,
args
->
hobRegister
[
IDE_LCYL_OFFSET
]);
printk
(
"HTF.5=x%02x "
,
args
->
hobRegister
[
IDE_HCYL_OFFSET
]);
printk
(
"HTF.6=x%02x "
,
args
->
hobRegister
[
IDE_SELECT_OFFSET
]);
printk
(
"HTF.7=x%02x
\n
"
,
args
->
hobRegister
[
IDE_CONTROL_OFFSET_HOB
]);
}
#endif
/* CONFIG_IDE_TASK_IOCTL_DEBUG */
ide_startstop_t
do_rw_taskfile
(
ide_drive_t
*
drive
,
ide_task_t
*
task
)
ide_startstop_t
do_rw_taskfile
(
ide_drive_t
*
drive
,
ide_task_t
*
task
)
{
{
ide_hwif_t
*
hwif
=
HWIF
(
drive
);
ide_hwif_t
*
hwif
=
HWIF
(
drive
);
...
@@ -134,10 +110,6 @@ ide_startstop_t do_rw_taskfile (ide_drive_t *drive, ide_task_t *task)
...
@@ -134,10 +110,6 @@ ide_startstop_t do_rw_taskfile (ide_drive_t *drive, ide_task_t *task)
hob_struct_t
*
hobfile
=
(
hob_struct_t
*
)
task
->
hobRegister
;
hob_struct_t
*
hobfile
=
(
hob_struct_t
*
)
task
->
hobRegister
;
u8
HIHI
=
(
drive
->
addressing
==
1
)
?
0xE0
:
0xEF
;
u8
HIHI
=
(
drive
->
addressing
==
1
)
?
0xE0
:
0xEF
;
#ifdef CONFIG_IDE_TASK_IOCTL_DEBUG
void
debug_taskfile
(
drive
,
task
);
#endif
/* CONFIG_IDE_TASK_IOCTL_DEBUG */
/* ALL Command Block Executions SHALL clear nIEN, unless otherwise */
/* ALL Command Block Executions SHALL clear nIEN, unless otherwise */
if
(
IDE_CONTROL_REG
)
{
if
(
IDE_CONTROL_REG
)
{
/* clear nIEN */
/* clear nIEN */
...
@@ -853,11 +825,6 @@ ide_startstop_t flagged_taskfile (ide_drive_t *drive, ide_task_t *task)
...
@@ -853,11 +825,6 @@ ide_startstop_t flagged_taskfile (ide_drive_t *drive, ide_task_t *task)
u8
status
;
u8
status
;
#endif
#endif
#ifdef CONFIG_IDE_TASK_IOCTL_DEBUG
void
debug_taskfile
(
drive
,
task
);
#endif
/* CONFIG_IDE_TASK_IOCTL_DEBUG */
if
(
task
->
data_phase
==
TASKFILE_MULTI_IN
||
if
(
task
->
data_phase
==
TASKFILE_MULTI_IN
||
task
->
data_phase
==
TASKFILE_MULTI_OUT
)
{
task
->
data_phase
==
TASKFILE_MULTI_OUT
)
{
if
(
!
drive
->
mult_count
)
{
if
(
!
drive
->
mult_count
)
{
...
...
drivers/ide/pci/aec62xx.c
View file @
928ce049
...
@@ -29,8 +29,6 @@ static u8 aec62xx_proc = 0;
...
@@ -29,8 +29,6 @@ static u8 aec62xx_proc = 0;
static
struct
pci_dev
*
aec_devs
[
AEC_MAX_DEVS
];
static
struct
pci_dev
*
aec_devs
[
AEC_MAX_DEVS
];
static
int
n_aec_devs
;
static
int
n_aec_devs
;
#undef DEBUG_AEC_REGS
static
int
aec62xx_get_info
(
char
*
buffer
,
char
**
addr
,
off_t
offset
,
int
count
)
static
int
aec62xx_get_info
(
char
*
buffer
,
char
**
addr
,
off_t
offset
,
int
count
)
{
{
char
*
p
=
buffer
;
char
*
p
=
buffer
;
...
@@ -44,9 +42,6 @@ static int aec62xx_get_info (char *buffer, char **addr, off_t offset, int count)
...
@@ -44,9 +42,6 @@ static int aec62xx_get_info (char *buffer, char **addr, off_t offset, int count)
struct
pci_dev
*
dev
=
aec_devs
[
i
];
struct
pci_dev
*
dev
=
aec_devs
[
i
];
unsigned
long
iobase
=
pci_resource_start
(
dev
,
4
);
unsigned
long
iobase
=
pci_resource_start
(
dev
,
4
);
u8
c0
=
0
,
c1
=
0
,
art
=
0
;
u8
c0
=
0
,
c1
=
0
,
art
=
0
;
#ifdef DEBUG_AEC_REGS
u8
uart
=
0
;
#endif
/* DEBUG_AEC_REGS */
c0
=
inb
(
iobase
+
0x02
);
c0
=
inb
(
iobase
+
0x02
);
c1
=
inb
(
iobase
+
0x0a
);
c1
=
inb
(
iobase
+
0x0a
);
...
@@ -83,24 +78,6 @@ static int aec62xx_get_info (char *buffer, char **addr, off_t offset, int count)
...
@@ -83,24 +78,6 @@ static int aec62xx_get_info (char *buffer, char **addr, off_t offset, int count)
p
+=
sprintf
(
p
,
" %s(%s)
\n
"
,
p
+=
sprintf
(
p
,
" %s(%s)
\n
"
,
(
c1
&
0x40
)
?
((
art
&
0xc0
)
?
"UDMA"
:
" DMA"
)
:
" PIO"
,
(
c1
&
0x40
)
?
((
art
&
0xc0
)
?
"UDMA"
:
" DMA"
)
:
" PIO"
,
(
art
&
0x80
)
?
"2"
:
(
art
&
0x40
)
?
"1"
:
"0"
);
(
art
&
0x80
)
?
"2"
:
(
art
&
0x40
)
?
"1"
:
"0"
);
#ifdef DEBUG_AEC_REGS
(
void
)
pci_read_config_byte
(
dev
,
0x40
,
&
art
);
p
+=
sprintf
(
p
,
"Active: 0x%02x"
,
art
);
(
void
)
pci_read_config_byte
(
dev
,
0x42
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x"
,
art
);
(
void
)
pci_read_config_byte
(
dev
,
0x44
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x"
,
art
);
(
void
)
pci_read_config_byte
(
dev
,
0x46
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x
\n
"
,
art
);
(
void
)
pci_read_config_byte
(
dev
,
0x41
,
&
art
);
p
+=
sprintf
(
p
,
"Recovery: 0x%02x"
,
art
);
(
void
)
pci_read_config_byte
(
dev
,
0x43
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x"
,
art
);
(
void
)
pci_read_config_byte
(
dev
,
0x45
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x"
,
art
);
(
void
)
pci_read_config_byte
(
dev
,
0x47
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x
\n
"
,
art
);
#endif
/* DEBUG_AEC_REGS */
}
else
{
}
else
{
/*
/*
* case PCI_DEVICE_ID_ARTOP_ATP860:
* case PCI_DEVICE_ID_ARTOP_ATP860:
...
@@ -146,28 +123,6 @@ static int aec62xx_get_info (char *buffer, char **addr, off_t offset, int count)
...
@@ -146,28 +123,6 @@ static int aec62xx_get_info (char *buffer, char **addr, off_t offset, int count)
((
art
&
0x30
)
==
0x30
)
?
"2"
:
((
art
&
0x30
)
==
0x30
)
?
"2"
:
((
art
&
0x20
)
==
0x20
)
?
"1"
:
((
art
&
0x20
)
==
0x20
)
?
"1"
:
((
art
&
0x10
)
==
0x10
)
?
"0"
:
"?"
);
((
art
&
0x10
)
==
0x10
)
?
"0"
:
"?"
);
#ifdef DEBUG_AEC_REGS
(
void
)
pci_read_config_byte
(
dev
,
0x40
,
&
art
);
p
+=
sprintf
(
p
,
"Active: 0x%02x"
,
HIGH_4
(
art
));
(
void
)
pci_read_config_byte
(
dev
,
0x41
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x"
,
HIGH_4
(
art
));
(
void
)
pci_read_config_byte
(
dev
,
0x42
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x"
,
HIGH_4
(
art
));
(
void
)
pci_read_config_byte
(
dev
,
0x43
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x
\n
"
,
HIGH_4
(
art
));
(
void
)
pci_read_config_byte
(
dev
,
0x40
,
&
art
);
p
+=
sprintf
(
p
,
"Recovery: 0x%02x"
,
LOW_4
(
art
));
(
void
)
pci_read_config_byte
(
dev
,
0x41
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x"
,
LOW_4
(
art
));
(
void
)
pci_read_config_byte
(
dev
,
0x42
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x"
,
LOW_4
(
art
));
(
void
)
pci_read_config_byte
(
dev
,
0x43
,
&
art
);
p
+=
sprintf
(
p
,
" 0x%02x
\n
"
,
LOW_4
(
art
));
(
void
)
pci_read_config_byte
(
dev
,
0x49
,
&
uart
);
p
+=
sprintf
(
p
,
"reg49h = 0x%02x "
,
uart
);
(
void
)
pci_read_config_byte
(
dev
,
0x4a
,
&
uart
);
p
+=
sprintf
(
p
,
"reg4ah = 0x%02x
\n
"
,
uart
);
#endif
/* DEBUG_AEC_REGS */
}
}
}
}
/* p - buffer must be less than 4k! */
/* p - buffer must be less than 4k! */
...
@@ -240,6 +195,7 @@ static int aec6210_tune_chipset (ide_drive_t *drive, u8 xferspeed)
...
@@ -240,6 +195,7 @@ static int aec6210_tune_chipset (ide_drive_t *drive, u8 xferspeed)
unsigned
long
flags
;
unsigned
long
flags
;
local_irq_save
(
flags
);
local_irq_save
(
flags
);
/* 0x40|(2*drive->dn): Active, 0x41|(2*drive->dn): Recovery */
pci_read_config_word
(
dev
,
0x40
|
(
2
*
drive
->
dn
),
&
d_conf
);
pci_read_config_word
(
dev
,
0x40
|
(
2
*
drive
->
dn
),
&
d_conf
);
tmp0
=
pci_bus_clock_list
(
speed
,
BUSCLOCK
(
dev
));
tmp0
=
pci_bus_clock_list
(
speed
,
BUSCLOCK
(
dev
));
SPLIT_BYTE
(
tmp0
,
tmp1
,
tmp2
);
SPLIT_BYTE
(
tmp0
,
tmp1
,
tmp2
);
...
@@ -268,6 +224,7 @@ static int aec6260_tune_chipset (ide_drive_t *drive, u8 xferspeed)
...
@@ -268,6 +224,7 @@ static int aec6260_tune_chipset (ide_drive_t *drive, u8 xferspeed)
unsigned
long
flags
;
unsigned
long
flags
;
local_irq_save
(
flags
);
local_irq_save
(
flags
);
/* high 4-bits: Active, low 4-bits: Recovery */
pci_read_config_byte
(
dev
,
0x40
|
drive
->
dn
,
&
drive_conf
);
pci_read_config_byte
(
dev
,
0x40
|
drive
->
dn
,
&
drive_conf
);
drive_conf
=
pci_bus_clock_list
(
speed
,
BUSCLOCK
(
dev
));
drive_conf
=
pci_bus_clock_list
(
speed
,
BUSCLOCK
(
dev
));
pci_write_config_byte
(
dev
,
0x40
|
drive
->
dn
,
drive_conf
);
pci_write_config_byte
(
dev
,
0x40
|
drive
->
dn
,
drive_conf
);
...
...
drivers/ide/pci/aec62xx.h
View file @
928ce049
...
@@ -53,13 +53,6 @@ struct chipset_bus_clock_list_entry aec6xxx_34_base [] = {
...
@@ -53,13 +53,6 @@ struct chipset_bus_clock_list_entry aec6xxx_34_base [] = {
{
0
,
0x00
,
0x00
}
{
0
,
0x00
,
0x00
}
};
};
#ifndef HIGH_4
#define HIGH_4(H) ((H)=(H>>4))
#endif
#ifndef LOW_4
#define LOW_4(L) ((L)=(L-((L>>4)<<4)))
#endif
#ifndef SPLIT_BYTE
#ifndef SPLIT_BYTE
#define SPLIT_BYTE(B,H,L) ((H)=(B>>4), (L)=(B-((B>>4)<<4)))
#define SPLIT_BYTE(B,H,L) ((H)=(B>>4), (L)=(B-((B>>4)<<4)))
#endif
#endif
...
...
drivers/ide/pci/cmd640.c
View file @
928ce049
...
@@ -101,6 +101,8 @@
...
@@ -101,6 +101,8 @@
#undef REALLY_SLOW_IO
/* most systems can safely undef this */
#undef REALLY_SLOW_IO
/* most systems can safely undef this */
#define CMD640_PREFETCH_MASKS 1
#define CMD640_PREFETCH_MASKS 1
//#define CMD640_DUMP_REGS
#include <linux/config.h>
#include <linux/config.h>
#include <linux/types.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
...
@@ -748,7 +750,7 @@ int __init ide_probe_for_cmd640x (void)
...
@@ -748,7 +750,7 @@ int __init ide_probe_for_cmd640x (void)
put_cmd640_reg
(
0x5b
,
0
);
put_cmd640_reg
(
0x5b
,
0
);
#ifdef CMD640_DUMP_REGS
#ifdef CMD640_DUMP_REGS
CMD640_DUMP_REGS
;
cmd640_dump_regs
()
;
#endif
#endif
/*
/*
...
@@ -870,7 +872,7 @@ int __init ide_probe_for_cmd640x (void)
...
@@ -870,7 +872,7 @@ int __init ide_probe_for_cmd640x (void)
}
}
#ifdef CMD640_DUMP_REGS
#ifdef CMD640_DUMP_REGS
CMD640_DUMP_REGS
;
cmd640_dump_regs
()
;
#endif
#endif
return
1
;
return
1
;
}
}
...
...
drivers/ide/pci/piix.c
View file @
928ce049
...
@@ -561,36 +561,31 @@ static int piix_config_drive_xfer_rate (ide_drive_t *drive)
...
@@ -561,36 +561,31 @@ static int piix_config_drive_xfer_rate (ide_drive_t *drive)
drive
->
init_speed
=
0
;
drive
->
init_speed
=
0
;
if
((
id
->
capability
&
1
)
&&
drive
->
autodma
)
{
if
((
id
->
capability
&
1
)
&&
drive
->
autodma
)
{
/* Consult the list of known "bad" drives */
/* Consult the list of known "bad" drives */
if
(
__ide_dma_bad_drive
(
drive
))
if
(
__ide_dma_bad_drive
(
drive
))
goto
fast_ata_pio
;
goto
fast_ata_pio
;
if
(
id
->
field_valid
&
4
)
{
if
(
id
->
dma_ultra
&
hwif
->
ultra_mask
)
{
/**
/* Force if Capable UltraDMA */
* Try to turn DMA on if:
if
((
id
->
field_valid
&
2
)
&&
* - UDMA or EIDE modes are supported or
(
!
piix_config_drive_for_dma
(
drive
)))
* - drive is a known "good" drive
goto
try_dma_modes
;
*
}
* Checks for best mode supported are down later by
}
else
if
(
id
->
field_valid
&
2
)
{
* piix_config_drive_for_dma() -> ide_dma_speed()
try_dma_modes:
*/
if
((
id
->
dma_mword
&
hwif
->
mwdma_mask
)
||
if
((
id
->
field_valid
&
(
4
|
2
))
||
(
id
->
dma_1word
&
hwif
->
swdma_mask
))
{
(
__ide_dma_good_drive
(
drive
)
&&
id
->
eide_dma_time
<
150
))
{
/* Force if Capable regular DMA modes */
if
(
piix_config_drive_for_dma
(
drive
))
if
(
!
piix_config_drive_for_dma
(
drive
))
return
hwif
->
ide_dma_on
(
drive
);
goto
no_dma_set
;
}
}
}
else
if
(
__ide_dma_good_drive
(
drive
)
&&
(
id
->
eide_dma_time
<
150
))
{
/* For some reason DMA wasn't turned on, so try PIO. */
/* Consult the list of known "good" drives */
if
(
!
piix_config_drive_for_dma
(
drive
))
goto
no_dma_set
;
}
else
{
goto
fast_ata_pio
;
goto
fast_ata_pio
;
}
return
hwif
->
ide_dma_on
(
drive
);
}
else
if
((
id
->
capability
&
8
)
||
(
id
->
field_valid
&
2
))
{
}
else
if
((
id
->
capability
&
8
)
||
(
id
->
field_valid
&
2
))
{
fast_ata_pio:
fast_ata_pio:
no_dma_set:
/* Find best PIO mode. */
hwif
->
tuneproc
(
drive
,
255
);
hwif
->
tuneproc
(
drive
,
255
);
return
hwif
->
ide_dma_off_quietly
(
drive
);
return
hwif
->
ide_dma_off_quietly
(
drive
);
}
}
...
...
drivers/ide/pci/triflex.c
View file @
928ce049
...
@@ -41,57 +41,6 @@
...
@@ -41,57 +41,6 @@
#include <linux/ide.h>
#include <linux/ide.h>
#include <linux/init.h>
#include <linux/init.h>
static
struct
pci_dev
*
triflex_dev
;
#ifdef CONFIG_PROC_FS
static
int
triflex_get_info
(
char
*
buf
,
char
**
addr
,
off_t
offset
,
int
count
)
{
char
*
p
=
buf
;
int
len
;
struct
pci_dev
*
dev
=
triflex_dev
;
unsigned
long
bibma
=
pci_resource_start
(
dev
,
4
);
u8
c0
=
0
,
c1
=
0
;
u32
pri_timing
,
sec_timing
;
p
+=
sprintf
(
p
,
"
\n
Compaq Triflex Chipset
\n
"
);
pci_read_config_dword
(
dev
,
0x70
,
&
pri_timing
);
pci_read_config_dword
(
dev
,
0x74
,
&
sec_timing
);
/*
* at that point bibma+0x2 et bibma+0xa are byte registers
* to investigate:
*/
c0
=
inb
((
unsigned
short
)
bibma
+
0x02
);
c1
=
inb
((
unsigned
short
)
bibma
+
0x0a
);
p
+=
sprintf
(
p
,
"--------------- Primary Channel "
"---------------- Secondary Channel "
"-------------
\n
"
);
p
+=
sprintf
(
p
,
" %sabled "
" %sabled
\n
"
,
(
c0
&
0x80
)
?
"dis"
:
" en"
,
(
c1
&
0x80
)
?
"dis"
:
" en"
);
p
+=
sprintf
(
p
,
"--------------- drive0 --------- drive1 "
"-------- drive0 ---------- drive1 ------
\n
"
);
p
+=
sprintf
(
p
,
"DMA enabled: %s %s "
" %s %s
\n
"
,
(
c0
&
0x20
)
?
"yes"
:
"no "
,
(
c0
&
0x40
)
?
"yes"
:
"no "
,
(
c1
&
0x20
)
?
"yes"
:
"no "
,
(
c1
&
0x40
)
?
"yes"
:
"no "
);
p
+=
sprintf
(
p
,
"DMA
\n
"
);
p
+=
sprintf
(
p
,
"PIO
\n
"
);
len
=
(
p
-
buf
)
-
offset
;
*
addr
=
buf
+
offset
;
return
len
>
count
?
count
:
len
;
}
#endif
static
int
triflex_tune_chipset
(
ide_drive_t
*
drive
,
u8
xferspeed
)
static
int
triflex_tune_chipset
(
ide_drive_t
*
drive
,
u8
xferspeed
)
{
{
ide_hwif_t
*
hwif
=
HWIF
(
drive
);
ide_hwif_t
*
hwif
=
HWIF
(
drive
);
...
@@ -206,18 +155,8 @@ static void __init init_hwif_triflex(ide_hwif_t *hwif)
...
@@ -206,18 +155,8 @@ static void __init init_hwif_triflex(ide_hwif_t *hwif)
hwif
->
drives
[
1
].
autodma
=
hwif
->
autodma
;
hwif
->
drives
[
1
].
autodma
=
hwif
->
autodma
;
}
}
static
unsigned
int
__init
init_chipset_triflex
(
struct
pci_dev
*
dev
,
const
char
*
name
)
{
#ifdef CONFIG_PROC_FS
ide_pci_create_host_proc
(
"triflex"
,
triflex_get_info
);
#endif
return
0
;
}
static
ide_pci_device_t
triflex_device
__devinitdata
=
{
static
ide_pci_device_t
triflex_device
__devinitdata
=
{
.
name
=
"TRIFLEX"
,
.
name
=
"TRIFLEX"
,
.
init_chipset
=
init_chipset_triflex
,
.
init_hwif
=
init_hwif_triflex
,
.
init_hwif
=
init_hwif_triflex
,
.
channels
=
2
,
.
channels
=
2
,
.
autodma
=
AUTODMA
,
.
autodma
=
AUTODMA
,
...
@@ -229,7 +168,6 @@ static int __devinit triflex_init_one(struct pci_dev *dev,
...
@@ -229,7 +168,6 @@ static int __devinit triflex_init_one(struct pci_dev *dev,
const
struct
pci_device_id
*
id
)
const
struct
pci_device_id
*
id
)
{
{
ide_setup_pci_device
(
dev
,
&
triflex_device
);
ide_setup_pci_device
(
dev
,
&
triflex_device
);
triflex_dev
=
dev
;
return
0
;
return
0
;
}
}
...
...
include/linux/ide.h
View file @
928ce049
...
@@ -52,13 +52,6 @@
...
@@ -52,13 +52,6 @@
#define OK_TO_RESET_CONTROLLER 1
/* 0 for use with AH2372A/B interface */
#define OK_TO_RESET_CONTROLLER 1
/* 0 for use with AH2372A/B interface */
#endif
#endif
#ifdef CONFIG_BLK_DEV_CMD640
#if 0 /* change to 1 when debugging cmd640 problems */
void cmd640_dump_regs (void);
#define CMD640_DUMP_REGS cmd640_dump_regs() /* for debugging cmd640 chipset */
#endif
#endif
/* CONFIG_BLK_DEV_CMD640 */
#ifndef DISABLE_IRQ_NOSYNC
#ifndef DISABLE_IRQ_NOSYNC
#define DISABLE_IRQ_NOSYNC 0
#define DISABLE_IRQ_NOSYNC 0
#endif
#endif
...
...
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