Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2290c7a6 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ADSPRPC: Update unsigned pd support on cDSP from kernel"

parents 509628c2 751d89be
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -4437,6 +4437,27 @@ static int fastrpc_get_dsp_info(struct fastrpc_ioctl_dsp_capabilities *dsp_cap,
	return err;
}

static int fastrpc_update_cdsp_support(struct fastrpc_file *fl)
{
	struct fastrpc_ioctl_dsp_capabilities *dsp_query;
	struct fastrpc_apps *me = &gfa;
	int err = 0;

	VERIFY(err, NULL != (dsp_query = kzalloc(sizeof(*dsp_query),
				GFP_KERNEL)));
	if (err)
		goto bail;
	dsp_query->domain = CDSP_DOMAIN_ID;
	err = fastrpc_get_info_from_kernel(dsp_query, fl);
	if (err)
		goto bail;
	if (!(dsp_query->dsp_attributes[1]))
		me->channel[CDSP_DOMAIN_ID].unsigned_support = false;
bail:
	kfree(dsp_query);
	return err;
}

static long fastrpc_device_ioctl(struct file *file, unsigned int ioctl_num,
				 unsigned long ioctl_param)
{
@@ -4460,6 +4481,7 @@ static long fastrpc_device_ioctl(struct file *file, unsigned int ioctl_num,
	struct fastrpc_file *fl = (struct fastrpc_file *)file->private_data;
	int size = 0, err = 0;
	uint32_t info;
	static bool isquerydone;

	p.inv.fds = NULL;
	p.inv.attrs = NULL;
@@ -4601,6 +4623,10 @@ static long fastrpc_device_ioctl(struct file *file, unsigned int ioctl_num,
		VERIFY(err, 0 == (err = fastrpc_init_process(fl, &p.init)));
		if (err)
			goto bail;
		if ((fl->cid == CDSP_DOMAIN_ID) && !isquerydone) {
			if (!fastrpc_update_cdsp_support(fl))
				isquerydone = true;
		}
		break;
	case FASTRPC_IOCTL_GET_DSP_INFO:
		err = fastrpc_get_dsp_info(&p.dsp_cap, param, fl);