[PATCH] ata_piix: fix ghost device probing by honoring PCS present bits
authorTejun Heo <htejun@gmail.com>
Sun, 20 Aug 2006 08:56:38 +0000 (17:56 +0900)
committerJeff Garzik <jeff@garzik.org>
Tue, 22 Aug 2006 10:07:48 +0000 (06:07 -0400)
commitf1a58ecae527fc67c87ce4dcb9e73894f64aadfe
treee89e6440350a6990023b77fd5a0d7e9f5f9c4b28
parentd14b50cc60ca465290fcdb3b88e7d5fb684361ed
[PATCH] ata_piix: fix ghost device probing by honoring PCS present bits

Move out PCS handling from piix_sata_prereset() into
piix_sata_present_mask() and use it from newly implemented
piix_sata_softreset().  Class codes for devices which are indicated to
be absent by PCS are cleared to ATA_DEV_NONE.  This fixes ghost device
problem reported on ICH6 and 7.

This patch moves PCS handling from prereset to softreset, which makes
two behavior changes.

* perform softreset even when PCS indicates no device
* PCS handling is repeated before retrying softresets due to reset
  failures.

Both behavior changes are intended and more consistent with how other
drivers behave.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/scsi/ata_piix.c