Skip to content
  • Dan Williams's avatar
    sata_vsc: refactor vsc_sata_interrupt and hook up error handling · ea34e45a
    Dan Williams authored
    
    
    Separate sata_vsc interrupt handling into a normal (per-port) path and an
    error path with the addition of vsc_port_intr and vsc_error_intr
    respectively.  The error path handles interrupt based
    hotplug events which requires the definition of vsc_freeze and vsc_thaw.
    
    Note: vsc_port_intr has a workaround for unexpected interrupts that occur
    during polled commands.  This fixes a regression between 2.6.19 and 2.6.20.
    
    Changes in take2:
    * removed definition of invalid fis bit
    * let standard ata-error-handling handle the serror register
    * clear all unhandled interrupts
    * revert changes to vsc_intr_mask_update (vsc_thaw enables all interrupts)
    * use unlikely() for the pci-abort and not-our-interrupt cases in vsc_sata_interrupt
    
    Changes in take3:
    * Unify the "add" + "hook-up" patches into this single patch
    
    [htejun@gmail.com: clean up comments and suggestions]
    Cc: Jeremy Higdon <jeremy@sgi.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    ea34e45a