Loading drivers/char/adsprpc.c +26 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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; Loading Loading @@ -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); Loading Loading
drivers/char/adsprpc.c +26 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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; Loading Loading @@ -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); Loading