diff options
Diffstat (limited to 'arch/arm/mach-omap2/iommu2.c')
-rw-r--r-- | arch/arm/mach-omap2/iommu2.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/iommu2.c b/arch/arm/mach-omap2/iommu2.c index 4f63dc6859a4..e82da680d908 100644 --- a/arch/arm/mach-omap2/iommu2.c +++ b/arch/arm/mach-omap2/iommu2.c | |||
@@ -147,6 +147,7 @@ static u32 omap2_iommu_fault_isr(struct iommu *obj, u32 *ra) | |||
147 | printk("\n"); | 147 | printk("\n"); |
148 | 148 | ||
149 | iommu_write_reg(obj, stat, MMU_IRQSTATUS); | 149 | iommu_write_reg(obj, stat, MMU_IRQSTATUS); |
150 | omap2_iommu_disable(obj); | ||
150 | return stat; | 151 | return stat; |
151 | } | 152 | } |
152 | 153 | ||
@@ -184,7 +185,7 @@ static struct cr_regs *omap2_alloc_cr(struct iommu *obj, struct iotlb_entry *e) | |||
184 | if (!cr) | 185 | if (!cr) |
185 | return ERR_PTR(-ENOMEM); | 186 | return ERR_PTR(-ENOMEM); |
186 | 187 | ||
187 | cr->cam = (e->da & MMU_CAM_VATAG_MASK) | e->prsvd | e->pgsz; | 188 | cr->cam = (e->da & MMU_CAM_VATAG_MASK) | e->prsvd | e->pgsz | e->valid; |
188 | cr->ram = e->pa | e->endian | e->elsz | e->mixed; | 189 | cr->ram = e->pa | e->endian | e->elsz | e->mixed; |
189 | 190 | ||
190 | return cr; | 191 | return cr; |
@@ -212,7 +213,8 @@ static ssize_t omap2_dump_cr(struct iommu *obj, struct cr_regs *cr, char *buf) | |||
212 | char *p = buf; | 213 | char *p = buf; |
213 | 214 | ||
214 | /* FIXME: Need more detail analysis of cam/ram */ | 215 | /* FIXME: Need more detail analysis of cam/ram */ |
215 | p += sprintf(p, "%08x %08x\n", cr->cam, cr->ram); | 216 | p += sprintf(p, "%08x %08x %01x\n", cr->cam, cr->ram, |
217 | (cr->cam & MMU_CAM_P) ? 1 : 0); | ||
216 | 218 | ||
217 | return p - buf; | 219 | return p - buf; |
218 | } | 220 | } |