From patchwork Sat Sep 25 01:26:31 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Len Brown X-Patchwork-Id: 208132 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id o8P1Qo0l021775 for ; Sat, 25 Sep 2010 01:26:51 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752885Ab0IYB0u (ORCPT ); Fri, 24 Sep 2010 21:26:50 -0400 Received: from vms173019pub.verizon.net ([206.46.173.19]:36210 "EHLO vms173019pub.verizon.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752846Ab0IYB0t (ORCPT ); Fri, 24 Sep 2010 21:26:49 -0400 Received: from localhost.localdomain ([unknown] [74.104.161.234]) by vms173019.mailsrvcs.net (Sun Java(tm) System Messaging Server 7u2-7.02 32bit (built Apr 16 2009)) with ESMTPA id <0L9A00KQ140A8W3Q@vms173019.mailsrvcs.net>; Fri, 24 Sep 2010 20:26:40 -0500 (CDT) Received: from localhost.localdomain (x980 [127.0.0.1]) by localhost.localdomain (8.14.4/8.14.4) with ESMTP id o8P1QWpX028896; Fri, 24 Sep 2010 21:26:32 -0400 Received: from localhost (lenb@localhost) by localhost.localdomain (8.14.4/8.14.4/Submit) with ESMTP id o8P1QVEN028891; Fri, 24 Sep 2010 21:26:31 -0400 X-Authentication-warning: localhost.localdomain: lenb owned process doing -bs Date: Fri, 24 Sep 2010 21:26:31 -0400 (EDT) From: Len Brown X-X-Sender: lenb@localhost.localdomain To: Linux Power Management List Cc: linux-pci@vger.kernel.org, Linux Kernel Mailing List Subject: [PATCH] intel_idle: PCI quirk to prevent Lenovo Ideapad s10-3 boot hang Message-id: User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Sat, 25 Sep 2010 01:26:51 +0000 (UTC) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 197e38f..a8dbf2e 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -155,6 +155,26 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_2, quirk_isa_d DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_3, quirk_isa_dma_hangs); /* + * Intel NM10 "TigerPoint" LPC PM1a_STS.BM_STS must be clear + * for some HT machines to use C4 w/o hanging. + */ +static void __devinit quirk_tigerpoint_bm_sts(struct pci_dev *dev) +{ + u32 pmbase; + u16 pm1a; + + pci_read_config_dword(dev, 0x40, &pmbase); + pmbase = pmbase & 0xff80; + pm1a = inw(pmbase); + + if (pm1a & 0x10) { + dev_info(&dev->dev, FW_BUG "TigerPoint LPC.BM_STS cleared\n"); + outw(0x10, pmbase); + } +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TGP_LPC, quirk_tigerpoint_bm_sts); + +/* * Chipsets where PCI->PCI transfers vanish or hang */ static void __devinit quirk_nopcipci(struct pci_dev *dev)