aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/control.c
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2010-12-21 17:30:53 -0500
committerPaul Walmsley <paul@pwsan.com>2010-12-21 22:01:53 -0500
commitf5f9d132d1c212bf3828c7926d95f79e0c20d243 (patch)
tree979937fd6eeb58a5599bf5b1222d81c6ba6e3f3d /arch/arm/mach-omap2/control.c
parent166353bd75587a2158d713af1b9489a79e0ce297 (diff)
OMAP3: control/PRCM: move CONTROL_PADCONF_SYS_NIRQ save/restore to SCM code
For some reason, the PRCM context save/restore code also saves and restores a single System Control Module register, CONTROL_PADCONF_SYS_NIRQ. This is probably just an error -- the register should be handled by SCM code -- so this patch moves it there. If this register really does need to be saved and restored before the rest of the PRCM registers, the code to do so should live in the SCM code, and the PM code should call this separate function. This register pertains to devices with a stacked modem, so this patch is unlikely to affect most OMAP devices out there. Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Kevin Hilman <khilman@deeprootsystems.com> Reviewed-by: Kevin Hilman <khilman@deeprootsystems.com> Tested-by: Kevin Hilman <khilman@deeprootsystems.com> Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Rajendra Nayak <rnayak@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/control.c')
-rw-r--r--arch/arm/mach-omap2/control.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/control.c b/arch/arm/mach-omap2/control.c
index d058f7c3ec6a..b066c6e110a6 100644
--- a/arch/arm/mach-omap2/control.c
+++ b/arch/arm/mach-omap2/control.c
@@ -134,6 +134,7 @@ struct omap3_control_regs {
134 u32 sramldo4; 134 u32 sramldo4;
135 u32 sramldo5; 135 u32 sramldo5;
136 u32 csi; 136 u32 csi;
137 u32 padconf_sys_nirq;
137}; 138};
138 139
139static struct omap3_control_regs control_context; 140static struct omap3_control_regs control_context;
@@ -457,6 +458,8 @@ void omap3_control_save_context(void)
457 control_context.sramldo4 = omap_ctrl_readl(OMAP343X_CONTROL_SRAMLDO4); 458 control_context.sramldo4 = omap_ctrl_readl(OMAP343X_CONTROL_SRAMLDO4);
458 control_context.sramldo5 = omap_ctrl_readl(OMAP343X_CONTROL_SRAMLDO5); 459 control_context.sramldo5 = omap_ctrl_readl(OMAP343X_CONTROL_SRAMLDO5);
459 control_context.csi = omap_ctrl_readl(OMAP343X_CONTROL_CSI); 460 control_context.csi = omap_ctrl_readl(OMAP343X_CONTROL_CSI);
461 control_context.padconf_sys_nirq =
462 omap_ctrl_readl(OMAP343X_CONTROL_PADCONF_SYSNIRQ);
460 return; 463 return;
461} 464}
462 465
@@ -513,6 +516,8 @@ void omap3_control_restore_context(void)
513 omap_ctrl_writel(control_context.sramldo4, OMAP343X_CONTROL_SRAMLDO4); 516 omap_ctrl_writel(control_context.sramldo4, OMAP343X_CONTROL_SRAMLDO4);
514 omap_ctrl_writel(control_context.sramldo5, OMAP343X_CONTROL_SRAMLDO5); 517 omap_ctrl_writel(control_context.sramldo5, OMAP343X_CONTROL_SRAMLDO5);
515 omap_ctrl_writel(control_context.csi, OMAP343X_CONTROL_CSI); 518 omap_ctrl_writel(control_context.csi, OMAP343X_CONTROL_CSI);
519 omap_ctrl_writel(control_context.padconf_sys_nirq,
520 OMAP343X_CONTROL_PADCONF_SYSNIRQ);
516 return; 521 return;
517} 522}
518 523