Lines Matching refs:rproc

17 	struct rproc *rproc;
24 * @rproc: the remote processor handle
26 void rproc_coredump_cleanup(struct rproc *rproc)
30 list_for_each_entry_safe(entry, tmp, &rproc->dump_segments, node) {
39 * @rproc: handle of a remote processor
48 int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size)
59 list_add_tail(&segment->node, &rproc->dump_segments);
67 * @rproc: handle of a remote processor
79 int rproc_coredump_add_custom_segment(struct rproc *rproc,
81 void (*dumpfn)(struct rproc *rproc,
98 list_add_tail(&segment->node, &rproc->dump_segments);
106 * @rproc: handle of a remote processor
114 int rproc_coredump_set_elf_info(struct rproc *rproc, u8 class, u16 machine)
119 rproc->elf_class = class;
120 rproc->elf_machine = machine;
152 static void rproc_copy_segment(struct rproc *rproc, void *dest,
160 segment->dump(rproc, segment, dest, offset, size);
162 ptr = rproc_da_to_va(rproc, segment->da + offset, size, &is_iomem);
164 dev_err(&rproc->dev,
184 struct rproc *rproc = dump_state->rproc;
201 &rproc->dump_segments,
205 dev_info(&rproc->dev, "Ramdump done, %lld bytes read",
212 rproc_copy_segment(rproc, buffer, seg, seg->size - seg_data,
225 * @rproc: rproc handle
228 * and create a devcoredump device associated with rproc. Based on the
235 void rproc_coredump(struct rproc *rproc)
243 u8 class = rproc->elf_class;
246 enum rproc_dump_mechanism dump_conf = rproc->dump_conf;
248 if (list_empty(&rproc->dump_segments) ||
253 dev_err(&rproc->dev, "ELF class is not set\n");
258 list_for_each_entry(segment, &rproc->dump_segments, node) {
282 elf_hdr_set_e_machine(class, ehdr, rproc->elf_machine);
284 elf_hdr_set_e_entry(class, ehdr, rproc->bootaddr);
294 list_for_each_entry(segment, &rproc->dump_segments, node) {
306 rproc_copy_segment(rproc, data + offset, segment, 0,
313 dev_coredumpv(&rproc->dev, data, data_size, GFP_KERNEL);
318 dump_state.rproc = rproc;
322 dev_coredumpm(&rproc->dev, NULL, &dump_state, data_size, GFP_KERNEL,
335 * @rproc: rproc handle
338 * segments and create a devcoredump device associated with rproc. Based on
345 void rproc_coredump_using_sections(struct rproc *rproc)
355 u8 class = rproc->elf_class;
358 unsigned int dump_conf = rproc->dump_conf;
361 if (list_empty(&rproc->dump_segments) ||
366 dev_err(&rproc->dev, "ELF class is not set\n");
381 list_for_each_entry(segment, &rproc->dump_segments, node) {
401 elf_hdr_set_e_machine(class, ehdr, rproc->elf_machine);
403 elf_hdr_set_e_entry(class, ehdr, rproc->bootaddr);
434 list_for_each_entry(segment, &rproc->dump_segments, node) {
447 rproc_copy_segment(rproc, data + offset, segment, 0,
454 dev_coredumpv(&rproc->dev, data, data_size, GFP_KERNEL);
459 dump_state.rproc = rproc;
463 dev_coredumpm(&rproc->dev, NULL, &dump_state, data_size, GFP_KERNEL,