Re: ata_piix failure on ich6m
From: Tejun Heo
Date: Wed May 10 2006 - 22:15:46 EST
Matthew Garrett wrote:
Hi,
We've got an ich6m system (a Toshiba Portege S100). ata_piix attempts to
drive the chipset, but fails - however, it doesn't bail out. As a result
it remains bound to the device and ahci isn't loaded.
I've attached the lspci output for the chipset. A few things to note
are:
1) The AHCI BAR is set
2) The SCC register identifies it as an AHCI controller
3) Bits 2 and 0 of the PCS are set, which the spec claims indicates that
the port is to be controlled as an ahci device.
So, my question is effectively: why does ata_piix attempt to disable
ahci rather than simply letting the ahci driver bind? Points (1) and (2)
seem to be checked by the code, but I'm guessing that in the case of (3)
it should just return ENODEV and let ahci be run instead. If so, should
I code up a patch?
I'm not very sure but it might be historical. ahci got implemented
after ata_piix and in the meantime ata_piix must have handled all it
could. Can you verify whether modifying the code to return -ENODEV work
for your machine? If so, that could be the correct solution but I'm a
bit worried because it could change probing order or fail to enable
devices it used to. Maybe we need a hack to return -ENODEV iff ahci is
there to handle the device.
--
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/