summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-05-06 20:29:50 +0200
committerLennart Poettering <lennart@poettering.net>2009-05-06 20:29:50 +0200
commit15ffa130b985fb057d49d9b2ae287420c42ff980 (patch)
tree6f48866bb49cefd2f74f24bcd860a286e9542b32
parent52ed84a3d137d4073de36b10b9311ba63f1a162f (diff)
black list a few attributes on FUJITSU MHY2120BH/0085000B
-rw-r--r--atasmart.c29
1 files 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) {