From: "Bedia, Vaibhav" <vaibhav.bedia@ti.com> To: Kevin Hilman <khilman@deeprootsystems.com> Cc: "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>, "paul@pwsan.com" <paul@pwsan.com>, "Cousson, Benoit" <b-cousson@ti.com>, "tony@atomide.com" <tony@atomide.com> Subject: RE: [PATCH 15/15] ARM: OMAP2+: AM33XX: Basic suspend resume support Date: Tue, 6 Nov 2012 10:40:09 +0000 [thread overview] Message-ID: <B5906170F1614E41A8A28DE3B8D121433EC04AE5@DBDE01.ent.ti.com> (raw) In-Reply-To: <87txt4aqyc.fsf@deeprootsystems.com> Hi Kevin, On Mon, Nov 05, 2012 at 23:10:27, Kevin Hilman wrote: [...] > > First, some general comments. This is a big patch and probably should > be broken up a bit. I suspect it could be broken up a bit, maybe into > at least: > > - EMIF interface > - SCM interface, new APIs > - assembly/OCM code > - pm33xx.[ch] > - lastly, the late_init stuff that actually initizlizes Ok, I'll try splitting the patches in the next version. > > I have a handful of comments below. I wrote this up on the plane over > the weekend, and I see that Santosh has already made some similar > comments, but I'll send mine anyways. [...] > > Doing this on every suspend looks a bit strange. Why not just have some > init function handle these devices once at boot. If this is really > needed on every suspend, it needs some more description, and probably > some basic stub drivers need to be created. We do require it for every suspend (but more below). I'll add in more description in the comment that's already there. > > Also, if there are drivers for these devices, won't this interfere? > Hmm, I can think of the following scenarios 1. Runtime PM adapted drivers are compiled in - We'll have to ensure that in their suspend callbacks they end up doing omap_hwmod_idle() via the runtime PM APIs. In this case the omap_hwmod_enable() followed by omap_hwmod_idle() is not necessary in the PM code. 2. The drivers are not compiled in - In this case, the hwmod code puts the IPs in standby during bootup so the first suspend-resume iteration will pass. During resuming, the SYSC configuration for forced standby will be lost, so in the subsequent iterations these IPs won't go standby and the hwmod code does not touch them since they never got enabled. In this case we do need the sequence that is there currently. 3. For some reason the respective drivers don't idle the IPs during suspend - (no_idle_on_suspend flag for the hwmod in DT?). In this scenario I think we should abort the suspend process since we know that the suspend is not going to work. Is there some other scenario that needs to be covered? How about adding some flag in hwmod code for handling this? Something similar to what was done for MMC [1]. I think the problem that we have is in some ways similar to the one addressed in [1]. > > + /* Put the GFX clockdomains to sleep */ > > + clkdm_sleep(gfx_l3_clkdm); > > + clkdm_sleep(gfx_l4ls_clkdm); > > + > > + /* Try to put GFX to sleep */ > > + pwrdm_set_next_pwrst(gfx_pwrdm, PWRDM_POWER_OFF); > > ditto. I'll check if this can be removed. > > [...] > > > +static int am33xx_pm_begin(suspend_state_t state) > > +{ > > + int ret = 0; > > + > > + disable_hlt(); > > + > > + /* > > + * Physical resume address to be used by ROM code > > + */ > > + wkup_m3->resume_addr = (AM33XX_OCMC_END - am33xx_do_wfi_sz + > > + am33xx_resume_offset + 0x4); > > Why does this need to be calculated every suspend/resume? > Will move this to init phase. > > + wkup_m3->sleep_mode = IPC_CMD_DS0; > > + wkup_m3->ipc_data1 = DS_IPC_DEFAULT; > > + wkup_m3->ipc_data2 = DS_IPC_DEFAULT; > > + > > + am33xx_ipc_cmd(); > > This IPC needs a cleaner interface/API. Also, since it involves > register writes to the SCM, it should be defined in control.c. (NOTE: > we're in the process of creating a real driver out of the SCM, so all > SCM register accesses need to be contained in control.c) > > For example, you probably want an am33xx_m3_* API in control.c, with > some pre-baked commands for the M3. Ok. I'll work on this for the next version. > > > + wkup_m3->state = M3_STATE_MSG_FOR_LP; > > > > + omap_mbox_enable_irq(wkup_m3->mbox, IRQ_RX); > > + > > + ret = omap_mbox_msg_send(wkup_m3->mbox, 0xABCDABCD); > > + if (ret) { > > + pr_err("A8<->CM3 MSG for LP failed\n"); > > + am33xx_m3_state_machine_reset(); > > + ret = -1; > > + } > > + > > + if (!wait_for_completion_timeout(&wkup_m3_sync, > > + msecs_to_jiffies(500))) { > > hmm, interesting. I know you're not implementing idle here, but I'm > rather curious how this sync w/M3 is going to work for idle. > Like you mentioned in another thread we could probably not have a sync in the idle path. (More in the other thread). > > + pr_err("A8<->CM3 sync failure\n"); > > + am33xx_m3_state_machine_reset(); > > + ret = -1; > > + } else { > > + pr_debug("Message sent for entering DeepSleep mode\n"); > > + omap_mbox_disable_irq(wkup_m3->mbox, IRQ_RX); > > + } > > + > > + return ret; > > +} > > + > > [...] > > > +static void am33xx_m3_state_machine_reset(void) > > +{ > > + int ret = 0; > > + > > + wkup_m3->resume_addr = 0x0; > > + wkup_m3->sleep_mode = IPC_CMD_RESET; > > + wkup_m3->ipc_data1 = DS_IPC_DEFAULT; > > + wkup_m3->ipc_data2 = DS_IPC_DEFAULT; > > + > > + am33xx_ipc_cmd(); > > + > > + wkup_m3->state = M3_STATE_MSG_FOR_RESET; > > + > > + ret = omap_mbox_msg_send(wkup_m3->mbox, 0xABCDABCD); > > magic constant needs a #define Ok. > > > + if (!ret) { > > + pr_debug("Message sent for resetting M3 state machine\n"); > > + if (!wait_for_completion_timeout(&wkup_m3_sync, > > + msecs_to_jiffies(500))) > > + pr_err("A8<->CM3 sync failure\n"); > > + } else { > > + pr_err("Could not reset M3 state machine!!!\n"); > > + wkup_m3->state = M3_STATE_UNKNOWN; > > + } > > +} > > +#endif /* CONFIG_SUSPEND */ > > + > > +/* > > + * Dummy notifier for the mailbox > > + */ > > +int wkup_mbox_msg(struct notifier_block *self, unsigned long len, void *msg) > > +{ > > + return 0; > > +} > > + > > +static struct notifier_block wkup_mbox_notifier = { > > + .notifier_call = wkup_mbox_msg, > > +}; > > Why do you need a dummy notifier? Looks like maybe plat-omap/mailbox.c > needs a few minor fixes to support not being passed a notifier instead? > Ok. Will add checks in the mailbox code instead. (I wasn't too sure about the mailbox users so I tried to take the path of least resistance :) > > +static irqreturn_t wkup_m3_txev_handler(int irq, void *unused) > > +{ > > + omap_ctrl_writel(0x1, AM33XX_CONTROL_M3_TXEV_EOI); > > undocumented magic write (but presumably an IRQ ack?) > Yes, it's for clearing the interrupt. Will add a comment put a #def for this and other places that you mentioned. > Note this also needs to be moved to control.c and given a useful API. > > > + switch (wkup_m3->state) { > > + case M3_STATE_RESET: > > + wkup_m3->state = M3_STATE_INITED; > > + break; > > + case M3_STATE_MSG_FOR_RESET: > > + wkup_m3->state = M3_STATE_INITED; > > + omap_mbox_msg_rx_flush(wkup_m3->mbox); > > + complete(&wkup_m3_sync); > > + break; > > + case M3_STATE_MSG_FOR_LP: > > + omap_mbox_msg_rx_flush(wkup_m3->mbox); > > + complete(&wkup_m3_sync); > > + break; > > + case M3_STATE_UNKNOWN: > > + pr_err("IRQ %d with WKUP_M3 in unknown state\n", irq); > > + omap_mbox_msg_rx_flush(wkup_m3->mbox); > > + return IRQ_NONE; > > + } > > + > > + omap_ctrl_writel(0x0, AM33XX_CONTROL_M3_TXEV_EOI); > > undoumented magic write? > Will fix. This is for re-arming the interrupt line. [...] > > + > > + mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); > > + if (!mem) > > + dev_err(wkup_m3->dev, "no memory resource\n"); > > if !mem, this continues and still tries to ioremap NULL. > Will fix the error path. [...] > > + > > +/* > > + * This a subset of registers defined in drivers/memory/emif.h > > + * Move that to include/linux/? > > + */ > > I'd probably suggest just moving the register definitions you > need into <plat/emif_plat.h> so they can be shared with the driver. > > Also, the EMIF stuff would benefit greatly from using symbolic defines > for the values being written. Probably having those in > <plat/emif_plat.h> would also help out here. > > Or, maybe the EMIF driver can provide some self-contained stubs that can > be copied to OCP RAM for the functionality needed here? > > Santosh, what do you think of that? > [...] > Another user of the EMIF virtual addr is emif_self_refresh_dis, but I > don't see that code actually used anywhere. Will check and remove it. > > Looking closer, now I see the ddr_self_refresh macro is using > emif_virt_addr (that macro should be fixed to take the base address, for > readability.) > Ok. > On a related note, just a quick glance at all the code running out of > OCM RAM makes me wonder if any that could be done before jumping to OCM > RAM. Ideally, we only want the absolute minimum running out of OCM RAM. > Some of the EMIF register saves could perhaps be moved in C but I kept it in assembly to be consistent with the resume sequence for the case where WFI ends up as NOP and the normal resume path. [...] > > + > > +/* replicated define because linux/bitops.h cannot be included in assembly */ > > +#define BIT(nr) (1 << (nr)) > > never used, just remove it. Using shifts as below is fine (but using > symbolic constants would be even better.) I recall using it one place. Looks like I got rid of it after all. > > In fact, there are lots of magic constants in this code that I'd like > to see #defined. > Ok. > [...] > > > + wfi > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > Why all the nops? Some comments would be helpful there. > That was for the A8 pipeline. Will add a comment. > [...] > > > +/* Values recommended by the HW team */ > > A little documentation of these values would be helpful here. > Ok. Thanks, Vaibhav [1] http://www.spinics.net/lists/linux-omap/msg80918.html
WARNING: multiple messages have this Message-ID (diff)
From: vaibhav.bedia@ti.com (Bedia, Vaibhav) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 15/15] ARM: OMAP2+: AM33XX: Basic suspend resume support Date: Tue, 6 Nov 2012 10:40:09 +0000 [thread overview] Message-ID: <B5906170F1614E41A8A28DE3B8D121433EC04AE5@DBDE01.ent.ti.com> (raw) In-Reply-To: <87txt4aqyc.fsf@deeprootsystems.com> Hi Kevin, On Mon, Nov 05, 2012 at 23:10:27, Kevin Hilman wrote: [...] > > First, some general comments. This is a big patch and probably should > be broken up a bit. I suspect it could be broken up a bit, maybe into > at least: > > - EMIF interface > - SCM interface, new APIs > - assembly/OCM code > - pm33xx.[ch] > - lastly, the late_init stuff that actually initizlizes Ok, I'll try splitting the patches in the next version. > > I have a handful of comments below. I wrote this up on the plane over > the weekend, and I see that Santosh has already made some similar > comments, but I'll send mine anyways. [...] > > Doing this on every suspend looks a bit strange. Why not just have some > init function handle these devices once at boot. If this is really > needed on every suspend, it needs some more description, and probably > some basic stub drivers need to be created. We do require it for every suspend (but more below). I'll add in more description in the comment that's already there. > > Also, if there are drivers for these devices, won't this interfere? > Hmm, I can think of the following scenarios 1. Runtime PM adapted drivers are compiled in - We'll have to ensure that in their suspend callbacks they end up doing omap_hwmod_idle() via the runtime PM APIs. In this case the omap_hwmod_enable() followed by omap_hwmod_idle() is not necessary in the PM code. 2. The drivers are not compiled in - In this case, the hwmod code puts the IPs in standby during bootup so the first suspend-resume iteration will pass. During resuming, the SYSC configuration for forced standby will be lost, so in the subsequent iterations these IPs won't go standby and the hwmod code does not touch them since they never got enabled. In this case we do need the sequence that is there currently. 3. For some reason the respective drivers don't idle the IPs during suspend - (no_idle_on_suspend flag for the hwmod in DT?). In this scenario I think we should abort the suspend process since we know that the suspend is not going to work. Is there some other scenario that needs to be covered? How about adding some flag in hwmod code for handling this? Something similar to what was done for MMC [1]. I think the problem that we have is in some ways similar to the one addressed in [1]. > > + /* Put the GFX clockdomains to sleep */ > > + clkdm_sleep(gfx_l3_clkdm); > > + clkdm_sleep(gfx_l4ls_clkdm); > > + > > + /* Try to put GFX to sleep */ > > + pwrdm_set_next_pwrst(gfx_pwrdm, PWRDM_POWER_OFF); > > ditto. I'll check if this can be removed. > > [...] > > > +static int am33xx_pm_begin(suspend_state_t state) > > +{ > > + int ret = 0; > > + > > + disable_hlt(); > > + > > + /* > > + * Physical resume address to be used by ROM code > > + */ > > + wkup_m3->resume_addr = (AM33XX_OCMC_END - am33xx_do_wfi_sz + > > + am33xx_resume_offset + 0x4); > > Why does this need to be calculated every suspend/resume? > Will move this to init phase. > > + wkup_m3->sleep_mode = IPC_CMD_DS0; > > + wkup_m3->ipc_data1 = DS_IPC_DEFAULT; > > + wkup_m3->ipc_data2 = DS_IPC_DEFAULT; > > + > > + am33xx_ipc_cmd(); > > This IPC needs a cleaner interface/API. Also, since it involves > register writes to the SCM, it should be defined in control.c. (NOTE: > we're in the process of creating a real driver out of the SCM, so all > SCM register accesses need to be contained in control.c) > > For example, you probably want an am33xx_m3_* API in control.c, with > some pre-baked commands for the M3. Ok. I'll work on this for the next version. > > > + wkup_m3->state = M3_STATE_MSG_FOR_LP; > > > > + omap_mbox_enable_irq(wkup_m3->mbox, IRQ_RX); > > + > > + ret = omap_mbox_msg_send(wkup_m3->mbox, 0xABCDABCD); > > + if (ret) { > > + pr_err("A8<->CM3 MSG for LP failed\n"); > > + am33xx_m3_state_machine_reset(); > > + ret = -1; > > + } > > + > > + if (!wait_for_completion_timeout(&wkup_m3_sync, > > + msecs_to_jiffies(500))) { > > hmm, interesting. I know you're not implementing idle here, but I'm > rather curious how this sync w/M3 is going to work for idle. > Like you mentioned in another thread we could probably not have a sync in the idle path. (More in the other thread). > > + pr_err("A8<->CM3 sync failure\n"); > > + am33xx_m3_state_machine_reset(); > > + ret = -1; > > + } else { > > + pr_debug("Message sent for entering DeepSleep mode\n"); > > + omap_mbox_disable_irq(wkup_m3->mbox, IRQ_RX); > > + } > > + > > + return ret; > > +} > > + > > [...] > > > +static void am33xx_m3_state_machine_reset(void) > > +{ > > + int ret = 0; > > + > > + wkup_m3->resume_addr = 0x0; > > + wkup_m3->sleep_mode = IPC_CMD_RESET; > > + wkup_m3->ipc_data1 = DS_IPC_DEFAULT; > > + wkup_m3->ipc_data2 = DS_IPC_DEFAULT; > > + > > + am33xx_ipc_cmd(); > > + > > + wkup_m3->state = M3_STATE_MSG_FOR_RESET; > > + > > + ret = omap_mbox_msg_send(wkup_m3->mbox, 0xABCDABCD); > > magic constant needs a #define Ok. > > > + if (!ret) { > > + pr_debug("Message sent for resetting M3 state machine\n"); > > + if (!wait_for_completion_timeout(&wkup_m3_sync, > > + msecs_to_jiffies(500))) > > + pr_err("A8<->CM3 sync failure\n"); > > + } else { > > + pr_err("Could not reset M3 state machine!!!\n"); > > + wkup_m3->state = M3_STATE_UNKNOWN; > > + } > > +} > > +#endif /* CONFIG_SUSPEND */ > > + > > +/* > > + * Dummy notifier for the mailbox > > + */ > > +int wkup_mbox_msg(struct notifier_block *self, unsigned long len, void *msg) > > +{ > > + return 0; > > +} > > + > > +static struct notifier_block wkup_mbox_notifier = { > > + .notifier_call = wkup_mbox_msg, > > +}; > > Why do you need a dummy notifier? Looks like maybe plat-omap/mailbox.c > needs a few minor fixes to support not being passed a notifier instead? > Ok. Will add checks in the mailbox code instead. (I wasn't too sure about the mailbox users so I tried to take the path of least resistance :) > > +static irqreturn_t wkup_m3_txev_handler(int irq, void *unused) > > +{ > > + omap_ctrl_writel(0x1, AM33XX_CONTROL_M3_TXEV_EOI); > > undocumented magic write (but presumably an IRQ ack?) > Yes, it's for clearing the interrupt. Will add a comment put a #def for this and other places that you mentioned. > Note this also needs to be moved to control.c and given a useful API. > > > + switch (wkup_m3->state) { > > + case M3_STATE_RESET: > > + wkup_m3->state = M3_STATE_INITED; > > + break; > > + case M3_STATE_MSG_FOR_RESET: > > + wkup_m3->state = M3_STATE_INITED; > > + omap_mbox_msg_rx_flush(wkup_m3->mbox); > > + complete(&wkup_m3_sync); > > + break; > > + case M3_STATE_MSG_FOR_LP: > > + omap_mbox_msg_rx_flush(wkup_m3->mbox); > > + complete(&wkup_m3_sync); > > + break; > > + case M3_STATE_UNKNOWN: > > + pr_err("IRQ %d with WKUP_M3 in unknown state\n", irq); > > + omap_mbox_msg_rx_flush(wkup_m3->mbox); > > + return IRQ_NONE; > > + } > > + > > + omap_ctrl_writel(0x0, AM33XX_CONTROL_M3_TXEV_EOI); > > undoumented magic write? > Will fix. This is for re-arming the interrupt line. [...] > > + > > + mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); > > + if (!mem) > > + dev_err(wkup_m3->dev, "no memory resource\n"); > > if !mem, this continues and still tries to ioremap NULL. > Will fix the error path. [...] > > + > > +/* > > + * This a subset of registers defined in drivers/memory/emif.h > > + * Move that to include/linux/? > > + */ > > I'd probably suggest just moving the register definitions you > need into <plat/emif_plat.h> so they can be shared with the driver. > > Also, the EMIF stuff would benefit greatly from using symbolic defines > for the values being written. Probably having those in > <plat/emif_plat.h> would also help out here. > > Or, maybe the EMIF driver can provide some self-contained stubs that can > be copied to OCP RAM for the functionality needed here? > > Santosh, what do you think of that? > [...] > Another user of the EMIF virtual addr is emif_self_refresh_dis, but I > don't see that code actually used anywhere. Will check and remove it. > > Looking closer, now I see the ddr_self_refresh macro is using > emif_virt_addr (that macro should be fixed to take the base address, for > readability.) > Ok. > On a related note, just a quick glance at all the code running out of > OCM RAM makes me wonder if any that could be done before jumping to OCM > RAM. Ideally, we only want the absolute minimum running out of OCM RAM. > Some of the EMIF register saves could perhaps be moved in C but I kept it in assembly to be consistent with the resume sequence for the case where WFI ends up as NOP and the normal resume path. [...] > > + > > +/* replicated define because linux/bitops.h cannot be included in assembly */ > > +#define BIT(nr) (1 << (nr)) > > never used, just remove it. Using shifts as below is fine (but using > symbolic constants would be even better.) I recall using it one place. Looks like I got rid of it after all. > > In fact, there are lots of magic constants in this code that I'd like > to see #defined. > Ok. > [...] > > > + wfi > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > + nop > > Why all the nops? Some comments would be helpful there. > That was for the A8 pipeline. Will add a comment. > [...] > > > +/* Values recommended by the HW team */ > > A little documentation of these values would be helpful here. > Ok. Thanks, Vaibhav [1] http://www.spinics.net/lists/linux-omap/msg80918.html
next prev parent reply other threads:[~2012-11-06 10:40 UTC|newest] Thread overview: 218+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-11-02 12:32 [RFC 00/15] Add basic suspend-resume support for AM33XX Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-02 12:32 ` [PATCH 01/15] ARM: OMAP2+: mailbox: Add an API for flushing the FIFO Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-02 19:00 ` Tony Lindgren 2012-11-02 19:00 ` Tony Lindgren 2012-11-03 8:24 ` Bedia, Vaibhav 2012-11-03 8:24 ` Bedia, Vaibhav 2012-11-03 16:03 ` Santosh Shilimkar 2012-11-03 16:03 ` Santosh Shilimkar 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-05 14:59 ` Santosh Shilimkar 2012-11-05 14:59 ` Santosh Shilimkar 2012-11-02 12:32 ` [PATCH 02/15] ARM: OMAP2+: mailbox: Add support for AM33XX Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-03 0:14 ` Russ Dill 2012-11-03 0:14 ` Russ Dill 2012-11-03 8:39 ` Bedia, Vaibhav 2012-11-03 8:39 ` Bedia, Vaibhav 2012-11-03 13:48 ` Bedia, Vaibhav 2012-11-03 13:48 ` Bedia, Vaibhav 2012-11-03 16:10 ` Santosh Shilimkar 2012-11-03 16:10 ` Santosh Shilimkar 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-05 15:00 ` Santosh Shilimkar 2012-11-05 15:00 ` Santosh Shilimkar 2012-11-02 12:32 ` [PATCH 03/15] ARM: OMAP: mailbox: Convert to device_initcall Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-03 16:12 ` Santosh Shilimkar 2012-11-03 16:12 ` Santosh Shilimkar 2012-11-02 12:32 ` [PATCH 04/15] ARM: OMAP2+: hwmod: Update the reset API for AM33XX Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-05 6:58 ` Vaibhav Hiremath 2012-11-05 6:58 ` Vaibhav Hiremath 2012-11-05 17:57 ` Bedia, Vaibhav 2012-11-05 17:57 ` Bedia, Vaibhav 2012-11-06 6:06 ` Hiremath, Vaibhav 2012-11-06 6:06 ` Hiremath, Vaibhav 2012-11-06 7:19 ` Bedia, Vaibhav 2012-11-06 7:19 ` Bedia, Vaibhav 2012-11-02 12:32 ` [PATCH 05/15] ARM: OMAP2+: AM33XX: Update WKUP_M3 hwmod entry for reset status Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-03 16:15 ` Santosh Shilimkar 2012-11-03 16:15 ` Santosh Shilimkar 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-05 6:59 ` Vaibhav Hiremath 2012-11-05 6:59 ` Vaibhav Hiremath 2012-11-02 12:32 ` [PATCH 06/15] ARM: OMAP2+: hwmod: Enable OCMCRAM registration in AM33XX Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-03 16:16 ` Santosh Shilimkar 2012-11-03 16:16 ` Santosh Shilimkar 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-05 7:23 ` Vaibhav Hiremath 2012-11-05 7:23 ` Vaibhav Hiremath 2012-11-05 17:57 ` Bedia, Vaibhav 2012-11-05 17:57 ` Bedia, Vaibhav 2012-11-06 6:07 ` Hiremath, Vaibhav 2012-11-06 6:07 ` Hiremath, Vaibhav 2012-11-02 12:32 ` [PATCH 07/15] ARM: OMAP2+: hwmod: Update the hwmod data for TPTCs " Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-05 7:19 ` Vaibhav Hiremath 2012-11-05 7:19 ` Vaibhav Hiremath 2012-11-02 12:32 ` [PATCH 08/15] ARM: OMAP2+: hwmod: Fix the omap_hwmod_addr_space for CPGMAC0 Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-03 16:18 ` Santosh Shilimkar 2012-11-03 16:18 ` Santosh Shilimkar 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-05 9:10 ` Bedia, Vaibhav 2012-11-05 9:10 ` Bedia, Vaibhav 2012-11-06 9:29 ` Vaibhav Hiremath 2012-11-06 9:29 ` Vaibhav Hiremath 2012-11-06 10:09 ` Bedia, Vaibhav 2012-11-06 10:09 ` Bedia, Vaibhav 2012-11-06 13:08 ` Hiremath, Vaibhav 2012-11-06 13:08 ` Hiremath, Vaibhav 2012-11-06 13:46 ` Bedia, Vaibhav 2012-11-06 13:46 ` Bedia, Vaibhav 2012-11-06 13:50 ` Benoit Cousson 2012-11-06 13:50 ` Benoit Cousson 2012-11-06 13:56 ` Bedia, Vaibhav 2012-11-06 13:56 ` Bedia, Vaibhav 2012-11-02 12:32 ` [PATCH 09/15] ARM: OMAP: AM33XX: Remove unnecessary include and use __ASSEMBLER__ macros Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-03 16:29 ` Santosh Shilimkar 2012-11-03 16:29 ` Santosh Shilimkar 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-02 12:32 ` [PATCH 10/15] ARM: OMAP2+: control: Add some AM33XX Control module registers Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-02 12:32 ` [PATCH 11/15] ARM: OMAP: timer: Interchange clksrc and clkevt for AM33XX Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-03 11:43 ` Kevin Hilman 2012-11-03 11:43 ` Kevin Hilman 2012-11-03 12:47 ` Bedia, Vaibhav 2012-11-03 12:47 ` Bedia, Vaibhav 2012-11-03 13:04 ` Kevin Hilman 2012-11-03 13:04 ` Kevin Hilman 2012-11-03 13:48 ` Bedia, Vaibhav 2012-11-03 13:48 ` Bedia, Vaibhav 2012-11-05 18:03 ` Kevin Hilman 2012-11-05 18:03 ` Kevin Hilman 2012-11-05 21:59 ` Santosh Shilimkar 2012-11-05 21:59 ` Santosh Shilimkar 2012-11-06 14:38 ` Bedia, Vaibhav 2012-11-06 14:38 ` Bedia, Vaibhav 2012-11-08 13:15 ` Bedia, Vaibhav 2012-11-08 13:15 ` Bedia, Vaibhav 2012-11-06 14:33 ` Bedia, Vaibhav 2012-11-06 14:33 ` Bedia, Vaibhav 2012-11-03 16:22 ` Kevin Hilman 2012-11-03 16:22 ` Kevin Hilman 2012-11-05 4:40 ` Bedia, Vaibhav 2012-11-05 4:40 ` Bedia, Vaibhav 2012-11-03 16:31 ` Santosh Shilimkar 2012-11-03 16:31 ` Santosh Shilimkar 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-08 20:41 ` Jon Hunter 2012-11-08 20:41 ` Jon Hunter 2012-11-12 22:54 ` Tony Lindgren 2012-11-12 22:54 ` Tony Lindgren 2012-11-02 12:32 ` [PATCH 12/15] ARM: OMAP: timer: Add suspend-resume callbacks for clockevent device Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-03 12:15 ` Kevin Hilman 2012-11-03 12:15 ` Kevin Hilman 2012-11-03 13:17 ` Bedia, Vaibhav 2012-11-03 13:17 ` Bedia, Vaibhav 2012-11-03 13:41 ` Kevin Hilman 2012-11-03 13:41 ` Kevin Hilman 2012-11-03 14:03 ` Bedia, Vaibhav 2012-11-03 14:03 ` Bedia, Vaibhav 2012-11-05 21:20 ` Jon Hunter 2012-11-05 21:20 ` Jon Hunter 2012-11-06 9:38 ` Bedia, Vaibhav 2012-11-06 9:38 ` Bedia, Vaibhav 2012-11-06 16:02 ` Jon Hunter 2012-11-06 16:02 ` Jon Hunter 2012-11-03 15:52 ` Santosh Shilimkar 2012-11-03 15:52 ` Santosh Shilimkar 2012-11-04 15:25 ` Bedia, Vaibhav 2012-11-04 15:25 ` Bedia, Vaibhav 2012-11-05 14:55 ` Santosh Shilimkar 2012-11-05 14:55 ` Santosh Shilimkar 2012-11-05 21:04 ` Jon Hunter 2012-11-05 21:04 ` Jon Hunter 2012-11-06 7:32 ` Bedia, Vaibhav 2012-11-06 7:32 ` Bedia, Vaibhav 2012-11-06 16:00 ` Jon Hunter 2012-11-06 16:00 ` Jon Hunter 2012-11-02 12:32 ` [PATCH 13/15] ARM: DTS: AM33XX: Add nodes for OCMCRAM and Mailbox Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-03 12:16 ` Kevin Hilman 2012-11-03 12:16 ` Kevin Hilman 2012-11-03 13:17 ` Bedia, Vaibhav 2012-11-03 13:17 ` Bedia, Vaibhav 2012-11-03 15:54 ` Santosh Shilimkar 2012-11-03 15:54 ` Santosh Shilimkar 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-05 14:53 ` Santosh Shilimkar 2012-11-05 14:53 ` Santosh Shilimkar 2012-11-05 17:57 ` Bedia, Vaibhav 2012-11-05 17:57 ` Bedia, Vaibhav 2012-11-05 19:29 ` Kevin Hilman 2012-11-05 19:29 ` Kevin Hilman 2012-11-05 21:19 ` Santosh Shilimkar 2012-11-05 21:19 ` Santosh Shilimkar 2012-11-05 21:45 ` Santosh Shilimkar 2012-11-05 21:45 ` Santosh Shilimkar 2012-11-06 5:08 ` Bedia, Vaibhav 2012-11-06 5:08 ` Bedia, Vaibhav 2012-11-05 14:58 ` Santosh Shilimkar 2012-11-05 14:58 ` Santosh Shilimkar 2012-11-02 12:32 ` [PATCH 14/15] ARM: OMAP2+: omap2plus_defconfig: Enable Mailbox Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-03 12:20 ` Kevin Hilman 2012-11-03 12:20 ` Kevin Hilman 2012-11-03 13:17 ` Bedia, Vaibhav 2012-11-03 13:17 ` Bedia, Vaibhav 2012-11-03 13:43 ` Kevin Hilman 2012-11-03 13:43 ` Kevin Hilman 2012-11-02 12:32 ` [PATCH 15/15] ARM: OMAP2+: AM33XX: Basic suspend resume support Vaibhav Bedia 2012-11-02 12:32 ` Vaibhav Bedia 2012-11-02 13:11 ` Bedia, Vaibhav 2012-11-02 13:11 ` Bedia, Vaibhav 2012-11-03 16:57 ` Santosh Shilimkar 2012-11-03 16:57 ` Santosh Shilimkar 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-04 15:26 ` Bedia, Vaibhav 2012-11-05 17:40 ` Kevin Hilman 2012-11-05 17:40 ` Kevin Hilman 2012-11-05 21:52 ` Santosh Shilimkar 2012-11-05 21:52 ` Santosh Shilimkar 2012-11-06 12:29 ` Bedia, Vaibhav 2012-11-06 12:29 ` Bedia, Vaibhav 2012-11-06 12:38 ` Santosh Shilimkar 2012-11-06 12:38 ` Santosh Shilimkar 2012-11-06 13:00 ` Bedia, Vaibhav 2012-11-06 13:00 ` Bedia, Vaibhav 2012-11-06 10:40 ` Bedia, Vaibhav [this message] 2012-11-06 10:40 ` Bedia, Vaibhav 2012-11-07 1:06 ` Kevin Hilman 2012-11-07 1:06 ` Kevin Hilman 2012-11-07 13:25 ` Bedia, Vaibhav 2012-11-07 13:25 ` Bedia, Vaibhav 2012-11-07 17:15 ` Kevin Hilman 2012-11-07 17:15 ` Kevin Hilman 2012-11-08 13:05 ` Bedia, Vaibhav 2012-11-08 13:05 ` Bedia, Vaibhav 2012-11-02 22:16 ` [RFC 00/15] Add basic suspend-resume support for AM33XX Daniel Mack 2012-11-02 22:16 ` Daniel Mack 2012-11-03 8:39 ` Bedia, Vaibhav 2012-11-03 8:39 ` Bedia, Vaibhav
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=B5906170F1614E41A8A28DE3B8D121433EC04AE5@DBDE01.ent.ti.com \ --to=vaibhav.bedia@ti.com \ --cc=b-cousson@ti.com \ --cc=khilman@deeprootsystems.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=paul@pwsan.com \ --cc=tony@atomide.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.