[git pull] drm next tree (original) (raw)

Jani Nikula jani.nikula at intel.com
Fri Feb 7 03:10:25 PST 2014


On Fri, 07 Feb 2014, Jiri Kosina <jkosina at suse.cz> wrote:

On Thu, 30 Jan 2014, Jiri Kosina wrote:

> git://people.freedesktop.org/~airlied/linux drm-next [ ... snip ... ] > Daniel Vetter (59): [ ... snip ... ] > drm/i915: dp aux irq support for g4x/vlv

This commit causes all kinds of havoc on my ThinkPad x200s. It results in [ ... snip ... ] Not having received any response, I suggest the following for 3.14

Daniel, it's your commit this bisects to...

If we end up having to revert, I'd just touch the has_aux_irq part, for example:

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 5ede4e8..464c047 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -404,7 +404,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp, int i, ret, recv_bytes; uint32_t status; int try, precharge, clock = 0; - bool has_aux_irq = true; + bool has_aux_irq = INTEL_INFO(dev)->gen >= 5; uint32_t timeout;

 /* dp aux is extremely sensitive to irq latency, hence request the

or even INTEL_INFO(dev)->gen != 4.

But up to Daniel.

BR, Jani.

From: Jiri Kosina <jkosina at suse.cz> Subject: [PATCH] Revert "drm/i915: dp aux irq support for g4x/vlv" This reverts commit 4aeebd7443e36b0a40032e518a9338f48bd27efc. Conflicts: drivers/gpu/drm/i915/i915reg.h This commit causes all kinds of havoc on my ThinkPad x200s. It results in irq 16: nobody cared (try booting with the "irqpoll" option) CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0-00854-g4aeebd7 #1 Hardware name: LENOVO 7470BN2/7470BN2, BIOS 6DET38WW (2.02 ) 12/19/2008 ffff8800795186c0 ffff88007c203e08 ffffffff81582503 ffff88007c203e38 ffffffff810a6a98 ffff88007c203e88 ffff880079518600 0000000000000000 0000000000000010 ffff88007c203e78 ffffffff810a6d43 00000010ffc4af9d Call Trace: [] dumpstack+0x7a/0x97 _[] reportbadirq+0x38/0xf0 [] noteinterrupt+0x1f3/0x240 [] handleirqeventpercpu+0x142/0x220 [] handleirqevent+0x49/0x70 [] handlefasteoiirq+0x61/0x100 [] handleirq+0x59/0x150 [] ? localbhenable+0xe/0x10 [] ? irqenter+0x81/0x90 [] doIRQ+0x5b/0xe0 [] commoninterrupt+0x6f/0x6f [] ? retintrestoreargs+0xe/0xe [] ? pollidle+0x47/0x90 [] ? pollidle+0x20/0x90 [] ? ktimeget+0x56/0xd0 [] cpuidleenterstate+0x40/0xd0 [] cpuidleidlecall+0x10a/0x160 [] archcpuidle+0x9/0x30 [] cpuidleloop+0x8b/0x270 [] cpustartupentry+0x1e/0x20 [] restinit+0xd3/0xe0 [] ? csumpartialcopygeneric+0x170/0x170 [] startkernel+0x3b3/0x461 [] ? repairenvstring+0x58/0x58 [] x8664startreservations+0x1b/0x32 [] x8664startkernel+0x13a/0x141 handlers: [] usbhcdirq [usbcore] Disabling IRQ #16 and things go south afterwards (the machine hangs randomly, I/O is horribly slow, etc). Signed-off-by: Jiri Kosina <jkosina at suse.cz> --- drivers/gpu/drm/i915/i915irq.c | 7 ------- drivers/gpu/drm/i915/i915reg.h | 5 ----- drivers/gpu/drm/i915/inteldp.c | 2 +- 3 files changed, 1 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/i915/i915irq.c b/drivers/gpu/drm/i915/i915irq.c index 17d8fcb..b7fae5b 100644 --- a/drivers/gpu/drm/i915/i915irq.c +++ b/drivers/gpu/drm/i915/i915irq.c @@ -1480,9 +1480,6 @@ static irqreturnt valleyviewirqhandler(int irq, void *arg) intelhpdirqhandler(dev, hotplugtrigger, hpdstatusi915); - if (hotplugstatus & DPAUXCHANNELMASKINTSTATUSG4X) - dpauxirqhandler(dev); - I915WRITE(PORTHOTPLUGSTAT, hotplugstatus); I915READ(PORTHOTPLUGSTAT); } @@ -3670,10 +3667,6 @@ static irqreturnt i965irqhandler(int irq, void *arg) intelhpdirqhandler(dev, hotplugtrigger, ISG4X(dev) ? hpdstatusg4x : hpdstatusi915); - if (ISG4X(dev) && - (hotplugstatus & DPAUXCHANNELMASKINTSTATUSG4X)) - dpauxirqhandler(dev); - I915WRITE(PORTHOTPLUGSTAT, hotplugstatus); I915READ(PORTHOTPLUGSTAT); } diff --git a/drivers/gpu/drm/i915/i915reg.h b/drivers/gpu/drm/i915/i915reg.h index a48b7ca..94b4cd5 100644 --- a/drivers/gpu/drm/i915/i915reg.h +++ b/drivers/gpu/drm/i915/i915reg.h @@ -2139,11 +2139,6 @@ #define CRTHOTPLUGMONITORCOLOR (3 << 8)_ _#define CRTHOTPLUGMONITORMONO (2 << 8)_ _#define CRTHOTPLUGMONITORNONE (0 << 8)_ _-#define DPAUXCHANNELDINTSTATUSG4X (1 << 6)_ _-#define DPAUXCHANNELCINTSTATUSG4X (1 << 5)_ _-#define DPAUXCHANNELBINTSTATUSG4X (1 << 4)_ _-#define DPAUXCHANNELMASKINTSTATUSG4X (7 << 4)_ _-_ _/* SDVO is different across gen3/4 */_ _#define SDVOCHOTPLUGINTSTATUSG4X (1 << 3)_ _#define SDVOBHOTPLUGINTSTATUSG4X (1 << 2)_ _diff --git a/drivers/gpu/drm/i915/inteldp.c b/drivers/gpu/drm/i915/inteldp.c_ _index 5ede4e8..464c047 100644_ _--- a/drivers/gpu/drm/i915/inteldp.c_ _+++ b/drivers/gpu/drm/i915/inteldp.c_ _@@ -404,7 +404,7 @@ inteldpauxch(struct inteldp *inteldp,_ _int i, ret, recvbytes;_ _uint32t status;_ _int try, precharge, clock = 0;_ _- bool hasauxirq = true;_ _+ bool hasauxirq = INTELINFO(dev)->gen >= 5 && !ISVALLEYVIEW(dev); uint32t timeout; /* dp aux is extremely sensitive to irq latency, hence request the -- Jiri Kosina SUSE Labs


dri-devel mailing list dri-devel at lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel

-- Jani Nikula, Intel Open Source Technology Center



More information about the dri-devel mailing list