From patchwork Sat May 14 10:28:04 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejun Heo X-Patchwork-Id: 784782 Received: from smtp1.linux-foundation.org (smtp1.linux-foundation.org [140.211.169.13]) by demeter2.kernel.org (8.14.4/8.14.3) with ESMTP id p4EAX1xZ032434 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Sat, 14 May 2011 10:33:24 GMT Received: from daredevil.linux-foundation.org (localhost [127.0.0.1]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id p4EAUi8w030622; Sat, 14 May 2011 03:31:12 -0700 Received: from mail-bw0-f47.google.com (mail-bw0-f47.google.com [209.85.214.47]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id p4EAUBMu030593 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=FAIL) for ; Sat, 14 May 2011 03:30:14 -0700 Received: by bwz5 with SMTP id 5so3026942bwz.6 for ; Sat, 14 May 2011 03:30:11 -0700 (PDT) Received: by 10.204.228.130 with SMTP id je2mr2172190bkb.166.1305368887590; Sat, 14 May 2011 03:28:07 -0700 (PDT) Received: from htj.dyndns.org ([130.75.117.88]) by mx.google.com with ESMTPS id c11sm1851210bkc.2.2011.05.14.03.28.06 (version=SSLv3 cipher=OTHER); Sat, 14 May 2011 03:28:06 -0700 (PDT) Date: Sat, 14 May 2011 12:28:04 +0200 From: Tejun Heo To: Linus Torvalds , Jeff Garzik Message-ID: <20110514102804.GB23665@htj.dyndns.org> References: <201105120025.34531.rjw@sisk.pl> <201105132222.11582.rjw@sisk.pl> <201105132244.29605.rjw@sisk.pl> <20110514101807.GA23665@htj.dyndns.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20110514101807.GA23665@htj.dyndns.org> User-Agent: Mutt/1.5.20 (2009-06-14) Received-SPF: pass (localhost is always allowed.) X-Spam-Status: No, hits=-4.409 required=5 tests=AWL, BAYES_00, OSDL_HEADER_SPF_PASS, OSDL_HEADER_SUBJECT_BRACKETED X-Spam-Checker-Version: SpamAssassin 3.2.4-osdl_revision__1.47__ X-MIMEDefang-Filter: lf$Revision: 1.188 $ X-Scanned-By: MIMEDefang 2.63 on 140.211.169.21 Cc: Jeff Garzik , LKML , linux-ide@vger.kernel.org, Jian Peng , Linux PM mailing list , Michael Leun Subject: [linux-pm] [PATCH v2.6.38-rc7] Revert "libata: ahci_start_engine compliant to AHCI spec" X-BeenThere: linux-pm@lists.linux-foundation.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: Linux power management List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.linux-foundation.org Errors-To: linux-pm-bounces@lists.linux-foundation.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Sat, 14 May 2011 10:33:24 +0000 (UTC) This reverts commit 270dac35c26433d06a89150c51e75ca0181ca7e4. The commits causes command timeouts on AC plug/unplug. It isn't yet clear why. As the commit was for a single rather obscure controller, revert the change for now. The problem was reported and bisected by Gu Rui in bug#34692. https://bugzilla.kernel.org/show_bug.cgi?id=34692 Also, reported by Rafael and Michael in the following thread. http://thread.gmane.org/gmane.linux.kernel/1138771 Signed-off-by: Tejun Heo Reported-by: Gu Rui Reported-by: Rafael J. Wysocki Reported-by: Michael Leun Cc: Jian Peng Cc: Jeff Garzik --- As we're already in -rc7, I'm sending the revert patch to both Jeff and Linus. Thank you. drivers/ata/libahci.c | 21 --------------------- 1 files changed, 0 insertions(+), 21 deletions(-) diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c index ff9d832..d38c40f 100644 --- a/drivers/ata/libahci.c +++ b/drivers/ata/libahci.c @@ -561,27 +561,6 @@ void ahci_start_engine(struct ata_port *ap) { void __iomem *port_mmio = ahci_port_base(ap); u32 tmp; - u8 status; - - status = readl(port_mmio + PORT_TFDATA) & 0xFF; - - /* - * At end of section 10.1 of AHCI spec (rev 1.3), it states - * Software shall not set PxCMD.ST to 1 until it is determined - * that a functoinal device is present on the port as determined by - * PxTFD.STS.BSY=0, PxTFD.STS.DRQ=0 and PxSSTS.DET=3h - * - * Even though most AHCI host controllers work without this check, - * specific controller will fail under this condition - */ - if (status & (ATA_BUSY | ATA_DRQ)) - return; - else { - ahci_scr_read(&ap->link, SCR_STATUS, &tmp); - - if ((tmp & 0xf) != 0x3) - return; - } /* start DMA */ tmp = readl(port_mmio + PORT_CMD);