aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Jakobi <tjakobi@math.uni-bielefeld.de>2014-07-23 10:57:13 -0400
committerInki Dae <inki.dae@samsung.com>2014-08-04 00:39:28 -0400
commitef7ce055a9e00f6376416466b996515a27b7cb31 (patch)
treecfbd52dcaa4d239c24ebdc7ca4ee14ae464da2a3
parent1cd1ea565f3ece26dff3a94bf73e4f6caae140b9 (diff)
drm/exynos: g2d: let exynos_g2d_get_ver_ioctl fail
Currently the DRM_IOCTL_EXYNOS_G2D_GET_VER ioctl always succeeds, even if no G2D support is available. Let the ioctl fail when this is the case, so that userspace can accurately probe for G2D support. This also fixes the exynos tests in libdrm. There 'g2d_init' doesn't fail when G2D is absent, leading to a segfault later. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Signed-off-by: INki Dae <inki.dae@samsung.com>
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_g2d.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
index 0d46178f0d89..df7a77d3eff8 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
@@ -1042,8 +1042,23 @@ err:
1042int exynos_g2d_get_ver_ioctl(struct drm_device *drm_dev, void *data, 1042int exynos_g2d_get_ver_ioctl(struct drm_device *drm_dev, void *data,
1043 struct drm_file *file) 1043 struct drm_file *file)
1044{ 1044{
1045 struct drm_exynos_file_private *file_priv = file->driver_priv;
1046 struct exynos_drm_g2d_private *g2d_priv = file_priv->g2d_priv;
1047 struct device *dev;
1048 struct g2d_data *g2d;
1045 struct drm_exynos_g2d_get_ver *ver = data; 1049 struct drm_exynos_g2d_get_ver *ver = data;
1046 1050
1051 if (!g2d_priv)
1052 return -ENODEV;
1053
1054 dev = g2d_priv->dev;
1055 if (!dev)
1056 return -ENODEV;
1057
1058 g2d = dev_get_drvdata(dev);
1059 if (!g2d)
1060 return -EFAULT;
1061
1047 ver->major = G2D_HW_MAJOR_VER; 1062 ver->major = G2D_HW_MAJOR_VER;
1048 ver->minor = G2D_HW_MINOR_VER; 1063 ver->minor = G2D_HW_MINOR_VER;
1049 1064