* Re: Suspend broken on 3.3? [not found] ` <87zkalc75h.fsf@ti.com> @ 2012-04-09 16:01 ` Paul Walmsley 2012-04-09 17:10 ` Kevin Hilman 0 siblings, 1 reply; 7+ messages in thread From: Paul Walmsley @ 2012-04-09 16:01 UTC (permalink / raw) To: Kevin Hilman Cc: Raja\, Govindraj, Joe Woodward, linux-omap, Felipe Balbi, neilb, linux-serial cc linux-serial Hi On Mon, 9 Apr 2012, Kevin Hilman wrote: > Presumably, if a user disables UART wakeups, it means either 1) that > UART is not used #1 seems easy enough to handle without the use of power/wakeup. If there are no users of the TTY, then the driver can simply not configure hardware wakeups. > or 2) performance is not critical. Can you think of a use-case for #2? > IMO, we simply need to ensure that the defaults are correct. When UARTs > are initialized/enabled wakeups should be enabled by default. The user > can then override this if desired, and will obviously see a performance > impact. But that's what happens with wakeups disabled. I don't understand why a user would ever want to disable dynamic wakeups on an in-use serial port via the sysfs power/wakeup file. (Disabling wakeups from suspend is a different matter, of course.) The OMAP UART driver needs hardware wakeups to function for FIFO drain wakeups, etc. So to me it really doesn't make sense to disable those types of wakeup events, ever. But maybe you know of some use-case that I don't? If the user just wants a transmit-only serial port, they could use the termios CREAD flag as Neil mentioned a few months ago, and the driver could disable wakeups on incoming RXD (modulo any active flow control of course). - Paul ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Suspend broken on 3.3? 2012-04-09 16:01 ` Suspend broken on 3.3? Paul Walmsley @ 2012-04-09 17:10 ` Kevin Hilman 2012-04-10 9:26 ` Raja, Govindraj 0 siblings, 1 reply; 7+ messages in thread From: Kevin Hilman @ 2012-04-09 17:10 UTC (permalink / raw) To: Paul Walmsley Cc: Raja, Govindraj, Joe Woodward, linux-omap, Felipe Balbi, neilb, linux-serial Paul Walmsley <paul@pwsan.com> writes: [...] > I don't understand why a user would ever want to disable dynamic wakeups > on an in-use serial port via the sysfs power/wakeup file. (Disabling > wakeups from suspend is a different matter, of course.) The OMAP UART > driver needs hardware wakeups to function for FIFO drain wakeups, etc. > So to me it really doesn't make sense to disable those types of wakeup > events, ever. But maybe you know of some use-case that I don't? No, I don't have a use-case in mind. The more I try to remember why we added support to use the sysfs wakeup attribute to manage idle, the more I think we can probably drop it now. IIRC, it was added because on most boards we used to blindly initialize all the UARTs, including default wakeup settings (we still do this on many boards.) However, now that we have a real PM-aware driver for OMAP UARTs, this should all be handled from the driver itself, so the sysfs wakeup attribute should go back to only managing wakeups from suspend and wakeups during idle should always be on for in-use UARTs. Kevin ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Suspend broken on 3.3? 2012-04-09 17:10 ` Kevin Hilman @ 2012-04-10 9:26 ` Raja, Govindraj 2012-04-10 18:03 ` Kevin Hilman 0 siblings, 1 reply; 7+ messages in thread From: Raja, Govindraj @ 2012-04-10 9:26 UTC (permalink / raw) To: Kevin Hilman Cc: Paul Walmsley, Joe Woodward, linux-omap, Felipe Balbi, neilb, linux-serial Hi Kevin, On Mon, Apr 9, 2012 at 10:40 PM, Kevin Hilman <khilman@ti.com> wrote: > Paul Walmsley <paul@pwsan.com> writes: > > [...] > >> I don't understand why a user would ever want to disable dynamic wakeups >> on an in-use serial port via the sysfs power/wakeup file. (Disabling >> wakeups from suspend is a different matter, of course.) The OMAP UART >> driver needs hardware wakeups to function for FIFO drain wakeups, etc. >> So to me it really doesn't make sense to disable those types of wakeup >> events, ever. But maybe you know of some use-case that I don't? > > No, I don't have a use-case in mind. > > The more I try to remember why we added support to use the sysfs wakeup > attribute to manage idle, the more I think we can probably drop it now. > IIRC, it was added because on most boards we used to blindly initialize > all the UARTs, including default wakeup settings (we still do this on > many boards.) > > However, now that we have a real PM-aware driver for OMAP UARTs, this > should all be handled from the driver itself, so the sysfs wakeup > attribute should go back to only managing wakeups from suspend and > wakeups during idle should always be on for in-use UARTs. Just to summarize on how the behavior should be IIUC if user disables uart wakeup from sysfs and does system wide suspend it should _not_ wakeup from uart. And if the system is woken up from suspend due to keypad press and uart resumes we have keep module level wakeup enabled from here. We might need some minor changes in omap-serial to have this behavior which I plan to do once we are aligned on this. -- Thanks, Govindraj.R -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Suspend broken on 3.3? 2012-04-10 9:26 ` Raja, Govindraj @ 2012-04-10 18:03 ` Kevin Hilman 2012-04-11 13:13 ` Raja, Govindraj 0 siblings, 1 reply; 7+ messages in thread From: Kevin Hilman @ 2012-04-10 18:03 UTC (permalink / raw) To: Raja, Govindraj Cc: Paul Walmsley, Joe Woodward, linux-omap, Felipe Balbi, neilb, linux-serial "Raja, Govindraj" <govindraj.raja@ti.com> writes: > Hi Kevin, > > On Mon, Apr 9, 2012 at 10:40 PM, Kevin Hilman <khilman@ti.com> wrote: >> Paul Walmsley <paul@pwsan.com> writes: >> >> [...] >> >>> I don't understand why a user would ever want to disable dynamic wakeups >>> on an in-use serial port via the sysfs power/wakeup file. (Disabling >>> wakeups from suspend is a different matter, of course.) The OMAP UART >>> driver needs hardware wakeups to function for FIFO drain wakeups, etc. >>> So to me it really doesn't make sense to disable those types of wakeup >>> events, ever. But maybe you know of some use-case that I don't? >> >> No, I don't have a use-case in mind. >> >> The more I try to remember why we added support to use the sysfs wakeup >> attribute to manage idle, the more I think we can probably drop it now. >> IIRC, it was added because on most boards we used to blindly initialize >> all the UARTs, including default wakeup settings (we still do this on >> many boards.) >> >> However, now that we have a real PM-aware driver for OMAP UARTs, this >> should all be handled from the driver itself, so the sysfs wakeup >> attribute should go back to only managing wakeups from suspend and >> wakeups during idle should always be on for in-use UARTs. > > Just to summarize on how the behavior should be IIUC if user disables uart > wakeup from sysfs and does system wide suspend it should _not_ wakeup > from uart. Correct. > And if the system is woken up from suspend due to keypad press and > uart resumes we have keep module level wakeup enabled from here. Keypad press, or any other wakeup source, yes. Basically, UART wakeups (module and IO) should be enabled all the time, *except* when suspending and wakeups were disabled by sysfs control. > We might need some minor changes in omap-serial to have this behavior > which I plan to do once we are aligned on this. Sure, this changes previous behavior based on assumptions that are no longer true (namely, UARTs only disabled in idle path), so I would expect some changes. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Suspend broken on 3.3? 2012-04-10 18:03 ` Kevin Hilman @ 2012-04-11 13:13 ` Raja, Govindraj 2012-04-11 19:34 ` Paul Walmsley 0 siblings, 1 reply; 7+ messages in thread From: Raja, Govindraj @ 2012-04-11 13:13 UTC (permalink / raw) To: Kevin Hilman Cc: Paul Walmsley, Joe Woodward, linux-omap, Felipe Balbi, neilb, linux-serial On Tue, Apr 10, 2012 at 11:33 PM, Kevin Hilman <khilman@ti.com> wrote: > "Raja, Govindraj" <govindraj.raja@ti.com> writes: > >> Hi Kevin, >> >> On Mon, Apr 9, 2012 at 10:40 PM, Kevin Hilman <khilman@ti.com> wrote: >>> Paul Walmsley <paul@pwsan.com> writes: [...] >> >> Just to summarize on how the behavior should be IIUC if user disables uart >> wakeup from sysfs and does system wide suspend it should _not_ wakeup >> from uart. > > Correct. > >> And if the system is woken up from suspend due to keypad press and >> uart resumes we have keep module level wakeup enabled from here. > > Keypad press, or any other wakeup source, yes. > > Basically, UART wakeups (module and IO) should be enabled all the time, > *except* when suspending and wakeups were disabled by sysfs control. > Here is the patch [1] to do the same. Tested on beagle-XM with retention and off mode in suspend path and idle path by disabling/enabling the uart wakeups from sysfs for the console. -- Thanks, Govindraj.R [1]: >From 4e2502015e8b69d3a5047ae9f92820e4833e6d74 Mon Sep 17 00:00:00 2001 From: "Govindraj.R" <govindraj.raja@ti.com> Date: Tue, 27 Mar 2012 18:55:00 +0530 Subject: [PATCH] OMAP2+: UART: Correct the module level wakeup enable/disable mechanism The commit (62f3ec5 ARM: OMAP2+: UART: Add wakeup mechanism for omap-uarts) removed module level wakeup enable/disable mechanism and retained only the pad wakeup handling. On 24xx/34xx/36xx Module level wakeup events are enabled/disabled using PM_WKEN1_CORE/PM_WKEN_PER regs. The module level wakeups are enabled by default from bootloader, however the wakeups can be enabled/disabled using sysfs entry echo disabled > /sys/devices/platform/omap/omap_uart.X/power/wakeup [X=0,1,2,3] Since module level wakeups were left enabled from bootup and when wakeups were disabled from sysfs uart module level wakeups were still happening as they were not getting disabled. The wakeup can be left enabled by default and should be disabled only when disabled from sysfs and thus prevent system from uart wakeup in suspend path. However in idle path the wakeup can be enabled and thus uart can wakeup after gating of uart functional clocks. Thanks to Kevin Hilman <khilman@ti.com> for suggesting this. Discussion References: http://www.spinics.net/lists/linux-omap/msg67764.html http://www.spinics.net/lists/linux-omap/msg67838.html Signed-off-by: Govindraj.R <govindraj.raja@ti.com> --- arch/arm/mach-omap2/serial.c | 88 +++++++++++++++++++++++++++++++++++++- drivers/tty/serial/omap-serial.c | 30 +++++-------- 2 files changed, 97 insertions(+), 21 deletions(-) diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 0cdd359..9312d6b 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -41,6 +41,7 @@ #include "prm-regbits-34xx.h" #include "control.h" #include "mux.h" +#include "iomap.h" /* * NOTE: By default the serial auto_suspend timeout is disabled as it causes @@ -55,6 +56,10 @@ struct omap_uart_state { int num; + void __iomem *wk_st; + void __iomem *wk_en; + u32 wk_mask; + struct list_head node; struct omap_hwmod *oh; }; @@ -80,17 +85,46 @@ static struct omap_uart_port_info omap_serial_default_info[] __initdata = { }; #ifdef CONFIG_PM + +static void omap_uart_disable_module_wakeup(struct omap_uart_state *uart) +{ + /* Clear wake-enable bit */ + if (uart->wk_en && uart->wk_mask) { + u32 v = __raw_readl(uart->wk_en); + v &= ~uart->wk_mask; + __raw_writel(v, uart->wk_en); + } +} + +static void omap_uart_enable_module_wakeup(struct omap_uart_state *uart) +{ + /* Set wake-enable bit */ + if (uart->wk_en && uart->wk_mask) { + u32 v = __raw_readl(uart->wk_en); + v |= uart->wk_mask; + __raw_writel(v, uart->wk_en); + } +} + static void omap_uart_enable_wakeup(struct platform_device *pdev, bool enable) { struct omap_device *od = to_omap_device(pdev); + struct omap_uart_state *uart; if (!od) return; - if (enable) + list_for_each_entry(uart, &uart_list, node) + if (pdev->id == uart->num) + break; + + if (enable) { + omap_uart_enable_module_wakeup(uart); omap_hwmod_enable_wakeup(od->hwmods[0]); - else + } else { + omap_uart_disable_module_wakeup(uart); omap_hwmod_disable_wakeup(od->hwmods[0]); + } } /* @@ -112,7 +146,56 @@ static void omap_uart_set_smartidle(struct platform_device *pdev) omap_hwmod_set_slave_idlemode(od->hwmods[0], HWMOD_IDLEMODE_SMART); } +static void omap_uart_idle_init(struct omap_uart_state *uart) +{ + if (cpu_is_omap34xx() && !cpu_is_ti816x()) { + u32 mod = (uart->num == 2) ? OMAP3430_PER_MOD : CORE_MOD; + + uart->wk_en = OMAP34XX_PRM_REGADDR(mod, PM_WKEN1); + uart->wk_st = OMAP34XX_PRM_REGADDR(mod, PM_WKST1); + switch (uart->num) { + case 0: + uart->wk_mask = OMAP3430_ST_UART1_MASK; + break; + case 1: + uart->wk_mask = OMAP3430_ST_UART2_MASK; + break; + case 2: + uart->wk_mask = OMAP3430_ST_UART3_MASK; + break; + case 3: + uart->wk_mask = OMAP3630_ST_UART4_MASK; + break; + } + } else if (cpu_is_omap24xx()) { + + if (cpu_is_omap2430()) { + uart->wk_en = OMAP2430_PRM_REGADDR(CORE_MOD, PM_WKEN1); + uart->wk_st = OMAP2430_PRM_REGADDR(CORE_MOD, PM_WKST1); + } else if (cpu_is_omap2420()) { + uart->wk_en = OMAP2420_PRM_REGADDR(CORE_MOD, PM_WKEN1); + uart->wk_st = OMAP2420_PRM_REGADDR(CORE_MOD, PM_WKST1); + } + switch (uart->num) { + case 0: + uart->wk_mask = OMAP24XX_ST_UART1_MASK; + break; + case 1: + uart->wk_mask = OMAP24XX_ST_UART2_MASK; + break; + case 2: + uart->wk_mask = OMAP24XX_ST_UART3_MASK; + break; + } + } else { + uart->wk_en = 0; + uart->wk_st = 0; + uart->wk_mask = 0; + } +} + #else +static void omap_uart_idle_init(struct omap_uart_state *uart) {} static void omap_uart_enable_wakeup(struct platform_device *pdev, bool enable) {} static void omap_uart_set_noidle(struct platform_device *pdev) {} @@ -343,6 +426,7 @@ void __init omap_serial_init_port(struct omap_board_data *bdata, oh = uart->oh; name = DRIVER_NAME; + omap_uart_idle_init(uart); omap_up.dma_enabled = info->dma_enabled; omap_up.uartclk = OMAP24XX_BASE_BAUD * 16; omap_up.flags = UPF_BOOT_AUTOCONF; diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c index 0121486..3dec1cf 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c @@ -930,13 +930,6 @@ serial_omap_pm(struct uart_port *port, unsigned int state, serial_out(up, UART_EFR, efr); serial_out(up, UART_LCR, 0); - if (!device_may_wakeup(&up->pdev->dev)) { - if (!state) - pm_runtime_forbid(&up->pdev->dev); - else - pm_runtime_allow(&up->pdev->dev); - } - pm_runtime_put(&up->pdev->dev); } @@ -1184,10 +1177,16 @@ static struct uart_driver serial_omap_reg = { static int serial_omap_suspend(struct device *dev) { struct uart_omap_port *up = dev_get_drvdata(dev); + struct omap_uart_port_info *pdata = dev->platform_data; if (up) { uart_suspend_port(&serial_omap_reg, &up->port); flush_work_sync(&up->qos_work); + + if (!device_may_wakeup(dev)) { + pdata->enable_wakeup(up->pdev, false); + up->wakeups_enabled = false; + } } return 0; @@ -1585,18 +1584,6 @@ static int serial_omap_runtime_suspend(struct device *dev) if (pdata->get_context_loss_count) up->context_loss_cnt = pdata->get_context_loss_count(dev); - if (device_may_wakeup(dev)) { - if (!up->wakeups_enabled) { - pdata->enable_wakeup(up->pdev, true); - up->wakeups_enabled = true; - } - } else { - if (up->wakeups_enabled) { - pdata->enable_wakeup(up->pdev, false); - up->wakeups_enabled = false; - } - } - /* Errata i291 */ if (up->use_dma && pdata->set_forceidle && (up->errata & UART_ERRATA_i291_DMA_FORCEIDLE)) @@ -1621,6 +1608,11 @@ static int serial_omap_runtime_resume(struct device *dev) serial_omap_restore_context(up); } + if (!up->wakeups_enabled) { + pdata->enable_wakeup(up->pdev, true); + up->wakeups_enabled = true; + } + /* Errata i291 */ if (up->use_dma && pdata->set_noidle && (up->errata & UART_ERRATA_i291_DMA_FORCEIDLE)) -- 1.7.9 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: Suspend broken on 3.3? 2012-04-11 13:13 ` Raja, Govindraj @ 2012-04-11 19:34 ` Paul Walmsley 2012-04-12 11:51 ` Raja, Govindraj 0 siblings, 1 reply; 7+ messages in thread From: Paul Walmsley @ 2012-04-11 19:34 UTC (permalink / raw) To: Raja, Govindraj Cc: Kevin Hilman, Joe Woodward, linux-omap, Felipe Balbi, neilb, linux-serial Hi a few brief comments based on a quick scan: On Wed, 11 Apr 2012, Raja, Govindraj wrote: > Here is the patch [1] to do the same. - I don't see where it affects I/O wakeups for the UART. If I/O wakeups are still set on the UART pads, won't that still wake the chip up from suspend, even if module-level wakeups are disabled? - The UART driver and integration code should not be reading from or writing to registers outside the UART IP block. PRM register reads and writes belong in the PRM code, which should then export a higher-level interface to the calling code. This is because, aside from making the code easier to read and debug, we're trying to move the PRM and CM code to drivers/. - The code to change the PM_WKEN* and test the PM_WKST* bits should probably be called from omap_hwmod_{enable,disable}_wakeup(), not the UART code directly. The UART code shouldn't need to care about the hardware details; it should just ask the integration layer to enable or disable module-level wakeups. As you work on these changes, please split them up into several different topic series - one for the PRM changes, one for hwmod code/data changes, and one for the UART driver/integration changes. Just note the dependencies in the series description E-mails. That way, we can avoid merge conflicts. - Paul ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Suspend broken on 3.3? 2012-04-11 19:34 ` Paul Walmsley @ 2012-04-12 11:51 ` Raja, Govindraj 0 siblings, 0 replies; 7+ messages in thread From: Raja, Govindraj @ 2012-04-12 11:51 UTC (permalink / raw) To: Paul Walmsley Cc: Kevin Hilman, Joe Woodward, linux-omap, Felipe Balbi, neilb, linux-serial On Thu, Apr 12, 2012 at 1:04 AM, Paul Walmsley <paul@pwsan.com> wrote: > Hi > > a few brief comments based on a quick scan: > > On Wed, 11 Apr 2012, Raja, Govindraj wrote: > >> Here is the patch [1] to do the same. > > - I don't see where it affects I/O wakeups for the UART. If I/O wakeups > are still set on the UART pads, won't that still wake the chip up from > suspend, even if module-level wakeups are disabled? pdata->enable_wakeup => omap_uart_enable_wakeup was disabling both module level and pad wakeup. omap_uart_enable_wakeup => has enabling/disabling both module level and pad wakeup together. > > - The UART driver and integration code should not be reading from or > writing to registers outside the UART IP block. PRM register reads and > writes belong in the PRM code, which should then export a higher-level > interface to the calling code. This is because, aside from making the > code easier to read and debug, we're trying to move the PRM and CM code to > drivers/. okay. > > - The code to change the PM_WKEN* and test the PM_WKST* bits should > probably be called from omap_hwmod_{enable,disable}_wakeup(), not the UART > code directly. The UART code shouldn't need to care about the hardware > details; it should just ask the integration layer to enable or disable > module-level wakeups. To implement this I plan to extend the omap_hwmod_omap2_prcm structure like this: (unaligned tmp code snippet) diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 8070145..5c7711b 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h @@ -343,6 +343,8 @@ struct omap_hwmod_class_sysconfig { * @idlest_reg_id: IDLEST register ID (e.g., 3 for CM_IDLEST3) * @idlest_idle_bit: register bit shift for CM_IDLEST slave idle bit * @idlest_stdby_bit: register bit shift for CM_IDLEST master standby bit + * @module_wakeup_offs: PRCM register offset for PM_WKEN + * @module_wakeup_bit: regiter bit mask for PM_WKEN * * @prcm_reg_id and @module_bit are specific to the AUTOIDLE, WKST, * WKEN, GRPSEL registers. In an ideal world, no extra information @@ -357,6 +359,8 @@ struct omap_hwmod_omap2_prcm { u8 idlest_reg_id; u8 idlest_idle_bit; u8 idlest_stdby_bit; + s16 module_wakeup_offs; + u32 module_wakeup_bit; }; > > As you work on these changes, please split them up into several different > topic series - one for the PRM changes, one for hwmod code/data changes, > and one for the UART driver/integration changes. Just note the > dependencies in the series description E-mails. That way, we can avoid > merge conflicts. > Yes fine. Since most changes will be on /mach-omap2/omap_hwmod*.c Do you prefer the patches to be on any particular tree/branch where hwmod fixes are already queued. -- Thanks, Govindraj.R -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-04-12 11:51 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <WC20120329112755.541787@terrafix.co.uk>
[not found] ` <WC20120329114024.43178C@terrafix.co.uk>
[not found] ` <CAMrsUdKR4nwbBEOx9JPeS=GLDPyioHuijK2596=q2OwJ+ARbxA@mail.gmail.com>
[not found] ` <WC20120330075339.4017FC@terrafix.co.uk>
[not found] ` <CAMrsUdKTx84_oHyS9JTCBTqtV-7907snCGFDrOXnPuNVSnvz7w@mail.gmail.com>
[not found] ` <WC20120330092609.901834@terrafix.co.uk>
[not found] ` <CAMrsUdJrJZXjYOs87xmT_J0w7S=VZyfR0tBmhhuYOFmFsOB3SA@mail.gmail.com>
[not found] ` <WC20120330110442.381887@terrafix.co.uk>
[not found] ` <CAMrsUd+AvVp3n1oAREEEmCSBaeA-m68j7gLjXEeJKimX1erfUw@mail.gmail.com>
[not found] ` <CAMrsUd+K_EwXfypgYWNyAhR7b47avTpWDemS87OTkpH81cJ6Aw@mail.gmail.com>
[not found] ` <alpine.DEB.2.00.1204040852460.8000@utopia.booyaka.com>
[not found] ` <CAMrsUd+WZcUvHGdR4WyF4uh35D17K9DXFAqpLHKBUbL1_5viDA@mail.gmail.com>
[not found] ` <alpine.DEB.2.00.1204051812320.10302@utopia.booyaka.com>
[not found] ` <87iphdeyaf.fsf@ti.com>
[not found] ` <CAMrsUdLMYVwd3rupHtrNKC0rMvx1-3B=4usOh8cwTUy8DX_hVg@mail.gmail.com>
[not found] ` <87zkalc75h.fsf@ti.com>
2012-04-09 16:01 ` Suspend broken on 3.3? Paul Walmsley
2012-04-09 17:10 ` Kevin Hilman
2012-04-10 9:26 ` Raja, Govindraj
2012-04-10 18:03 ` Kevin Hilman
2012-04-11 13:13 ` Raja, Govindraj
2012-04-11 19:34 ` Paul Walmsley
2012-04-12 11:51 ` Raja, Govindraj
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).