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
nexedi
linux
Commits
7619fe4e
Commit
7619fe4e
authored
Jan 14, 2005
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
36d296b9
d9ffb29e
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
29 additions
and
123 deletions
+29
-123
drivers/ide/arm/icside.c
drivers/ide/arm/icside.c
+1
-30
drivers/ide/cris/ide-v10.c
drivers/ide/cris/ide-v10.c
+1
-18
drivers/ide/ide-cd.c
drivers/ide/ide-cd.c
+1
-14
drivers/ide/ide-default.c
drivers/ide/ide-default.c
+1
-0
drivers/ide/ide-dma.c
drivers/ide/ide-dma.c
+1
-1
drivers/ide/ide-io.c
drivers/ide/ide-io.c
+1
-10
drivers/ide/ide-lib.c
drivers/ide/ide-lib.c
+6
-8
drivers/ide/ide-probe.c
drivers/ide/ide-probe.c
+1
-1
drivers/ide/ide.c
drivers/ide/ide.c
+3
-33
drivers/ide/pci/atiixp.c
drivers/ide/pci/atiixp.c
+3
-2
drivers/ide/pci/piix.c
drivers/ide/pci/piix.c
+3
-0
drivers/ide/pci/piix.h
drivers/ide/pci/piix.h
+1
-0
drivers/pci/pci.ids
drivers/pci/pci.ids
+1
-0
include/linux/ide.h
include/linux/ide.h
+1
-4
include/linux/pci_ids.h
include/linux/pci_ids.h
+4
-2
No files found.
drivers/ide/arm/icside.c
View file @
7619fe4e
...
...
@@ -397,35 +397,6 @@ static void icside_dma_start(ide_drive_t *drive)
enable_dma
(
hwif
->
hw
.
dma
);
}
/*
* dma_intr() is the handler for disk read/write DMA interrupts
*/
static
ide_startstop_t
icside_dmaintr
(
ide_drive_t
*
drive
)
{
unsigned
int
stat
;
int
dma_stat
;
dma_stat
=
icside_dma_end
(
drive
);
stat
=
HWIF
(
drive
)
->
INB
(
IDE_STATUS_REG
);
if
(
OK_STAT
(
stat
,
DRIVE_READY
,
drive
->
bad_wstat
|
DRQ_STAT
))
{
if
(
!
dma_stat
)
{
struct
request
*
rq
=
HWGROUP
(
drive
)
->
rq
;
int
i
;
for
(
i
=
rq
->
nr_sectors
;
i
>
0
;
)
{
i
-=
rq
->
current_nr_sectors
;
DRIVER
(
drive
)
->
end_request
(
drive
,
1
,
rq
->
nr_sectors
);
}
return
ide_stopped
;
}
printk
(
KERN_ERR
"%s: bad DMA status (dma_stat=%x)
\n
"
,
drive
->
name
,
dma_stat
);
}
return
ide_error
(
drive
,
__FUNCTION__
,
stat
);
}
static
int
icside_dma_setup
(
ide_drive_t
*
drive
)
{
ide_hwif_t
*
hwif
=
HWIF
(
drive
);
...
...
@@ -474,7 +445,7 @@ static int icside_dma_setup(ide_drive_t *drive)
static
void
icside_dma_exec_cmd
(
ide_drive_t
*
drive
,
u8
cmd
)
{
/* issue cmd to drive */
ide_execute_command
(
drive
,
cmd
,
i
cside_dmaintr
,
2
*
WAIT_CMD
,
NULL
);
ide_execute_command
(
drive
,
cmd
,
i
de_dma_intr
,
2
*
WAIT_CMD
,
NULL
);
}
static
int
icside_dma_test_irq
(
ide_drive_t
*
drive
)
...
...
drivers/ide/cris/ide-v10.c
View file @
7619fe4e
...
...
@@ -753,27 +753,10 @@ static int config_drive_for_dma (ide_drive_t *drive)
*/
static
ide_startstop_t
etrax_dma_intr
(
ide_drive_t
*
drive
)
{
int
i
,
dma_stat
;
byte
stat
;
LED_DISK_READ
(
0
);
LED_DISK_WRITE
(
0
);
dma_stat
=
HWIF
(
drive
)
->
ide_dma_end
(
drive
);
stat
=
HWIF
(
drive
)
->
INB
(
IDE_STATUS_REG
);
/* get drive status */
if
(
OK_STAT
(
stat
,
DRIVE_READY
,
drive
->
bad_wstat
|
DRQ_STAT
))
{
if
(
!
dma_stat
)
{
struct
request
*
rq
;
rq
=
HWGROUP
(
drive
)
->
rq
;
for
(
i
=
rq
->
nr_sectors
;
i
>
0
;)
{
i
-=
rq
->
current_nr_sectors
;
DRIVER
(
drive
)
->
end_request
(
drive
,
1
,
rq
->
nr_sectors
);
}
return
ide_stopped
;
}
printk
(
"%s: bad DMA status
\n
"
,
drive
->
name
);
}
return
ide_error
(
drive
,
"dma_intr"
,
stat
);
return
ide_dma_intr
(
drive
);
}
/*
...
...
drivers/ide/ide-cd.c
View file @
7619fe4e
...
...
@@ -1464,19 +1464,6 @@ static ide_startstop_t cdrom_do_packet_command (ide_drive_t *drive)
}
/* Sleep for TIME jiffies.
Not to be called from an interrupt handler. */
static
void
cdrom_sleep
(
int
time
)
{
int
sleep
=
time
;
do
{
set_current_state
(
TASK_INTERRUPTIBLE
);
sleep
=
schedule_timeout
(
sleep
);
}
while
(
sleep
);
}
static
int
cdrom_queue_packet_command
(
ide_drive_t
*
drive
,
struct
request
*
rq
)
{
...
...
@@ -1511,7 +1498,7 @@ int cdrom_queue_packet_command(ide_drive_t *drive, struct request *rq)
/* The drive is in the process of loading
a disk. Retry, but wait a little to give
the drive time to complete the load. */
cdrom_sleep
(
2
*
HZ
);
ssleep
(
2
);
}
else
{
/* Otherwise, don't retry. */
retries
=
0
;
...
...
drivers/ide/ide-default.c
View file @
7619fe4e
...
...
@@ -46,6 +46,7 @@ ide_driver_t idedefault_driver = {
.
name
=
"ide-default"
,
.
version
=
IDEDEFAULT_VERSION
,
.
attach
=
idedefault_attach
,
.
cleanup
=
ide_unregister_subdriver
,
.
drives
=
LIST_HEAD_INIT
(
idedefault_driver
.
drives
)
};
...
...
drivers/ide/ide-dma.c
View file @
7619fe4e
...
...
@@ -158,7 +158,6 @@ static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *d
return
0
;
}
#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
/**
* ide_dma_intr - IDE DMA interrupt handler
* @drive: the drive the interrupt is for
...
...
@@ -188,6 +187,7 @@ ide_startstop_t ide_dma_intr (ide_drive_t *drive)
EXPORT_SYMBOL_GPL
(
ide_dma_intr
);
#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
/**
* ide_build_sglist - map IDE scatter gather for DMA I/O
* @drive: the drive to build the DMA table for
...
...
drivers/ide/ide-io.c
View file @
7619fe4e
...
...
@@ -437,7 +437,7 @@ EXPORT_SYMBOL(ide_end_drive_cmd);
* by read a sector's worth of data from the drive. Of course,
* this may not help if the drive is *waiting* for data from *us*.
*/
void
try_to_flush_leftover_data
(
ide_drive_t
*
drive
)
static
void
try_to_flush_leftover_data
(
ide_drive_t
*
drive
)
{
int
i
=
(
drive
->
mult_count
?
drive
->
mult_count
:
1
)
*
SECTOR_WORDS
;
...
...
@@ -452,8 +452,6 @@ void try_to_flush_leftover_data (ide_drive_t *drive)
}
}
EXPORT_SYMBOL
(
try_to_flush_leftover_data
);
static
ide_startstop_t
ide_ata_error
(
ide_drive_t
*
drive
,
struct
request
*
rq
,
u8
stat
,
u8
err
)
{
ide_hwif_t
*
hwif
=
drive
->
hwif
;
...
...
@@ -854,13 +852,6 @@ static ide_startstop_t start_request (ide_drive_t *drive, struct request *rq)
goto
kill_rq
;
}
/*
* bail early if we've sent a device to sleep, however how to wake
* this needs to be a masked flag. FIXME for proper operations.
*/
if
(
drive
->
suspend_reset
)
goto
kill_rq
;
block
=
rq
->
sector
;
if
(
blk_fs_request
(
rq
)
&&
(
drive
->
media
==
ide_disk
||
drive
->
media
==
ide_floppy
))
{
...
...
drivers/ide/ide-lib.c
View file @
7619fe4e
...
...
@@ -571,8 +571,7 @@ static u8 ide_dump_atapi_status(ide_drive_t *drive, const char *msg, u8 stat)
status
.
all
=
stat
;
local_irq_set
(
flags
);
printk
(
"%s: %s: status=0x%02x"
,
drive
->
name
,
msg
,
stat
);
printk
(
" { "
);
printk
(
"%s: %s: status=0x%02x { "
,
drive
->
name
,
msg
,
stat
);
if
(
status
.
b
.
bsy
)
printk
(
"Busy "
);
else
{
...
...
@@ -584,18 +583,17 @@ static u8 ide_dump_atapi_status(ide_drive_t *drive, const char *msg, u8 stat)
if
(
status
.
b
.
idx
)
printk
(
"Index "
);
if
(
status
.
b
.
check
)
printk
(
"Error "
);
}
printk
(
"}"
);
printk
(
"
\n
"
);
printk
(
"}
\n
"
);
if
((
status
.
all
&
(
status
.
b
.
bsy
|
status
.
b
.
check
))
==
status
.
b
.
check
)
{
error
.
all
=
HWIF
(
drive
)
->
INB
(
IDE_ERROR_REG
);
printk
(
"%s: %s: error=0x%02x"
,
drive
->
name
,
msg
,
error
.
all
);
printk
(
"%s: %s: error=0x%02x
{
"
,
drive
->
name
,
msg
,
error
.
all
);
if
(
error
.
b
.
ili
)
printk
(
"IllegalLengthIndication "
);
if
(
error
.
b
.
eom
)
printk
(
"EndOfMedia "
);
if
(
error
.
b
.
abrt
)
printk
(
"Aborted
Command "
);
if
(
error
.
b
.
abrt
)
printk
(
"AbortedCommand "
);
if
(
error
.
b
.
mcr
)
printk
(
"MediaChangeRequested "
);
if
(
error
.
b
.
sense_key
)
printk
(
"LastFailedSense
0x%02x "
,
if
(
error
.
b
.
sense_key
)
printk
(
"LastFailedSense
=
0x%02x "
,
error
.
b
.
sense_key
);
printk
(
"
\n
"
);
printk
(
"
}
\n
"
);
}
ide_dump_opcode
(
drive
);
local_irq_restore
(
flags
);
...
...
drivers/ide/ide-probe.c
View file @
7619fe4e
...
...
@@ -749,7 +749,7 @@ static void probe_hwif(ide_hwif_t *hwif)
*
* BenH.
*/
if
(
wait_hwif_ready
(
hwif
))
if
(
wait_hwif_ready
(
hwif
)
==
-
EBUSY
)
printk
(
KERN_DEBUG
"%s: Wait for ready failed before probe !
\n
"
,
hwif
->
name
);
/*
...
...
drivers/ide/ide.c
View file @
7619fe4e
...
...
@@ -1554,18 +1554,7 @@ int generic_ide_ioctl(struct file *file, struct block_device *bdev,
HWGROUP
(
drive
)
->
busy
=
1
;
spin_unlock_irqrestore
(
&
ide_lock
,
flags
);
(
void
)
ide_do_reset
(
drive
);
if
(
drive
->
suspend_reset
)
{
/*
* APM WAKE UP todo !!
* int nogoodpower = 1;
* while(nogoodpower) {
* check_power1() or check_power2()
* nogoodpower = 0;
* }
* HWIF(drive)->multiproc(drive);
*/
return
ioctl_by_bdev
(
bdev
,
BLKRRPART
,
0
);
}
return
0
;
}
...
...
@@ -2029,16 +2018,6 @@ static void __init probe_for_hwifs (void)
#endif
}
/*
* Actually unregister the subdriver. Called with the
* request lock dropped.
*/
static
int
default_cleanup
(
ide_drive_t
*
drive
)
{
return
ide_unregister_subdriver
(
drive
);
}
static
ide_startstop_t
default_do_request
(
ide_drive_t
*
drive
,
struct
request
*
rq
,
sector_t
block
)
{
ide_end_request
(
drive
,
0
,
0
);
...
...
@@ -2074,14 +2053,6 @@ static ide_startstop_t default_special (ide_drive_t *drive)
return
ide_stopped
;
}
static
int
default_attach
(
ide_drive_t
*
drive
)
{
printk
(
KERN_ERR
"%s: does not support hotswap of device class !
\n
"
,
drive
->
name
);
return
0
;
}
static
ide_startstop_t
default_abort
(
ide_drive_t
*
drive
,
struct
request
*
rq
)
{
return
__ide_abort
(
drive
,
rq
);
...
...
@@ -2096,7 +2067,8 @@ static ide_startstop_t default_start_power_step(ide_drive_t *drive,
static
void
setup_driver_defaults
(
ide_driver_t
*
d
)
{
if
(
d
->
cleanup
==
NULL
)
d
->
cleanup
=
default_cleanup
;
BUG_ON
(
d
->
attach
==
NULL
||
d
->
cleanup
==
NULL
);
if
(
d
->
do_request
==
NULL
)
d
->
do_request
=
default_do_request
;
if
(
d
->
end_request
==
NULL
)
d
->
end_request
=
default_end_request
;
if
(
d
->
error
==
NULL
)
d
->
error
=
default_error
;
...
...
@@ -2104,7 +2076,6 @@ static void setup_driver_defaults (ide_driver_t *d)
if
(
d
->
pre_reset
==
NULL
)
d
->
pre_reset
=
default_pre_reset
;
if
(
d
->
capacity
==
NULL
)
d
->
capacity
=
default_capacity
;
if
(
d
->
special
==
NULL
)
d
->
special
=
default_special
;
if
(
d
->
attach
==
NULL
)
d
->
attach
=
default_attach
;
if
(
d
->
start_power_step
==
NULL
)
d
->
start_power_step
=
default_start_power_step
;
}
...
...
@@ -2133,7 +2104,6 @@ int ide_register_subdriver(ide_drive_t *drive, ide_driver_t *driver)
drive
->
dsc_overlap
=
(
drive
->
next
!=
drive
&&
driver
->
supports_dsc_overlap
);
drive
->
nice1
=
1
;
}
drive
->
suspend_reset
=
0
;
#ifdef CONFIG_PROC_FS
if
(
drive
->
driver
!=
&
idedefault_driver
)
{
ide_add_proc_entries
(
drive
->
proc
,
generic_subdriver_entries
,
drive
);
...
...
drivers/ide/pci/atiixp.c
View file @
7619fe4e
...
...
@@ -345,8 +345,9 @@ static int __devinit atiixp_init_one(struct pci_dev *dev, const struct pci_devic
}
static
struct
pci_device_id
atiixp_pci_tbl
[]
=
{
{
PCI_VENDOR_ID_ATI
,
PCI_DEVICE_ID_ATI_IXP_IDE
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
0
},
{
PCI_VENDOR_ID_ATI
,
PCI_DEVICE_ID_ATI_IXP2_IDE
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
0
},
{
PCI_VENDOR_ID_ATI
,
PCI_DEVICE_ID_ATI_IXP200_IDE
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
0
},
{
PCI_VENDOR_ID_ATI
,
PCI_DEVICE_ID_ATI_IXP300_IDE
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
0
},
{
PCI_VENDOR_ID_ATI
,
PCI_DEVICE_ID_ATI_IXP400_IDE
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
0
},
{
0
,
},
};
MODULE_DEVICE_TABLE
(
pci
,
atiixp_pci_tbl
);
...
...
drivers/ide/pci/piix.c
View file @
7619fe4e
...
...
@@ -129,6 +129,7 @@ static u8 piix_ratemask (ide_drive_t *drive)
case
PCI_DEVICE_ID_INTEL_82801CA_10
:
case
PCI_DEVICE_ID_INTEL_82801CA_11
:
case
PCI_DEVICE_ID_INTEL_82801E_11
:
case
PCI_DEVICE_ID_INTEL_82801DB_1
:
case
PCI_DEVICE_ID_INTEL_82801DB_10
:
case
PCI_DEVICE_ID_INTEL_82801DB_11
:
case
PCI_DEVICE_ID_INTEL_82801EB_11
:
...
...
@@ -440,6 +441,7 @@ static unsigned int __devinit init_chipset_piix (struct pci_dev *dev, const char
case
PCI_DEVICE_ID_INTEL_82801BA_9
:
case
PCI_DEVICE_ID_INTEL_82801CA_10
:
case
PCI_DEVICE_ID_INTEL_82801CA_11
:
case
PCI_DEVICE_ID_INTEL_82801DB_1
:
case
PCI_DEVICE_ID_INTEL_82801DB_10
:
case
PCI_DEVICE_ID_INTEL_82801DB_11
:
case
PCI_DEVICE_ID_INTEL_82801EB_11
:
...
...
@@ -614,6 +616,7 @@ static struct pci_device_id piix_pci_tbl[] = {
{
PCI_VENDOR_ID_INTEL
,
PCI_DEVICE_ID_INTEL_ESB_2
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
19
},
{
PCI_VENDOR_ID_INTEL
,
PCI_DEVICE_ID_INTEL_ICH6_19
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
20
},
{
PCI_VENDOR_ID_INTEL
,
PCI_DEVICE_ID_INTEL_ICH7_21
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
21
},
{
PCI_VENDOR_ID_INTEL
,
PCI_DEVICE_ID_INTEL_82801DB_1
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
22
},
{
0
,
},
};
MODULE_DEVICE_TABLE
(
pci
,
piix_pci_tbl
);
...
...
drivers/ide/pci/piix.h
View file @
7619fe4e
...
...
@@ -59,6 +59,7 @@ static ide_pci_device_t piix_pci_info[] __devinitdata = {
/* 19 */
DECLARE_PIIX_DEV
(
"ICH5"
),
/* 20 */
DECLARE_PIIX_DEV
(
"ICH6"
),
/* 21 */
DECLARE_PIIX_DEV
(
"ICH7"
),
/* 22 */
DECLARE_PIIX_DEV
(
"ICH4"
),
};
#endif
/* PIIX_H */
drivers/pci/pci.ids
View file @
7619fe4e
...
...
@@ -8088,6 +8088,7 @@
24c0 82801DB/DBL (ICH4/ICH4-L) LPC Bridge
1014 0267 NetVista A30p
1462 5800 845PE Max (MS-6580)
24c1 82801DBL (ICH4-L) IDE Controller
24c2 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1
1014 0267 NetVista A30p
1071 8160 MIM2000
...
...
include/linux/ide.h
View file @
7619fe4e
...
...
@@ -723,7 +723,6 @@ typedef struct ide_drive_s {
unsigned
scsi
:
1
;
/* 0=default, 1=ide-scsi emulation */
u8
quirk_list
;
/* considered quirky, set for a specific host */
u8
suspend_reset
;
/* drive suspend mode flag, soft-reset recovers */
u8
init_speed
;
/* transfer rate set at boot */
u8
pio_speed
;
/* unused by core, used by some drivers for fallback from DMA */
u8
current_speed
;
/* current transfer rate set */
...
...
@@ -1250,8 +1249,6 @@ extern int ide_do_drive_cmd(ide_drive_t *, struct request *, ide_action_t);
*/
extern
void
ide_end_drive_cmd
(
ide_drive_t
*
,
u8
,
u8
);
extern
void
try_to_flush_leftover_data
(
ide_drive_t
*
);
/*
* Issue ATA command and wait for completion.
* Use for implementing commands in kernel
...
...
@@ -1444,12 +1441,12 @@ int __ide_dma_good_drive(ide_drive_t *);
int
ide_use_dma
(
ide_drive_t
*
);
int
__ide_dma_off
(
ide_drive_t
*
);
void
ide_dma_verbose
(
ide_drive_t
*
);
ide_startstop_t
ide_dma_intr
(
ide_drive_t
*
);
#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
extern
int
ide_build_sglist
(
ide_drive_t
*
,
struct
request
*
);
extern
int
ide_build_dmatable
(
ide_drive_t
*
,
struct
request
*
);
extern
void
ide_destroy_dmatable
(
ide_drive_t
*
);
extern
ide_startstop_t
ide_dma_intr
(
ide_drive_t
*
);
extern
int
ide_release_dma
(
ide_hwif_t
*
);
extern
void
ide_setup_dma
(
ide_hwif_t
*
,
unsigned
long
,
unsigned
int
);
...
...
include/linux/pci_ids.h
View file @
7619fe4e
...
...
@@ -353,8 +353,9 @@
#define PCI_DEVICE_ID_ATI_RS300_166 0x5832
#define PCI_DEVICE_ID_ATI_RS300_200 0x5833
/* ATI IXP Chipset */
#define PCI_DEVICE_ID_ATI_IXP_IDE 0x4349
#define PCI_DEVICE_ID_ATI_IXP2_IDE 0x4369
/* True name not yet sure */
#define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349
#define PCI_DEVICE_ID_ATI_IXP300_IDE 0x4369
#define PCI_DEVICE_ID_ATI_IXP400_IDE 0x4376
#define PCI_VENDOR_ID_VLSI 0x1004
#define PCI_DEVICE_ID_VLSI_82C592 0x0005
...
...
@@ -2178,6 +2179,7 @@
#define PCI_DEVICE_ID_INTEL_82801CA_11 0x248b
#define PCI_DEVICE_ID_INTEL_82801CA_12 0x248c
#define PCI_DEVICE_ID_INTEL_82801DB_0 0x24c0
#define PCI_DEVICE_ID_INTEL_82801DB_1 0x24c1
#define PCI_DEVICE_ID_INTEL_82801DB_2 0x24c2
#define PCI_DEVICE_ID_INTEL_82801DB_3 0x24c3
#define PCI_DEVICE_ID_INTEL_82801DB_4 0x24c4
...
...
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