On Tue, Sep 27, 2011 at 4:40 AM, Kevin Hilman <khilman@xxxxxx> wrote: > "DebBarma, Tarun Kanti" <tarun.kanti@xxxxxx> writes: > > [...] > >> As pointed out by Kevin, debounce clock was not getting disabled. >> In my testing I was somehow grepping CORE power domain instead >> of PER power domain and hence missed it. The fix for the debounce >> clock issue is at the end of the email. >> >> - Have re-based the for_3.2/gpio-cleanup branch against 3.1-rc6. >> - Dropped [PATCH 26/26] gpio/omap: add dbclk aliases for all gpio modules >> as suggested by Kevin since it's already taken care by hwmod. >> - Added the debounce clock fix in the end. > > That debounce fix definitely makes things look better, but it's not > solving the problem... > >> With above, PER is hitting low power state in Suspend and Idle path. >> >> Have pushed a branch at below URL with mentioned changes. >> git://gitorious.org/omap-sw-develoment/linux-omap-dev.git >> for_3.2/kevin/gpio-cleanup > > I tested your branch on my 3430/n900 and PER is still not hitting > retention. Setting all debounce values in the board file to zero using > the patch below[1] makes PER hit retention again. > > Assuming you don't have an n900 to test with, I suggest you just copy > the GPIO keys init from board-rx51-peripherals.c (or some of it) into > the board file you are testing with. > > The problem is most likely be related to having more than one GPIO in a > bank with debounce enabled, or more than one bank with GPIOs enabled and > your current test is not be catching it. > As per commit c8c9fda506945 {OMAP: PM: disable idle on suspend for GPIO and UART}, the gpio code needs to be fixed once GPIO driver is run-time adapted. So I did below change as per the commit and now suspend is working fine even with board files change for debounce functionality. So the last series + below one line change is whats needed for suspend to work. Can you please see if this does help on your board ? I am not finished my idle testing yet but just reporting the suspend results. diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c index d865033..1957663 100644 --- a/arch/arm/mach-omap2/gpio.c +++ b/arch/arm/mach-omap2/gpio.c @@ -148,8 +148,6 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused) return PTR_ERR(od); } - omap_device_disable_idle_on_suspend(od); - return 0; } -- Regards Tarun -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html