[PATCH] ahci: convert to new EH
authorTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 11:58:29 +0000 (20:58 +0900)
committerTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 11:58:29 +0000 (20:58 +0900)
commit78cd52d02fa0735949a9fa30a6b79bf02c94c250
treef52d2053c5fd930357130c9bf6a00743920bf19c
parentf6aae27ed002ba9c0a98aff811dbde32ce749d28
[PATCH] ahci: convert to new EH

Convert AHCI to new EH.  Unfortunately, ICH7 AHCI reacts badly if IRQ
mask is diddled during operation.  So, freezing is implemented by
unconditionally clearing interrupt conditions while frozen.

* Interrupts are categorized according to required action.
  e.g. Connection status or unknown FIS error requires freezing the
  port while TF or HBUS_DATA don't.

* Only CONNECT (reflects SErr.X) interrupt is taken into account not
  PHYRDY (SErr.N), as CONNECT is better cue for starting EH.

* AHCI may be invoked without any active command.  e.g. CONNECT irq
  occuring while no qc in progress still triggers EH and will reset
  the port and revalidate attached device.

Signed-off-by: Tejun Heo <htejun@gmail.com>
drivers/scsi/ahci.c