diff options
| -rw-r--r-- | drivers/ide/arm/icside.c | 16 | ||||
| -rw-r--r-- | drivers/ide/ide-dma.c | 27 | ||||
| -rw-r--r-- | drivers/ide/ide-io.c | 8 | ||||
| -rw-r--r-- | drivers/ide/ide-iops.c | 10 | ||||
| -rw-r--r-- | drivers/ide/ide-probe.c | 2 | ||||
| -rw-r--r-- | drivers/ide/ide.c | 4 | ||||
| -rw-r--r-- | drivers/ide/mips/au1xxx-ide.c | 16 | ||||
| -rw-r--r-- | drivers/ide/pci/sc1200.c | 2 | ||||
| -rw-r--r-- | drivers/ide/pci/sgiioc4.c | 19 | ||||
| -rw-r--r-- | drivers/ide/ppc/pmac.c | 2 | ||||
| -rw-r--r-- | include/linux/ide.h | 8 |
11 files changed, 28 insertions, 86 deletions
diff --git a/drivers/ide/arm/icside.c b/drivers/ide/arm/icside.c index d70442a37e34..3a8402bb5dc3 100644 --- a/drivers/ide/arm/icside.c +++ b/drivers/ide/arm/icside.c | |||
| @@ -291,24 +291,10 @@ static void icside_dma_host_off(ide_drive_t *drive) | |||
| 291 | { | 291 | { |
| 292 | } | 292 | } |
| 293 | 293 | ||
| 294 | static void icside_dma_off_quietly(ide_drive_t *drive) | ||
| 295 | { | ||
| 296 | drive->using_dma = 0; | ||
| 297 | ide_toggle_bounce(drive, 0); | ||
| 298 | } | ||
| 299 | |||
| 300 | static void icside_dma_host_on(ide_drive_t *drive) | 294 | static void icside_dma_host_on(ide_drive_t *drive) |
| 301 | { | 295 | { |
| 302 | } | 296 | } |
| 303 | 297 | ||
| 304 | static int icside_dma_on(ide_drive_t *drive) | ||
| 305 | { | ||
| 306 | drive->using_dma = 1; | ||
| 307 | ide_toggle_bounce(drive, 1); | ||
| 308 | |||
| 309 | return 0; | ||
| 310 | } | ||
| 311 | |||
| 312 | static int icside_dma_end(ide_drive_t *drive) | 298 | static int icside_dma_end(ide_drive_t *drive) |
| 313 | { | 299 | { |
| 314 | ide_hwif_t *hwif = HWIF(drive); | 300 | ide_hwif_t *hwif = HWIF(drive); |
| @@ -425,9 +411,7 @@ static void icside_dma_init(ide_hwif_t *hwif) | |||
| 425 | hwif->set_dma_mode = icside_set_dma_mode; | 411 | hwif->set_dma_mode = icside_set_dma_mode; |
| 426 | 412 | ||
| 427 | hwif->dma_host_off = icside_dma_host_off; | 413 | hwif->dma_host_off = icside_dma_host_off; |
| 428 | hwif->dma_off_quietly = icside_dma_off_quietly; | ||
| 429 | hwif->dma_host_on = icside_dma_host_on; | 414 | hwif->dma_host_on = icside_dma_host_on; |
| 430 | hwif->ide_dma_on = icside_dma_on; | ||
| 431 | hwif->dma_setup = icside_dma_setup; | 415 | hwif->dma_setup = icside_dma_setup; |
| 432 | hwif->dma_exec_cmd = icside_dma_exec_cmd; | 416 | hwif->dma_exec_cmd = icside_dma_exec_cmd; |
| 433 | hwif->dma_start = icside_dma_start; | 417 | hwif->dma_start = icside_dma_start; |
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index 9d6dabbbf809..edd0018c4988 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c | |||
| @@ -425,6 +425,7 @@ void ide_dma_host_off(ide_drive_t *drive) | |||
| 425 | } | 425 | } |
| 426 | 426 | ||
| 427 | EXPORT_SYMBOL(ide_dma_host_off); | 427 | EXPORT_SYMBOL(ide_dma_host_off); |
| 428 | #endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ | ||
| 428 | 429 | ||
| 429 | /** | 430 | /** |
| 430 | * ide_dma_off_quietly - Generic DMA kill | 431 | * ide_dma_off_quietly - Generic DMA kill |
| @@ -442,7 +443,6 @@ void ide_dma_off_quietly(ide_drive_t *drive) | |||
| 442 | } | 443 | } |
| 443 | 444 | ||
| 444 | EXPORT_SYMBOL(ide_dma_off_quietly); | 445 | EXPORT_SYMBOL(ide_dma_off_quietly); |
| 445 | #endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ | ||
| 446 | 446 | ||
| 447 | /** | 447 | /** |
| 448 | * ide_dma_off - disable DMA on a device | 448 | * ide_dma_off - disable DMA on a device |
| @@ -455,7 +455,7 @@ EXPORT_SYMBOL(ide_dma_off_quietly); | |||
| 455 | void ide_dma_off(ide_drive_t *drive) | 455 | void ide_dma_off(ide_drive_t *drive) |
| 456 | { | 456 | { |
| 457 | printk(KERN_INFO "%s: DMA disabled\n", drive->name); | 457 | printk(KERN_INFO "%s: DMA disabled\n", drive->name); |
| 458 | drive->hwif->dma_off_quietly(drive); | 458 | ide_dma_off_quietly(drive); |
| 459 | } | 459 | } |
| 460 | 460 | ||
| 461 | EXPORT_SYMBOL(ide_dma_off); | 461 | EXPORT_SYMBOL(ide_dma_off); |
| @@ -481,26 +481,26 @@ void ide_dma_host_on(ide_drive_t *drive) | |||
| 481 | } | 481 | } |
| 482 | 482 | ||
| 483 | EXPORT_SYMBOL(ide_dma_host_on); | 483 | EXPORT_SYMBOL(ide_dma_host_on); |
| 484 | #endif | ||
| 484 | 485 | ||
| 485 | /** | 486 | /** |
| 486 | * __ide_dma_on - Enable DMA on a device | 487 | * ide_dma_on - Enable DMA on a device |
| 487 | * @drive: drive to enable DMA on | 488 | * @drive: drive to enable DMA on |
| 488 | * | 489 | * |
| 489 | * Enable IDE DMA for a device on this IDE controller. | 490 | * Enable IDE DMA for a device on this IDE controller. |
| 490 | */ | 491 | */ |
| 491 | 492 | ||
| 492 | int __ide_dma_on (ide_drive_t *drive) | 493 | void ide_dma_on(ide_drive_t *drive) |
| 493 | { | 494 | { |
| 494 | drive->using_dma = 1; | 495 | drive->using_dma = 1; |
| 495 | ide_toggle_bounce(drive, 1); | 496 | ide_toggle_bounce(drive, 1); |
| 496 | 497 | ||
| 497 | drive->hwif->dma_host_on(drive); | 498 | drive->hwif->dma_host_on(drive); |
| 498 | |||
| 499 | return 0; | ||
| 500 | } | 499 | } |
| 501 | 500 | ||
| 502 | EXPORT_SYMBOL(__ide_dma_on); | 501 | EXPORT_SYMBOL(ide_dma_on); |
| 503 | 502 | ||
| 503 | #ifdef CONFIG_BLK_DEV_IDEDMA_PCI | ||
| 504 | /** | 504 | /** |
| 505 | * ide_dma_setup - begin a DMA phase | 505 | * ide_dma_setup - begin a DMA phase |
| 506 | * @drive: target device | 506 | * @drive: target device |
| @@ -827,7 +827,6 @@ err_out: | |||
| 827 | 827 | ||
| 828 | int ide_set_dma(ide_drive_t *drive) | 828 | int ide_set_dma(ide_drive_t *drive) |
| 829 | { | 829 | { |
| 830 | ide_hwif_t *hwif = drive->hwif; | ||
| 831 | int rc; | 830 | int rc; |
| 832 | 831 | ||
| 833 | /* | 832 | /* |
| @@ -836,13 +835,15 @@ int ide_set_dma(ide_drive_t *drive) | |||
| 836 | * things, if not checked and cleared. | 835 | * things, if not checked and cleared. |
| 837 | * PARANOIA!!! | 836 | * PARANOIA!!! |
| 838 | */ | 837 | */ |
| 839 | hwif->dma_off_quietly(drive); | 838 | ide_dma_off_quietly(drive); |
| 840 | 839 | ||
| 841 | rc = ide_dma_check(drive); | 840 | rc = ide_dma_check(drive); |
| 842 | if (rc) | 841 | if (rc) |
| 843 | return rc; | 842 | return rc; |
| 844 | 843 | ||
| 845 | return hwif->ide_dma_on(drive); | 844 | ide_dma_on(drive); |
| 845 | |||
| 846 | return 0; | ||
| 846 | } | 847 | } |
| 847 | 848 | ||
| 848 | #ifdef CONFIG_BLK_DEV_IDEDMA_PCI | 849 | #ifdef CONFIG_BLK_DEV_IDEDMA_PCI |
| @@ -979,12 +980,8 @@ void ide_setup_dma(ide_hwif_t *hwif, unsigned long base, unsigned num_ports) | |||
| 979 | if (!(hwif->dma_prdtable)) | 980 | if (!(hwif->dma_prdtable)) |
| 980 | hwif->dma_prdtable = (hwif->dma_base + 4); | 981 | hwif->dma_prdtable = (hwif->dma_base + 4); |
| 981 | 982 | ||
| 982 | if (!hwif->dma_off_quietly) | ||
| 983 | hwif->dma_off_quietly = &ide_dma_off_quietly; | ||
| 984 | if (!hwif->dma_host_off) | 983 | if (!hwif->dma_host_off) |
| 985 | hwif->dma_host_off = &ide_dma_host_off; | 984 | hwif->dma_host_off = &ide_dma_host_off; |
| 986 | if (!hwif->ide_dma_on) | ||
| 987 | hwif->ide_dma_on = &__ide_dma_on; | ||
| 988 | if (!hwif->dma_host_on) | 985 | if (!hwif->dma_host_on) |
| 989 | hwif->dma_host_on = &ide_dma_host_on; | 986 | hwif->dma_host_on = &ide_dma_host_on; |
| 990 | if (!hwif->dma_setup) | 987 | if (!hwif->dma_setup) |
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 2711b5a6962d..b5a7d2578ab8 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c | |||
| @@ -75,7 +75,7 @@ static int __ide_end_request(ide_drive_t *drive, struct request *rq, | |||
| 75 | */ | 75 | */ |
| 76 | if (drive->state == DMA_PIO_RETRY && drive->retry_pio <= 3) { | 76 | if (drive->state == DMA_PIO_RETRY && drive->retry_pio <= 3) { |
| 77 | drive->state = 0; | 77 | drive->state = 0; |
| 78 | HWGROUP(drive)->hwif->ide_dma_on(drive); | 78 | ide_dma_on(drive); |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | if (!end_that_request_chunk(rq, uptodate, nr_bytes)) { | 81 | if (!end_that_request_chunk(rq, uptodate, nr_bytes)) { |
| @@ -219,7 +219,7 @@ static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request * | |||
| 219 | * we could be smarter and check for current xfer_speed | 219 | * we could be smarter and check for current xfer_speed |
| 220 | * in struct drive etc... | 220 | * in struct drive etc... |
| 221 | */ | 221 | */ |
| 222 | if (drive->hwif->ide_dma_on == NULL) | 222 | if (drive->hwif->dma_host_on == NULL) |
| 223 | break; | 223 | break; |
| 224 | /* | 224 | /* |
| 225 | * TODO: respect ->using_dma setting | 225 | * TODO: respect ->using_dma setting |
| @@ -787,7 +787,7 @@ static ide_startstop_t do_special (ide_drive_t *drive) | |||
| 787 | 787 | ||
| 788 | if (hwif->host_flags & IDE_HFLAG_SET_PIO_MODE_KEEP_DMA) { | 788 | if (hwif->host_flags & IDE_HFLAG_SET_PIO_MODE_KEEP_DMA) { |
| 789 | if (keep_dma) | 789 | if (keep_dma) |
| 790 | hwif->ide_dma_on(drive); | 790 | ide_dma_on(drive); |
| 791 | } | 791 | } |
| 792 | } | 792 | } |
| 793 | 793 | ||
| @@ -1334,7 +1334,7 @@ static ide_startstop_t ide_dma_timeout_retry(ide_drive_t *drive, int error) | |||
| 1334 | */ | 1334 | */ |
| 1335 | drive->retry_pio++; | 1335 | drive->retry_pio++; |
| 1336 | drive->state = DMA_PIO_RETRY; | 1336 | drive->state = DMA_PIO_RETRY; |
| 1337 | hwif->dma_off_quietly(drive); | 1337 | ide_dma_off_quietly(drive); |
| 1338 | 1338 | ||
| 1339 | /* | 1339 | /* |
| 1340 | * un-busy drive etc (hwgroup->busy is cleared on return) and | 1340 | * un-busy drive etc (hwgroup->busy is cleared on return) and |
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index e3e5e39f4906..76cb5f2bd4e6 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c | |||
| @@ -742,7 +742,7 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed) | |||
| 742 | // msleep(50); | 742 | // msleep(50); |
| 743 | 743 | ||
| 744 | #ifdef CONFIG_BLK_DEV_IDEDMA | 744 | #ifdef CONFIG_BLK_DEV_IDEDMA |
| 745 | if (hwif->ide_dma_on) /* check if host supports DMA */ | 745 | if (hwif->dma_host_on) /* check if host supports DMA */ |
| 746 | hwif->dma_host_off(drive); | 746 | hwif->dma_host_off(drive); |
| 747 | #endif | 747 | #endif |
| 748 | 748 | ||
| @@ -801,8 +801,8 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed) | |||
| 801 | #ifdef CONFIG_BLK_DEV_IDEDMA | 801 | #ifdef CONFIG_BLK_DEV_IDEDMA |
| 802 | if (speed >= XFER_SW_DMA_0 || (hwif->host_flags & IDE_HFLAG_VDMA)) | 802 | if (speed >= XFER_SW_DMA_0 || (hwif->host_flags & IDE_HFLAG_VDMA)) |
| 803 | hwif->dma_host_on(drive); | 803 | hwif->dma_host_on(drive); |
| 804 | else if (hwif->ide_dma_on) /* check if host supports DMA */ | 804 | else if (hwif->dma_host_on) /* check if host supports DMA */ |
| 805 | hwif->dma_off_quietly(drive); | 805 | ide_dma_off_quietly(drive); |
| 806 | #endif | 806 | #endif |
| 807 | 807 | ||
| 808 | switch(speed) { | 808 | switch(speed) { |
| @@ -1012,10 +1012,10 @@ static void check_dma_crc(ide_drive_t *drive) | |||
| 1012 | { | 1012 | { |
| 1013 | #ifdef CONFIG_BLK_DEV_IDEDMA | 1013 | #ifdef CONFIG_BLK_DEV_IDEDMA |
| 1014 | if (drive->crc_count) { | 1014 | if (drive->crc_count) { |
| 1015 | drive->hwif->dma_off_quietly(drive); | 1015 | ide_dma_off_quietly(drive); |
| 1016 | ide_set_xfer_rate(drive, ide_auto_reduce_xfer(drive)); | 1016 | ide_set_xfer_rate(drive, ide_auto_reduce_xfer(drive)); |
| 1017 | if (drive->current_speed >= XFER_SW_DMA_0) | 1017 | if (drive->current_speed >= XFER_SW_DMA_0) |
| 1018 | (void) HWIF(drive)->ide_dma_on(drive); | 1018 | ide_dma_on(drive); |
| 1019 | } else | 1019 | } else |
| 1020 | ide_dma_off(drive); | 1020 | ide_dma_off(drive); |
| 1021 | #endif | 1021 | #endif |
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index 0379d1f697cf..b363a96607d1 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
| @@ -833,7 +833,7 @@ static void probe_hwif(ide_hwif_t *hwif) | |||
| 833 | 833 | ||
| 834 | drive->nice1 = 1; | 834 | drive->nice1 = 1; |
| 835 | 835 | ||
| 836 | if (hwif->ide_dma_on) | 836 | if (hwif->dma_host_on) |
| 837 | ide_set_dma(drive); | 837 | ide_set_dma(drive); |
| 838 | } | 838 | } |
| 839 | } | 839 | } |
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index c6d4f630e18a..095ff34870da 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c | |||
| @@ -437,8 +437,6 @@ static void ide_hwif_restore(ide_hwif_t *hwif, ide_hwif_t *tmp_hwif) | |||
| 437 | hwif->dma_exec_cmd = tmp_hwif->dma_exec_cmd; | 437 | hwif->dma_exec_cmd = tmp_hwif->dma_exec_cmd; |
| 438 | hwif->dma_start = tmp_hwif->dma_start; | 438 | hwif->dma_start = tmp_hwif->dma_start; |
| 439 | hwif->ide_dma_end = tmp_hwif->ide_dma_end; | 439 | hwif->ide_dma_end = tmp_hwif->ide_dma_end; |
| 440 | hwif->ide_dma_on = tmp_hwif->ide_dma_on; | ||
| 441 | hwif->dma_off_quietly = tmp_hwif->dma_off_quietly; | ||
| 442 | hwif->ide_dma_test_irq = tmp_hwif->ide_dma_test_irq; | 440 | hwif->ide_dma_test_irq = tmp_hwif->ide_dma_test_irq; |
| 443 | hwif->ide_dma_clear_irq = tmp_hwif->ide_dma_clear_irq; | 441 | hwif->ide_dma_clear_irq = tmp_hwif->ide_dma_clear_irq; |
| 444 | hwif->dma_host_on = tmp_hwif->dma_host_on; | 442 | hwif->dma_host_on = tmp_hwif->dma_host_on; |
| @@ -836,7 +834,7 @@ int set_using_dma(ide_drive_t *drive, int arg) | |||
| 836 | if (!drive->id || !(drive->id->capability & 1)) | 834 | if (!drive->id || !(drive->id->capability & 1)) |
| 837 | goto out; | 835 | goto out; |
| 838 | 836 | ||
| 839 | if (hwif->ide_dma_on == NULL) | 837 | if (hwif->dma_host_on == NULL) |
| 840 | goto out; | 838 | goto out; |
| 841 | 839 | ||
| 842 | err = -EBUSY; | 840 | err = -EBUSY; |
diff --git a/drivers/ide/mips/au1xxx-ide.c b/drivers/ide/mips/au1xxx-ide.c index 4fc032838051..4dfdca4ccbde 100644 --- a/drivers/ide/mips/au1xxx-ide.c +++ b/drivers/ide/mips/au1xxx-ide.c | |||
| @@ -399,24 +399,10 @@ static void auide_dma_host_on(ide_drive_t *drive) | |||
| 399 | { | 399 | { |
| 400 | } | 400 | } |
| 401 | 401 | ||
| 402 | static int auide_dma_on(ide_drive_t *drive) | ||
| 403 | { | ||
| 404 | drive->using_dma = 1; | ||
| 405 | ide_toggle_bounce(drive, 1); | ||
| 406 | |||
| 407 | return 0; | ||
| 408 | } | ||
| 409 | |||
| 410 | static void auide_dma_host_off(ide_drive_t *drive) | 402 | static void auide_dma_host_off(ide_drive_t *drive) |
| 411 | { | 403 | { |
| 412 | } | 404 | } |
| 413 | 405 | ||
| 414 | static void auide_dma_off_quietly(ide_drive_t *drive) | ||
| 415 | { | ||
| 416 | drive->using_dma = 0; | ||
| 417 | ide_toggle_bounce(drive, 0); | ||
| 418 | } | ||
| 419 | |||
| 420 | static void auide_dma_lost_irq(ide_drive_t *drive) | 406 | static void auide_dma_lost_irq(ide_drive_t *drive) |
| 421 | { | 407 | { |
| 422 | printk(KERN_ERR "%s: IRQ lost\n", drive->name); | 408 | printk(KERN_ERR "%s: IRQ lost\n", drive->name); |
| @@ -684,7 +670,6 @@ static int au_ide_probe(struct device *dev) | |||
| 684 | hwif->set_dma_mode = &auide_set_dma_mode; | 670 | hwif->set_dma_mode = &auide_set_dma_mode; |
| 685 | 671 | ||
| 686 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | 672 | #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA |
| 687 | hwif->dma_off_quietly = &auide_dma_off_quietly; | ||
| 688 | hwif->dma_timeout = &auide_dma_timeout; | 673 | hwif->dma_timeout = &auide_dma_timeout; |
| 689 | 674 | ||
| 690 | hwif->mdma_filter = &auide_mdma_filter; | 675 | hwif->mdma_filter = &auide_mdma_filter; |
| @@ -697,7 +682,6 @@ static int au_ide_probe(struct device *dev) | |||
| 697 | hwif->dma_host_off = &auide_dma_host_off; | 682 | hwif->dma_host_off = &auide_dma_host_off; |
| 698 | hwif->dma_host_on = &auide_dma_host_on; | 683 | hwif->dma_host_on = &auide_dma_host_on; |
| 699 | hwif->dma_lost_irq = &auide_dma_lost_irq; | 684 | hwif->dma_lost_irq = &auide_dma_lost_irq; |
| 700 | hwif->ide_dma_on = &auide_dma_on; | ||
| 701 | #else /* !CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */ | 685 | #else /* !CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */ |
| 702 | hwif->channel = 0; | 686 | hwif->channel = 0; |
| 703 | hwif->hold = 1; | 687 | hwif->hold = 1; |
diff --git a/drivers/ide/pci/sc1200.c b/drivers/ide/pci/sc1200.c index fef20bd4aa78..8a94c3e8f7c4 100644 --- a/drivers/ide/pci/sc1200.c +++ b/drivers/ide/pci/sc1200.c | |||
| @@ -220,7 +220,7 @@ static void sc1200_set_pio_mode(ide_drive_t *drive, const u8 pio) | |||
| 220 | } | 220 | } |
| 221 | if (mode != -1) { | 221 | if (mode != -1) { |
| 222 | printk("SC1200: %s: changing (U)DMA mode\n", drive->name); | 222 | printk("SC1200: %s: changing (U)DMA mode\n", drive->name); |
| 223 | hwif->dma_off_quietly(drive); | 223 | ide_dma_off_quietly(drive); |
| 224 | if (ide_set_dma_mode(drive, mode) == 0) | 224 | if (ide_set_dma_mode(drive, mode) == 0) |
| 225 | hwif->dma_host_on(drive); | 225 | hwif->dma_host_on(drive); |
| 226 | return; | 226 | return; |
diff --git a/drivers/ide/pci/sgiioc4.c b/drivers/ide/pci/sgiioc4.c index fea56d3b3a3a..8c4e94bd4449 100644 --- a/drivers/ide/pci/sgiioc4.c +++ b/drivers/ide/pci/sgiioc4.c | |||
| @@ -277,23 +277,6 @@ sgiioc4_ide_dma_end(ide_drive_t * drive) | |||
| 277 | return dma_stat; | 277 | return dma_stat; |
| 278 | } | 278 | } |
| 279 | 279 | ||
| 280 | static int | ||
| 281 | sgiioc4_ide_dma_on(ide_drive_t * drive) | ||
| 282 | { | ||
| 283 | drive->using_dma = 1; | ||
| 284 | ide_toggle_bounce(drive, 1); | ||
| 285 | |||
| 286 | return 0; | ||
| 287 | } | ||
| 288 | |||
| 289 | static void sgiioc4_dma_off_quietly(ide_drive_t *drive) | ||
| 290 | { | ||
| 291 | drive->using_dma = 0; | ||
| 292 | ide_toggle_bounce(drive, 0); | ||
| 293 | |||
| 294 | drive->hwif->dma_host_off(drive); | ||
| 295 | } | ||
| 296 | |||
| 297 | static void sgiioc4_set_dma_mode(ide_drive_t *drive, const u8 speed) | 280 | static void sgiioc4_set_dma_mode(ide_drive_t *drive, const u8 speed) |
| 298 | { | 281 | { |
| 299 | } | 282 | } |
| @@ -598,8 +581,6 @@ ide_init_sgiioc4(ide_hwif_t * hwif) | |||
| 598 | hwif->dma_setup = &sgiioc4_ide_dma_setup; | 581 | hwif->dma_setup = &sgiioc4_ide_dma_setup; |
| 599 | hwif->dma_start = &sgiioc4_ide_dma_start; | 582 | hwif->dma_start = &sgiioc4_ide_dma_start; |
| 600 | hwif->ide_dma_end = &sgiioc4_ide_dma_end; | 583 | hwif->ide_dma_end = &sgiioc4_ide_dma_end; |
| 601 | hwif->ide_dma_on = &sgiioc4_ide_dma_on; | ||
| 602 | hwif->dma_off_quietly = &sgiioc4_dma_off_quietly; | ||
| 603 | hwif->ide_dma_test_irq = &sgiioc4_ide_dma_test_irq; | 584 | hwif->ide_dma_test_irq = &sgiioc4_ide_dma_test_irq; |
| 604 | hwif->dma_host_on = &sgiioc4_dma_host_on; | 585 | hwif->dma_host_on = &sgiioc4_dma_host_on; |
| 605 | hwif->dma_host_off = &sgiioc4_dma_host_off; | 586 | hwif->dma_host_off = &sgiioc4_dma_host_off; |
diff --git a/drivers/ide/ppc/pmac.c b/drivers/ide/ppc/pmac.c index 3dce80092fff..ca99b69cfac7 100644 --- a/drivers/ide/ppc/pmac.c +++ b/drivers/ide/ppc/pmac.c | |||
| @@ -1748,8 +1748,6 @@ pmac_ide_setup_dma(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif) | |||
| 1748 | return; | 1748 | return; |
| 1749 | } | 1749 | } |
| 1750 | 1750 | ||
| 1751 | hwif->dma_off_quietly = &ide_dma_off_quietly; | ||
| 1752 | hwif->ide_dma_on = &__ide_dma_on; | ||
| 1753 | hwif->dma_setup = &pmac_ide_dma_setup; | 1751 | hwif->dma_setup = &pmac_ide_dma_setup; |
| 1754 | hwif->dma_exec_cmd = &pmac_ide_dma_exec_cmd; | 1752 | hwif->dma_exec_cmd = &pmac_ide_dma_exec_cmd; |
| 1755 | hwif->dma_start = &pmac_ide_dma_start; | 1753 | hwif->dma_start = &pmac_ide_dma_start; |
diff --git a/include/linux/ide.h b/include/linux/ide.h index bf106d569cfc..140864d63aed 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -546,8 +546,6 @@ typedef struct hwif_s { | |||
| 546 | void (*dma_exec_cmd)(ide_drive_t *, u8); | 546 | void (*dma_exec_cmd)(ide_drive_t *, u8); |
| 547 | void (*dma_start)(ide_drive_t *); | 547 | void (*dma_start)(ide_drive_t *); |
| 548 | int (*ide_dma_end)(ide_drive_t *drive); | 548 | int (*ide_dma_end)(ide_drive_t *drive); |
| 549 | int (*ide_dma_on)(ide_drive_t *drive); | ||
| 550 | void (*dma_off_quietly)(ide_drive_t *drive); | ||
| 551 | int (*ide_dma_test_irq)(ide_drive_t *drive); | 549 | int (*ide_dma_test_irq)(ide_drive_t *drive); |
| 552 | void (*ide_dma_clear_irq)(ide_drive_t *drive); | 550 | void (*ide_dma_clear_irq)(ide_drive_t *drive); |
| 553 | void (*dma_host_on)(ide_drive_t *drive); | 551 | void (*dma_host_on)(ide_drive_t *drive); |
| @@ -1149,7 +1147,9 @@ static inline u8 ide_max_dma_mode(ide_drive_t *drive) | |||
| 1149 | return ide_find_dma_mode(drive, XFER_UDMA_6); | 1147 | return ide_find_dma_mode(drive, XFER_UDMA_6); |
| 1150 | } | 1148 | } |
| 1151 | 1149 | ||
| 1150 | void ide_dma_off_quietly(ide_drive_t *); | ||
| 1152 | void ide_dma_off(ide_drive_t *); | 1151 | void ide_dma_off(ide_drive_t *); |
| 1152 | void ide_dma_on(ide_drive_t *); | ||
| 1153 | int ide_set_dma(ide_drive_t *); | 1153 | int ide_set_dma(ide_drive_t *); |
| 1154 | ide_startstop_t ide_dma_intr(ide_drive_t *); | 1154 | ide_startstop_t ide_dma_intr(ide_drive_t *); |
| 1155 | 1155 | ||
| @@ -1161,9 +1161,7 @@ extern int ide_release_dma(ide_hwif_t *); | |||
| 1161 | extern void ide_setup_dma(ide_hwif_t *, unsigned long, unsigned int); | 1161 | extern void ide_setup_dma(ide_hwif_t *, unsigned long, unsigned int); |
| 1162 | 1162 | ||
| 1163 | void ide_dma_host_off(ide_drive_t *); | 1163 | void ide_dma_host_off(ide_drive_t *); |
| 1164 | void ide_dma_off_quietly(ide_drive_t *); | ||
| 1165 | void ide_dma_host_on(ide_drive_t *); | 1164 | void ide_dma_host_on(ide_drive_t *); |
| 1166 | extern int __ide_dma_on(ide_drive_t *); | ||
| 1167 | extern int ide_dma_setup(ide_drive_t *); | 1165 | extern int ide_dma_setup(ide_drive_t *); |
| 1168 | extern void ide_dma_start(ide_drive_t *); | 1166 | extern void ide_dma_start(ide_drive_t *); |
| 1169 | extern int __ide_dma_end(ide_drive_t *); | 1167 | extern int __ide_dma_end(ide_drive_t *); |
| @@ -1175,7 +1173,9 @@ extern void ide_dma_timeout(ide_drive_t *); | |||
| 1175 | static inline int ide_id_dma_bug(ide_drive_t *drive) { return 0; } | 1173 | static inline int ide_id_dma_bug(ide_drive_t *drive) { return 0; } |
| 1176 | static inline u8 ide_find_dma_mode(ide_drive_t *drive, u8 speed) { return 0; } | 1174 | static inline u8 ide_find_dma_mode(ide_drive_t *drive, u8 speed) { return 0; } |
| 1177 | static inline u8 ide_max_dma_mode(ide_drive_t *drive) { return 0; } | 1175 | static inline u8 ide_max_dma_mode(ide_drive_t *drive) { return 0; } |
| 1176 | static inline void ide_dma_off_quietly(ide_drive_t *drive) { ; } | ||
| 1178 | static inline void ide_dma_off(ide_drive_t *drive) { ; } | 1177 | static inline void ide_dma_off(ide_drive_t *drive) { ; } |
| 1178 | static inline void ide_dma_on(ide_drive_t *drive) { ; } | ||
| 1179 | static inline void ide_dma_verbose(ide_drive_t *drive) { ; } | 1179 | static inline void ide_dma_verbose(ide_drive_t *drive) { ; } |
| 1180 | static inline int ide_set_dma(ide_drive_t *drive) { return 1; } | 1180 | static inline int ide_set_dma(ide_drive_t *drive) { return 1; } |
| 1181 | #endif /* CONFIG_BLK_DEV_IDEDMA */ | 1181 | #endif /* CONFIG_BLK_DEV_IDEDMA */ |
