From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Subject: Re: Changes to power management in ehci-tegra Date: Mon, 16 Apr 2012 14:37:17 -0600 Message-ID: <4F8C82FD.2030600@wwwdotorg.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Sender: linux-tegra-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Alan Stern Cc: Benoit Goby , linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, USB list List-Id: linux-tegra@vger.kernel.org On 04/13/2012 03:00 PM, Alan Stern wrote: > On Fri, 13 Apr 2012, Stephen Warren wrote: > >> On 04/13/2012 01:46 PM, Alan Stern wrote: >>> On Fri, 13 Apr 2012, Stephen Warren wrote: >>>> I've tested the patch, and can unplug a USB device, wait 10 seconds, >>>> then plug it back in, and everything works as expected. >>>> >>>> However, I don't notice /sys/devices/.../power/runtime_status ever >>>> saying anything other than active, and I can't cat autosuspend_delay_ms, >>>> so I assume I'm still not triggering the path you want me to test. I do >>>> have PM_RUNTIME turned on. Any ideas? Do I need some patch to the USB >>>> core to enable this? I tested on next-20120413 plus a few local patches. >>> >>> autosuspend_delay_ms isn't relevant here; the controller should be >>> suspended with no delay as soon as the root hub suspends. No other >>> patches should be needed; it sounds like you're doing everything right. >>> >>> If you enable CONFIG_PM_ADVANCED_DEBUG along with CONFIG_PM_RUNTIME, >>> what do all the other power/runtime_* files show? >> >> The EHCI controller's active_kids count stays at 1 all the time. I >> assume that's the root USB hub device. Looking in its power/ directory, >> I see that even when nothing is plugged in, runtime_status==enabled, >> even with no active_kids or runtime_usage: > > That does indeed sound like a bug. > >> [ 242.611209] usb 3-1: USB disconnect, device number 4 >> root@ilyich:/sys/devices/tegra-ehci.2/usb3/power# cat async >> enabled >> root@ilyich:/sys/devices/tegra-ehci.2/usb3/power# cat autosuspend_delay_ms >> 0 > > Odd... This should contain 2000. Maybe some userspace program has > changed it? Either value would be okay, however. > > You could try writing 2000 to this file, then plugging in a device and > unplugging it. The root hub should then suspend 2 seconds after you > unplug the device. There's no difference if I write 2000 to this file. I've tried turning on dynamic debug for the entire of USB. None of those fire, which I believe implies there aren't any attempted suspends of the Tegra EHCI controller that fail. I also added a few extra printks to the Tegra EHCI controller's suspend/resume functions which don't fire. Is this anything to do with it: ./ehci-hub.c:615: /* FIXME autosuspend idle root hubs */ I'm at a loss how to do anything more useful here.