If word 53 bit 1 isn't set, the maximum PIO mode is indicated by the upper 8 bits of word 51, not the lower 8 bits. Fixes PIO mode detection on old Compact Flash cards. Signed-off-by: Lennert Buytenhek <buytenh@xxxxxxxxxxxxxx> Index: linux-2.6.19/drivers/ata/libata-core.c =================================================================== --- linux-2.6.19.orig/drivers/ata/libata-core.c +++ linux-2.6.19/drivers/ata/libata-core.c @@ -1037,7 +1048,7 @@ static unsigned int ata_id_xfermask(cons * the PIO timing number for the maximum. Turn it into * a mask. */ - u8 mode = id[ATA_ID_OLD_PIO_MODES] & 0xFF; + u8 mode = (id[ATA_ID_OLD_PIO_MODES] >> 8) & 0xFF; if (mode < 5) /* Valid PIO range */ pio_mask = (2 << mode) - 1; else - 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