mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Indan Zupancic" <indan@nul.nu>
To: "Linus Torvalds" <torvalds@linux-foundation.org>
Cc: "Jesse Barnes" <jbarnes@virtuousgeek.org>,
	"Alex Riesen" <raa.lkml@gmail.com>,
	"DRI mailing list" <dri-devel@lists.freedesktop.org>,
	"Chris Wilson" <chris@chris-wilson.co.uk>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Tino Keitel" <tino.keitel@tikei.de>,
	stable@kernel.org
Subject: Re: [PATCH] fix backlight brightness on intel LVDS panel after  reopening lid
Date: Fri, 4 Mar 2011 07:53:15 +0100 (CET)	[thread overview]
Message-ID: <3e6f092bd0aa54fd6b9eb524f6c87ecf.squirrel@webmail.greenhost.nl> (raw)
In-Reply-To: <AANLkTimLBo4REwrCJfy3U_z-SJ8uoOurO7c66D5RpZRh@mail.gmail.com>

Hello,

On Wed, February 23, 2011 02:09, Linus Torvalds wrote:
> On Tue, Feb 22, 2011 at 2:31 PM, Tino Keitel <tino.keitel@tikei.de> wrote:
>>
>> I just tried 2.6.38-rc6 on my ThinkPad X61s without any other DRM
>> related patches, and my backlight issue is gone.
>
> I applied Indan's fix in -rc6 (commit 951f3512dba5), since it had
> several testers and seemed to simplify the code nicely too.

Sadly, as so often in life, it's not correct. At this point I'm not sure
if it's better to revert that patch and add a correct one, or to just
fix it up. The end result is the same I suppose. I've also found more
documentation, namely: ACPI_IGD_OpRegion_Spec.pdf, which has the ASLE
stuff in intel_opregion.c, and VOL_1_graphics_core.pdf, which mentions
LBPC (I was looking at 3 before). Apparently the undocumented stuff
the old code did was correct. What I don't understand is how BIOS
makers could know about those bits.

The good side is that that big warning in my patch description is
invalid, something else was going on: The BIOS used LBPC to set and
restore brightness, while the driver only used BLC_PWM_CTL after my
patch.

All credits to Intel for making something simple as backlight control
as stupid and complex as possible:

- It has two registers to control brightness, sometimes one is used,
sometimes the other, sometimes both, and it's unknown what the BIOS
uses, and it's undefined what registers are restored by the BIOS after
reboot/resume.

- When using ACPI and ASLE, the kernel requests a brightness change
via a standard ACPI method, which in turns lets the BIOS generate an
ASLE interrupt, which is handled by the driver. The brightness to set
is between 0 and 255, and the driver is supposed to store the current
brightness in another register. That register stores the brightness in
percentages, which is used by the BIOS to restore brightness. How it
does that is undefined, so it can use either register. So the BIOS
obviously knows how to change the brightness, and it's still seemed
like a good idea to bother the driver with it. The ASLE interface is
a mess.

All in all, after my patch, systems using ASLE and a BIOS storing
the brightness in LBPC stopped working. The reason it works without
ASLE is because the brightness is never changed by the driver, the
backlight is only enabled or disabled.

I'd love to clean up the whole backlight mess, but it's too late in
the RC cycle to do that.

So please revert my patch and apply Takashi Iwai's, which fixes the
most immediate bug without changing anything else. This should go
in stable too.

>From f6b8a45b9544072e6ddbb944a4c03a9ec8cbca3a Mon Sep 17 00:00:00 2001 From: Takashi
Iwai <tiwai@suse.de>
Date: Mon, 21 Feb 2011 14:19:27 +0100
Subject: [PATCH] drm/i915: Fix calculation of backlight value in combined mode

The commit a95735569312f2ab0c80425e2cd1e5cb0b4e1870
    drm/i915: Refactor panel backlight controls
