[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-usb-devel
Subject: Re: [linux-usb-devel] USB suspend problem with kernel 2.6.17
From: Tiago Salem Herrmann <salem () mandriva ! com>
Date: 2007-09-14 18:00:46
Message-ID: 46EACC4E.4000805 () mandriva ! com
[Download RAW message or body]
Alan Stern escreveu:
> On Thu, 13 Sep 2007, Tiago Salem Herrmann wrote:
>
>
>>> That file is missing lots of stuff. None of the debugging information
>>> is present. Did you remember to do
>>>
>>> echo 9 >/proc/sys/kernel/printk
>>>
>>> or the equivalent (Alt-SysRq-9)?
>>>
>>>
>>>
>> Oh, sorry. It was my mistake. A new file is at
>>
>> http://users.mandriva.com.br/~salem/dmesg_suspend3.txt
>>
>
> Hmmm. It's still a little weird, and I can't be certain of what's
> going wrong. It looks like the firmware may enable the EHCI controller
> and leave it in a configured state when the external drive is present,
> causing ehci-hcd to think that the controller didn't lose power. All
> that logic was messed up in kernels earlier than 2.6.20, anyway.
>
> So try out this patch and see what happens.
>
> Alan Stern
>
>
>
> Index: 2.6.17/drivers/usb/host/ehci-pci.c
> ===================================================================
> --- 2.6.17.orig/drivers/usb/host/ehci-pci.c
> +++ 2.6.17/drivers/usb/host/ehci-pci.c
> @@ -254,27 +254,6 @@ static int ehci_pci_resume(struct usb_hc
> /* Mark hardware accessible again as we are out of D3 state by now */
> set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
>
> - /* If CF is clear, we lost PCI Vaux power and need to restart. */
> - if (readl(&ehci->regs->configured_flag) != FLAG_CF)
> - goto restart;
> -
> - /* If any port is suspended (or owned by the companion),
> - * we know we can/must resume the HC (and mustn't reset it).
> - * We just defer that to the root hub code.
> - */
> - for (port = HCS_N_PORTS(ehci->hcs_params); port > 0; ) {
> - u32 status;
> - port--;
> - status = readl(&ehci->regs->port_status [port]);
> - if (!(status & PORT_POWER))
> - continue;
> - if (status & (PORT_SUSPEND | PORT_RESUME | PORT_OWNER)) {
> - usb_hcd_resume_root_hub(hcd);
> - return 0;
> - }
> - }
> -
> -restart:
> ehci_dbg(ehci, "lost power, restarting\n");
> usb_root_hub_lost_power(hcd->self.root_hub);
>
>
Hi Alan,
It seems that the patch fixed the problem. At least, I couldn't
reproduce the crash anymore.
Thank you so much for your help and the time you spent on this bug.
Tiago Salem Herrmann
Mandriva Conectiva
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic