From 470e91f227f53e9a9a561a0fd9a29ace5ecedc86 Mon Sep 17 00:00:00 2001
From: manfred99 <manfred99@4ea69e1a-61f1-4043-bf83-b5c94c648137>
Date: Sun, 25 Oct 2009 23:00:19 +0000
Subject: [PATCH] attribute updates: - change attributes 202,204,205 to the
 meanings as found in wdidle3.exe   retain old entries as comments (possible
 Fujitsu use) - add attribute 240 as found in Fujitsu MHY2xxxBH

git-svn-id: https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk@2969 4ea69e1a-61f1-4043-bf83-b5c94c648137
---
 smartmontools/CHANGELOG       |  5 +++++
 smartmontools/atacmds.cpp     | 29 +++++++++++++++++------------
 smartmontools/knowndrives.cpp |  3 ++-
 3 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/smartmontools/CHANGELOG b/smartmontools/CHANGELOG
index c4bef0be4..768177a51 100644
--- a/smartmontools/CHANGELOG
+++ b/smartmontools/CHANGELOG
@@ -43,6 +43,11 @@ NOTES FOR FUTURE RELEASES: see TODO file.
 
 <DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>
 
+  [MS] attribute updates:
+       - change attributes 202,204,205 to the meanings as found in wdidle3.exe
+         retain old entries as comments (possible Fujitsu use)
+       - add attribute 240 as found in Fujitsu MHY2xxxBH
+
   [MS] attributes updates:
        - attributes 225, 232 and 233 for Intel X25-E SSD
        - non-conflicting attributes extracted from wdidle3.exe
diff --git a/smartmontools/atacmds.cpp b/smartmontools/atacmds.cpp
index f1cf9d6a9..13755f988 100644
--- a/smartmontools/atacmds.cpp
+++ b/smartmontools/atacmds.cpp
@@ -180,6 +180,7 @@ const vendor_attr_arg_entry vendor_attribute_args[] = {
   {201,"detectedtacount", 1},
   {220,"temp", 1},
   {225,"hostwritescount", 1},
+  {240,"transfererrorrate", 1},
   {  0,"raw8", 253},
   {  0,"raw16", 254},
   {  0,"raw48", 255},
@@ -2127,9 +2128,8 @@ void ataPrintSmartAttribName(char * out, unsigned char id, const unsigned char *
     }
     break;
   case 202:
-    // Fujitsu
-    name="TA_Increase_Count";
-    // Maxtor: Data Address Mark Errors
+    // Fujitsu: "TA_Increase_Count"
+    name="Data_Address_Mark_Errs";
     break;
   case 203:
     // Fujitsu
@@ -2137,14 +2137,12 @@ void ataPrintSmartAttribName(char * out, unsigned char id, const unsigned char *
     // Maxtor: ECC Errors
     break;
   case 204:
-    // Fujitsu
-    name="Shock_Count_Write_Opern";
-    // Maxtor: Soft ECC Correction
+    // Fujitsu: "Shock_Count_Write_Opern"
+    name="Soft_ECC_Correction";
     break;
   case 205:
-    // Fujitsu
-    name="Shock_Rate_Write_Opern";
-    // Maxtor: Thermal Aspirates
+    // Fujitsu: "Shock_Rate_Write_Opern"
+    name="Thermal_Asperity_Rate";
     break;
   case 206:
     // Fujitsu
@@ -2219,9 +2217,16 @@ void ataPrintSmartAttribName(char * out, unsigned char id, const unsigned char *
     // seen in Intel X25-E SSD
     name="Media_Wearout_Indicator";
     break;
-  case 240:
-    name="Head_Flying_Hours";
-    break;
+ case 240:
+    switch (val) {
+    case 1:
+      // seen in Fujitsu MHY2xxxBH
+      name="Transfer_Error_Rate";
+      break;
+    default:
+      name="Head_Flying_Hours";
+      break;
+    }
   case 241:
     name="Total_LBAs_Written";
     break;
diff --git a/smartmontools/knowndrives.cpp b/smartmontools/knowndrives.cpp
index 5b3220a77..b2b86063c 100644
--- a/smartmontools/knowndrives.cpp
+++ b/smartmontools/knowndrives.cpp
@@ -221,7 +221,8 @@ static const drive_settings builtin_knowndrives[] = {
   },
   { "Fujitsu MHY2 BH series",
     "FUJITSU MHY2(04|06|08|10|12|16|20|25)0BH.*",
-    "", "", ""
+    "", "",
+    "-v 240,transfererrorrate"
   },
   { "Fujitsu MHW2 BH series",
     "FUJITSU MHW2(04|06|08|10|12|16)0BH.*",
-- 
GitLab