When checking for the CFA feature set support, ata_id_is_cfa() tests bit 2 in word 82 of the identify data instead the word 83; it also checks the ATA/PI standard support in the word 80 -- which the CompactFlash specification has as reserved, this having no slightest chance to work on CF drives that don't have 0x848A in the word 0. Use instead the usual validity check: word 83 bit 14 must be set, bit 15 cleared. Signed-off-by: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> --- The patch itself hasn't changed, only the description has. I'm not sure who should queue this patch... it's against Linus' tree. include/linux/ata.h | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) Index: linux-2.6/include/linux/ata.h =================================================================== --- linux-2.6.orig/include/linux/ata.h +++ linux-2.6/include/linux/ata.h @@ -734,9 +734,8 @@ static inline int ata_id_is_cfa(const u1 if (id[ATA_ID_CONFIG] == 0x848A) /* Standard CF */ return 1; /* Could be CF hiding as standard ATA */ - if (ata_id_major_version(id) >= 3 && - id[ATA_ID_COMMAND_SET_1] != 0xFFFF && - (id[ATA_ID_COMMAND_SET_1] & (1 << 2))) + if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) == 0x4000 && + (id[ATA_ID_COMMAND_SET_2] & (1 << 2))) return 1; return 0; } -- 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