aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bus/omap_l3_noc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/bus/omap_l3_noc.c')
-rw-r--r--drivers/bus/omap_l3_noc.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/bus/omap_l3_noc.c b/drivers/bus/omap_l3_noc.c
index 0691e6d9c1e4..00e4fed4a39b 100644
--- a/drivers/bus/omap_l3_noc.c
+++ b/drivers/bus/omap_l3_noc.c
@@ -169,6 +169,9 @@ static irqreturn_t l3_interrupt_handler(int irq, void *_l3)
169 err_reg = readl_relaxed(base + flag_mux->offset + 169 err_reg = readl_relaxed(base + flag_mux->offset +
170 L3_FLAGMUX_REGERR0 + (inttype << 3)); 170 L3_FLAGMUX_REGERR0 + (inttype << 3));
171 171
172 err_reg &= ~(inttype ? flag_mux->mask_app_bits :
173 flag_mux->mask_dbg_bits);
174
172 /* Get the corresponding error and analyse */ 175 /* Get the corresponding error and analyse */
173 if (err_reg) { 176 if (err_reg) {
174 /* Identify the source from control status register */ 177 /* Identify the source from control status register */
@@ -193,6 +196,12 @@ static irqreturn_t l3_interrupt_handler(int irq, void *_l3)
193 mask_val = readl_relaxed(mask_reg); 196 mask_val = readl_relaxed(mask_reg);
194 mask_val &= ~(1 << err_src); 197 mask_val &= ~(1 << err_src);
195 writel_relaxed(mask_val, mask_reg); 198 writel_relaxed(mask_val, mask_reg);
199
200 /* Mark these bits as to be ignored */
201 if (inttype)
202 flag_mux->mask_app_bits |= 1 << err_src;
203 else
204 flag_mux->mask_dbg_bits |= 1 << err_src;
196 } 205 }
197 206
198 /* Error found so break the for loop */ 207 /* Error found so break the for loop */