aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-01-26 14:13:01 -0500
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-01-26 14:13:01 -0500
commit4a546e046d562bcd389149591fa5a534c8f832ca (patch)
treeffc5c7bd088a0bf74744721b9cfcf18220a75fdf /drivers
parent378f577f7f75aa18a0eeafb044a491dcd5aeaa3d (diff)
ide: remove ->ide_dma_on and ->dma_off_quietly methods from ide_hwif_t
* Make ide_dma_off_quietly() and __ide_dma_on() always available. * Drop "__" prefix from __ide_dma_on(). * Check for presence of ->dma_host_on instead of ->ide_dma_on. * Convert all users of ->ide_dma_on and ->dma_off_quietly methods to use ide_dma_on() and ide_dma_off_quietly() instead. * Remove no longer needed ->ide_dma_on and ->dma_off_quietly methods from ide_hwif_t. * Make ide_dma_on() void. There should be no functionality changes caused by this patch. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ide/arm/icside.c16
-rw-r--r--drivers/ide/ide-dma.c27
-rw-r--r--drivers/ide/ide-io.c8
-rw-r--r--drivers/ide/ide-iops.c10
-rw-r--r--drivers/ide/ide-probe.c2
-rw-r--r--drivers/ide/ide.c4
-rw-r--r--drivers/ide/mips/au1xxx-ide.c16
-rw-r--r--drivers/ide/pci/sc1200.c2
-rw-r--r--drivers/ide/pci/sgiioc4.c19
-rw-r--r--drivers/ide/ppc/pmac.c2
10 files changed, 24 insertions, 82 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
294static void icside_dma_off_quietly(ide_drive_t *drive)
295{
296 drive->using_dma = 0;
297 ide_toggle_bounce(drive, 0);
298}
299
300static void icside_dma_host_on(ide_drive_t *drive) 294static void icside_dma_host_on(ide_drive_t *drive)
301{ 295{
302} 296}
303 297
304static 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
312static int icside_dma_end(ide_drive_t *drive) 298static 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
427EXPORT_SYMBOL(ide_dma_host_off); 427EXPORT_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
444EXPORT_SYMBOL(ide_dma_off_quietly); 445EXPORT_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);
455void ide_dma_off(ide_drive_t *drive) 455void 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
461EXPORT_SYMBOL(ide_dma_off); 461EXPORT_SYMBOL(ide_dma_off);
@@ -481,26 +481,26 @@ void ide_dma_host_on(ide_drive_t *drive)
481} 481}
482 482
483EXPORT_SYMBOL(ide_dma_host_on); 483EXPORT_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
492int __ide_dma_on (ide_drive_t *drive) 493void 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
502EXPORT_SYMBOL(__ide_dma_on); 501EXPORT_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
828int ide_set_dma(ide_drive_t *drive) 828int 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
402static 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
410static void auide_dma_host_off(ide_drive_t *drive) 402static void auide_dma_host_off(ide_drive_t *drive)
411{ 403{
412} 404}
413 405
414static void auide_dma_off_quietly(ide_drive_t *drive)
415{
416 drive->using_dma = 0;
417 ide_toggle_bounce(drive, 0);
418}
419
420static void auide_dma_lost_irq(ide_drive_t *drive) 406static 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
280static int
281sgiioc4_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
289static 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
297static void sgiioc4_set_dma_mode(ide_drive_t *drive, const u8 speed) 280static 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;