• Bartlomiej Zolnierkiewicz's avatar
    ide-pmac: PIO mode setup fixes (take 3) · c15d5d43
    Bartlomiej Zolnierkiewicz authored
    * Add { 0, 0 } entry to {kauai,shasta}_pio_timings[] so kauai_lookup_timing()
      always returns a valid PIO timing (fixes PIO timing not being set for devices
      with minimum PIO cycle <= 120ns).
    
    * Add setting transfer mode on the device to pmac_ide_set_pio_mode().
    
    * Fix pmac_ide_set_pio() to always program chipset for given PIO timing instead
      of only when the device we want to program PIO timing for is the currently
      selected one.
    
    * Now that pmac_ide_set_pio() is fixed there is no need to set transfer mode
      on the device and program chipset for PIO in pmac_ide_tune_chipset()
      (returning 0 == success is not entirely correct but is OK for now since
      the upper layers are only checking ->speedproc return value for DMA modes).
    
    v2:
    * s/speed/XFER_PIO_0 + pio/ in pmac_ide_set_pio_mode() so it actually compiles.
    
    * Removal of kauai_lookup_timing() return value checking went to separate patch.
    
    v3:
    * Use XFER_PIO_0 not XFER_PIO. (Noticed by Ben)
    
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
    Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    c15d5d43
pmac.c 54.2 KB