Lines Matching refs:iter
67 static void etnaviv_core_dump_header(struct core_dump_iterator *iter,
70 struct etnaviv_dump_object_header *hdr = iter->hdr;
74 hdr->file_offset = cpu_to_le32(iter->data - iter->start);
75 hdr->file_size = cpu_to_le32(data_end - iter->data);
77 iter->hdr++;
78 iter->data += le32_to_cpu(hdr->file_size);
81 static void etnaviv_core_dump_registers(struct core_dump_iterator *iter,
84 struct etnaviv_dump_registers *reg = iter->data;
97 etnaviv_core_dump_header(iter, ETDUMP_BUF_REG, reg);
100 static void etnaviv_core_dump_mmu(struct core_dump_iterator *iter,
103 etnaviv_iommu_dump(mmu, iter->data);
105 etnaviv_core_dump_header(iter, ETDUMP_BUF_MMU, iter->data + mmu_size);
108 static void etnaviv_core_dump_mem(struct core_dump_iterator *iter, u32 type,
111 memcpy(iter->data, ptr, size);
113 iter->hdr->iova = cpu_to_le64(iova);
115 etnaviv_core_dump_header(iter, type, iter->data + size);
121 struct core_dump_iterator iter;
159 file_size += sizeof(*iter.hdr) * n_obj;
162 iter.start = __vmalloc(file_size, GFP_KERNEL | __GFP_NOWARN |
164 if (!iter.start) {
171 iter.hdr = iter.start;
172 iter.data = &iter.hdr[n_obj];
174 memset(iter.hdr, 0, iter.data - iter.start);
176 etnaviv_core_dump_registers(&iter, gpu);
177 etnaviv_core_dump_mmu(&iter, submit->mmu_context, mmu_size);
178 etnaviv_core_dump_mem(&iter, ETDUMP_BUF_RING, gpu->buffer.vaddr,
183 etnaviv_core_dump_mem(&iter, ETDUMP_BUF_CMD,
192 bomap_start = bomap = iter.data;
194 etnaviv_core_dump_header(&iter, ETDUMP_BUF_BOMAP,
215 iter.hdr->data[0] = cpu_to_le32((bomap - bomap_start));
221 iter.hdr->iova = cpu_to_le64(vram->iova);
225 memcpy(iter.data, vaddr, obj->base.size);
227 etnaviv_core_dump_header(&iter, ETDUMP_BUF_BO, iter.data +
231 etnaviv_core_dump_header(&iter, ETDUMP_BUF_END, iter.data);
233 dev_coredumpv(gpu->dev, iter.start, iter.data - iter.start, GFP_KERNEL);