Thread (1 message) 1 message, 1 author, 2012-06-24

Re: [PATCH] PCI: add NO_D3_DURING_SLEEP flag and revert 151b61284776be2

From: Alan Stern <hidden>
Date: 2012-06-24 01:52:23

Possibly related (same subject, not in this thread)

On Sat, 23 Jun 2012, Pavel Pisa wrote:
quoted hunk
Hello Alan and all others,

I have observed similar lock during suspend to RAM on ASUS K52F

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: ASUSTeK Computer Inc.
        Product Name: K52F

BIOS Information
        Vendor: American Megatrends Inc.
        Version: K52F.218
        Release Date: 07/12/2011

00:00.0 Host bridge [0600]: Intel Corporation Core Processor DRAM Controller [8086:0044] (rev 18)
00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 18)
00:16.0 Communication controller [0780]: Intel Corporation 5 Series/3400 Series Chipset HECI Controller [8086:3b64] (rev 06)
...
00:1a.0 USB Controller [0c03]: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller [8086:3b3c] (rev 06)
00:1d.0 USB Controller [0c03]: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller [8086:3b34] (rev 06)

When I unbind EHCI controllers
  # Unbind ehci_hcd for first device 0000:00:1a.0:
  echo -n "0000:00:1a.0" >/sys/bus/pci/drivers/ehci_hcd/unbind
  # Unbind ehci_hcd for second device 0000:00:1d.0:
  echo -n "0000:00:1d.0" >/sys/bus/pci/drivers/ehci_hcd/unbind
then laptop goes to suspend after
  echo mem >/sys/power/state  
and when power button is pressed it restores to functional state.
It works quite stable repeatedly.

This is similar to the problem solved by your patch.

I have tried 3.4.4 with kernel and added quirk

---
 drivers/pci/quirks.c |    2 ++
 1 file changed, 2 insertions(+)

Index: linux-3.4/drivers/pci/quirks.c
===================================================================
--- linux-3.4.orig/drivers/pci/quirks.c 2012-06-23 16:37:14.582568585 +0200
+++ linux-3.4/drivers/pci/quirks.c      2012-06-23 16:38:38.378571372 +0200
@@ -2942,6 +2942,8 @@
 }
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1c26, asus_ehci_no_d3);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1c2d, asus_ehci_no_d3);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x3b3c, asus_ehci_no_d3);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x3b34, asus_ehci_no_d3);

 static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f,
                          struct pci_fixup *end)
This quirk allows laptop suspend and resume correctly when nothing
is connected to the USB or even when mounted FLASH disk is connected.
The USB drive works correctly after resume.
Do you want to submit your patch for inclusion in the kernel?  If you 
do, you should follow the instructions in 
Documentation/SubmittingPatches.

Also, you should modify the comment before the asus_ehci_no_d3() 
routine.  Mention the 5 Series/3400 Series chipset in addition to the 6 
Series/C200 Series chipset.

Or if you prefer, I could submit a modified version of your patch.
DVB tuner is connected

Bus 002 Device 003: ID 0b48:300d TechnoTrend AG TT-connect CT-3650 CI

then suspend proceeds correctly but resume locks hard again.

This seems to be problem in dvb_usb_ttusb2 driver.

But anyway I think, that adding 0x3b3c and 0x3b34 to the quirk list
could help more people.
Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help