• Mikael Pettersson's avatar
    sata_promise: separate SATA and PATA ops · 724114a5
    Mikael Pettersson authored
    This patch changes sata_promise so that the PATA ports
    on TX2plus chips are bound to the pdc_pata_ops structure.
    This means that operations called from the SATA ops
    structures don't need any SATA-vs-PATA tests any more.
    Instead, operations that depend on a port being SATA or
    PATA are separated into different procedures.
    
    * pdc_cable_type() is split into a PATA version and a
      SATA version
    * pdc_error_handler() is split into a PATA version and a
      SATA version, that both call a common version after
      setting up the `hardreset' function pointer
    * pdc_old_check_atapi_dma() is now only used for SATAI
      ports, so is renamed to pdc_old_sata_check_atapi_dma()
      and simplified
    * pdc_sata_scr_{read,write}() are now only used for SATA
      ports, so their is-not-SATA tests are removed
    * pdc_port_start() is split into three procedures: a wrapper
      which performs the ->ops adjustment on TX2plus PATA ports,
      a procedure with the common code, and a procedure with
      the SATA-specific code (this bit might be cleaned up by
      Tejun's new init model)
    
    Tested on 20619, 20575, and 20775 chips.
    Signed-off-by: default avatarMikael Pettersson <mikpe@it.uu.se>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    724114a5
sata_promise.c 25.6 KB