libata-pmp: add support for Thermaltake BlackX Duet esata drive dock
authorPavel Herrmann <morpheus.ibis@gmail.com>
Thu, 28 Apr 2011 20:32:54 +0000 (22:32 +0200)
committerJeff Garzik <jgarzik@pobox.com>
Fri, 20 May 2011 00:48:59 +0000 (20:48 -0400)
Some errors still show up, but the dock works, both drives can be
accessed at the same time

The chip maker and designation is unknown - possibly jmicron JMB350?

Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/ata/libata-pmp.c

index 3120596d4afc9aaba293f100f7a075ace6438f9e..f06b7ea590d32b54ed48452013197e6eec910bad 100644 (file)
@@ -449,6 +449,16 @@ static void sata_pmp_quirks(struct ata_port *ap)
                 * otherwise.  Don't try hard to recover it.
                 */
                ap->pmp_link[ap->nr_pmp_links - 1].flags |= ATA_LFLAG_NO_RETRY;
+       } else if (vendor == 0x197b && devid == 0x2352) {
+               /* chip found in Thermaltake BlackX Duet, jmicron JMB350? */
+               ata_for_each_link(link, ap, EDGE) {
+                       /* SRST breaks detection and disks get misclassified
+                        * LPM disabled to avoid potential problems
+                        */
+                       link->flags |= ATA_LFLAG_NO_LPM |
+                                      ATA_LFLAG_NO_SRST |
+                                      ATA_LFLAG_ASSUME_ATA;
+               }
        }
 }