Re: [PATCH] libata-sff: Allow for wacky systems

From: Valdis . Kletnieks
Date: Mon Oct 16 2006 - 11:24:03 EST


On Mon, 16 Oct 2006 16:24:50 BST, Alan Cox said:
> There are some Linux supported platforms that simply cannot hit the low
> I/O addresses used by ATA legacy mode PCI mappings. These platforms have
> a window for PCI space that is fixed by the board logic and doesn't
> include the neccessary locations.
>
> Provide a config option so that such platforms faced with a controller
> that they cannot support simply error it and punt
>
> Signed-off-by: Alan Cox <alan@xxxxxxxxxx>
>
> diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-
2.6.19-rc1-mm1/drivers/ata/libata-sff.c linux-2.6.19-rc1-mm1/drivers/ata/libata
-sff.c
> --- linux.vanilla-2.6.19-rc1-mm1/drivers/ata/libata-sff.c 2006-10-13 15:0
9:23.000000000 +0100
> +++ linux-2.6.19-rc1-mm1/drivers/ata/libata-sff.c 2006-10-13 17:15:57.000
000000 +0100
> @@ -981,6 +981,15 @@
> mask = (1 << 2) | (1 << 0);
> if ((tmp8 & mask) != mask)
> legacy_mode = (1 << 3);
> +#if defined(CONFIG_NO_ATA_LEGACY)
> + /* Some platforms with PCI limits cannot address compat
> + port space. In that case we punt if their firmware has
> + left a device in compatibility mode */
> + if (legacy_mode) {
> + printk(KERN_ERR "ata: Compatibility mode ATA is not supported on this platform, skipping.\n");

Would it make sense for the printk to include a hint as to which controller
is on crack, so on boxes with PCI_MULTITHREAD_PROBE it's easier to tell?

Attachment: pgp00000.pgp
Description: PGP signature