From: Tejun Heo <htejun@gmail.com>
Date: Sun, 23 Sep 2007 04:19:53 +0000 (+0900)
Subject: libata-pmp: update ata_eh_reset() for PMP
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=3495de733633d24ee97852080b737b436c110d6e;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git

libata-pmp: update ata_eh_reset() for PMP

PMP always requires SRST to be enabled.  Also, hardreset reports
classification code from the first device when PMP is attached, not
from the PMP.  Update ata_eh_reset() such that followup softreset is
performed if the controller is PMP capable and the host link is being
reset.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
---

diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 60186f8ac3a1..687419b66708 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2003,6 +2003,8 @@ static int ata_eh_followup_srst_needed(struct ata_link *link,
 		return 1;
 	if (rc != 0)
 		return 0;
+	if ((link->ap->flags & ATA_FLAG_PMP) && ata_is_host_link(link))
+		return 1;
 	if (classify && !(link->flags & ATA_LFLAG_ASSUME_CLASS) &&
 	    classes[0] == ATA_DEV_UNKNOWN)
 		return 1;