aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ata.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-02-12 07:08:57 -0500
committerIngo Molnar <mingo@elte.hu>2009-02-12 07:08:57 -0500
commit871cafcc962fa1655c44b4f0e54d4c5cc14e273c (patch)
treefdb7bc65d2606c85b7be6c33ba0dfd5b4e472245 /include/linux/ata.h
parentcf2592f59c0e8ed4308adbdb2e0a88655379d579 (diff)
parentb578f3fcca1e78624dfb5f358776e63711d7fda2 (diff)
Merge branch 'linus' into core/softlockup
Diffstat (limited to 'include/linux/ata.h')
-rw-r--r--include/linux/ata.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h
index a53318b8cbd0..08a86d5cdf1b 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -731,12 +731,17 @@ static inline int ata_id_current_chs_valid(const u16 *id)
731 731
732static inline int ata_id_is_cfa(const u16 *id) 732static inline int ata_id_is_cfa(const u16 *id)
733{ 733{
734 if (id[ATA_ID_CONFIG] == 0x848A) /* Standard CF */ 734 if (id[ATA_ID_CONFIG] == 0x848A) /* Traditional CF */
735 return 1; 735 return 1;
736 /* Could be CF hiding as standard ATA */ 736 /*
737 if (ata_id_major_version(id) >= 3 && 737 * CF specs don't require specific value in the word 0 anymore and yet
738 id[ATA_ID_COMMAND_SET_1] != 0xFFFF && 738 * they forbid to report the ATA version in the word 80 and require the
739 (id[ATA_ID_COMMAND_SET_1] & (1 << 2))) 739 * CFA feature set support to be indicated in the word 83 in this case.
740 * Unfortunately, some cards only follow either of this requirements,
741 * and while those that don't indicate CFA feature support need some
742 * sort of quirk list, it seems impractical for the ones that do...
743 */
744 if ((id[ATA_ID_COMMAND_SET_2] & 0xC004) == 0x4004)
740 return 1; 745 return 1;
741 return 0; 746 return 0;
742} 747}