[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Abit KT7: Strom sparen



On Sam, 03 Mai 2003, Bernhard Walle wrote:
> > BEsser: ACPI und disconnect patch, setzt nur ein bit im pci bus.
> > Nix herumgefutzel in der idle loop etc. Kühlt meine CPU auf 35 grad
> > runter.
> 
> gibt's da genauere Informationen? Wo bekommt man diesen `disconnect
> patch'?

lkml, oder aus dem jam-kernel, oder attached ...

Muss mit amd_disconnect beim booten aktiviert werden ... (lilo, grub,
hand)

PS: Nicht vergessen, aktuellen ACPI patch.

Herzliche Grüße

Norbert

-------------------------------------------------------------------------------
Norbert Preining <preining AT logic DOT at>         Technische Universität Wien
gpg DSA: 0x09C5B094      fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
The fronting for the eighty-yard long marble-topped bar
had been made by stitching together nearly twenty thousand
Antarean Mosaic Lizard skins, despite the fact that the
twenty thousand lizards concerned had needed them to keep
their insides in.
                 --- The Book decribing Milliways' politically incorrect
                 --- decor.
                 --- Douglas Adams, The Hitchhikers Guide to the Galaxy
--- linux/drivers/pci/quirks.c	Sun Nov 11 19:09:33 2001
+++ linux/drivers/pci/quirks.c	Tue Jan 22 16:50:05 2002
@@ -21,6 +21,23 @@
 
 #undef DEBUG
 
+/* Power Saving for Athlon/Duron CPUs on Via Chipsets has to be enabled by 
+ * kernel-boot-option "amd_disconnect=yes" . This is cause it looks like 
+ * there are some stability problems on some boards when this option is 
+ * enabled.
+ */
+
+int enable_amd_disconnect;
+
+static int __init amd_disconnect_setup (char *str) {
+        if(!strncmp(str,"yes",3)) {
+                enable_amd_disconnect=1;
+					                                                }
+        return 1;
+}
+
+__setup("amd_disconnect=", amd_disconnect_setup);
+
 /* Deal with broken BIOS'es that neglect to enable passive release,
    which can cause problems in combination with the 82441FX/PPro MTRRs */
 static void __init quirk_passive_release(struct pci_dev *dev)
@@ -146,6 +163,47 @@
 	printk(KERN_INFO "Applying VIA southbridge workaround.\n");
 }
 
+/* Power Saving for Athlon/Duron/AthonXP CPUs on Via Chipsets.
+ * Found in the net and modified for supporting KT266/KT266A chipsets
+ * by Daniel Nofftz <nofftz@castor.uni-trier.de>
+ * This Funktion must be enabled by kernel booting option "amd_disconnect=yes"!
+ */
+
+static void __init quirk_amddisconnect(struct pci_dev *dev)
+{
+	u16 did;
+	u32 res32;
+	
+	if(!enable_amd_disconnect) return;
+
+        pci_read_config_word(dev,PCI_DEVICE_ID,&did);
+
+	
+	if(did==PCI_DEVICE_ID_VIA_8367_0)
+	{
+		pci_read_config_dword(dev,0x92&0xfc,&res32);
+		if ((res32&0x00800000)==0) 
+		{
+			printk(KERN_INFO "Enabling disconnect in VIA northbridge: KT266/266A chipset found.\n");
+			res32|=0x00800000;
+			pci_write_config_dword(dev,0x92&0xfc,res32);
+		} else
+			printk(KERN_INFO "Disconnect already anabled in VIA northbridge.\n");
+
+	}
+	else if((did==PCI_DEVICE_ID_VIA_8363_0)||(did==PCI_DEVICE_ID_VIA_8371_0))
+	{
+		pci_read_config_dword(dev,0x52&0xfc,&res32);
+	        if ((res32&0x00800000)==0) 
+		{	
+			printk(KERN_INFO "Enabling disconnect in VIA northbridge: KT133/KX133 chipset found\n");
+			res32|=0x00800000;
+			pci_write_config_dword(dev,0x52&0xfc,res32);
+		} else
+			printk(KERN_INFO "Disconnect already anabled in VIA northbridge.\n");
+		
+	}
+}
 /*
  *	VIA Apollo VP3 needs ETBF on BT848/878
  */
@@ -485,6 +543,9 @@
 	{ PCI_FIXUP_FINAL,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_8363_0,	quirk_vialatency },
 	{ PCI_FIXUP_FINAL,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_8371_1,	quirk_vialatency },
 	{ PCI_FIXUP_FINAL,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_8361,	quirk_vialatency },
+	{ PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_8367_0,	quirk_amddisconnect },
+        { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_8363_0,       quirk_amddisconnect },
+        { PCI_FIXUP_FINAL,      PCI_VENDOR_ID_VIA,      PCI_DEVICE_ID_VIA_8371_0,       quirk_amddisconnect },
 	{ PCI_FIXUP_FINAL,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C576,	quirk_vsfx },
 	{ PCI_FIXUP_FINAL,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C597_0,	quirk_viaetbf },
 	{ PCI_FIXUP_HEADER,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C597_0,	quirk_vt82c598_id },

Reply to: