Lines Matching refs:cr

41 #define for_each_iotlb_cr(obj, n, __i, cr)				\  argument
43 (__i < (n)) && (cr = __iotlb_read_cr((obj), __i), true); \
216 static inline int iotlb_cr_valid(struct cr_regs *cr) in iotlb_cr_valid() argument
218 if (!cr) in iotlb_cr_valid()
221 return cr->cam & MMU_CAM_V; in iotlb_cr_valid()
224 static u32 iotlb_cr_to_virt(struct cr_regs *cr) in iotlb_cr_to_virt() argument
226 u32 page_size = cr->cam & MMU_CAM_PGSZ_MASK; in iotlb_cr_to_virt()
227 u32 mask = get_cam_va_mask(cr->cam & page_size); in iotlb_cr_to_virt()
229 return cr->cam & mask; in iotlb_cr_to_virt()
284 static void iotlb_read_cr(struct omap_iommu *obj, struct cr_regs *cr) in iotlb_read_cr() argument
286 cr->cam = iommu_read_reg(obj, MMU_READ_CAM); in iotlb_read_cr()
287 cr->ram = iommu_read_reg(obj, MMU_READ_RAM); in iotlb_read_cr()
290 static void iotlb_load_cr(struct omap_iommu *obj, struct cr_regs *cr) in iotlb_load_cr() argument
292 iommu_write_reg(obj, cr->cam | MMU_CAM_V, MMU_CAM); in iotlb_load_cr()
293 iommu_write_reg(obj, cr->ram, MMU_RAM); in iotlb_load_cr()
302 struct cr_regs cr; in __iotlb_read_cr() local
308 iotlb_read_cr(obj, &cr); in __iotlb_read_cr()
310 return cr; in __iotlb_read_cr()
317 struct cr_regs *cr; in iotlb_alloc_cr() local
328 cr = kmalloc(sizeof(*cr), GFP_KERNEL); in iotlb_alloc_cr()
329 if (!cr) in iotlb_alloc_cr()
332 cr->cam = (e->da & MMU_CAM_VATAG_MASK) | e->prsvd | e->pgsz | e->valid; in iotlb_alloc_cr()
333 cr->ram = e->pa | e->endian | e->elsz | e->mixed; in iotlb_alloc_cr()
335 return cr; in iotlb_alloc_cr()
347 struct cr_regs *cr; in load_iotlb_entry() local
380 cr = iotlb_alloc_cr(obj, e); in load_iotlb_entry()
381 if (IS_ERR(cr)) { in load_iotlb_entry()
383 return PTR_ERR(cr); in load_iotlb_entry()
386 iotlb_load_cr(obj, cr); in load_iotlb_entry()
387 kfree(cr); in load_iotlb_entry()
424 struct cr_regs cr; in flush_iotlb_page() local
428 for_each_iotlb_cr(obj, obj->nr_tlb_entries, i, cr) { in flush_iotlb_page()
432 if (!iotlb_cr_valid(&cr)) in flush_iotlb_page()
435 start = iotlb_cr_to_virt(&cr); in flush_iotlb_page()
436 bytes = iopgsz_to_bytes(cr.cam & 3); in flush_iotlb_page()
441 iotlb_load_cr(obj, &cr); in flush_iotlb_page()
554 static ssize_t iotlb_dump_cr(struct omap_iommu *obj, struct cr_regs *cr, in iotlb_dump_cr() argument
560 p += sprintf(p, "%08x %08x %01x\n", cr->cam, cr->ram, in iotlb_dump_cr()
561 (cr->cam & MMU_CAM_P) ? 1 : 0); in iotlb_dump_cr()
574 struct cr_regs *cr; in omap_dump_tlb_entries() local
577 num = bytes / sizeof(*cr); in omap_dump_tlb_entries()
580 cr = kcalloc(num, sizeof(*cr), GFP_KERNEL); in omap_dump_tlb_entries()
581 if (!cr) in omap_dump_tlb_entries()
584 num = __dump_tlb_entries(obj, cr, num); in omap_dump_tlb_entries()
586 p += iotlb_dump_cr(obj, cr + i, p); in omap_dump_tlb_entries()
587 kfree(cr); in omap_dump_tlb_entries()