From: Dave Airlie Date: Mon, 20 Jan 2014 00:21:54 +0000 (+1000) Subject: Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into... X-Git-Tag: firefly_0821_release~176^2~4523^2~16 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=cfd72a4c2089aa3938f37281a34d6eb3306d5fd8;p=firefly-linux-kernel-4.4.55.git Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-next drm-intel-next-2014-01-10: - final bits for runtime D3 on Haswell from Paul (now enabled fully) - parse the backlight modulation freq information in the VBT from Jani (but not yet used) - more watermark improvements from Ville for ilk-ivb and bdw - bugfixes for fastboot from Jesse - watermark fix for i830M (but not yet everything) - vlv vga hotplug w/a (Imre) - piles of other small improvements, cleanups and fixes all over Note that the pull request includes a backmerge of the last drm-fixes pulled into Linus' tree - things where getting a bit too messy. So the shortlog also contains a bunch of patches from Linus tree. Please yell if you want me to frob it for you a bit. * 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel: (609 commits) drm/i915/bdw: make sure south port interrupts are enabled properly v2 drm/i915: Include more information in disabled hotplug interrupt warning drm/i915: Only complain about a rogue hotplug IRQ after disabling drm/i915: Only WARN about a stuck hotplug irq ONCE drm/i915: s/hotplugt_status_gen4/hotplug_status_g4x/ --- cfd72a4c2089aa3938f37281a34d6eb3306d5fd8 diff --cc drivers/gpu/drm/drm_stub.c index a4a5c6ac110a,66dd3a001cf1..98a33c580ca1 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c @@@ -564,11 -566,14 +564,11 @@@ err_unload if (dev->driver->unload) dev->driver->unload(dev); err_primary_node: - drm_put_minor(dev->primary); + drm_unplug_minor(dev->primary); err_render_node: - drm_put_minor(dev->render); + drm_unplug_minor(dev->render); err_control_node: - drm_put_minor(dev->control); + drm_unplug_minor(dev->control); -err_agp: - if (dev->driver->bus->agp_destroy) - dev->driver->bus->agp_destroy(dev); out_unlock: mutex_unlock(&drm_global_mutex); return ret; diff --cc drivers/staging/imx-drm/imx-drm-core.c index 0507b662ae40,96e4eee344ef..09ef5fb8bae6 --- a/drivers/staging/imx-drm/imx-drm-core.c +++ b/drivers/staging/imx-drm/imx-drm-core.c @@@ -441,14 -443,19 +443,20 @@@ static int imx_drm_driver_load(struct d */ imxdrm->drm->vblank_disable_allowed = true; - if (!imx_drm_device_get()) + if (!imx_drm_device_get()) { ret = -EINVAL; + goto err_vblank; + } + platform_set_drvdata(drm->platformdev, drm); + mutex_unlock(&imxdrm->mutex); + return 0; - ret = 0; - - err_init: + err_vblank: + drm_vblank_cleanup(drm); + err_kms: + drm_kms_helper_poll_fini(drm); + drm_mode_config_cleanup(drm); mutex_unlock(&imxdrm->mutex); return ret;