diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2013-07-08 13:40:34 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2013-07-08 13:40:34 +1000 |
commit | 06d5a24f08831e167fae42a64ef2083a89f8e617 (patch) | |
tree | 509ef5096fcf1b32029b912afba9a2c1ce9067d9 /drivers/gpu/host1x/drm/drm.c | |
parent | d2989b534ef6834ebf2425aecc040b894b567c91 (diff) | |
parent | 7c6ca3040e9ac174e6d2189811da603e9c19a150 (diff) | |
download | blackbird-obmc-linux-06d5a24f08831e167fae42a64ef2083a89f8e617.tar.gz blackbird-obmc-linux-06d5a24f08831e167fae42a64ef2083a89f8e617.zip |
Merge remote-tracking branch 'airlied/drm-next' into drm-nouveau-next
Diffstat (limited to 'drivers/gpu/host1x/drm/drm.c')
-rw-r--r-- | drivers/gpu/host1x/drm/drm.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/gpu/host1x/drm/drm.c b/drivers/gpu/host1x/drm/drm.c index 2b561c9118c6..e184b00faacd 100644 --- a/drivers/gpu/host1x/drm/drm.c +++ b/drivers/gpu/host1x/drm/drm.c @@ -148,6 +148,7 @@ int host1x_drm_init(struct host1x_drm *host1x, struct drm_device *drm) dev_err(host1x->dev, "DRM setup failed for %s: %d\n", dev_name(client->dev), err); + mutex_unlock(&host1x->clients_lock); return err; } } @@ -175,6 +176,7 @@ int host1x_drm_exit(struct host1x_drm *host1x) dev_err(host1x->dev, "DRM cleanup failed for %s: %d\n", dev_name(client->dev), err); + mutex_unlock(&host1x->clients_lock); return err; } } @@ -257,6 +259,13 @@ static int tegra_drm_load(struct drm_device *drm, unsigned long flags) if (err < 0) return err; + /* + * We don't use the drm_irq_install() helpers provided by the DRM + * core, so we need to set this manually in order to allow the + * DRM_IOCTL_WAIT_VBLANK to operate correctly. + */ + drm->irq_enabled = 1; + err = drm_vblank_init(drm, drm->mode_config.num_crtc); if (err < 0) return err; @@ -378,8 +387,7 @@ static int tegra_syncpt_incr(struct drm_device *drm, void *data, if (!sp) return -EINVAL; - host1x_syncpt_incr(sp); - return 0; + return host1x_syncpt_incr(sp); } static int tegra_syncpt_wait(struct drm_device *drm, void *data, @@ -605,7 +613,7 @@ static void tegra_debugfs_cleanup(struct drm_minor *minor) #endif struct drm_driver tegra_drm_driver = { - .driver_features = DRIVER_BUS_PLATFORM | DRIVER_MODESET | DRIVER_GEM, + .driver_features = DRIVER_MODESET | DRIVER_GEM, .load = tegra_drm_load, .unload = tegra_drm_unload, .open = tegra_drm_open, |