AHCI - Bug fixes - primary port probe and TFD flushing.
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 14 Jun 2009 06:07:00 +0000 (23:07 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 14 Jun 2009 06:07:00 +0000 (23:07 -0700)
commitc408a8b3d9268245f7f2af65399dd3f6d464d2a6
tree04be6f62647e7381dbacdd9e31a5cb7bd837cbf5
parent4c339a5f388e695f1464ef583b1d0f20b03c5233
AHCI - Bug fixes - primary port probe and TFD flushing.

* The primary port probe was skipping the software reset step.

* ahci_flush_tfd() was looping on the SERR.DIAG.X bit with a 10ms delay,
  but on some parts this bit gets re-set very quickly if the port is
  in a COMRESET state.  Remove the loop, just use an if() instead.

Reported-by: Sepherosa Ziehau
sys/dev/disk/ahci/ahci.c
sys/dev/disk/ahci/ahci_cam.c