• Bartlomiej Zolnierkiewicz's avatar
    ide-pmac: remove pmac_ide_do_setfeature() (take 2) · aedea591
    Bartlomiej Zolnierkiewicz authored
    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: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    aedea591
ide-iops.c 33.7 KB