Acer: Aspire 1300 (Notebook)
| PCI ID | Works? | Vendor | Device | Driver | Kernel |
| 11060305 | Yes | VIA Technologies, Inc. | VT8363/8365 [KT133/KM133] | via-agp | |
| 11068305 | Yes | VIA Technologies, Inc. | VT8363/8365 [KT133/KM133 AGP] | agpgart | |
| 12176972 | Yes | O2 Micro, Inc. | OZ601/6912/711E0 CardBus/SmartCardBus Controller | yenta_socket | |
| 11068231 | Yes | VIA Technologies, Inc. | VT8231 [PCI-to-ISA Bridge] | parport_pc,via-ircc | v2.6.25- |
| 11060571 | Yes | VIA Technologies, Inc. | VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE | pata_via | v2.6.25- |
| 11063038 | Yes | VIA Technologies, Inc. | VT82xxxxx UHCI USB 1.1 Controller | usb-uhci,uhci-hcd | |
| 11068235 | Yes | VIA Technologies, Inc. | VT8235 ACPI | vt8231,i2c-viapro | v2.6.25- |
| 11063058 | Yes | VIA Technologies, Inc. | VT82C686 AC97 Audio Controller | snd-via82xx | v2.6.25- |
| 11063068 | Yes | VIA Technologies, Inc. | AC'97 Modem Controller | snd-via82xx-modem | v2.6.25- |
| 11063065 | Yes | VIA Technologies, Inc. | VT6102 [Rhine-II] | via-rhine | v2.6.25- |
| 53338d02 | Yes | S3 Inc. | VT8636A [ProSavage KN133] AGP4X VGA Controller (TwisterK) | savagefb | v2.6.25- |
BIOS is broken - a patch for cpufreq is needed with a fixed pst table (Kernel 2.6.x):
--- old/arch/i386/kernel/cpu/cpufreq/powernow-k7.c 2003-07-01 01:08:03.000000000 +0200
+++ new/arch/i386/kernel/cpu/cpufreq/powernow-k7.c 2005-08-10 11:34:13.308589528 +0200
@@ -101,6 +101,7 @@
static unsigned int fsb;
static unsigned int latency;
static char have_a0;
+static unsigned char *fake_pst;
#define dprintk(msg...) cpufreq_debug_printk(CPUFREQ_DEBUG_DRIVER, "powernow-k7", msg)
@@ -165,6 +166,33 @@
}
+static void create_pst(void)
+{
+ fake_pst = kmalloc(sizeof(struct pst_s) + (10 * sizeof(unsigned char)), GFP_KERNEL);
+
+ *((u32*)fake_pst)=0x780; /* cpuid */
+ *(fake_pst+ 4) = 133; /* fsb */
+ *(fake_pst+ 5) = 1; /* mfid */
+ *(fake_pst+ 6) = 23; /* svid */
+ *(fake_pst+ 7) = 5; /* numsc */
+
+ *(fake_pst+ 8) = 4; /* 666 MHz */
+ *(fake_pst+ 9) = 23; /* 1.100 V */
+
+ *(fake_pst+10) = 6; /* 800 MHz */
+ *(fake_pst+11) = 21; /* 1.150 V */
+
+ *(fake_pst+12) = 8; /* 933 MHz */
+ *(fake_pst+13) = 19; /* 1.200 V */
+
+ *(fake_pst+14) = 13; /* 1266 MHz */
+ *(fake_pst+15) = 14; /* 1.300 V */
+
+ *(fake_pst+16) = 1; /* 1533 MHz */
+ *(fake_pst+17) = 10; /* 1.500 V */
+}
+
+
static int get_ranges (unsigned char *pst)
{
unsigned int j;
@@ -423,6 +451,8 @@
unsigned int etuple;
unsigned int ret;
+ create_pst();
+
etuple = cpuid_eax(0x80000001);
for (i=0xC0000; i < 0xffff0 ; i+=16) {
@@ -459,8 +489,9 @@
pst = (struct pst_s *) p;
for (i = 0 ; i <psb->numpst; i++) {
- pst = (struct pst_s *) p;
+ pst = (struct pst_s *) fake_pst;
number_scales = pst->numpstates;
+ startvid=pst->startvid;
if ((etuple == pst->cpuid) && check_fsb(pst->fsbspeed) &&
(maxfid==pst->maxfid) && (startvid==pst->startvid))
@@ -551,7 +582,10 @@
return (fsb * fid_codes[cfid] / 10);
}
-
+/* --------------------------------------------------------------
+ * removed because we have patched the driver with an old patch
+ * which applies a facked pst table
+ *
static int __init acer_cpufreq_pst(struct dmi_system_id *d)
{
printk(KERN_WARNING "%s laptop with broken PST tables in BIOS detected.\n", d->ident);
@@ -559,12 +593,17 @@
printk(KERN_WARNING "cpufreq scaling has been disabled as a result of this.\n");
return 0;
}
+*/
/*
* Some Athlon laptops have really fucked PST tables.
* A BIOS update is all that can save them.
* Mention this, and disable cpufreq.
*/
+/* --------------------------------------------------------------
+ * removed because we have patched the driver with an old patch
+ * which applies a facked pst table
+ *
static struct dmi_system_id __initdata powernow_dmi_table[] = {
{
.callback = acer_cpufreq_pst,
@@ -576,6 +615,7 @@
},
{ }
};
+*/
static int __init powernow_cpu_init (struct cpufreq_policy *policy)
{
@@ -599,10 +639,16 @@
}
dprintk("FSB: %3dMHz\n", fsb/1000);
+ /* --------------------------------------------------------------
+ * removed because we have patched the driver with an old patch
+ * which applies a facked pst table
+ *
if (dmi_check_system(powernow_dmi_table) || acpi_force) {
printk (KERN_INFO PFX "PSB/PST known to be broken. Trying ACPI instead\n");
result = powernow_acpi_init();
} else {
+ */
+ if (1) {
result = powernow_decode_bios(fidvidstatus.bits.MFID, fidvidstatus.bits.SVID);
if (result) {
printk (KERN_INFO PFX "Trying ACPI perflib\n");
@@ -681,6 +727,8 @@
static void __exit powernow_exit (void)
{
cpufreq_unregister_driver(&powernow_driver);
+ if (fake_pst)
+ kfree(fake_pst);
}
module_param(acpi_force, int, 0444);
|