From 15ffa130b985fb057d49d9b2ae287420c42ff980 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 6 May 2009 20:29:50 +0200 Subject: black list a few attributes on FUJITSU MHY2120BH/0085000B --- atasmart.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/atasmart.c b/atasmart.c index bd78c9f..d0ead75 100644 --- a/atasmart.c +++ b/atasmart.c @@ -1205,7 +1205,10 @@ typedef enum SkSmartQuirk { SK_SMART_QUIRK_194_10XCELSIUS = 32, SK_SMART_QUIRK_194_UNKNOWN = 64, SK_SMART_QUIRK_200_WRITEERRORCOUNT = 128, - SK_SMART_QUIRK_201_DETECTEDTACOUNT = 256 + SK_SMART_QUIRK_201_DETECTEDTACOUNT = 256, + SK_SMART_QUIRK_9_UNKNOWN = 512, + SK_SMART_QUIRK_197_UNKNOWN = 1024, + SK_SMART_QUIRK_198_UNKNOWN = 2048, } SkSmartQuirk; /* %STRINGPOOLSTART% */ @@ -1219,6 +1222,9 @@ static const char *quirk_name[] = { "194_UNKNOWN", "200_WRITEERRORCOUNT", "201_DETECTEDTACOUNT", + "9_UNKNOWN", + "197_UNKNOWN", + "198_UNKNOWN", NULL }; /* %STRINGPOOLSTOP% */ @@ -1232,6 +1238,12 @@ typedef struct SkSmartQuirkDatabase { static const SkSmartQuirkDatabase quirk_database[] = { { /*** Fujitsu */ + "^FUJITSU MHY2120BH$", + "^0085000B$", /* seems to be specific to this firmware */ + SK_SMART_QUIRK_9_UNKNOWN| + SK_SMART_QUIRK_197_UNKNOWN| + SK_SMART_QUIRK_198_UNKNOWN + }, { "^FUJITSU MHR2040AT$", NULL, SK_SMART_QUIRK_9_POWERONSECONDS| @@ -1452,7 +1464,8 @@ static const SkSmartAttributeInfo *lookup_attribute(SkDisk *d, uint8_t id) { "power-on-half-minutes", SK_SMART_ATTRIBUTE_UNIT_MSECONDS }; return &a; - } + } else if (quirk & SK_SMART_QUIRK_9_UNKNOWN) + return NULL; /* %STRINGPOOLSTOP% */ break; @@ -1482,6 +1495,18 @@ static const SkSmartAttributeInfo *lookup_attribute(SkDisk *d, uint8_t id) { break; + case 197: + if (quirk & SK_SMART_QUIRK_197_UNKNOWN) + return NULL; + + break; + + case 198: + if (quirk & SK_SMART_QUIRK_198_UNKNOWN) + return NULL; + + break; + case 200: /* %STRINGPOOLSTART% */ if (quirk & SK_SMART_QUIRK_200_WRITEERRORCOUNT) { -- cgit