From: Stephen Rothwell Date: Wed, 8 Jan 2014 01:50:53 +0000 (+1100) Subject: Merge remote-tracking branch 'drm/drm-next' X-Git-Tag: next-20140108~55 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=eaab0772d76f4ad7e4a91926dde2068015e4c222;p=karo-tx-linux.git Merge remote-tracking branch 'drm/drm-next' Conflicts: drivers/gpu/drm/drm_stub.c drivers/gpu/drm/i915/intel_display.c drivers/gpu/drm/i915/intel_pm.c drivers/staging/imx-drm/imx-drm-core.c --- eaab0772d76f4ad7e4a91926dde2068015e4c222 diff --cc drivers/gpu/drm/drm_stub.c index 66dd3a001cf1,a4a5c6ac110a..98a33c580ca1 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c @@@ -566,14 -564,11 +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/gpu/drm/i915/intel_display.c index 769b864465a9,0bb3d6d596d9..772e431c3966 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@@ -10541,25 -10731,11 +10731,20 @@@ static struct intel_quirk intel_quirks[ /* Sony Vaio Y cannot use SSC on LVDS */ { 0x0046, 0x104d, 0x9076, quirk_ssc_force_disable }, - /* - * All GM45 Acer (and its brands eMachines and Packard Bell) laptops - * seem to use inverted backlight PWM. - */ - { 0x2a42, 0x1025, PCI_ANY_ID, quirk_invert_brightness }, + /* Acer Aspire 5734Z must invert backlight brightness */ + { 0x2a42, 0x1025, 0x0459, quirk_invert_brightness }, + + /* Acer/eMachines G725 */ + { 0x2a42, 0x1025, 0x0210, quirk_invert_brightness }, + + /* Acer/eMachines e725 */ + { 0x2a42, 0x1025, 0x0212, quirk_invert_brightness }, + + /* Acer/Packard Bell NCL20 */ + { 0x2a42, 0x1025, 0x034b, quirk_invert_brightness }, + + /* Acer Aspire 4736Z */ + { 0x2a42, 0x1025, 0x0260, quirk_invert_brightness }, - - /* Dell XPS13 HD Sandy Bridge */ - { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable }, - /* Dell XPS13 HD and XPS13 FHD Ivy Bridge */ - { 0x0166, 0x1028, 0x058b, quirk_no_pcm_pwm_enable }, }; static void intel_init_quirks(struct drm_device *dev) diff --cc drivers/gpu/drm/i915/intel_pm.c index 26c29c173221,e6d98fe86b17..881a6dec8f1d --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@@ -5749,24 -5748,17 +5750,25 @@@ static void hsw_set_power_well(struct d static void __intel_power_well_get(struct drm_device *dev, struct i915_power_well *power_well) { - if (!power_well->count++ && power_well->set) + struct drm_i915_private *dev_priv = dev->dev_private; + - if (!power_well->count++) { ++ if (!power_well->count++ && power_well->set) { + hsw_disable_package_c8(dev_priv); - __intel_set_power_well(dev, true); + power_well->set(dev, power_well, true); + } } static void __intel_power_well_put(struct drm_device *dev, struct i915_power_well *power_well) { + struct drm_i915_private *dev_priv = dev->dev_private; + WARN_ON(!power_well->count); - if (!--power_well->count && i915_disable_power_well) { - __intel_set_power_well(dev, false); + - if (!--power_well->count && power_well->set && i915_disable_power_well) ++ if (!--power_well->count && power_well->set && i915_disable_power_well) { + power_well->set(dev, power_well, false); + hsw_enable_package_c8(dev_priv); + } } void intel_display_power_get(struct drm_device *dev, @@@ -6146,17 -6179,10 +6189,10 @@@ int vlv_freq_opcode(struct drm_i915_pri return -1; } - val /= mult; - val -= base / mult; - val += 0xbd; - - if (val > 0xea) - val = 0xea; - - return val; + return DIV_ROUND_CLOSEST(4 * mul * val, dev_priv->mem_freq) + 0xbd - 6; } -void intel_pm_init(struct drm_device *dev) +void intel_pm_setup(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; diff --cc drivers/staging/imx-drm/imx-drm-core.c index 96e4eee344ef,0507b662ae40..f1d31f2564ac --- a/drivers/staging/imx-drm/imx-drm-core.c +++ b/drivers/staging/imx-drm/imx-drm-core.c @@@ -443,19 -441,14 +443,21 @@@ 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); + - ret = 0; + mutex_unlock(&imxdrm->mutex); + return 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;