]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 May 2013 16:52:15 +0000 (09:52 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 May 2013 16:52:15 +0000 (09:52 -0700)
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

queue-3.9/drm-i915-add-no-lvds-quirk-for-fujitsu-esprimo-q900.patch [new file with mode: 0644]
queue-3.9/drm-i915-fix-sdvo-connector-and-encoder-get_hw_state-functions.patch [new file with mode: 0644]
queue-3.9/drm-i915-fix-sdvo-connector-get_hw_state-function.patch [new file with mode: 0644]
queue-3.9/series

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 (file)
index 0000000..37e0a23
--- /dev/null
@@ -0,0 +1,39 @@
+From 9e9dd0e889c76c786e8f2e164c825c3c06dea30c Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@googlemail.com>
+Date: Wed, 3 Apr 2013 14:34:11 +0200
+Subject: drm/i915: Add no-lvds quirk for Fujitsu Esprimo Q900
+
+From: Christian Lamparter <chunkeey@googlemail.com>
+
+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 <chunkeey@googlemail.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..fa7e172
--- /dev/null
@@ -0,0 +1,76 @@
+From 7a7d1fb79fb581553f4830498045de774a9659f8 Mon Sep 17 00:00:00 2001
+From: Egbert Eich <eich@suse.de>
+Date: Thu, 4 Apr 2013 16:04:02 -0400
+Subject: drm/i915: Fix SDVO connector and encoder get_hw_state functions
+
+From: Egbert Eich <eich@suse.de>
+
+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 <daniel.vetter@ffwll.ch>
+     Date:   Tue Apr 2 21:30:34 2013 +0200
+
+         drm/i915: Fix sdvo connector get_hw_state function
+
+Signed-off-by: Egbert Eich <eich@suse.de>
+Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63031
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..545705a
--- /dev/null
@@ -0,0 +1,45 @@
+From bd6946e87a98fea11907b2a47368e13044458a35 Mon Sep 17 00:00:00 2001
+From: Daniel Vetter <daniel.vetter@ffwll.ch>
+Date: Tue, 2 Apr 2013 21:30:34 +0200
+Subject: drm/i915: Fix sdvo connector get_hw_state function
+
+From: Daniel Vetter <daniel.vetter@ffwll.ch>
+
+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 <eich@pdx.freedesktop.org>
+Cc: Chris Wilson <chris@chris-wilson.co.uk>
+Tested-by: Egbert Eich <eich@pdx.freedesktop.org> (v2)
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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)
index 833b904231a62626c357bcfed89ffef432cb4901..af04bd0e80f97d86532316bd51b3c4ced043530e 100644 (file)
@@ -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