diff mbox

support for PMP used in TT BlackX Duet drive dock

Message ID 201104071854.10911.morpheus.ibis@gmail.com
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

Pavel Herrmann April 7, 2011, 4:54 p.m. UTC
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
diff mbox

Patch

From f1c2e6ec61c978846d6d3dadacc7c1b2997140a6 Mon Sep 17 00:00:00 2001
From: Pavel Herrmann <morpheus.ibis@gmail.com>
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@gmail.com>
---
 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..9ceef00 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