aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
diff options
context:
space:
mode:
authorTero Kristo <t-kristo@ti.com>2012-09-23 19:28:19 -0400
committerPaul Walmsley <paul@pwsan.com>2012-09-23 19:28:19 -0400
commitce80979aedfce937926a8dd40a1f92fd4bc2fd53 (patch)
tree1f114f8e0b134322d52f8d506fac974b464d5127 /arch/arm/mach-omap2/omap_hwmod_44xx_data.c
parent5b8a14be513ca1172c72ec181a5e22ec18fb7bf5 (diff)
ARM: OMAP4: hwmod data: add support for lostcontext_mask
Currently hwmod only provides the offset for the context lose register, and if we attempt to share the same register between two or more hwmods, the resulting context loss counts get wrong. Thus, we need a way to specify which bits are used for the context loss information for each. This is accomplished by adding a new field to the omap4 prcm struct, 'lostcontext_mask', which specifies a bit-mask to use for filtering the register. Mark the affected hwmods appropriately. 'l4_abe' hwmod uses the LOSTMEM_AESSMEM bit of RM_ABE_AESS_CONTEXT register, as l4_abe doesn't have its own dedicated register for this purpose. This register is shared with 'aess' hwmod, thus both hwmods must also specify which bits of the register are used for them. This patch only adds the hwmod data, but a future patch should add code support such that only the specified bits are read and cleared by the context lose counter update code. If a hwmod doesn't specify 'lostcontext_mask' (default behavior), the whole contents of the context register should be used without any filtering. Signed-off-by: Tero Kristo <t-kristo@ti.com> [paul@pwsan.com: updated to apply after conversion to use flag bit for missing module context-loss register; combined data and code patches; dropped code change due to serial driver breakage] Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod_44xx_data.c')
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_44xx_data.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 110be87cd995..d3f045bf810a 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -202,6 +202,8 @@ static struct omap_hwmod omap44xx_l4_abe_hwmod = {
202 .prcm = { 202 .prcm = {
203 .omap4 = { 203 .omap4 = {
204 .clkctrl_offs = OMAP4_CM1_ABE_L4ABE_CLKCTRL_OFFSET, 204 .clkctrl_offs = OMAP4_CM1_ABE_L4ABE_CLKCTRL_OFFSET,
205 .context_offs = OMAP4_RM_ABE_AESS_CONTEXT_OFFSET,
206 .lostcontext_mask = OMAP4430_LOSTMEM_AESSMEM_MASK,
205 }, 207 },
206 }, 208 },
207}; 209};
@@ -342,6 +344,7 @@ static struct omap_hwmod omap44xx_aess_hwmod = {
342 .omap4 = { 344 .omap4 = {
343 .clkctrl_offs = OMAP4_CM1_ABE_AESS_CLKCTRL_OFFSET, 345 .clkctrl_offs = OMAP4_CM1_ABE_AESS_CLKCTRL_OFFSET,
344 .context_offs = OMAP4_RM_ABE_AESS_CONTEXT_OFFSET, 346 .context_offs = OMAP4_RM_ABE_AESS_CONTEXT_OFFSET,
347 .lostcontext_mask = OMAP4430_LOSTCONTEXT_DFF_MASK,
345 .modulemode = MODULEMODE_SWCTRL, 348 .modulemode = MODULEMODE_SWCTRL,
346 }, 349 },
347 }, 350 },