kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #01446
[Bug 1196556] Fwd: Patch "drm/i915: Fix up sdvo hpd pins for i965g/gm" has been added to the 3.10-stable tree
---------- Forwarded message ----------
From: gregkh@xxxxxxxxxxxxxxxxxxx
To: daniel.vetter@xxxxxxxx, afiestas@xxxxxxx,
arthur.j.runyan@xxxxxxxxx, chris@xxxxxxxxxxxxxxxxxx,
gregkh@xxxxxxxxxxxxxxxxxxx
Cc: stable@xxxxxxxxxxxxxxx, stable-commits@xxxxxxxxxxxxxxx
Date: Tue, 23 Jul 2013 09:56:48 -0700
Subject: Patch "drm/i915: Fix up sdvo hpd pins for i965g/gm" has been
added to the 3.10-stable tree
This is a note to let you know that I've just added the patch titled
drm/i915: Fix up sdvo hpd pins for i965g/gm
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-i915-fix-up-sdvo-hpd-pins-for-i965g-gm.patch
and it can be found in the queue-3.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.
>From 4f7fd7095d85cd31c86cb9ba87bc301319630ccc Mon Sep 17 00:00:00 2001
From: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Mon, 24 Jun 2013 21:33:28 +0200
Subject: drm/i915: Fix up sdvo hpd pins for i965g/gm
From: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 4f7fd7095d85cd31c86cb9ba87bc301319630ccc upstream.
Bspec seems to be full of lies, at least it disagress with reality:
Two systems corrobated that SDVO hpd bits are the same as on gen3.
v2: Update comment a bit.
Tested-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Cc: Arthur Ranyan <arthur.j.runyan@xxxxxxxxx>
Reported-and-tested-by: Alex Fiestas <afiestas@xxxxxxx>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58405
Acked-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
drivers/gpu/drm/i915/i915_irq.c | 13 ++-----------
drivers/gpu/drm/i915/i915_reg.h | 13 ++++++-------
2 files changed, 8 insertions(+), 18 deletions(-)
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -70,15 +70,6 @@ static const u32 hpd_status_gen4[] = {
[HPD_PORT_D] = PORTD_HOTPLUG_INT_STATUS
};
-static const u32 hpd_status_i965[] = {
- [HPD_CRT] = CRT_HOTPLUG_INT_STATUS,
- [HPD_SDVO_B] = SDVOB_HOTPLUG_INT_STATUS_I965,
- [HPD_SDVO_C] = SDVOC_HOTPLUG_INT_STATUS_I965,
- [HPD_PORT_B] = PORTB_HOTPLUG_INT_STATUS,
- [HPD_PORT_C] = PORTC_HOTPLUG_INT_STATUS,
- [HPD_PORT_D] = PORTD_HOTPLUG_INT_STATUS
-};
-
static const u32 hpd_status_i915[] = { /* i915 and valleyview are the same */
[HPD_CRT] = CRT_HOTPLUG_INT_STATUS,
[HPD_SDVO_B] = SDVOB_HOTPLUG_INT_STATUS_I915,
@@ -2952,13 +2943,13 @@ static irqreturn_t i965_irq_handler(int
u32 hotplug_status = I915_READ(PORT_HOTPLUG_STAT);
u32 hotplug_trigger = hotplug_status & (IS_G4X(dev) ?
HOTPLUG_INT_STATUS_G4X :
-
HOTPLUG_INT_STATUS_I965);
+
HOTPLUG_INT_STATUS_I915);
DRM_DEBUG_DRIVER("hotplug event received, stat
0x%08x\n",
hotplug_status);
if (hotplug_trigger) {
if (hotplug_irq_storm_detect(dev,
hotplug_trigger,
-
IS_G4X(dev) ? hpd_status_gen4 : hpd_status_i965))
+
IS_G4X(dev) ? hpd_status_gen4 : hpd_status_i915))
i915_hpd_irq_setup(dev);
queue_work(dev_priv->wq,
&dev_priv->hotplug_work);
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1691,6 +1691,12 @@
/* SDVO is different across gen3/4 */
#define SDVOC_HOTPLUG_INT_STATUS_G4X (1 << 3)
#define SDVOB_HOTPLUG_INT_STATUS_G4X (1 << 2)
+/*
+ * Bspec seems to be seriously misleaded about the SDVO hpd bits on i965g/gm,
+ * since reality corrobates that they're the same as on gen3. But keep these
+ * bits here (and the comment!) to help any other lost wanderers back onto the
+ * right tracks.
+ */
#define SDVOC_HOTPLUG_INT_STATUS_I965 (3 << 4)
#define SDVOB_HOTPLUG_INT_STATUS_I965 (3 << 2)
#define SDVOC_HOTPLUG_INT_STATUS_I915 (1 << 7)
@@ -1701,13 +1707,6 @@
PORTB_HOTPLUG_INT_STATUS | \
PORTC_HOTPLUG_INT_STATUS | \
PORTD_HOTPLUG_INT_STATUS)
-
-#define HOTPLUG_INT_STATUS_I965
(CRT_HOTPLUG_INT_STATUS | \
-
SDVOB_HOTPLUG_INT_STATUS_I965 | \
-
SDVOC_HOTPLUG_INT_STATUS_I965 | \
- PORTB_HOTPLUG_INT_STATUS | \
- PORTC_HOTPLUG_INT_STATUS | \
- PORTD_HOTPLUG_INT_STATUS)
#define HOTPLUG_INT_STATUS_I915
(CRT_HOTPLUG_INT_STATUS | \
SDVOB_HOTPLUG_INT_STATUS_I915 | \
Patches currently in stable-queue which might be from daniel.vetter@xxxxxxxx are
queue-3.10/drm-i915-only-clear-write-domains-after-a-successful-wait-seqno.patch
queue-3.10/drm-i915-fix-up-sdvo-hpd-pins-for-i965g-gm.patch
queue-3.10/drm-i915-fix-context-sizes-on-hsw.patch
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1196556
Title:
Hot plug events not detected in i965
Status in “linux” package in Ubuntu:
Triaged
Status in “linux” source package in Raring:
Triaged
Status in “linux” source package in Saucy:
Triaged
Bug description:
Hotplugs events are not detected in Intel i965 with the current kernel. The bug has been fixed upstream:
https://bugs.freedesktop.org/show_bug.cgi?id=58405
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1196556/+subscriptions