Re: [RFT] major libata update

From: Tejun Heo
Date: Thu May 18 2006 - 07:32:53 EST


Albert Lee wrote:
To sum up, it happens when the master slot is occupied by an ATAPI
device and the corresponding slave slot is empty. The slave slot
reports ATAPI signature (probably duplicated from the master) and passes
all legacy presence test thus resulting in timeout on IDENTIFY.


This problem was seen with PATA Promise 20275 adapter + IBM DVD-RAM drive.
Single master device configuration, no slave device.
The master device acts as slave and creates a phantom slave device.
(http://marc.theaimsgroup.com/?l=linux-ide&m=113151315602979&w=2)

The problem was later fixed by Tejun's ata_exec_internal() patch:
(http://marc.theaimsgroup.com/?l=linux-ide&m=113455450809405&w=2)
After the patch, the phantom device is finally detected by ata_dev_identify().

Libata uses polling PIO for IDENTIFY DEVICE before this major update.
The polling PIO finds something wrong when it reads a 0x00 device status.
So, the phantom device is detected quite quickly.

With irq-driven PIO, maybe the phantom device is only detected after time-out.
So it takes longer (30 secs) to detect the phantom device.

No good idea how to fix this. Maybe read more registers to see whether the
phantom device can be detected early before the IDENTIFY DEVICE.


Does the Promise controller show the ghosting problem again with the recent updates? ata_piix can be fixed by using PCS present bits. I don't know about Promise though.

--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/