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

Commit 74f60692 authored by Camus Wong's avatar Camus Wong
Browse files

drm/msm-hyp: overwrite hyp ioctls used by libgbm



Handle ioctls called by libgbm in the virtual kernel driver
to support front-end library and avoid modifying libgbm.

Change-Id: Ie4e567cea7338b4ba68080decf85dfa45e040dac
Signed-off-by: default avatarCamus Wong <camusw@codeaurora.org>
parent 99b73ed5
Loading
Loading
Loading
Loading
+25 −1
Original line number Original line Diff line number Diff line
@@ -355,11 +355,35 @@ static int msm_ioctl_query_client_id(struct drm_device *dev, void *data,
	return ret;
	return ret;
}
}


static long msm_drm_ioctl(struct file *filp,
	unsigned int cmd, unsigned long arg)
{
	switch (cmd) {
	case DRM_IOCTL_PRIME_FD_TO_HANDLE:
	{
		struct drm_prime_handle cmd_data;

		if (copy_from_user(&cmd_data, (void __user *)arg,
				sizeof(struct drm_prime_handle)) != 0)
			return -EFAULT;
		cmd_data.handle = cmd_data.fd;
		if (copy_to_user((void __user *)arg, &cmd_data,
				sizeof(struct drm_prime_handle)) != 0)
			return -EFAULT;
		return 0;
	}
	case DRM_IOCTL_GEM_CLOSE:
		return 0;
	default:
		return drm_ioctl(filp, cmd, arg);
	}
}

static const struct file_operations fops = {
static const struct file_operations fops = {
	.owner              = THIS_MODULE,
	.owner              = THIS_MODULE,
	.open               = drm_open,
	.open               = drm_open,
	.release            = drm_release,
	.release            = drm_release,
	.unlocked_ioctl     = drm_ioctl,
	.unlocked_ioctl     = msm_drm_ioctl,
	.poll               = drm_poll,
	.poll               = drm_poll,
	.read               = drm_read,
	.read               = drm_read,
	.write              = msm_drm_write,
	.write              = msm_drm_write,