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;
}