On Thursday 07 of April 2011 18:54:10 I wrote: > Hi, > > Current linux kernel failes to communicate with PMP chip used in > Thermaltake BlackX Duet (ST0015E) external drive, adding same quirks (some > of them may not be necessary) as other chips have fixes it (tested on AHCI > driver, on JMB363 and ICH10R) > > Please note that this patch is purposefully not in state includable in > mainline, it is meant as a base for someone with more understanding of > libata to make a proper fix > > Thanks > Pavel Herrmann the patch included in the last mail had a copy/paste error, this one is fixed Pavel Herrmann
From 55617331f5d1ef24f7fb60f9640a2363e3649cdf Mon Sep 17 00:00:00 2001 From: Pavel Herrmann <morpheus.ibis@xxxxxxxxx> Date: Thu, 7 Apr 2011 18:15:26 +0200 Subject: [PATCH] libata-pmp: add support for Thermaltake BlackX Duet esata drive dock 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@xxxxxxxxx> --- drivers/ata/libata-pmp.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/drivers/ata/libata-pmp.c b/drivers/ata/libata-pmp.c index 3120596..abc8474 100644 --- a/drivers/ata/libata-pmp.c +++ b/drivers/ata/libata-pmp.c @@ -449,6 +449,14 @@ 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 == 0x1095 && devid == 0x4726) { + /* chip found in Thermaltake BlackX Duet */ + ata_for_each_link(link, ap, EDGE) { + /* Use same quirks as sil chips to make it work */ + link->flags |= ATA_LFLAG_NO_LPM | + ATA_LFLAG_NO_SRST | + ATA_LFLAG_ASSUME_ATA; + } } } -- 1.7.4.1