diff mbox

Enable GSE interrupt on Broadwell and later?

Message ID 201512012053.tB1KroT3014721@glazunov.sibelius.xs4all.nl (mailing list archive)
State New, archived
Headers show

Commit Message

Mark Kettenis Dec. 1, 2015, 8:53 p.m. UTC
I just committed the following cange to the OpenBSD inteldrm(4)
driver, which currently is mostly a port of the Linux 3.14 codebase.
This enables the GSE interrupt on Broadwell.  Without this interrupt,
the ASLE backlight brightness mechanism doesn't work.  I've verified
that this fixed the ACPI _BCM/_BCQ-based brightness mechanism on a
MacBookPro12,1 and a 3rd gen Lenovo X1 Carbon.  And as far as I can
tell the current Linux code still doesn't enable the GSE interrupt.
So people over there might want to consider a diff like the one below.

Cheers.

Mark

Comments

Ville Syrjälä Dec. 1, 2015, 9:46 p.m. UTC | #1
On Tue, Dec 01, 2015 at 09:53:50PM +0100, Mark Kettenis wrote:
> I just committed the following cange to the OpenBSD inteldrm(4)
> driver, which currently is mostly a port of the Linux 3.14 codebase.
> This enables the GSE interrupt on Broadwell.  Without this interrupt,
> the ASLE backlight brightness mechanism doesn't work.  I've verified
> that this fixed the ACPI _BCM/_BCQ-based brightness mechanism on a
> MacBookPro12,1 and a 3rd gen Lenovo X1 Carbon.  And as far as I can
> tell the current Linux code still doesn't enable the GSE interrupt.
> So people over there might want to consider a diff like the one below.

Yep, looks like you're correct, we still don't enable it. Let's cook up
a patch...

> 
> Cheers.
> 
> Mark
> 
> 
> Index: i915_irq.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_irq.c,v
> retrieving revision 1.29
> diff -u -p -r1.29 i915_irq.c
> --- i915_irq.c	23 Sep 2015 23:12:12 -0000	1.29
> +++ i915_irq.c	1 Dec 2015 20:43:05 -0000
> @@ -3019,6 +3019,10 @@ static void gen8_de_irq_postinstall(stru
>  	I915_WRITE(GEN8_DE_PORT_IMR, ~GEN8_AUX_CHANNEL_A);
>  	I915_WRITE(GEN8_DE_PORT_IER, GEN8_AUX_CHANNEL_A);
>  	POSTING_READ(GEN8_DE_PORT_IER);
> +
> +	I915_WRITE(GEN8_DE_MISC_IMR, ~GEN8_DE_MISC_GSE);
> +	I915_WRITE(GEN8_DE_MISC_IER, GEN8_DE_MISC_GSE);
> +	POSTING_READ(GEN8_DE_MISC_IER);
>  }
>  
>  static int gen8_irq_postinstall(struct drm_device *dev)
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

Index: i915_irq.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_irq.c,v
retrieving revision 1.29
diff -u -p -r1.29 i915_irq.c
--- i915_irq.c	23 Sep 2015 23:12:12 -0000	1.29
+++ i915_irq.c	1 Dec 2015 20:43:05 -0000
@@ -3019,6 +3019,10 @@  static void gen8_de_irq_postinstall(stru
 	I915_WRITE(GEN8_DE_PORT_IMR, ~GEN8_AUX_CHANNEL_A);
 	I915_WRITE(GEN8_DE_PORT_IER, GEN8_AUX_CHANNEL_A);
 	POSTING_READ(GEN8_DE_PORT_IER);
+
+	I915_WRITE(GEN8_DE_MISC_IMR, ~GEN8_DE_MISC_GSE);
+	I915_WRITE(GEN8_DE_MISC_IER, GEN8_DE_MISC_GSE);
+	POSTING_READ(GEN8_DE_MISC_IER);
 }
 
 static int gen8_irq_postinstall(struct drm_device *dev)