From: Tejun Heo Date: Mon, 3 Nov 2008 10:27:07 +0000 (+0900) Subject: libata: mask off DET when restoring SControl for detach X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=299246f9a2a4c5c531863d72bad7ebd0de213de9;p=GitHub%2FLineageOS%2Fandroid_kernel_samsung_universal7580.git libata: mask off DET when restoring SControl for detach libata restores SControl on detach; however, trying to restore non-zero DET can cause undeterministic behavior including PMP device going offline till power cycling. Mask off DET when restoring SControl. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik --- diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 91b478f2055..622350d9b2e 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -5936,7 +5936,7 @@ static void ata_port_detach(struct ata_port *ap) * to us. Restore SControl and disable all existing devices. */ __ata_port_for_each_link(link, ap) { - sata_scr_write(link, SCR_CONTROL, link->saved_scontrol); + sata_scr_write(link, SCR_CONTROL, link->saved_scontrol & 0xff0); ata_link_for_each_dev(dev, link) ata_dev_disable(dev); }