diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-26 16:44:19 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-26 16:44:19 -0400 |
commit | a52b0d25a722e84da999005b75f972aa4824253c (patch) | |
tree | 4a3a48305f744e6bde2e3fd663a4473dd712049c /drivers/ide/ide-io.c | |
parent | 539a5fe22620a1665cce504167953a71a43232ad (diff) | |
parent | f37afdaca711838b50ecd89b9c15fc745270d77c (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (46 commits)
ide: constify struct ide_dma_ops
ide: add struct ide_dma_ops (take 3)
ide: add IDE_HFLAG_SERIALIZE_DMA host flag
sl82c105: check bridge revision in sl82c105_init_one()
au1xxx-ide: use ->init_dma method
palm_bk3710: use ->init_dma method
sgiioc4: use ->init_dma method
icside: use ->init_dma method
ide-pmac: use ->init_dma method
ide: do complete DMA setup in ->init_dma method (take 2)
au1xxx-ide: fix MWDMA support
ide: cleanup ide_setup_dma()
ide: factor out setting PCI bus-mastering from ide_hwif_setup_dma()
ide: export ide_allocate_dma_engine()
ide: move ide_setup_dma() call out from ->init_dma method
alim15x3: skip DMA initialization completely on revs < 0x20
pdc202xx_old: remove init_dma_pdc202xx()
ide: don't display "BIOS" settings in ide_setup_dma()
ide: remove ->cds field from ide_hwif_t (take 2)
ide: remove ide_dma_iobase()
...
Diffstat (limited to 'drivers/ide/ide-io.c')
-rw-r--r-- | drivers/ide/ide-io.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 51d181ee9cf7..0fe89a599275 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c | |||
@@ -218,7 +218,7 @@ static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request * | |||
218 | * we could be smarter and check for current xfer_speed | 218 | * we could be smarter and check for current xfer_speed |
219 | * in struct drive etc... | 219 | * in struct drive etc... |
220 | */ | 220 | */ |
221 | if (drive->hwif->dma_host_set == NULL) | 221 | if (drive->hwif->dma_ops == NULL) |
222 | break; | 222 | break; |
223 | /* | 223 | /* |
224 | * TODO: respect ->using_dma setting | 224 | * TODO: respect ->using_dma setting |
@@ -721,6 +721,7 @@ static ide_startstop_t do_special (ide_drive_t *drive) | |||
721 | #endif | 721 | #endif |
722 | if (s->b.set_tune) { | 722 | if (s->b.set_tune) { |
723 | ide_hwif_t *hwif = drive->hwif; | 723 | ide_hwif_t *hwif = drive->hwif; |
724 | const struct ide_port_ops *port_ops = hwif->port_ops; | ||
724 | u8 req_pio = drive->tune_req; | 725 | u8 req_pio = drive->tune_req; |
725 | 726 | ||
726 | s->b.set_tune = 0; | 727 | s->b.set_tune = 0; |
@@ -733,10 +734,10 @@ static ide_startstop_t do_special (ide_drive_t *drive) | |||
733 | unsigned long flags; | 734 | unsigned long flags; |
734 | 735 | ||
735 | spin_lock_irqsave(&ide_lock, flags); | 736 | spin_lock_irqsave(&ide_lock, flags); |
736 | hwif->set_pio_mode(drive, req_pio); | 737 | port_ops->set_pio_mode(drive, req_pio); |
737 | spin_unlock_irqrestore(&ide_lock, flags); | 738 | spin_unlock_irqrestore(&ide_lock, flags); |
738 | } else | 739 | } else |
739 | hwif->set_pio_mode(drive, req_pio); | 740 | port_ops->set_pio_mode(drive, req_pio); |
740 | } else { | 741 | } else { |
741 | int keep_dma = drive->using_dma; | 742 | int keep_dma = drive->using_dma; |
742 | 743 | ||
@@ -1237,12 +1238,12 @@ static ide_startstop_t ide_dma_timeout_retry(ide_drive_t *drive, int error) | |||
1237 | 1238 | ||
1238 | if (error < 0) { | 1239 | if (error < 0) { |
1239 | printk(KERN_WARNING "%s: DMA timeout error\n", drive->name); | 1240 | printk(KERN_WARNING "%s: DMA timeout error\n", drive->name); |
1240 | (void)HWIF(drive)->ide_dma_end(drive); | 1241 | (void)hwif->dma_ops->dma_end(drive); |
1241 | ret = ide_error(drive, "dma timeout error", | 1242 | ret = ide_error(drive, "dma timeout error", |
1242 | ide_read_status(drive)); | 1243 | ide_read_status(drive)); |
1243 | } else { | 1244 | } else { |
1244 | printk(KERN_WARNING "%s: DMA timeout retry\n", drive->name); | 1245 | printk(KERN_WARNING "%s: DMA timeout retry\n", drive->name); |
1245 | hwif->dma_timeout(drive); | 1246 | hwif->dma_ops->dma_timeout(drive); |
1246 | } | 1247 | } |
1247 | 1248 | ||
1248 | /* | 1249 | /* |
@@ -1354,7 +1355,7 @@ void ide_timer_expiry (unsigned long data) | |||
1354 | startstop = handler(drive); | 1355 | startstop = handler(drive); |
1355 | } else if (drive_is_ready(drive)) { | 1356 | } else if (drive_is_ready(drive)) { |
1356 | if (drive->waiting_for_dma) | 1357 | if (drive->waiting_for_dma) |
1357 | hwgroup->hwif->dma_lost_irq(drive); | 1358 | hwif->dma_ops->dma_lost_irq(drive); |
1358 | (void)ide_ack_intr(hwif); | 1359 | (void)ide_ack_intr(hwif); |
1359 | printk(KERN_WARNING "%s: lost interrupt\n", drive->name); | 1360 | printk(KERN_WARNING "%s: lost interrupt\n", drive->name); |
1360 | startstop = handler(drive); | 1361 | startstop = handler(drive); |