static int modem_ramdump(int enable, const struct subsys_desc *subsys) { struct q6v4_modem *drv = desc_to_modem(subsys); int ret; if (!enable) return 0; ret = pil_do_ramdump(&drv->q6_sw.desc, drv->sw_ramdump_dev); if (ret < 0) return ret; ret = pil_do_ramdump(&drv->q6_fw.desc, drv->fw_ramdump_dev); if (ret < 0) return ret; ret = do_elf_ramdump(drv->smem_ramdump_dev, smem_segments, ARRAY_SIZE(smem_segments)); if (ret < 0) return ret; return 0; }
static int dsps_ramdump(int enable, const struct subsys_desc *desc) { int ret; struct dsps_data *drv = desc_to_drv(desc); if (!enable) return 0; ret = pil_do_ramdump(&drv->desc, drv->ramdump_dev); if (ret < 0) { pr_err("%s: Unable to dump DSPS memory (rc = %d).\n", __func__, ret); return ret; } ret = do_elf_ramdump(drv->smem_ramdump_dev, drv->smem_ramdump_segments, ARRAY_SIZE(drv->smem_ramdump_segments)); if (ret < 0) { pr_err("%s: Unable to dump smem memory (rc = %d).\n", __func__, ret); return ret; } return 0; }