Re: [PATCH 00/16] OMAP USB Host cleanup
On Tue, Nov 27, 2012 at 6:30 PM, Felipe Balbi wrote: > On Tue, Nov 27, 2012 at 04:42:47PM +0200, Roger Quadros wrote: >> Kevin, >> >> I gave a quick look at the issue. It seems that the High Speed USB Host >> module is kept in Software forced wakeup mode as a quick fix workaround >> to a bunch of silicon erratas. And we do nothing on USB global suspend. >> That's why CORE does not hit retention. >> >> If we runtime_suspend the USB host module on USB global suspend then it >> will be put in Force Idle mode. This will allow CORE to hit retention >> but then we will no longer be able to detect USB device connect events. >> >> So, till we have a better solution I will suggest to keep EHCI_HCD as a >> module in omap2plus_defconfig. > > I guess that "better solution" would be I/O pads wakeup interrupts ? But > I don't think that's already in mainline, is it ? I believe there was attempt to mainline that but it was rejected by Tony: http://marc.info/?l=linux-omap&m=134727428329745&w=2 Hopefully someone can come up with a suitable solution, not being able to suspend and broken power saving with EHCI sucks :( -- GraÅžvydas -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/16] OMAP USB Host cleanup
On Tue, Nov 27, 2012 at 04:42:47PM +0200, Roger Quadros wrote: > On 11/20/2012 01:22 AM, Kevin Hilman wrote: > > Roger Quadros writes: > > > >> Kevin, > >> > >> On 11/16/2012 10:08 PM, Kevin Hilman wrote: > >>> Roger Quadros writes: > >>> > Hi, > > This patchset addresses the following > > - Avoid addressing clocks one by one by name and use a for loop + bunch > of cleanups. > - Get number of channels/ports dynamically either from revision register > or from platform data. Avoids getting clocks that are not present. > - Add OMAP5 and HSIC mode (Not tested) > - Save power on Panda when EHCI driver is not loaded. > > >>> > >>> Seeing the clock changes/cleanups, I gave this a spin on OMAP3 > >>> (3530/Beagle, 3530/Overo, 3730/Beagle-xM, 3730/OveroSTORM) to see if it > >>> fixed up the problem where CORE does not hit retention in idle when USB > >>> host is enabled, even with no devices attached. > >>> > >>> Unfortunately, it didn't help. :( > >> > >> oh that's bad. But this series wasn't meant to fix that ;). > > > > Oh, sorry. Yeah, I didn't mean this as a nak. Just an opportunity to > > complain to the maintainers that a long-standing issue needs to be > > addressed. > > > > Kevin, > > I gave a quick look at the issue. It seems that the High Speed USB Host > module is kept in Software forced wakeup mode as a quick fix workaround > to a bunch of silicon erratas. And we do nothing on USB global suspend. > That's why CORE does not hit retention. > > If we runtime_suspend the USB host module on USB global suspend then it > will be put in Force Idle mode. This will allow CORE to hit retention > but then we will no longer be able to detect USB device connect events. > > So, till we have a better solution I will suggest to keep EHCI_HCD as a > module in omap2plus_defconfig. I guess that "better solution" would be I/O pads wakeup interrupts ? But I don't think that's already in mainline, is it ? -- balbi signature.asc Description: Digital signature
Re: [PATCH 00/16] OMAP USB Host cleanup
On 11/20/2012 01:22 AM, Kevin Hilman wrote: > Roger Quadros writes: > >> Kevin, >> >> On 11/16/2012 10:08 PM, Kevin Hilman wrote: >>> Roger Quadros writes: >>> Hi, This patchset addresses the following - Avoid addressing clocks one by one by name and use a for loop + bunch of cleanups. - Get number of channels/ports dynamically either from revision register or from platform data. Avoids getting clocks that are not present. - Add OMAP5 and HSIC mode (Not tested) - Save power on Panda when EHCI driver is not loaded. >>> >>> Seeing the clock changes/cleanups, I gave this a spin on OMAP3 >>> (3530/Beagle, 3530/Overo, 3730/Beagle-xM, 3730/OveroSTORM) to see if it >>> fixed up the problem where CORE does not hit retention in idle when USB >>> host is enabled, even with no devices attached. >>> >>> Unfortunately, it didn't help. :( >> >> oh that's bad. But this series wasn't meant to fix that ;). > > Oh, sorry. Yeah, I didn't mean this as a nak. Just an opportunity to > complain to the maintainers that a long-standing issue needs to be > addressed. > Kevin, I gave a quick look at the issue. It seems that the High Speed USB Host module is kept in Software forced wakeup mode as a quick fix workaround to a bunch of silicon erratas. And we do nothing on USB global suspend. That's why CORE does not hit retention. If we runtime_suspend the USB host module on USB global suspend then it will be put in Force Idle mode. This will allow CORE to hit retention but then we will no longer be able to detect USB device connect events. So, till we have a better solution I will suggest to keep EHCI_HCD as a module in omap2plus_defconfig. -- regards, -roger -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/16] OMAP USB Host cleanup
Hi, On Wed, Nov 21, 2012 at 12:05:12PM +0200, Roger Quadros wrote: > Hi Tony, > > On 11/21/2012 01:13 AM, Tony Lindgren wrote: > > Hi Roger, > > > > * Kevin Hilman [121119 15:24]: > >> Roger Quadros writes: > >> > >>> Kevin, > >>> > >>> On 11/16/2012 10:08 PM, Kevin Hilman wrote: > Roger Quadros writes: > > > Hi, > > > > This patchset addresses the following > > > > - Avoid addressing clocks one by one by name and use a for loop + bunch > > of cleanups. > > - Get number of channels/ports dynamically either from revision register > > or from platform data. Avoids getting clocks that are not present. > > - Add OMAP5 and HSIC mode (Not tested) > > - Save power on Panda when EHCI driver is not loaded. > > > > Seeing the clock changes/cleanups, I gave this a spin on OMAP3 > (3530/Beagle, 3530/Overo, 3730/Beagle-xM, 3730/OveroSTORM) to see if it > fixed up the problem where CORE does not hit retention in idle when USB > host is enabled, even with no devices attached. > > Unfortunately, it didn't help. :( > >>> > >>> oh that's bad. But this series wasn't meant to fix that ;). > >> > >> Oh, sorry. Yeah, I didn't mean this as a nak. Just an opportunity to > >> complain to the maintainers that a long-standing issue needs to be > >> addressed. > > > > It seems that drivers/mfd/omap-usb-host.c is one of the last users > > of cpu_is_omap macros blocking enabling ARM multiplatform support for > > omap2+. > > > > Please fix that ASAP as early as possible in this patch series to > > remove the dependencies between core omap code development and driver > > development. > > > > Basically you need to remove #include and pass the > > revision information in platform data (and device tree compatible > > flag when that is supported). > > > > Okay I'll send a patch to fix that ASAP. > > Felipe, any comments on the patches in this series? I'm waiting for Keshava's comments since he's the one who has been dealing with omap usb host the most. I can look into this series too shortly. -- balbi signature.asc Description: Digital signature
Re: [PATCH 00/16] OMAP USB Host cleanup
Hi Tony, On 11/21/2012 01:13 AM, Tony Lindgren wrote: > Hi Roger, > > * Kevin Hilman [121119 15:24]: >> Roger Quadros writes: >> >>> Kevin, >>> >>> On 11/16/2012 10:08 PM, Kevin Hilman wrote: Roger Quadros writes: > Hi, > > This patchset addresses the following > > - Avoid addressing clocks one by one by name and use a for loop + bunch > of cleanups. > - Get number of channels/ports dynamically either from revision register > or from platform data. Avoids getting clocks that are not present. > - Add OMAP5 and HSIC mode (Not tested) > - Save power on Panda when EHCI driver is not loaded. > Seeing the clock changes/cleanups, I gave this a spin on OMAP3 (3530/Beagle, 3530/Overo, 3730/Beagle-xM, 3730/OveroSTORM) to see if it fixed up the problem where CORE does not hit retention in idle when USB host is enabled, even with no devices attached. Unfortunately, it didn't help. :( >>> >>> oh that's bad. But this series wasn't meant to fix that ;). >> >> Oh, sorry. Yeah, I didn't mean this as a nak. Just an opportunity to >> complain to the maintainers that a long-standing issue needs to be >> addressed. > > It seems that drivers/mfd/omap-usb-host.c is one of the last users > of cpu_is_omap macros blocking enabling ARM multiplatform support for > omap2+. > > Please fix that ASAP as early as possible in this patch series to > remove the dependencies between core omap code development and driver > development. > > Basically you need to remove #include and pass the > revision information in platform data (and device tree compatible > flag when that is supported). > Okay I'll send a patch to fix that ASAP. Felipe, any comments on the patches in this series? regards, -roger -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/16] OMAP USB Host cleanup
Hi Roger, * Kevin Hilman [121119 15:24]: > Roger Quadros writes: > > > Kevin, > > > > On 11/16/2012 10:08 PM, Kevin Hilman wrote: > >> Roger Quadros writes: > >> > >>> Hi, > >>> > >>> This patchset addresses the following > >>> > >>> - Avoid addressing clocks one by one by name and use a for loop + bunch > >>> of cleanups. > >>> - Get number of channels/ports dynamically either from revision register > >>> or from platform data. Avoids getting clocks that are not present. > >>> - Add OMAP5 and HSIC mode (Not tested) > >>> - Save power on Panda when EHCI driver is not loaded. > >>> > >> > >> Seeing the clock changes/cleanups, I gave this a spin on OMAP3 > >> (3530/Beagle, 3530/Overo, 3730/Beagle-xM, 3730/OveroSTORM) to see if it > >> fixed up the problem where CORE does not hit retention in idle when USB > >> host is enabled, even with no devices attached. > >> > >> Unfortunately, it didn't help. :( > > > > oh that's bad. But this series wasn't meant to fix that ;). > > Oh, sorry. Yeah, I didn't mean this as a nak. Just an opportunity to > complain to the maintainers that a long-standing issue needs to be > addressed. It seems that drivers/mfd/omap-usb-host.c is one of the last users of cpu_is_omap macros blocking enabling ARM multiplatform support for omap2+. Please fix that ASAP as early as possible in this patch series to remove the dependencies between core omap code development and driver development. Basically you need to remove #include and pass the revision information in platform data (and device tree compatible flag when that is supported). Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/16] OMAP USB Host cleanup
Roger Quadros writes: > Kevin, > > On 11/16/2012 10:08 PM, Kevin Hilman wrote: >> Roger Quadros writes: >> >>> Hi, >>> >>> This patchset addresses the following >>> >>> - Avoid addressing clocks one by one by name and use a for loop + bunch >>> of cleanups. >>> - Get number of channels/ports dynamically either from revision register >>> or from platform data. Avoids getting clocks that are not present. >>> - Add OMAP5 and HSIC mode (Not tested) >>> - Save power on Panda when EHCI driver is not loaded. >>> >> >> Seeing the clock changes/cleanups, I gave this a spin on OMAP3 >> (3530/Beagle, 3530/Overo, 3730/Beagle-xM, 3730/OveroSTORM) to see if it >> fixed up the problem where CORE does not hit retention in idle when USB >> host is enabled, even with no devices attached. >> >> Unfortunately, it didn't help. :( > > oh that's bad. But this series wasn't meant to fix that ;). Oh, sorry. Yeah, I didn't mean this as a nak. Just an opportunity to complain to the maintainers that a long-standing issue needs to be addressed. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/16] OMAP USB Host cleanup
Kevin, On 11/16/2012 10:08 PM, Kevin Hilman wrote: > Roger Quadros writes: > >> Hi, >> >> This patchset addresses the following >> >> - Avoid addressing clocks one by one by name and use a for loop + bunch >> of cleanups. >> - Get number of channels/ports dynamically either from revision register >> or from platform data. Avoids getting clocks that are not present. >> - Add OMAP5 and HSIC mode (Not tested) >> - Save power on Panda when EHCI driver is not loaded. >> > > Seeing the clock changes/cleanups, I gave this a spin on OMAP3 > (3530/Beagle, 3530/Overo, 3730/Beagle-xM, 3730/OveroSTORM) to see if it > fixed up the problem where CORE does not hit retention in idle when USB > host is enabled, even with no devices attached. > > Unfortunately, it didn't help. :( oh that's bad. But this series wasn't meant to fix that ;). I could take a look at it once I get hold of the serial cable to connect to the beagle. regards, -roger -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 00/16] OMAP USB Host cleanup
Roger Quadros writes: > Hi, > > This patchset addresses the following > > - Avoid addressing clocks one by one by name and use a for loop + bunch > of cleanups. > - Get number of channels/ports dynamically either from revision register > or from platform data. Avoids getting clocks that are not present. > - Add OMAP5 and HSIC mode (Not tested) > - Save power on Panda when EHCI driver is not loaded. > Seeing the clock changes/cleanups, I gave this a spin on OMAP3 (3530/Beagle, 3530/Overo, 3730/Beagle-xM, 3730/OveroSTORM) to see if it fixed up the problem where CORE does not hit retention in idle when USB host is enabled, even with no devices attached. Unfortunately, it didn't help. :( Felipe, Keshava, any plans to address this problem which has been around for a couple cycles now and led me to disable USB host in omap2plus_defconfig?[1] Kevin [1] https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=06b4ba529528fbf9c24ce37b7618f4b0264750e2 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 00/16] OMAP USB Host cleanup
Hi, This patchset addresses the following - Avoid addressing clocks one by one by name and use a for loop + bunch of cleanups. - Get number of channels/ports dynamically either from revision register or from platform data. Avoids getting clocks that are not present. - Add OMAP5 and HSIC mode (Not tested) - Save power on Panda when EHCI driver is not loaded. cheers, -roger --- Andy Green (1): ARM: OMAP: omap4panda: Power down the USB PHY and ETH when not in use Roger Quadros (15): mfd: omap-usb-tll: Avoid creating copy of platform data mfd: omap-usb-tll: Clean up clock handling mfd: omap-usb-tll: introduce and use mode_needs_tll() mfd: omap-usb-tll: Move port clock handling out of runtime ops mfd: omap-usb-tll: Add OMAP5 revision and HSIC support mfd: omap-usb-host: cleanup clock management code mfd: omap_usb_host: Avoid creating copy of platform_data mfd: omap-usb-host: know about number of ports from revision register mfd: omap-usb-host: override number of ports from platform data mfd: omap-usb-host: Intialize all available ports mfd: omap-usb-host: Manage HSIC clocks for HSIC mode ARM: OMAP2+: clock data: Merge utmi_px_gfclk into usb_host_hs_utmi_px_clk mfd: omap-usb-host: Get rid of unnecessary spinlock mfd: omap-usb-host: Support an auxiliary clock per port ARM: OMAP4: omap4panda: Don't enable USB PHY clock from board arch/arm/mach-omap2/board-omap4panda.c | 94 +--- arch/arm/mach-omap2/clock3xxx_data.c |2 - arch/arm/mach-omap2/clock44xx_data.c | 30 +-- arch/arm/mach-omap2/usb-host.c |3 + arch/arm/plat-omap/include/plat/usb.h |8 + drivers/mfd/omap-usb-host.c| 397 +++- drivers/mfd/omap-usb-tll.c | 255 +++-- 7 files changed, 454 insertions(+), 335 deletions(-) -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html