From: Greg Kroah-Hartman Date: Thu, 9 May 2013 16:52:15 +0000 (-0700) Subject: 3.9-stable patches X-Git-Tag: v3.9.2~46 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=441651e038908d8d3367a3d1dec711d60e40cc4a;p=thirdparty%2Fkernel%2Fstable-queue.git 3.9-stable patches added patches: drm-i915-add-no-lvds-quirk-for-fujitsu-esprimo-q900.patch drm-i915-fix-sdvo-connector-and-encoder-get_hw_state-functions.patch drm-i915-fix-sdvo-connector-get_hw_state-function.patch --- diff --git a/queue-3.9/drm-i915-add-no-lvds-quirk-for-fujitsu-esprimo-q900.patch b/queue-3.9/drm-i915-add-no-lvds-quirk-for-fujitsu-esprimo-q900.patch new file mode 100644 index 00000000000..37e0a23eecc --- /dev/null +++ b/queue-3.9/drm-i915-add-no-lvds-quirk-for-fujitsu-esprimo-q900.patch @@ -0,0 +1,39 @@ +From 9e9dd0e889c76c786e8f2e164c825c3c06dea30c Mon Sep 17 00:00:00 2001 +From: Christian Lamparter +Date: Wed, 3 Apr 2013 14:34:11 +0200 +Subject: drm/i915: Add no-lvds quirk for Fujitsu Esprimo Q900 + +From: Christian Lamparter + +commit 9e9dd0e889c76c786e8f2e164c825c3c06dea30c upstream. + +The "Mobile Sandy Bridge CPUs" in the Fujitsu Esprimo Q900 +mini desktop PCs are probably misleading the LVDS detection +code in intel_lvds_supported. Nothing is connected to the +LVDS ports in these systems. + +Signed-off-by: Christian Lamparter +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_lvds.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/drivers/gpu/drm/i915/intel_lvds.c ++++ b/drivers/gpu/drm/i915/intel_lvds.c +@@ -850,6 +850,14 @@ static const struct dmi_system_id intel_ + DMI_MATCH(DMI_PRODUCT_NAME, "X7SPA-H"), + }, + }, ++ { ++ .callback = intel_no_lvds_dmi_callback, ++ .ident = "Fujitsu Esprimo Q900", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Q900"), ++ }, ++ }, + + { } /* terminating entry */ + }; diff --git a/queue-3.9/drm-i915-fix-sdvo-connector-and-encoder-get_hw_state-functions.patch b/queue-3.9/drm-i915-fix-sdvo-connector-and-encoder-get_hw_state-functions.patch new file mode 100644 index 00000000000..fa7e1724fc6 --- /dev/null +++ b/queue-3.9/drm-i915-fix-sdvo-connector-and-encoder-get_hw_state-functions.patch @@ -0,0 +1,76 @@ +From 7a7d1fb79fb581553f4830498045de774a9659f8 Mon Sep 17 00:00:00 2001 +From: Egbert Eich +Date: Thu, 4 Apr 2013 16:04:02 -0400 +Subject: drm/i915: Fix SDVO connector and encoder get_hw_state functions + +From: Egbert Eich + +commit 7a7d1fb79fb581553f4830498045de774a9659f8 upstream. + +The connector associated with the encoder is considered active when the +output associtated with this connector is active on the encoder. The +encoder itself is considered active when either there is an active +output on it or the respective SDVO channel is active. +Having active outputs when the SDVO channel is inactive seems to be +inconsistent: such states can be found when intel_modeset_setup_hw_state() +collects the hardware state set by the BIOS. +This inconsistency will be fixed in intel_sanitize_crtc() +(when intel_crtc_update_dpms() is called), this however only happens +when the encoder is associated with a crtc. + +This patch also reverts: + + commit bd6946e87a98fea11907b2a47368e13044458a35 + Author: Daniel Vetter + Date: Tue Apr 2 21:30:34 2013 +0200 + + drm/i915: Fix sdvo connector get_hw_state function + +Signed-off-by: Egbert Eich +Suggested-by: Daniel Vetter +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63031 +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_sdvo.c | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +--- a/drivers/gpu/drm/i915/intel_sdvo.c ++++ b/drivers/gpu/drm/i915/intel_sdvo.c +@@ -1219,12 +1219,8 @@ static bool intel_sdvo_connector_get_hw_ + struct intel_sdvo_connector *intel_sdvo_connector = + to_intel_sdvo_connector(&connector->base); + struct intel_sdvo *intel_sdvo = intel_attached_sdvo(&connector->base); +- struct drm_i915_private *dev_priv = intel_sdvo->base.base.dev->dev_private; + u16 active_outputs; + +- if (!(I915_READ(intel_sdvo->sdvo_reg) & SDVO_ENABLE)) +- return false; +- + intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs); + + if (active_outputs & intel_sdvo_connector->output_flag) +@@ -1239,11 +1235,13 @@ static bool intel_sdvo_get_hw_state(stru + struct drm_device *dev = encoder->base.dev; + struct drm_i915_private *dev_priv = dev->dev_private; + struct intel_sdvo *intel_sdvo = to_intel_sdvo(&encoder->base); ++ u16 active_outputs; + u32 tmp; + + tmp = I915_READ(intel_sdvo->sdvo_reg); ++ intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs); + +- if (!(tmp & SDVO_ENABLE)) ++ if (!(tmp & SDVO_ENABLE) && (active_outputs == 0)) + return false; + + if (HAS_PCH_CPT(dev)) +@@ -2743,7 +2741,6 @@ bool intel_sdvo_init(struct drm_device * + struct intel_sdvo *intel_sdvo; + u32 hotplug_mask; + int i; +- + intel_sdvo = kzalloc(sizeof(struct intel_sdvo), GFP_KERNEL); + if (!intel_sdvo) + return false; diff --git a/queue-3.9/drm-i915-fix-sdvo-connector-get_hw_state-function.patch b/queue-3.9/drm-i915-fix-sdvo-connector-get_hw_state-function.patch new file mode 100644 index 00000000000..545705a34d1 --- /dev/null +++ b/queue-3.9/drm-i915-fix-sdvo-connector-get_hw_state-function.patch @@ -0,0 +1,45 @@ +From bd6946e87a98fea11907b2a47368e13044458a35 Mon Sep 17 00:00:00 2001 +From: Daniel Vetter +Date: Tue, 2 Apr 2013 21:30:34 +0200 +Subject: drm/i915: Fix sdvo connector get_hw_state function + +From: Daniel Vetter + +commit bd6946e87a98fea11907b2a47368e13044458a35 upstream. + +The active output is only the currently selected one, which does not +imply that it's actually enabled. Since we don't use the sdvo encoder +side dpms support, we need to check whether the chip-side sdvo port is +enabled instead. + +v2: Fix up Bugzilla links. + +v3: Simplify logic a bit (Chris). + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=60138 +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63031 +Cc: Egbert Eich +Cc: Chris Wilson +Tested-by: Egbert Eich (v2) +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_sdvo.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/gpu/drm/i915/intel_sdvo.c ++++ b/drivers/gpu/drm/i915/intel_sdvo.c +@@ -1219,8 +1219,12 @@ static bool intel_sdvo_connector_get_hw_ + struct intel_sdvo_connector *intel_sdvo_connector = + to_intel_sdvo_connector(&connector->base); + struct intel_sdvo *intel_sdvo = intel_attached_sdvo(&connector->base); ++ struct drm_i915_private *dev_priv = intel_sdvo->base.base.dev->dev_private; + u16 active_outputs; + ++ if (!(I915_READ(intel_sdvo->sdvo_reg) & SDVO_ENABLE)) ++ return false; ++ + intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs); + + if (active_outputs & intel_sdvo_connector->output_flag) diff --git a/queue-3.9/series b/queue-3.9/series index 833b904231a..af04bd0e80f 100644 --- a/queue-3.9/series +++ b/queue-3.9/series @@ -29,3 +29,6 @@ drm-gma500-fix-backlight-hotkeys-behaviour-on-netbooks.patch drm-prime-fix-refcounting-on-the-dmabuf-import-error-path.patch drm-prime-keep-a-reference-from-the-handle-to-exported-dma-buf-v6.patch drm-ast-deal-with-bo-reserve-fail-in-dirty-update-path.patch +drm-i915-fix-sdvo-connector-get_hw_state-function.patch +drm-i915-add-no-lvds-quirk-for-fujitsu-esprimo-q900.patch +drm-i915-fix-sdvo-connector-and-encoder-get_hw_state-functions.patch