Hello, Acer Aspire 3682 with ICH7 can't be configured to use UDMA66 and higher. It appears that it has got short 40-pins ATA cable for hard disk. Register 0x54 is 0. I've looked at http://marc.theaimsgroup.com/?l=linux-ide&m=115618757116620&w=2 and similary written fix for drivers/ide/pci/piix.c. Because libata 2.0 is not in linux 2.6.18, this fix may be usefull for some people. Regards, Jakub Jozwicki --- CUT --- --- linux-2.6.16.21SLERT10/drivers/ide/pci/piix.c 2006-04-25 23:03:47.000000000 +0200 +++ linux-2.6.16.21-0.25/drivers/ide/pci/piix.c 2006-11-10 00:47:27.223832134 +0100 @@ -431,8 +431,23 @@ * out to be nice and simple */ +struct ich_laptop { + u16 device; + u16 subvendor; + u16 subdevice; +}; + +static const struct ich_laptop ich_laptop[] = { + /* devid, subvendor, subdev */ + { 0x27df, 0x1025, 0x0110 }, /* ICH7 on Acer Aspire 3682 WLMi */ + /* end marker */ + { 0, } +}; + static unsigned int __devinit init_chipset_piix (struct pci_dev *dev, const char *name) { + const struct ich_laptop *lap = &ich_laptop[0]; + switch(dev->device) { case PCI_DEVICE_ID_INTEL_82801EB_1: case PCI_DEVICE_ID_INTEL_82801AA_1: @@ -454,6 +469,19 @@ { unsigned int extra = 0; pci_read_config_dword(dev, 0x54, &extra); + + /* Fix UDMA66 capabilities on Acer Aspire */ + while (!extra && lap->device) { + if (lap->device == dev->device && + lap->subvendor == dev->subsystem_vendor && + lap->subdevice == dev->subsystem_device) + { + extra = 0xf0; + printk(KERN_WARNING "ICH7 laptop detected, setting register 0x54 to 0x4f0\n"); + } + lap++; + } + pci_write_config_dword(dev, 0x54, extra|0x400); } default: ---- CUT ----- - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html