causes a regression for GM45 that is using the combined mode for
controlling the backlight brightness.  The commit introduced a wrong bit shift for
computing the current backlight level.

Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=672946
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34524

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: <stable@kernel.org>
---
 drivers/gpu/drm/i915/intel_panel.c |    1 -
 1 file changed, 1 deletion(-)

--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -176,7 +176,6 @@
 			val &= ~1;
 			pci_read_config_byte(dev->pdev, PCI_LBPC, &lbpc);
 			val *= lbpc;
-			val >>= 1;
 		}
 	}



  reply	other threads:[~2011-03-04  6:53 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-16  4:16 Linux 2.6.38-rc5 Linus Torvalds
2011-02-16 11:14 ` Eric Dumazet
2011-02-16 13:55   ` Eric Dumazet
2011-02-16 15:46   ` Linus Torvalds
2011-02-16 16:06     ` Al Viro
2011-02-16 16:19       ` Al Viro
2011-02-16 16:33         ` Linus Torvalds
2011-02-16 16:39           ` Al Viro
2011-02-16 16:47             ` Eric Dumazet
2011-02-16 16:22     ` Eric Dumazet
2011-02-16 19:26 ` [PATCH] fix backlight brightness on intel LVDS panel after reopening lid Alex Riesen
2011-02-16 19:46   ` Alex Riesen
2011-02-16 19:54     ` Jesse Barnes
2011-02-16 19:59       ` Alex Riesen
2011-02-16 20:05         ` Jesse Barnes
2011-02-16 20:28           ` Alex Riesen
2011-02-17  1:41     ` [PATCH] drm/i915: Do not handle backlight combination mode specially Indan Zupancic
2011-02-17 22:13   ` [PATCH] fix backlight brightness on intel LVDS panel after reopening lid Tino Keitel
2011-02-18  4:57     ` Indan Zupancic
2011-02-19 12:11       ` Alex Riesen
2011-02-19 12:26         ` Alex Riesen
2011-02-19 23:07           ` Linus Torvalds
2011-02-22 21:04             ` Jesse Barnes
2011-02-22 22:31               ` Tino Keitel
2011-02-23  1:09                 ` Linus Torvalds
2011-03-04  6:53                   ` Indan Zupancic [this message]
2011-03-04 18:47                     ` Linus Torvalds
2011-03-04 23:32                       ` Indan Zupancic
2011-03-06 17:40                       ` Alex Riesen
2011-03-10  5:50                       ` Indan Zupancic
2011-03-10  6:00                         ` Indan Zupancic
2011-03-10  7:49                         ` Takashi Iwai
2011-03-10  8:25                           ` Takashi Iwai
2011-03-10 10:06                             ` Indan Zupancic
2011-03-10 12:59                               ` Takashi Iwai
2011-03-10 13:02                               ` [PATCH] drm/i915: Revive combination mode for backlight control Takashi Iwai
2011-03-10 19:36                                 ` Keith Packard
2011-03-11  1:30                                   ` Indan Zupancic
2011-03-11  1:23                                 ` Indan Zupancic
2011-03-11  1:28                                   ` Linus Torvalds
2011-03-11  7:26                                   ` Takashi Iwai
2011-03-11  9:08                                     ` Indan Zupancic
2011-03-11  7:34                                   ` Keith Packard
2011-03-10  8:45                           ` [PATCH] fix backlight brightness on intel LVDS panel after reopening lid Indan Zupancic
2011-03-10 12:51                             ` Takashi Iwai
2011-03-05  0:26                     ` Peter Stuge
2011-02-23  1:32               ` Indan Zupancic
2011-02-20 14:03 ` Linux 2.6.38-rc5 Paul Rolland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3e6f092bd0aa54fd6b9eb524f6c87ecf.squirrel@webmail.greenhost.nl \
    --to=indan@nul.nu \
    --cc=chris@chris-wilson.co.uk \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jbarnes@virtuousgeek.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=raa.lkml@gmail.com \
    --cc=stable@kernel.org \
    --cc=tino.keitel@tikei.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome