[PATCH v3 5/7] drm/panfrost: Add a new ioctl to submit batches

Alyssa Rosenzweig alyssa at collabora.com
Fri Jul 2 15:34:01 UTC 2021


> Better, but I was hoping we can mostly delete panfrost_ioctl_submit(),
> leaving something along the lines of:
> 
> static int panfrost_ioctl_submit(struct drm_device *dev, void *data,
> 		struct drm_file *file)
> {
> 	struct panfrost_submitqueue *queue;
> 	struct drm_panfrost_submit *args = data;
> 	struct drm_panfrost_job submit_args = {
> 		.head = args->jc,
> 		.bos = args->bo_handles,
> 		.in_syncs = args->in_syncs,
> 		.out_syncs = &args->out_sync, // FIXME
> 		.in_sync_count = args->in_sync_count,
> 		.out_sync_count = args->out_sync > 0 ? 1 : 0,
> 		.bo_count = args->bo_handle_count,
> 		.requirements = args->requirements
> 	};
> 	int ret;
> 
> 	queue = panfrost_submitqueue_get(file->driver_priv, 0);
> 
> 	ret = panfrost_submit_job(dev, file, queue, &submit_args,
> 				  sizeof(u32), ...);
> 
> 	return ret;
> }
> 
> But obviously the out_sync part needs special handling as we can't just
> pass a kernel pointer in like that ;)

This, a dozen times this.


More information about the dri-devel mailing list