aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorTero Kristo <t-kristo@ti.com>2012-03-12 06:30:02 -0400
committerPaul Walmsley <paul@pwsan.com>2012-03-12 06:30:02 -0400
commit553e322282655f213d131903ce7019aa25880273 (patch)
tree7b737a3c31648b8843251cf2dec20c2224aa4316 /arch/arm
parent387ca5bf4fe2297c93869b6f639afa8d849fb877 (diff)
ARM: OMAP4: prm: fix interrupt register offsets
Previous code used wrong instance for the interrupt register access. Use the right one which is OCP_SOCKET. Signed-off-by: Tero Kristo <t-kristo@ti.com> Cc: Paul Walmsley <paul@pwsan.com> Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/prm44xx.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-omap2/prm44xx.c
index a1d6154dc120..fbc597f65b3f 100644
--- a/arch/arm/mach-omap2/prm44xx.c
+++ b/arch/arm/mach-omap2/prm44xx.c
@@ -146,8 +146,9 @@ static inline u32 _read_pending_irq_reg(u16 irqen_offs, u16 irqst_offs)
146 u32 mask, st; 146 u32 mask, st;
147 147
148 /* XXX read mask from RAM? */ 148 /* XXX read mask from RAM? */
149 mask = omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST, irqen_offs); 149 mask = omap4_prm_read_inst_reg(OMAP4430_PRM_OCP_SOCKET_INST,
150 st = omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST, irqst_offs); 150 irqen_offs);
151 st = omap4_prm_read_inst_reg(OMAP4430_PRM_OCP_SOCKET_INST, irqst_offs);
151 152
152 return mask & st; 153 return mask & st;
153} 154}
@@ -179,7 +180,7 @@ void omap44xx_prm_read_pending_irqs(unsigned long *events)
179 */ 180 */
180void omap44xx_prm_ocp_barrier(void) 181void omap44xx_prm_ocp_barrier(void)
181{ 182{
182 omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST, 183 omap4_prm_read_inst_reg(OMAP4430_PRM_OCP_SOCKET_INST,
183 OMAP4_REVISION_PRM_OFFSET); 184 OMAP4_REVISION_PRM_OFFSET);
184} 185}
185 186
@@ -197,19 +198,19 @@ void omap44xx_prm_ocp_barrier(void)
197void omap44xx_prm_save_and_clear_irqen(u32 *saved_mask) 198void omap44xx_prm_save_and_clear_irqen(u32 *saved_mask)
198{ 199{
199 saved_mask[0] = 200 saved_mask[0] =
200 omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST, 201 omap4_prm_read_inst_reg(OMAP4430_PRM_OCP_SOCKET_INST,
201 OMAP4_PRM_IRQSTATUS_MPU_OFFSET); 202 OMAP4_PRM_IRQSTATUS_MPU_OFFSET);
202 saved_mask[1] = 203 saved_mask[1] =
203 omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST, 204 omap4_prm_read_inst_reg(OMAP4430_PRM_OCP_SOCKET_INST,
204 OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET); 205 OMAP4_PRM_IRQSTATUS_MPU_2_OFFSET);
205 206
206 omap4_prm_write_inst_reg(0, OMAP4430_PRM_DEVICE_INST, 207 omap4_prm_write_inst_reg(0, OMAP4430_PRM_OCP_SOCKET_INST,
207 OMAP4_PRM_IRQENABLE_MPU_OFFSET); 208 OMAP4_PRM_IRQENABLE_MPU_OFFSET);
208 omap4_prm_write_inst_reg(0, OMAP4430_PRM_DEVICE_INST, 209 omap4_prm_write_inst_reg(0, OMAP4430_PRM_OCP_SOCKET_INST,
209 OMAP4_PRM_IRQENABLE_MPU_2_OFFSET); 210 OMAP4_PRM_IRQENABLE_MPU_2_OFFSET);
210 211
211 /* OCP barrier */ 212 /* OCP barrier */
212 omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST, 213 omap4_prm_read_inst_reg(OMAP4430_PRM_OCP_SOCKET_INST,
213 OMAP4_REVISION_PRM_OFFSET); 214 OMAP4_REVISION_PRM_OFFSET);
214} 215}
215 216
@@ -225,9 +226,9 @@ void omap44xx_prm_save_and_clear_irqen(u32 *saved_mask)
225 */ 226 */
226void omap44xx_prm_restore_irqen(u32 *saved_mask) 227void omap44xx_prm_restore_irqen(u32 *saved_mask)
227{ 228{
228 omap4_prm_write_inst_reg(saved_mask[0], OMAP4430_PRM_DEVICE_INST, 229 omap4_prm_write_inst_reg(saved_mask[0], OMAP4430_PRM_OCP_SOCKET_INST,
229 OMAP4_PRM_IRQENABLE_MPU_OFFSET); 230 OMAP4_PRM_IRQENABLE_MPU_OFFSET);
230 omap4_prm_write_inst_reg(saved_mask[1], OMAP4430_PRM_DEVICE_INST, 231 omap4_prm_write_inst_reg(saved_mask[1], OMAP4430_PRM_OCP_SOCKET_INST,
231 OMAP4_PRM_IRQENABLE_MPU_2_OFFSET); 232 OMAP4_PRM_IRQENABLE_MPU_2_OFFSET);
232} 233}
233 234