Skip to content

Commit

Permalink
ata: Detect Delkin Devices compact flash
Browse files Browse the repository at this point in the history
I have a Delkin Devices compact flash card that isn't being recognized using the
SATA/PATA drivers.
The card is recognized and works with the deprecated ATA drivers.

The error I am seeing is:
ata1.00: failed to IDENTIFY (device reports invalid type, err_mask=0x0)

I tracked it down to ata_id_is_cfa() in include/linux/ata.h.
The Delkin card has id[0] set to 0x844a and id[83] set to 0.
This isn't what the kernel expects and is probably incorrect.

The simplest work-around is to add a check for 0x844a to ata_id_is_cfa().

Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
  • Loading branch information
bengardner authored and Jeff Garzik committed Mar 1, 2010
1 parent 7e044a1 commit 4b7d1c0
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion include/linux/ata.h
Original file line number Diff line number Diff line change
Expand Up @@ -841,7 +841,8 @@ static inline int ata_id_current_chs_valid(const u16 *id)

static inline int ata_id_is_cfa(const u16 *id)
{
if (id[ATA_ID_CONFIG] == 0x848A) /* Traditional CF */
if ((id[ATA_ID_CONFIG] == 0x848A) || /* Traditional CF */
(id[ATA_ID_CONFIG] == 0x844A)) /* Delkin Devices CF */
return 1;
/*
* CF specs don't require specific value in the word 0 anymore and yet
Expand Down

0 comments on commit 4b7d1c0

Please sign in to comment.