# HG changeset patch
# User moel.mich
# Date 1325539041 0
# Node ID b2c6d350396de510f8d57d3eafbefb8c63f58c60
# Parent  756af5ee409e42797eac7f476b15f8c54141d0f4
Further restricted the identification for Indilinx SSDs to prevent Maxtor HDDs to be identified as Indilinx SSD.

diff -r 756af5ee409e -r b2c6d350396d Hardware/HDD/DebugSmart.cs
--- a/Hardware/HDD/DebugSmart.cs	Mon Jan 02 20:45:18 2012 +0000
+++ b/Hardware/HDD/DebugSmart.cs	Mon Jan 02 21:17:21 2012 +0000
@@ -205,7 +205,43 @@
          C6 000000000000 100 100 0 
          C7 810100000000 253 253 0 
          E8 240000000000 60  60  10
-         E9 630594120000 92  92  0")
+         E9 630594120000 92  92  0"),
+
+      new Drive("Maxtor 6L300R0", null, 10,    
+        @"3   9E5500000000 183 193         
+          4   0A0D00000000 252 252         
+          5   010000000000 253 253         
+          6   000000000000 253 253         
+          7   000000000000 252 253         
+          8   DFA700000000 224 245         
+          9   CE5700000000 155 155         
+          10  000000000000 252 253         
+          11  000000000000 252 253         
+          12  BA0400000000 250 250         
+          192 000000000000 253 253         
+          193 000000000000 253 253         
+          194 3D0000000000 253 42          
+          195 5D1F00000000 252 253         
+          196 000000000000 253 253         
+          197 010000000000 253 253         
+          198 000000000000 253 253         
+          199 030000000000 196 199         
+          200 000000000000 252 253         
+          201 000000000000 252 253         
+          202 000000000000 252 253         
+          203 000000000000 252 253         
+          204 000000000000 252 253         
+          205 000000000000 252 253         
+          207 000000000000 252 253         
+          208 000000000000 252 253         
+          209 EA0000000000 234 234         
+          210 000000000000 252 253         
+          211 000000000000 252 253         
+          212 000000000000 252 253         
+          130 5B0300010002 1   9           
+          59  FC3203030100 205 0           
+          1   000000000000 0   0           
+          144 000000000000 0   34 ")
       };
 
     public IntPtr OpenDrive(int driveNumber) {
diff -r 756af5ee409e -r b2c6d350396d Hardware/HDD/SSDIndilinx.cs
--- a/Hardware/HDD/SSDIndilinx.cs	Mon Jan 02 20:45:18 2012 +0000
+++ b/Hardware/HDD/SSDIndilinx.cs	Mon Jan 02 21:17:21 2012 +0000
@@ -40,33 +40,36 @@
 namespace OpenHardwareMonitor.Hardware.HDD {
   using System.Collections.Generic;
 
-  [NamePrefix(""), RequireSmart(0xD1)]
+  [NamePrefix(""), RequireSmart(0x01), RequireSmart(0x09), RequireSmart(0x0C), 
+    RequireSmart(0xD1), RequireSmart(0xCE), RequireSmart(0xCF)]
   internal class SSDIndilinx : AbstractHarddrive {
 
     private static readonly IEnumerable<SmartAttribute> smartAttributes =
       new List<SmartAttribute> {
-
-     new SmartAttribute(0xB8, SmartNames.InitialBadBlockCount),
-     new SmartAttribute(0xC3, SmartNames.ProgramFailure),
-     new SmartAttribute(0xC4, SmartNames.EraseFailure),
-     new SmartAttribute(0xC5, SmartNames.ReadFailure),
-     new SmartAttribute(0xC6, SmartNames.SectorsRead),
-     new SmartAttribute(0xC7, SmartNames.SectorsWritten),
-     new SmartAttribute(0xC8, SmartNames.ReadCommands),
-     new SmartAttribute(0xC9, SmartNames.WriteCommands),
-     new SmartAttribute(0xCA, SmartNames.BitErrors),
-     new SmartAttribute(0xCB, SmartNames.CorrectedErrors),
-     new SmartAttribute(0xCC, SmartNames.BadBlockFullFlag),
-     new SmartAttribute(0xCD, SmartNames.MaxCellCycles),
-     new SmartAttribute(0xCE, SmartNames.MinErase),
-     new SmartAttribute(0xCF, SmartNames.MaxErase),
-     new SmartAttribute(0xD0, SmartNames.AverageEraseCount),
-     new SmartAttribute(0xD1, SmartNames.RemainingLife,
-       null, SensorType.Level, 0),
-     new SmartAttribute(0xD2, SmartNames.UnknownUnique),
-     new SmartAttribute(0xD3, SmartNames.SataErrorCountCrc),
-     new SmartAttribute(0xD4, SmartNames.SataErrorCountHandshake),
-    };
+        new SmartAttribute(0x01, SmartNames.ReadErrorRate),
+        new SmartAttribute(0x09, SmartNames.PowerOnHours),
+        new SmartAttribute(0x0C, SmartNames.PowerCycleCount),
+        new SmartAttribute(0xB8, SmartNames.InitialBadBlockCount),
+        new SmartAttribute(0xC3, SmartNames.ProgramFailure),
+        new SmartAttribute(0xC4, SmartNames.EraseFailure),
+        new SmartAttribute(0xC5, SmartNames.ReadFailure),
+        new SmartAttribute(0xC6, SmartNames.SectorsRead),
+        new SmartAttribute(0xC7, SmartNames.SectorsWritten),
+        new SmartAttribute(0xC8, SmartNames.ReadCommands),
+        new SmartAttribute(0xC9, SmartNames.WriteCommands),
+        new SmartAttribute(0xCA, SmartNames.BitErrors),
+        new SmartAttribute(0xCB, SmartNames.CorrectedErrors),
+        new SmartAttribute(0xCC, SmartNames.BadBlockFullFlag),
+        new SmartAttribute(0xCD, SmartNames.MaxCellCycles),
+        new SmartAttribute(0xCE, SmartNames.MinErase),
+        new SmartAttribute(0xCF, SmartNames.MaxErase),
+        new SmartAttribute(0xD0, SmartNames.AverageEraseCount),
+        new SmartAttribute(0xD1, SmartNames.RemainingLife,
+          null, SensorType.Level, 0),
+        new SmartAttribute(0xD2, SmartNames.UnknownUnique),
+        new SmartAttribute(0xD3, SmartNames.SataErrorCountCrc),
+        new SmartAttribute(0xD4, SmartNames.SataErrorCountHandshake)
+      };
 
     public SSDIndilinx(ISmart smart, string name, string firmwareRevision, 
       int index, ISettings settings)
diff -r 756af5ee409e -r b2c6d350396d Properties/AssemblyVersion.cs
--- a/Properties/AssemblyVersion.cs	Mon Jan 02 20:45:18 2012 +0000
+++ b/Properties/AssemblyVersion.cs	Mon Jan 02 21:17:21 2012 +0000
@@ -37,5 +37,5 @@
 
 using System.Reflection;
 
-[assembly: AssemblyVersion("0.3.2.6")]
-[assembly: AssemblyInformationalVersion("0.3.2.6 Alpha")]
\ No newline at end of file
+[assembly: AssemblyVersion("0.3.2.7")]
+[assembly: AssemblyInformationalVersion("0.3.2.7 Alpha")]
\ No newline at end of file