diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-13 11:47:50 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-13 11:47:50 -0400 |
commit | aedea5910ce44fea79e2c517bb22e0006372156f (patch) | |
tree | 5e9c84f0c045058594a80a2bc67b358f80d1d884 /drivers/ide/ide-iops.c | |
parent | 3b2d0093b8eb2b0b4adc86138edee9f6d376cafb (diff) |
ide-pmac: remove pmac_ide_do_setfeature() (take 2)
Use ide_config_drive_speed() instead of pmac_ide_do_setfeature() and remove
the latter, also ide-iops.c::__ide_wait_stat() could be static again.
Since for IDE PMAC host driver IDE_CONTROL_REG is always true, device's
->quirk_list is always zero and ->ide_dma_host_{on,off} are nops than
the only changes in behavior are:
* if PIO mode is set then ->dma_off_queitly is called to disable DMA
* if setting transfer mode fails ide_dump_status() is called to dump status
v2:
* IDE PMAC controllers allow separate PIO and DMA timings and PPC userland
depends on this fact, and calls "hdparm -p" without calling "hdparm -d".
Therefore to compensate for DMA being disabled by ide_config_drive_speed()
for PIO modes:
- add IDE_HFLAG_SET_PIO_MODE_KEEP_DMA flag and set it in PMAC host driver
- add handling of the new flag to ide-io.c::do_special()
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-iops.c')
-rw-r--r-- | drivers/ide/ide-iops.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index f7e976c0c2f3..e5fc2e505959 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c | |||
@@ -483,7 +483,7 @@ EXPORT_SYMBOL(drive_is_ready); | |||
483 | * setting a timer to wake up at half second intervals thereafter, | 483 | * setting a timer to wake up at half second intervals thereafter, |
484 | * until timeout is achieved, before timing out. | 484 | * until timeout is achieved, before timing out. |
485 | */ | 485 | */ |
486 | int __ide_wait_stat(ide_drive_t *drive, u8 good, u8 bad, unsigned long timeout, u8 *rstat) | 486 | static int __ide_wait_stat(ide_drive_t *drive, u8 good, u8 bad, unsigned long timeout, u8 *rstat) |
487 | { | 487 | { |
488 | ide_hwif_t *hwif = drive->hwif; | 488 | ide_hwif_t *hwif = drive->hwif; |
489 | unsigned long flags; | 489 | unsigned long flags; |