From: Arjan van de Ven on
On Thu, 2006-11-23 at 11:22 +0000, Alan wrote:
> > is this really the right thing? You're overriding a user chosen
> > configuration here.... while that might be justifiable.. it's probably a
> > good idea to at least provide a safety-valve for this one. The user
> > might have made that selection very deliberately.
>
> Its what we do for other similar cases and I think its the right thing to
> do in this situation. One reason for this is that with multi-boot boxes
> you have to set the BIOS option to the dumbest one unless the smart OS's
> reconfigure the device.

while I can appreciate that.. it does assume things like SMM not
assuming things about it; and on resume.. has to happen as again/well :)



--
if you want to mail me at work (you don't), use arjan (at) linux.intel.com
Test the interaction between Linux and your BIOS via http://www.linuxfirmwarekit.org

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Alan on
On Thu, 23 Nov 2006 11:35:47 -0500 (EST)
luugi.marsan(a)amd.com (Luugi Marsan) wrote:

> From: Conke Hu <conke.hu(a)amd.com>

NAK - Conke Hu's later patch is better and that should be the one applied
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Conke Hu on

-----Original Message-----
From: linux-kernel-owner(a)vger.kernel.org [mailto:linux-kernel-owner(a)vger.kernel.org] On Behalf Of Alan
Sent: Friday, November 24, 2006 12:46 AM
To: Luugi Marsan
Cc: linux-kernel(a)vger.kernel.org
Subject: Re: [PATCH] Add IDE mode support for SB600 SATA

On Thu, 23 Nov 2006 11:35:47 -0500 (EST) luugi.marsan(a)amd.com (Luugi Marsan) wrote:

> From: Conke Hu <conke.hu(a)amd.com>

NAK - Conke Hu's later patch is better and that should be the one applied
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

-----------------------------------------------------------


Hi all,
We've sent out more than one patch on the sb600 sata issue and one of them has been applied, so please just ignore others.
The applied patch is:

--- linux-2.6.19-rc6-git4/drivers/pci/quirks.c.orig 2006-11-23 19:45:49.000000000 +0800
+++ linux-2.6.19-rc6-git4/drivers/pci/quirks.c 2006-11-23 19:34:23.000000000 +0800
@@ -795,6 +795,25 @@ static void __init quirk_mediagx_master(
}
}
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_PCI_MASTER, quirk_mediagx_master );
+
+#if defined(CONFIG_SATA_AHCI) || defined(CONFIG_SATA_AHCI_MODULE)
+static void __devinit quirk_sb600_sata(struct pci_dev *pdev)
+{
+ /* set sb600 sata to ahci mode */
+ if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) {
+ u8 tmp;
+
+ pci_read_config_byte(pdev, 0x40, &tmp);
+ pci_write_config_byte(pdev, 0x40, tmp|1);
+ pci_write_config_byte(pdev, 0x9, 1);
+ pci_write_config_byte(pdev, 0xa, 6);
+ pci_write_config_byte(pdev, 0x40, tmp);
+
+ pdev->class = 0x010601;
+ }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_SATA, quirk_sb600_sata);
+#endif

/*
* As per PCI spec, ignore base address registers 0-3 of the IDE controllers


Conke


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Tejun Heo on
Conke Hu 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 will make SB600 SATA run in AHCI mode even if it was set as IDE mode by system BIOS.
>
> Signed-off-by: conke.hu(a)amd.com
> ---------
> --- linux-2.6.19-rc6-git4/drivers/pci/quirks.c.orig 2006-11-23 19:45:49.000000000 +0800
> +++ linux-2.6.19-rc6-git4/drivers/pci/quirks.c 2006-11-23 19:34:23.000000000 +0800
> @@ -795,6 +795,25 @@ static void __init quirk_mediagx_master(
> }
> }
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_PCI_MASTER, quirk_mediagx_master );
> +
> +#if defined(CONFIG_SATA_AHCI) || defined(CONFIG_SATA_AHCI_MODULE)
> +static void __devinit quirk_sb600_sata(struct pci_dev *pdev)
> +{
> + /* set sb600 sata to ahci mode */
> + if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) {
> + u8 tmp;
> +
> + pci_read_config_byte(pdev, 0x40, &tmp);
> + pci_write_config_byte(pdev, 0x40, tmp|1);
> + pci_write_config_byte(pdev, 0x9, 1);
> + pci_write_config_byte(pdev, 0xa, 6);
> + pci_write_config_byte(pdev, 0x40, tmp);
> +

Two trailing tabs in the above line. Please remove those.

> + pdev->class = 0x010601;
> + }
> +}
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_SATA, quirk_sb600_sata);
> +#endif
>
> /*
> * As per PCI spec, ignore base address registers 0-3 of the IDE controllers

Other than that, Acked-by: Tejun Heo <htejun(a)gmail.com>

--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Tejun Heo on
Tejun Heo wrote:
> Conke Hu 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 will make SB600 SATA run in AHCI mode even if
>> it was set as IDE mode by system BIOS.
[--snip--]
> Other than that, Acked-by: Tejun Heo <htejun(a)gmail.com>

At the second thought, I think this should be done in
ahci_init_controller().

* Unlike Jmicron's case, this doesn't affect PCI bus scan. Actually, it
does change class code but that's not as disruptive as Jmicron's case
and as long as ahci ignores class code, it doesn't really matter.
Driver can be chosen by changing loading order - this is both plus and
minus.

* As Arjan pointed out, that unlock-modify-lock sequence should be done
on resume too. ahci_init_controller() is the right place for such
stuff. This chip is going into notebooks, right?

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