Remove Asus EEE UDMA/33 limitation.
The Asus Eee PC prints this during bootup..
ata2.00: limited to UDMA/33 due to 40-wire cable Which is unfortunate, as it has..
ata2.00: ATA-4: SILICONMOTION SM223AC, , max UDMA/66
I believe there actually is no cable, and the flash is directly connected to the controller.
[root@eee ~]# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 64 MB in 3.08 seconds = 20.76 MB/sec
With the patch below it returns..
/dev/sda:
Timing buffered disk reads: 76 MB in 3.04 seconds = 25.04 MB/sec
drivers/ata/ata_piix.c renamed from drivers/ata/ata_piix.c~ +1 -0
@@ -716,6 +716,7 @@ struct ich_laptop {static const struct ich_laptop ich_laptop[] = {/* devid, subvendor, subdev */ + {0x2653 ,0x1043 ,0x82d8 },/* ICH6M on Asus Eee PC */ {0x27DF ,0x0005 ,0x0280 },/* ICH7 on Acer 5602WLMi */ {0x27DF ,0x1025 ,0x0102 },/* ICH7 on Acer 5602aWLMi */ {0x27DF ,0x1025 ,0x0110 },/* ICH7 on Acer 3682WLMi */
Signature · 1 line
http://www.codemonkey.org.uk
Quoted 1 line · Dave Jones
The Asus Eee PC prints this during bootup..
never mind, someone just pointed out 01ce2601e4ba354fe1e25bb940817570d0c8ed4f which does the same thing.
Dave
Signature · 1 line
http://www.codemonkey.org.uk
drivers/ata/ata_piix.c struct ich_laptop { · line 722
Quoted 6 lines · Dave Jones
static const struct
ich_laptopich_laptop[] = {drivers/ata/ata_piix.c renamed from drivers/ata/ata_piix.c~ +1
-0/* devid, subvendor, subdev */ + { 0x2653, 0x1043, 0x82d8 }, /* ICH6M on Asus Eee PC */ { 0x27DF, 0x0005, 0x0280 }, /* ICH7 on Acer 5602WLMi */ { 0x27DF, 0x1025, 0x0102 }, /* ICH7 on Acer 5602aWLMi */ { 0x27DF, 0x1025, 0x0110 }, /* ICH7 on Acer 3682WLMi */
Don't the ACPI timing methods let us work this out without requiring machine specific knowledge? Or is the concern that some firmware will let us program high modes even if the cabling isn't up to it?
Signature · 1 line
Matthew Garrett | [email protected]
Quoted 11 lines · On Sat, 3 May 2008 10:58:17 +0100 Matthew Garrett <[email protected]> wrote:
drivers/ata/ata_piix.c struct ich_laptop { · line 722
Quoted 6 lines · Dave Jones
static const struct
ich_laptopich_laptop[] = {drivers/ata/ata_piix.c renamed from drivers/ata/ata_piix.c~ +1
-0/* devid, subvendor, subdev */ + { 0x2653, 0x1043, 0x82d8 }, /* ICH6M on Asus Eee PC */ { 0x27DF, 0x0005, 0x0280 }, /* ICH7 on Acer 5602WLMi */ { 0x27DF, 0x1025, 0x0102 }, /* ICH7 on Acer 5602aWLMi */ { 0x27DF, 0x1025, 0x0110 }, /* ICH7 on Acer 3682WLMi */Don't the ACPI timing methods let us work this out without requiring machine specific knowledge?
We don't currently sniff the ACPI timing data on Intel boxes - we can do so and there is a library routine but I'd be worried about the usual standard of BIOS code. Right now we only do it for chipsets which are so braindamaged we have no other choice or where the vendor specifically implemented and intended the ACPI data to be used for this (eg Nvidia)