Backlight hotkeys weren't working before on certain cedartrail laptops.
The source of this problem is that the hotkeys' ASLE opregion interrupts were simply ignored. Driver seemed to expect the interrupt to be associated with a pipe, but it wasn't.
Accepting the ASLE interrupt without an associated pipe event flag fixes the issue, the backlight code is called when needed, making the brightness keys work properly.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=833597 Reference: http://lists.freedesktop.org/archives/dri-devel/2012-July/025279.html Cc: stable@kernel.org Signed-off-by: Anisse Astier anisse@astier.eu --- drivers/gpu/drm/gma500/psb_irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/gma500/psb_irq.c b/drivers/gpu/drm/gma500/psb_irq.c index 8652cdf..029eccf 100644 --- a/drivers/gpu/drm/gma500/psb_irq.c +++ b/drivers/gpu/drm/gma500/psb_irq.c @@ -211,7 +211,7 @@ irqreturn_t psb_irq_handler(DRM_IRQ_ARGS)
vdc_stat = PSB_RVDC32(PSB_INT_IDENTITY_R);
- if (vdc_stat & _PSB_PIPE_EVENT_FLAG) + if (vdc_stat & (_PSB_PIPE_EVENT_FLAG|_PSB_IRQ_ASLE)) dsp_int = 1;
/* FIXME: Handle Medfield
On Wed, Apr 24, 2013 at 5:36 PM, Anisse Astier anisse@astier.eu wrote:
Backlight hotkeys weren't working before on certain cedartrail laptops.
The source of this problem is that the hotkeys' ASLE opregion interrupts were simply ignored. Driver seemed to expect the interrupt to be associated with a pipe, but it wasn't.
Accepting the ASLE interrupt without an associated pipe event flag fixes the issue, the backlight code is called when needed, making the brightness keys work properly.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=833597 Reference: http://lists.freedesktop.org/archives/dri-devel/2012-July/025279.html Cc: stable@kernel.org Signed-off-by: Anisse Astier anisse@astier.eu
drivers/gpu/drm/gma500/psb_irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/gma500/psb_irq.c b/drivers/gpu/drm/gma500/psb_irq.c index 8652cdf..029eccf 100644 --- a/drivers/gpu/drm/gma500/psb_irq.c +++ b/drivers/gpu/drm/gma500/psb_irq.c @@ -211,7 +211,7 @@ irqreturn_t psb_irq_handler(DRM_IRQ_ARGS)
vdc_stat = PSB_RVDC32(PSB_INT_IDENTITY_R);
if (vdc_stat & _PSB_PIPE_EVENT_FLAG)
if (vdc_stat & (_PSB_PIPE_EVENT_FLAG|_PSB_IRQ_ASLE)) dsp_int = 1; /* FIXME: Handle Medfield
-- 1.8.1.4
Hi Anisse
This also fixes backlight keys on my Asus poulsbo laptop.
An ASLE IRQ is triggered by the BIOS when writing to a PCI config register. Some BIOSes might trigger a pipe event at the same time but they obviously don't have to (and I don't think they should). I'm not sure it needs to be in psb_vdc_interrupt() but we might as well leave it there for now.
I'll apply this to git://github.com/patjak/drm-gma500 gma500-fixes
Thanks Patrik
On Wed, 24 Apr 2013 23:39:58 +0200, Patrik Jakobsson patrik.r.jakobsson@gmail.com wrote :
On Wed, Apr 24, 2013 at 5:36 PM, Anisse Astier anisse@astier.eu wrote:
Backlight hotkeys weren't working before on certain cedartrail laptops.
The source of this problem is that the hotkeys' ASLE opregion interrupts were simply ignored. Driver seemed to expect the interrupt to be associated with a pipe, but it wasn't.
Accepting the ASLE interrupt without an associated pipe event flag fixes the issue, the backlight code is called when needed, making the brightness keys work properly.
[...]
This also fixes backlight keys on my Asus poulsbo laptop.
An ASLE IRQ is triggered by the BIOS when writing to a PCI config register. Some BIOSes might trigger a pipe event at the same time but they obviously don't have to (and I don't think they should). I'm not sure it needs to be in psb_vdc_interrupt() but we might as well leave it there for now.
I'll apply this to git://github.com/patjak/drm-gma500 gma500-fixes
Thanks Patrik
Hi Patrik,
When do you think you'll apply it to your repo ?
Dave, do you think this could go in 3.10 ?
Regards,
Anisse
On Thu, May 2, 2013 at 2:39 PM, Anisse Astier anisse@astier.eu wrote:
On Wed, 24 Apr 2013 23:39:58 +0200, Patrik Jakobsson patrik.r.jakobsson@gmail.com wrote :
On Wed, Apr 24, 2013 at 5:36 PM, Anisse Astier anisse@astier.eu wrote:
Backlight hotkeys weren't working before on certain cedartrail laptops.
The source of this problem is that the hotkeys' ASLE opregion interrupts were simply ignored. Driver seemed to expect the interrupt to be associated with a pipe, but it wasn't.
Accepting the ASLE interrupt without an associated pipe event flag fixes the issue, the backlight code is called when needed, making the brightness keys work properly.
[...]
This also fixes backlight keys on my Asus poulsbo laptop.
An ASLE IRQ is triggered by the BIOS when writing to a PCI config register. Some BIOSes might trigger a pipe event at the same time but they obviously don't have to (and I don't think they should). I'm not sure it needs to be in psb_vdc_interrupt() but we might as well leave it there for now.
I'll apply this to git://github.com/patjak/drm-gma500 gma500-fixes
Thanks Patrik
Hi Patrik,
When do you think you'll apply it to your repo ?
Dave, do you think this could go in 3.10 ?
Hi, this is already in my gma500-fixes branch and also in Dave's drm-next for inclusion in 3.10.
Thanks Patrik
On Thu, 2 May 2013 14:50:05 +0200, Patrik Jakobsson patrik.r.jakobsson@gmail.com wrote :
Hi, this is already in my gma500-fixes branch and also in Dave's drm-next for inclusion in 3.10.
Thanks Patrik
Thanks, sorry I missed it.
Anisse
dri-devel@lists.freedesktop.org