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
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