From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
Alan Stern <stern@rowland.harvard.edu>
Subject: [36/91] OHCI: fix regression caused by nVidia shutdown workaround
Date: Wed, 15 Jun 2011 17:15:33 -0700 [thread overview]
Message-ID: <20110616001612.861458045@clark.kroah.org> (raw)
In-Reply-To: <20110616001900.GA25375@kroah.com>
2.6.32-longterm review patch. If anyone has any objections, please let us know.
------------------
From: Alan Stern <stern@rowland.harvard.edu>
commit 2b7aaf503d56216b847c8265421d2a7d9b42df3e upstream.
This patch (as1463) fixes a regression caused by commit
3df7169e73fc1d71a39cffeacc969f6840cdf52b (OHCI: work around for nVidia
shutdown problem).
The original problem encountered by people using NVIDIA chipsets was
that USB devices were not turning off when the system shut down. For
example, the LED on an optical mouse would remain on, draining a
laptop's battery. The problem was caused by a bug in the chipset; an
OHCI controller in the Reset state would continue to drive a bus reset
signal even after system shutdown. The workaround was to put the
controllers into the Suspend state instead.
It turns out that later NVIDIA chipsets do not suffer from this bug.
Instead some have the opposite bug: If a system is shut down while an
OHCI controller is in the Suspend state, USB devices remain powered!
On other systems, shutting down with a Suspended controller causes the
system to reboot immediately. Thus, working around the original bug
on some machines exposes other bugs on other machines.
The best solution seems to be to limit the workaround to OHCI
controllers with a low-numbered PCI product ID. I don't know exactly
at what point NVIDIA changed their chipsets; the value used here is a
guess. So far it was worked out okay for all the people who have
tested it.
This fixes Bugzilla #35032.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Andre "Osku" Schmidt <andre.osku.schmidt@googlemail.com>
Tested-by: Yury Siamashka <yurand2@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/host/ohci-pci.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
--- a/drivers/usb/host/ohci-pci.c
+++ b/drivers/usb/host/ohci-pci.c
@@ -207,10 +207,18 @@ static int ohci_quirk_amd700(struct usb_
*/
static int ohci_quirk_nvidia_shutdown(struct usb_hcd *hcd)
{
+ struct pci_dev *pdev = to_pci_dev(hcd->self.controller);
struct ohci_hcd *ohci = hcd_to_ohci(hcd);
- ohci->flags |= OHCI_QUIRK_SHUTDOWN;
- ohci_dbg(ohci, "enabled nVidia shutdown quirk\n");
+ /* Evidently nVidia fixed their later hardware; this is a guess at
+ * the changeover point.
+ */
+#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_USB 0x026d
+
+ if (pdev->device < PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_USB) {
+ ohci->flags |= OHCI_QUIRK_SHUTDOWN;
+ ohci_dbg(ohci, "enabled nVidia shutdown quirk\n");
+ }
return 0;
}
next prev parent reply other threads:[~2011-06-16 7:08 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-16 0:19 [00/91] 2.6.32.42-longterm review Greg KH
2011-06-16 0:14 ` [01/91] ftrace: Only update the function code on write to filter files Greg KH
2011-06-16 0:14 ` [02/91] kmemleak: Do not return a pointer to an object that kmemleak did not get Greg KH
2011-06-16 0:15 ` [03/91] [CPUFREQ] CPU hotplug, re-create sysfs directory and symlinks Greg KH
2011-06-16 0:15 ` [04/91] [CPUFREQ] Fix memory leak in cpufreq_stat Greg KH
2011-06-16 0:15 ` [05/91] powerpc/kexec: Fix memory corruption from unallocated slaves Greg KH
2011-06-16 0:15 ` [06/91] powerpc/oprofile: Handle events that raise an exception without overflowing Greg KH
2011-06-16 0:15 ` [07/91] block: rescan partitions on invalidated devices on -ENOMEDIA Greg KH
2011-06-16 0:15 ` [08/91] block: add proper state guards to __elv_next_request Greg KH
2011-06-16 0:15 ` [09/91] mtd: mtdconcat: fix NAND OOB write Greg KH
2011-06-16 0:15 ` [10/91] x86, 64-bit: Fix copy_[to/from]_user() checks for the Greg KH
2011-06-16 0:15 ` [11/91] ext3: Fix fs corruption when make_indexed_dir() fails Greg KH
2011-06-16 0:15 ` [12/91] jbd: Fix forever sleeping process in do_get_write_access() Greg KH
2011-06-16 0:15 ` [13/91] jbd: fix fsync() tid wraparound bug Greg KH
2011-06-16 0:15 ` [14/91] ext4: release page cache in ext4_mb_load_buddy error path Greg KH
2011-06-16 0:15 ` [15/91] [SCSI] Fix Ultrastor asm snippet Greg KH
2011-06-16 0:15 ` [16/91] x86, amd: Do not enable ARAT feature on AMD processors below Greg KH
2011-06-16 0:15 ` [17/91] x86, amd: Use _safe() msr access for GartTlbWlk disable code Greg KH
2011-06-16 0:15 ` [18/91] rcu: Fix unpaired rcu_irq_enter() from locking selftests Greg KH
2011-06-16 0:15 ` [19/91] staging: usbip: fix wrong endian conversion Greg KH
2011-06-16 0:15 ` [20/91] Fix for buffer overflow in ldm_frag_add not sufficient Greg KH
2011-06-16 0:15 ` [21/91] seqlock: Dont smp_rmb in seqlock reader spin loop Greg KH
2011-06-16 0:15 ` [22/91] ALSA: HDA: Use one dmic only for Dell Studio 1558 Greg KH
2011-06-16 0:15 ` [23/91] ASoC: Ensure output PGA is enabled for line outputs in Greg KH
2011-06-16 0:15 ` [24/91] ASoC: Add some missing volume update bit sets for wm_hubs Greg KH
2011-06-16 0:15 ` [25/91] mm/page_alloc.c: prevent unending loop in Greg KH
2011-06-16 0:15 ` [26/91] PCI: allow matching of prefetchable resources to Greg KH
2011-06-16 0:15 ` [27/91] loop: limit max_part module param to DISK_MAX_PARTS Greg KH
2011-06-16 0:15 ` [28/91] loop: handle on-demand devices correctly Greg KH
2011-06-16 0:15 ` [29/91] USB: CP210x Add 4 Device IDs for AC-Services Devices Greg KH
2011-06-16 0:15 ` [30/91] USB: moto_modem: Add USB identifier for the Motorola VE240 Greg KH
2011-06-16 0:15 ` [31/91] USB: serial: ftdi_sio: adding support for TavIR STK500 Greg KH
2011-06-16 0:15 ` [32/91] USB: gamin_gps: Fix for data transfer problems in native Greg KH
2011-06-16 0:15 ` [33/91] usb/gadget: at91sam9g20 fix end point max packet size Greg KH
2011-06-16 0:15 ` [34/91] usb: gadget: rndis: dont test against req->length Greg KH
2011-06-16 0:15 ` [35/91] xhci: Fix full speed bInterval encoding Greg KH
2011-06-16 0:15 ` Greg KH [this message]
2011-06-16 0:15 ` [37/91] p54usb: add zoom 4410 usbid Greg KH
2011-06-16 0:15 ` [38/91] eCryptfs: Allow 2 scatterlist entries for encrypted Greg KH
2011-06-16 0:15 ` [39/91] UBIFS: fix a rare memory leak in ro to rw remounting path Greg KH
2011-06-16 0:15 ` [40/91] i8k: Avoid lahf in 64-bit code Greg KH
2011-06-16 0:15 ` [53/91] UBIFS: fix shrinker object count reports Greg KH
2011-06-16 0:15 ` [54/91] UBIFS: fix memory leak on error path Greg KH
2011-06-16 0:15 ` [55/91] nbd: limit module parameters to a sane value Greg KH
2011-06-17 20:36 ` [Stable-review] [00/91] 2.6.32.42-longterm review Nikola Ciprich
2011-06-20 22:28 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110616001612.861458045@clark.kroah.org \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=stable-review@kernel.org \
--cc=stable@kernel.org \
--cc=stern@rowland.harvard.edu \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®