summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vc4
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2016-07-26 22:47:12 +0200
committerEric Anholt <eric@anholt.net>2016-08-20 04:17:30 +0200
commit163195fc12cae0c8b5c0d74d3ba8d2c5f81773bc (patch)
treefb1fae850e1adb11ae9ffe85faded1e53135d60c /drivers/gpu/drm/vc4
parentdrm/vc4: Use drm_malloc_ab to fix large rendering jobs. (diff)
downloadlinux-163195fc12cae0c8b5c0d74d3ba8d2c5f81773bc.tar.xz
linux-163195fc12cae0c8b5c0d74d3ba8d2c5f81773bc.zip
drm/vc4: Fix handling of a pm_runtime_get_sync() success case.
If the device was already up, a 1 is returned instead of 0. We were erroring out, leading the 3D driver to sometimes fail at screen initialization (generally with ENOENT returned to it). Signed-off-by: Eric Anholt <eric@anholt.net> Fixes: af713795c59f ("drm/vc4: Add a getparam ioctl for getting the V3D identity regs.")
Diffstat (limited to 'drivers/gpu/drm/vc4')
-rw-r--r--drivers/gpu/drm/vc4/vc4_drv.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 8b42d31a7f0e..9ecef9385491 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -57,21 +57,21 @@ static int vc4_get_param_ioctl(struct drm_device *dev, void *data,
switch (args->param) {
case DRM_VC4_PARAM_V3D_IDENT0:
ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev);
- if (ret)
+ if (ret < 0)
return ret;
args->value = V3D_READ(V3D_IDENT0);
pm_runtime_put(&vc4->v3d->pdev->dev);
break;
case DRM_VC4_PARAM_V3D_IDENT1:
ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev);
- if (ret)
+ if (ret < 0)
return ret;
args->value = V3D_READ(V3D_IDENT1);
pm_runtime_put(&vc4->v3d->pdev->dev);
break;
case DRM_VC4_PARAM_V3D_IDENT2:
ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev);
- if (ret)
+ if (ret < 0)
return ret;
args->value = V3D_READ(V3D_IDENT2);
pm_runtime_put(&vc4->v3d->pdev->dev);