Thread (14 messages) 14 messages, 4 authors, 2011-07-13

Re: SiI 3726 pmp doesn't work with 2.6.38 and Marvell 88SE9123 AHCI controller

From: Tejun Heo <tj@kernel.org>
Date: 2011-06-09 14:37:59
Subsystem: libata subsystem (serial and parallel ata drivers), the rest · Maintainers: Damien Le Moal, Niklas Cassel, Linus Torvalds

Hello,

On Tue, Jun 07, 2011 at 07:04:33PM +0100, Tim Small wrote:
quoted hunk ↗ jump to hunk
--- libata-pmp.c.orig 2010-11-22 04:34:38.000000000 +0900
+++ libata-pmp.c 2010-11-22 04:42:59.000000000 +0900
@@ -286,6 +286,8 @@
                        reason = "failed to write Sil3726 Private Register";
                        goto fail;
                }
+ /* nr_ports decrement */
+ nr_ports--;
        }
 
        if (print_info) {


... and was going to give it a go, but it's not really obvious to me
what it does (aside from the err great comment of course), and I
couldn't find any other references to this patch on the web, and thought
someone here might be able to shed some light on it...
3726 has an extra port for SEMB device (ie. it's not connected to
actual downstream port) and the above will make the kernel ignore that
port completely.  Maybe we shouldn't issue hardreset either.  Can you
please try the following patch (without the nr_ports-- hack)?
diff --git a/drivers/ata/libata-pmp.c b/drivers/ata/libata-pmp.c
index f06b7ea..3ab4784 100644
--- a/drivers/ata/libata-pmp.c
+++ b/drivers/ata/libata-pmp.c
@@ -398,7 +398,8 @@ static void sata_pmp_quirks(struct ata_port *ap)
 
 			/* port 5 is for SEMB device and it doesn't like SRST */
 			if (link->pmp == 5)
-				link->flags |= ATA_LFLAG_NO_SRST |
+				link->flags |= ATA_LFLAG_NO_HRST |
+					       ATA_LFLAG_NO_SRST |
 					       ATA_LFLAG_ASSUME_SEMB;
 		}
 	} else if (vendor == 0x1095 && devid == 0x4723) {

-- 
tejun
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help