From: Paul Walmsley <paul@pwsan.com> To: Tero Kristo <t-kristo@ti.com> Cc: linux-omap@vger.kernel.org, nm@ti.com, khilman@ti.com, rnayak@ti.com, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCHv7 03/12] ARM: OMAP4: hwmod: flag hwmods/modules not supporting module level context status Date: Wed, 12 Sep 2012 19:46:32 +0000 (UTC) [thread overview] Message-ID: <alpine.DEB.2.00.1209121943390.17903@utopia.booyaka.com> (raw) In-Reply-To: <1342704392-23657-4-git-send-email-t-kristo@ti.com> [-- Attachment #1: Type: TEXT/PLAIN, Size: 6349 bytes --] Hi Tero, On Thu, 19 Jul 2012, Tero Kristo wrote: > On OMAP4 most modules/hwmods support module level context status. On > OMAP3 and earlier, we relied on the power domain level context status. > Identify all modules that don't support 'context_offs' by marking the > offset as USHRT_MAX. Rest have a valid 'context_offs' populated in > .prcm structure already. > > Signed-off-by: Tero Kristo <t-kristo@ti.com> This one was changed here to use a separate flag rather than adding a magic value to the context_offs field -- mostly because I've been burnt by missing tests for those kinds of magic values in the past. It should be possible to roll the .modulemode field into this .flags field in a future patch to eliminate any kernel object size changes. The modified patch is below, queued for 3.7. - Paul From: Tero Kristo <t-kristo@ti.com> Date: Wed, 12 Sep 2012 11:53:54 -0600 Subject: [PATCH] ARM: OMAP4: hwmod: flag hwmods/modules not supporting module level context status On OMAP4 most modules/hwmods support module level context status. On OMAP3 and earlier, we relied on the power domain level context status. Identify all modules that don't support 'context_offs' by adding a flag bit, HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT. Rest have a valid 'context_offs' populated in .prcm structure already. Signed-off-by: Tero Kristo <t-kristo@ti.com> [paul@pwsan.com: add flag bit rather than overloading .context_offs; update changelog message] Signed-off-by: Paul Walmsley <paul@pwsan.com> --- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 46 ++++++++++++++++++++++++++ arch/arm/plat-omap/include/plat/omap_hwmod.h | 12 ++++++- 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 242aee4..e4b0177 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@ -203,6 +203,7 @@ static struct omap_hwmod omap44xx_l4_abe_hwmod = { .prcm = { .omap4 = { .clkctrl_offs = OMAP4_CM1_ABE_L4ABE_CLKCTRL_OFFSET, + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, }, }, }; @@ -259,6 +260,11 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = { .name = "mpu_private", .class = &omap44xx_mpu_bus_hwmod_class, .clkdm_name = "mpuss_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* @@ -447,6 +453,11 @@ static struct omap_hwmod omap44xx_ctrl_module_core_hwmod = { .class = &omap44xx_ctrl_module_hwmod_class, .clkdm_name = "l4_cfg_clkdm", .mpu_irqs = omap44xx_ctrl_module_core_irqs, + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* ctrl_module_pad_core */ @@ -454,6 +465,11 @@ static struct omap_hwmod omap44xx_ctrl_module_pad_core_hwmod = { .name = "ctrl_module_pad_core", .class = &omap44xx_ctrl_module_hwmod_class, .clkdm_name = "l4_cfg_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* ctrl_module_wkup */ @@ -461,6 +477,11 @@ static struct omap_hwmod omap44xx_ctrl_module_wkup_hwmod = { .name = "ctrl_module_wkup", .class = &omap44xx_ctrl_module_hwmod_class, .clkdm_name = "l4_wkup_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* ctrl_module_pad_wkup */ @@ -468,6 +489,11 @@ static struct omap_hwmod omap44xx_ctrl_module_pad_wkup_hwmod = { .name = "ctrl_module_pad_wkup", .class = &omap44xx_ctrl_module_hwmod_class, .clkdm_name = "l4_wkup_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* @@ -2537,18 +2563,33 @@ static struct omap_hwmod omap44xx_prcm_mpu_hwmod = { .name = "prcm_mpu", .class = &omap44xx_prcm_hwmod_class, .clkdm_name = "l4_wkup_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* cm_core_aon */ static struct omap_hwmod omap44xx_cm_core_aon_hwmod = { .name = "cm_core_aon", .class = &omap44xx_prcm_hwmod_class, + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* cm_core */ static struct omap_hwmod omap44xx_cm_core_hwmod = { .name = "cm_core", .class = &omap44xx_prcm_hwmod_class, + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* prm */ @@ -2584,6 +2625,11 @@ static struct omap_hwmod omap44xx_scrm_hwmod = { .name = "scrm", .class = &omap44xx_scrm_hwmod_class, .clkdm_name = "l4_wkup_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 6132972..fd038be 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h @@ -2,7 +2,7 @@ * omap_hwmod macros, structures * * Copyright (C) 2009-2011 Nokia Corporation - * Copyright (C) 2011 Texas Instruments, Inc. + * Copyright (C) 2012 Texas Instruments, Inc. * Paul Walmsley * * Created in collaboration with (alphabetical order): Benoît Cousson, @@ -384,6 +384,14 @@ struct omap_hwmod_omap2_prcm { u8 idlest_stdby_bit; }; +/* + * Possible values for struct omap_hwmod_omap4_prcm.flags + * + * HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT: Some IP blocks don't have a PRCM + * module-level context loss register associated with them; this + * flag bit should be set in those cases + */ +#define HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT (1 << 0) /** * struct omap_hwmod_omap4_prcm - OMAP4-specific PRCM data @@ -391,6 +399,7 @@ struct omap_hwmod_omap2_prcm { * @rstctrl_reg: address of the XXX_RSTCTRL register located in the PRM * @rstst_reg: (AM33XX only) address of the XXX_RSTST register in the PRM * @submodule_wkdep_bit: bit shift of the WKDEP range + * @flags: PRCM register capabilities for this IP block */ struct omap_hwmod_omap4_prcm { u16 clkctrl_offs; @@ -399,6 +408,7 @@ struct omap_hwmod_omap4_prcm { u16 context_offs; u8 submodule_wkdep_bit; u8 modulemode; + u8 flags; }; -- 1.7.10.4
WARNING: multiple messages have this Message-ID (diff)
From: paul@pwsan.com (Paul Walmsley) To: linux-arm-kernel@lists.infradead.org Subject: [PATCHv7 03/12] ARM: OMAP4: hwmod: flag hwmods/modules not supporting module level context status Date: Wed, 12 Sep 2012 19:46:32 +0000 (UTC) [thread overview] Message-ID: <alpine.DEB.2.00.1209121943390.17903@utopia.booyaka.com> (raw) In-Reply-To: <1342704392-23657-4-git-send-email-t-kristo@ti.com> Hi Tero, On Thu, 19 Jul 2012, Tero Kristo wrote: > On OMAP4 most modules/hwmods support module level context status. On > OMAP3 and earlier, we relied on the power domain level context status. > Identify all modules that don't support 'context_offs' by marking the > offset as USHRT_MAX. Rest have a valid 'context_offs' populated in > .prcm structure already. > > Signed-off-by: Tero Kristo <t-kristo@ti.com> This one was changed here to use a separate flag rather than adding a magic value to the context_offs field -- mostly because I've been burnt by missing tests for those kinds of magic values in the past. It should be possible to roll the .modulemode field into this .flags field in a future patch to eliminate any kernel object size changes. The modified patch is below, queued for 3.7. - Paul From: Tero Kristo <t-kristo@ti.com> Date: Wed, 12 Sep 2012 11:53:54 -0600 Subject: [PATCH] ARM: OMAP4: hwmod: flag hwmods/modules not supporting module level context status On OMAP4 most modules/hwmods support module level context status. On OMAP3 and earlier, we relied on the power domain level context status. Identify all modules that don't support 'context_offs' by adding a flag bit, HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT. Rest have a valid 'context_offs' populated in .prcm structure already. Signed-off-by: Tero Kristo <t-kristo@ti.com> [paul at pwsan.com: add flag bit rather than overloading .context_offs; update changelog message] Signed-off-by: Paul Walmsley <paul@pwsan.com> --- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 46 ++++++++++++++++++++++++++ arch/arm/plat-omap/include/plat/omap_hwmod.h | 12 ++++++- 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 242aee4..e4b0177 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@ -203,6 +203,7 @@ static struct omap_hwmod omap44xx_l4_abe_hwmod = { .prcm = { .omap4 = { .clkctrl_offs = OMAP4_CM1_ABE_L4ABE_CLKCTRL_OFFSET, + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, }, }, }; @@ -259,6 +260,11 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = { .name = "mpu_private", .class = &omap44xx_mpu_bus_hwmod_class, .clkdm_name = "mpuss_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* @@ -447,6 +453,11 @@ static struct omap_hwmod omap44xx_ctrl_module_core_hwmod = { .class = &omap44xx_ctrl_module_hwmod_class, .clkdm_name = "l4_cfg_clkdm", .mpu_irqs = omap44xx_ctrl_module_core_irqs, + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* ctrl_module_pad_core */ @@ -454,6 +465,11 @@ static struct omap_hwmod omap44xx_ctrl_module_pad_core_hwmod = { .name = "ctrl_module_pad_core", .class = &omap44xx_ctrl_module_hwmod_class, .clkdm_name = "l4_cfg_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* ctrl_module_wkup */ @@ -461,6 +477,11 @@ static struct omap_hwmod omap44xx_ctrl_module_wkup_hwmod = { .name = "ctrl_module_wkup", .class = &omap44xx_ctrl_module_hwmod_class, .clkdm_name = "l4_wkup_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* ctrl_module_pad_wkup */ @@ -468,6 +489,11 @@ static struct omap_hwmod omap44xx_ctrl_module_pad_wkup_hwmod = { .name = "ctrl_module_pad_wkup", .class = &omap44xx_ctrl_module_hwmod_class, .clkdm_name = "l4_wkup_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* @@ -2537,18 +2563,33 @@ static struct omap_hwmod omap44xx_prcm_mpu_hwmod = { .name = "prcm_mpu", .class = &omap44xx_prcm_hwmod_class, .clkdm_name = "l4_wkup_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* cm_core_aon */ static struct omap_hwmod omap44xx_cm_core_aon_hwmod = { .name = "cm_core_aon", .class = &omap44xx_prcm_hwmod_class, + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* cm_core */ static struct omap_hwmod omap44xx_cm_core_hwmod = { .name = "cm_core", .class = &omap44xx_prcm_hwmod_class, + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* prm */ @@ -2584,6 +2625,11 @@ static struct omap_hwmod omap44xx_scrm_hwmod = { .name = "scrm", .class = &omap44xx_scrm_hwmod_class, .clkdm_name = "l4_wkup_clkdm", + .prcm = { + .omap4 = { + .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT, + }, + }, }; /* diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 6132972..fd038be 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h @@ -2,7 +2,7 @@ * omap_hwmod macros, structures * * Copyright (C) 2009-2011 Nokia Corporation - * Copyright (C) 2011 Texas Instruments, Inc. + * Copyright (C) 2012 Texas Instruments, Inc. * Paul Walmsley * * Created in collaboration with (alphabetical order): Beno?t Cousson, @@ -384,6 +384,14 @@ struct omap_hwmod_omap2_prcm { u8 idlest_stdby_bit; }; +/* + * Possible values for struct omap_hwmod_omap4_prcm.flags + * + * HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT: Some IP blocks don't have a PRCM + * module-level context loss register associated with them; this + * flag bit should be set in those cases + */ +#define HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT (1 << 0) /** * struct omap_hwmod_omap4_prcm - OMAP4-specific PRCM data @@ -391,6 +399,7 @@ struct omap_hwmod_omap2_prcm { * @rstctrl_reg: address of the XXX_RSTCTRL register located in the PRM * @rstst_reg: (AM33XX only) address of the XXX_RSTST register in the PRM * @submodule_wkdep_bit: bit shift of the WKDEP range + * @flags: PRCM register capabilities for this IP block */ struct omap_hwmod_omap4_prcm { u16 clkctrl_offs; @@ -399,6 +408,7 @@ struct omap_hwmod_omap4_prcm { u16 context_offs; u8 submodule_wkdep_bit; u8 modulemode; + u8 flags; }; -- 1.7.10.4
next prev parent reply other threads:[~2012-09-12 19:46 UTC|newest] Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-07-19 13:26 [PATCHv7 00/12] ARM: OMAP4: core retention support Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-07-19 13:26 ` [PATCHv7 01/12] ARM: OMAP4: PM: add errata support Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-07-19 13:26 ` [PATCHv7 02/12] ARM: OMAP4460: Workaround for ROM bug because of CA9 r2pX GIC control register change Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-07-19 13:26 ` [PATCHv7 03/12] ARM: OMAP4: hwmod: flag hwmods/modules not supporting module level context status Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-09-12 19:46 ` Paul Walmsley [this message] 2012-09-12 19:46 ` Paul Walmsley 2012-07-19 13:26 ` [PATCHv7 04/12] ARM: OMAP: hwmod: Add support for per hwmod/module context lost count Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-09-12 19:48 ` Paul Walmsley 2012-09-12 19:48 ` Paul Walmsley 2012-09-12 21:29 ` Paul Walmsley 2012-09-12 21:29 ` Paul Walmsley 2012-09-21 0:38 ` Paul Walmsley 2012-09-21 0:38 ` Paul Walmsley 2012-07-19 13:26 ` [PATCHv7 05/12] ARM: OMAP4: pwrdm: add support for reading prev logic and mem states Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-09-12 19:50 ` Paul Walmsley 2012-09-12 19:50 ` Paul Walmsley 2012-07-19 13:26 ` [PATCHv7 06/12] ARM: OMAP4: suspend: Program all domains to retention Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-07-19 14:16 ` Sergei Shtylyov 2012-07-19 14:16 ` Sergei Shtylyov 2012-08-06 13:29 ` Jean Pihet 2012-08-06 13:29 ` Jean Pihet 2012-09-12 21:36 ` Kevin Hilman 2012-09-12 21:36 ` Kevin Hilman 2012-07-19 13:26 ` [PATCHv7 07/12] ARM: OMAP4: PM: put all domains to OSWR during suspend Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-07-19 14:44 ` Paul Walmsley 2012-07-19 14:44 ` Paul Walmsley 2012-07-19 15:31 ` Tero Kristo 2012-07-19 15:31 ` Tero Kristo 2012-07-19 23:30 ` Paul Walmsley 2012-07-19 23:30 ` Paul Walmsley 2012-07-20 8:37 ` Tero Kristo 2012-07-20 8:37 ` Tero Kristo 2012-09-12 23:11 ` Kevin Hilman 2012-09-12 23:11 ` Kevin Hilman 2012-09-13 7:40 ` Tero Kristo 2012-09-13 7:40 ` Tero Kristo 2012-07-19 13:26 ` [PATCHv7 08/12] ARM: OMAP4430: PM: Work-around for ROM code BUG of PER pwrst ctrl Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-07-19 23:21 ` Paul Walmsley 2012-07-19 23:21 ` Paul Walmsley 2012-07-20 9:20 ` Tero Kristo 2012-07-20 9:20 ` Tero Kristo 2012-07-20 13:25 ` Tero Kristo 2012-07-20 13:25 ` Tero Kristo 2012-07-19 13:26 ` [PATCHv7 09/12] ARM: OMAP4: hwmod data: temporarily comment out data for the sl2if IP block Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-07-23 18:38 ` Paul Walmsley 2012-07-23 18:38 ` Paul Walmsley 2012-07-19 13:26 ` [PATCHv7 10/12] ARM: OMAP4: HWMOD: add support for lostcontext_mask Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-09-12 19:52 ` Paul Walmsley 2012-09-12 19:52 ` Paul Walmsley 2012-07-19 13:26 ` [PATCHv7 11/12] ARM: OMAP4: hwmod_data: add context lose information for l4_abe hwmod Tero Kristo 2012-07-19 13:26 ` Tero Kristo 2012-07-19 13:26 ` [PATCHv7 12/12] ARM: OMAP4: hwmod: update context lost counter logic for hwmods without context reg Tero Kristo 2012-07-19 13:26 ` Tero Kristo
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=alpine.DEB.2.00.1209121943390.17903@utopia.booyaka.com \ --to=paul@pwsan.com \ --cc=khilman@ti.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=nm@ti.com \ --cc=rnayak@ti.com \ --cc=t-kristo@ti.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.