Commit 7619fe4e authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://bart.bkbits.net/ide-2.6

into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents 36d296b9 d9ffb29e
...@@ -397,35 +397,6 @@ static void icside_dma_start(ide_drive_t *drive) ...@@ -397,35 +397,6 @@ static void icside_dma_start(ide_drive_t *drive)
enable_dma(hwif->hw.dma); 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) static int icside_dma_setup(ide_drive_t *drive)
{ {
ide_hwif_t *hwif = HWIF(drive); ide_hwif_t *hwif = HWIF(drive);
...@@ -474,7 +445,7 @@ static int icside_dma_setup(ide_drive_t *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) static void icside_dma_exec_cmd(ide_drive_t *drive, u8 cmd)
{ {
/* issue cmd to drive */ /* issue cmd to drive */
ide_execute_command(drive, cmd, icside_dmaintr, 2*WAIT_CMD, NULL); ide_execute_command(drive, cmd, ide_dma_intr, 2 * WAIT_CMD, NULL);
} }
static int icside_dma_test_irq(ide_drive_t *drive) static int icside_dma_test_irq(ide_drive_t *drive)
......
...@@ -753,27 +753,10 @@ static int config_drive_for_dma (ide_drive_t *drive) ...@@ -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) static ide_startstop_t etrax_dma_intr (ide_drive_t *drive)
{ {
int i, dma_stat;
byte stat;
LED_DISK_READ(0); LED_DISK_READ(0);
LED_DISK_WRITE(0); LED_DISK_WRITE(0);
dma_stat = HWIF(drive)->ide_dma_end(drive); return ide_dma_intr(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);
} }
/* /*
......
...@@ -1464,19 +1464,6 @@ static ide_startstop_t cdrom_do_packet_command (ide_drive_t *drive) ...@@ -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 static
int cdrom_queue_packet_command(ide_drive_t *drive, struct request *rq) 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) ...@@ -1511,7 +1498,7 @@ int cdrom_queue_packet_command(ide_drive_t *drive, struct request *rq)
/* The drive is in the process of loading /* The drive is in the process of loading
a disk. Retry, but wait a little to give a disk. Retry, but wait a little to give
the drive time to complete the load. */ the drive time to complete the load. */
cdrom_sleep(2 * HZ); ssleep(2);
} else { } else {
/* Otherwise, don't retry. */ /* Otherwise, don't retry. */
retries = 0; retries = 0;
......
...@@ -46,6 +46,7 @@ ide_driver_t idedefault_driver = { ...@@ -46,6 +46,7 @@ ide_driver_t idedefault_driver = {
.name = "ide-default", .name = "ide-default",
.version = IDEDEFAULT_VERSION, .version = IDEDEFAULT_VERSION,
.attach = idedefault_attach, .attach = idedefault_attach,
.cleanup = ide_unregister_subdriver,
.drives = LIST_HEAD_INIT(idedefault_driver.drives) .drives = LIST_HEAD_INIT(idedefault_driver.drives)
}; };
......
...@@ -158,7 +158,6 @@ static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *d ...@@ -158,7 +158,6 @@ static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *d
return 0; return 0;
} }
#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
/** /**
* ide_dma_intr - IDE DMA interrupt handler * ide_dma_intr - IDE DMA interrupt handler
* @drive: the drive the interrupt is for * @drive: the drive the interrupt is for
...@@ -188,6 +187,7 @@ ide_startstop_t ide_dma_intr (ide_drive_t *drive) ...@@ -188,6 +187,7 @@ ide_startstop_t ide_dma_intr (ide_drive_t *drive)
EXPORT_SYMBOL_GPL(ide_dma_intr); EXPORT_SYMBOL_GPL(ide_dma_intr);
#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
/** /**
* ide_build_sglist - map IDE scatter gather for DMA I/O * ide_build_sglist - map IDE scatter gather for DMA I/O
* @drive: the drive to build the DMA table for * @drive: the drive to build the DMA table for
......
...@@ -437,7 +437,7 @@ EXPORT_SYMBOL(ide_end_drive_cmd); ...@@ -437,7 +437,7 @@ EXPORT_SYMBOL(ide_end_drive_cmd);
* by read a sector's worth of data from the drive. Of course, * 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*. * 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; 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) ...@@ -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) static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq, u8 stat, u8 err)
{ {
ide_hwif_t *hwif = drive->hwif; ide_hwif_t *hwif = drive->hwif;
...@@ -854,13 +852,6 @@ static ide_startstop_t start_request (ide_drive_t *drive, struct request *rq) ...@@ -854,13 +852,6 @@ static ide_startstop_t start_request (ide_drive_t *drive, struct request *rq)
goto kill_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; block = rq->sector;
if (blk_fs_request(rq) && if (blk_fs_request(rq) &&
(drive->media == ide_disk || drive->media == ide_floppy)) { (drive->media == ide_disk || drive->media == ide_floppy)) {
......
...@@ -571,8 +571,7 @@ static u8 ide_dump_atapi_status(ide_drive_t *drive, const char *msg, u8 stat) ...@@ -571,8 +571,7 @@ static u8 ide_dump_atapi_status(ide_drive_t *drive, const char *msg, u8 stat)
status.all = stat; status.all = stat;
local_irq_set(flags); local_irq_set(flags);
printk("%s: %s: status=0x%02x", drive->name, msg, stat); printk("%s: %s: status=0x%02x { ", drive->name, msg, stat);
printk(" { ");
if (status.b.bsy) if (status.b.bsy)
printk("Busy "); printk("Busy ");
else { else {
...@@ -584,18 +583,17 @@ static u8 ide_dump_atapi_status(ide_drive_t *drive, const char *msg, u8 stat) ...@@ -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.idx) printk("Index ");
if (status.b.check) printk("Error "); if (status.b.check) printk("Error ");
} }
printk("}"); printk("}\n");
printk("\n");
if ((status.all & (status.b.bsy|status.b.check)) == status.b.check) { if ((status.all & (status.b.bsy|status.b.check)) == status.b.check) {
error.all = HWIF(drive)->INB(IDE_ERROR_REG); 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.ili) printk("IllegalLengthIndication ");
if (error.b.eom) printk("EndOfMedia "); 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.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); error.b.sense_key);
printk("\n"); printk("}\n");
} }
ide_dump_opcode(drive); ide_dump_opcode(drive);
local_irq_restore(flags); local_irq_restore(flags);
......
...@@ -749,7 +749,7 @@ static void probe_hwif(ide_hwif_t *hwif) ...@@ -749,7 +749,7 @@ static void probe_hwif(ide_hwif_t *hwif)
* *
* BenH. * 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); printk(KERN_DEBUG "%s: Wait for ready failed before probe !\n", hwif->name);
/* /*
......
...@@ -1554,18 +1554,7 @@ int generic_ide_ioctl(struct file *file, struct block_device *bdev, ...@@ -1554,18 +1554,7 @@ int generic_ide_ioctl(struct file *file, struct block_device *bdev,
HWGROUP(drive)->busy = 1; HWGROUP(drive)->busy = 1;
spin_unlock_irqrestore(&ide_lock, flags); spin_unlock_irqrestore(&ide_lock, flags);
(void) ide_do_reset(drive); (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; return 0;
} }
...@@ -2029,16 +2018,6 @@ static void __init probe_for_hwifs (void) ...@@ -2029,16 +2018,6 @@ static void __init probe_for_hwifs (void)
#endif #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) static ide_startstop_t default_do_request (ide_drive_t *drive, struct request *rq, sector_t block)
{ {
ide_end_request(drive, 0, 0); ide_end_request(drive, 0, 0);
...@@ -2074,14 +2053,6 @@ static ide_startstop_t default_special (ide_drive_t *drive) ...@@ -2074,14 +2053,6 @@ static ide_startstop_t default_special (ide_drive_t *drive)
return ide_stopped; 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) static ide_startstop_t default_abort(ide_drive_t *drive, struct request *rq)
{ {
return __ide_abort(drive, rq); return __ide_abort(drive, rq);
...@@ -2096,7 +2067,8 @@ static ide_startstop_t default_start_power_step(ide_drive_t *drive, ...@@ -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) 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->do_request == NULL) d->do_request = default_do_request;
if (d->end_request == NULL) d->end_request = default_end_request; if (d->end_request == NULL) d->end_request = default_end_request;
if (d->error == NULL) d->error = default_error; if (d->error == NULL) d->error = default_error;
...@@ -2104,7 +2076,6 @@ static void setup_driver_defaults (ide_driver_t *d) ...@@ -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->pre_reset == NULL) d->pre_reset = default_pre_reset;
if (d->capacity == NULL) d->capacity = default_capacity; if (d->capacity == NULL) d->capacity = default_capacity;
if (d->special == NULL) d->special = default_special; if (d->special == NULL) d->special = default_special;
if (d->attach == NULL) d->attach = default_attach;
if (d->start_power_step == NULL) if (d->start_power_step == NULL)
d->start_power_step = default_start_power_step; d->start_power_step = default_start_power_step;
} }
...@@ -2133,7 +2104,6 @@ int ide_register_subdriver(ide_drive_t *drive, ide_driver_t *driver) ...@@ -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->dsc_overlap = (drive->next != drive && driver->supports_dsc_overlap);
drive->nice1 = 1; drive->nice1 = 1;
} }
drive->suspend_reset = 0;
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
if (drive->driver != &idedefault_driver) { if (drive->driver != &idedefault_driver) {
ide_add_proc_entries(drive->proc, generic_subdriver_entries, drive); ide_add_proc_entries(drive->proc, generic_subdriver_entries, drive);
......
...@@ -345,8 +345,9 @@ static int __devinit atiixp_init_one(struct pci_dev *dev, const struct pci_devic ...@@ -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[] = { 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_IXP200_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_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, }, { 0, },
}; };
MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl); MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl);
......
...@@ -129,6 +129,7 @@ static u8 piix_ratemask (ide_drive_t *drive) ...@@ -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_10:
case PCI_DEVICE_ID_INTEL_82801CA_11: case PCI_DEVICE_ID_INTEL_82801CA_11:
case PCI_DEVICE_ID_INTEL_82801E_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_10:
case PCI_DEVICE_ID_INTEL_82801DB_11: case PCI_DEVICE_ID_INTEL_82801DB_11:
case PCI_DEVICE_ID_INTEL_82801EB_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 ...@@ -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_82801BA_9:
case PCI_DEVICE_ID_INTEL_82801CA_10: case PCI_DEVICE_ID_INTEL_82801CA_10:
case PCI_DEVICE_ID_INTEL_82801CA_11: 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_10:
case PCI_DEVICE_ID_INTEL_82801DB_11: case PCI_DEVICE_ID_INTEL_82801DB_11:
case PCI_DEVICE_ID_INTEL_82801EB_11: case PCI_DEVICE_ID_INTEL_82801EB_11:
...@@ -614,6 +616,7 @@ static struct pci_device_id piix_pci_tbl[] = { ...@@ -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_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_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_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, }, { 0, },
}; };
MODULE_DEVICE_TABLE(pci, piix_pci_tbl); MODULE_DEVICE_TABLE(pci, piix_pci_tbl);
......
...@@ -59,6 +59,7 @@ static ide_pci_device_t piix_pci_info[] __devinitdata = { ...@@ -59,6 +59,7 @@ static ide_pci_device_t piix_pci_info[] __devinitdata = {
/* 19 */ DECLARE_PIIX_DEV("ICH5"), /* 19 */ DECLARE_PIIX_DEV("ICH5"),
/* 20 */ DECLARE_PIIX_DEV("ICH6"), /* 20 */ DECLARE_PIIX_DEV("ICH6"),
/* 21 */ DECLARE_PIIX_DEV("ICH7"), /* 21 */ DECLARE_PIIX_DEV("ICH7"),
/* 22 */ DECLARE_PIIX_DEV("ICH4"),
}; };
#endif /* PIIX_H */ #endif /* PIIX_H */
...@@ -8088,6 +8088,7 @@ ...@@ -8088,6 +8088,7 @@
24c0 82801DB/DBL (ICH4/ICH4-L) LPC Bridge 24c0 82801DB/DBL (ICH4/ICH4-L) LPC Bridge
1014 0267 NetVista A30p 1014 0267 NetVista A30p
1462 5800 845PE Max (MS-6580) 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 24c2 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1
1014 0267 NetVista A30p 1014 0267 NetVista A30p
1071 8160 MIM2000 1071 8160 MIM2000
......
...@@ -723,7 +723,6 @@ typedef struct ide_drive_s { ...@@ -723,7 +723,6 @@ typedef struct ide_drive_s {
unsigned scsi : 1; /* 0=default, 1=ide-scsi emulation */ unsigned scsi : 1; /* 0=default, 1=ide-scsi emulation */
u8 quirk_list; /* considered quirky, set for a specific host */ 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 init_speed; /* transfer rate set at boot */
u8 pio_speed; /* unused by core, used by some drivers for fallback from DMA */ u8 pio_speed; /* unused by core, used by some drivers for fallback from DMA */
u8 current_speed; /* current transfer rate set */ 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); ...@@ -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 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. * Issue ATA command and wait for completion.
* Use for implementing commands in kernel * Use for implementing commands in kernel
...@@ -1444,12 +1441,12 @@ int __ide_dma_good_drive(ide_drive_t *); ...@@ -1444,12 +1441,12 @@ int __ide_dma_good_drive(ide_drive_t *);
int ide_use_dma(ide_drive_t *); int ide_use_dma(ide_drive_t *);
int __ide_dma_off(ide_drive_t *); int __ide_dma_off(ide_drive_t *);
void ide_dma_verbose(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 #ifdef CONFIG_BLK_DEV_IDEDMA_PCI
extern int ide_build_sglist(ide_drive_t *, struct request *); extern int ide_build_sglist(ide_drive_t *, struct request *);
extern int ide_build_dmatable(ide_drive_t *, struct request *); extern int ide_build_dmatable(ide_drive_t *, struct request *);
extern void ide_destroy_dmatable(ide_drive_t *); 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 int ide_release_dma(ide_hwif_t *);
extern void ide_setup_dma(ide_hwif_t *, unsigned long, unsigned int); extern void ide_setup_dma(ide_hwif_t *, unsigned long, unsigned int);
......
...@@ -353,8 +353,9 @@ ...@@ -353,8 +353,9 @@
#define PCI_DEVICE_ID_ATI_RS300_166 0x5832 #define PCI_DEVICE_ID_ATI_RS300_166 0x5832
#define PCI_DEVICE_ID_ATI_RS300_200 0x5833 #define PCI_DEVICE_ID_ATI_RS300_200 0x5833
/* ATI IXP Chipset */ /* ATI IXP Chipset */
#define PCI_DEVICE_ID_ATI_IXP_IDE 0x4349 #define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349
#define PCI_DEVICE_ID_ATI_IXP2_IDE 0x4369 /* True name not yet sure */ #define PCI_DEVICE_ID_ATI_IXP300_IDE 0x4369
#define PCI_DEVICE_ID_ATI_IXP400_IDE 0x4376
#define PCI_VENDOR_ID_VLSI 0x1004 #define PCI_VENDOR_ID_VLSI 0x1004
#define PCI_DEVICE_ID_VLSI_82C592 0x0005 #define PCI_DEVICE_ID_VLSI_82C592 0x0005
...@@ -2178,6 +2179,7 @@ ...@@ -2178,6 +2179,7 @@
#define PCI_DEVICE_ID_INTEL_82801CA_11 0x248b #define PCI_DEVICE_ID_INTEL_82801CA_11 0x248b
#define PCI_DEVICE_ID_INTEL_82801CA_12 0x248c #define PCI_DEVICE_ID_INTEL_82801CA_12 0x248c
#define PCI_DEVICE_ID_INTEL_82801DB_0 0x24c0 #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_2 0x24c2
#define PCI_DEVICE_ID_INTEL_82801DB_3 0x24c3 #define PCI_DEVICE_ID_INTEL_82801DB_3 0x24c3
#define PCI_DEVICE_ID_INTEL_82801DB_4 0x24c4 #define PCI_DEVICE_ID_INTEL_82801DB_4 0x24c4
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment