Re: [PATCH] Add IDE mode support for SB600 SATA

From: Andrew Morton
Date: Wed Nov 22 2006 - 21:26:56 EST


On Thu, 23 Nov 2006 06:23:50 +0800
"Conke Hu" <conke.hu@xxxxxxx> wrote:

> ATI SB600 SATA controller supports 4 modes: Legacy IDE, Native IDE, AHCI and RAID. Legacy/Native IDE mode is designed for compatibility with some old OS without AHCI driver but looses SATAII/AHCI features such as NCQ. This patch provides users with two options when the SB600 SATA is set as IDE mode by BIOS:
> 1. Setting the controller back to AHCI mode and using ahci as its driver.
> 2. Using the controller as a normal IDE.
> What's more, without this patch, ahci driver always tries to claim all 4 modes of SB600 SATA, but fails in legacy IDE mode.
>
> Signed-off-by: conke.hu@xxxxxxx
> -------
> diff -Nur linux-2.6.19-rc6-git4.orig/drivers/ata/ahci.c linux-2.6.19-rc6-git4/drivers/ata/ahci.c
> --- linux-2.6.19-rc6-git4.orig/drivers/ata/ahci.c 2006-11-23 13:36:52.000000000 +0800
> +++ linux-2.6.19-rc6-git4/drivers/ata/ahci.c 2006-11-23 13:50:13.000000000 +0800
> @@ -323,7 +323,14 @@
> { PCI_VDEVICE(JMICRON, 0x2366), board_ahci }, /* JMicron JMB366 */
>
> /* ATI */
> +#ifdef CONFIG_SB600_AHCI_IDE
> { PCI_VDEVICE(ATI, 0x4380), board_ahci }, /* ATI SB600 non-raid */
> +#else
> + { PCI_VENDOR_ID_ATI, 0x4380, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_RAID<<8, 0xffff00,
> + board_ahci },
> + { PCI_VENDOR_ID_ATI, 0x4380, PCI_ANY_ID, PCI_ANY_ID, 0x010600, 0xffff00,
> + board_ahci },
> +#endif
> { PCI_VDEVICE(ATI, 0x4381), board_ahci }, /* ATI SB600 raid */

I doubt if it's appropriate to do all this via ifdefs. Users don't compile
their kernels - others compile them for the users. We need the one kernel
binary to support both modes. Possible?
-
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/