* Linus Torvalds -- Wednesday 27 April 2011:
Go forth and test,
Doesn't work on my notebook with i915/KMS. But then again, neither did 2.6.38 or any of its stable releases. The last working version was 2.6.38-rc8. The problem has been reported[1], but the bug got closed in the wrong assumption that the bug is fixed. I reported that, too. No reactions to that.
The bug was introduced with commit ba3820ade317ee36e496b9b40d2ec3987dd4aef0 by Takashi Iwai. The result is that when using KMS my notebook's[2] screen remains dark, because the backlight isn't turned on.
Reverting commit ba3820ade317ee36e496b9b40d2ec3987dd4aef0 makes my notebook work correctly again as it used to in 2.6.38-rc8 and before.
m.
[1] https://bugzilla.kernel.org/show_bug.cgi?id=31522 [2] Acer TravelMate 5735Z-452G32Mnss, using Intel GM45
At Fri, 29 Apr 2011 17:58:06 +0200, Melchior FRANZ wrote:
- Linus Torvalds -- Wednesday 27 April 2011:
Go forth and test,
Doesn't work on my notebook with i915/KMS. But then again, neither did 2.6.38 or any of its stable releases. The last working version was 2.6.38-rc8. The problem has been reported[1], but the bug got closed in the wrong assumption that the bug is fixed. I reported that, too. No reactions to that.
The bug was introduced with commit ba3820ade317ee36e496b9b40d2ec3987dd4aef0 by Takashi Iwai. The result is that when using KMS my notebook's[2] screen remains dark, because the backlight isn't turned on.
Reverting commit ba3820ade317ee36e496b9b40d2ec3987dd4aef0 makes my notebook work correctly again as it used to in 2.6.38-rc8 and before.
Could you check whether the patch below changes the behavior? If this cures, it means that the backlight-combo mode doesn't work on your machine.
Takashi
--- diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c index a06ff07..bf61e02 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c @@ -116,11 +116,13 @@ static int is_backlight_combination_mode(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private;
+#if 0 if (INTEL_INFO(dev)->gen >= 4) return I915_READ(BLC_PWM_CTL2) & BLM_COMBINATION_MODE;
if (IS_GEN2(dev)) return I915_READ(BLC_PWM_CTL) & BLM_LEGACY_MODE; +#endif
return 0; }
* Takashi Iwai -- Friday 29 April 2011:
Melchior FRANZ wrote:
The bug was introduced with commit ba3820ade317ee36e496b9b40d2ec3987dd4aef0 [...] when using KMS my notebook's[2] screen remains dark, because the backlight isn't turned on.
Could you check whether the patch below changes the behavior? If this cures, it means that the backlight-combo mode doesn't work on your machine.
Yes, that works. (Test was with fafc9929c668f8bae6dd1f109f33a86d2cb3c460, which is current HEAD.)
m.
At Fri, 29 Apr 2011 19:41:53 +0200, Melchior FRANZ wrote:
- Takashi Iwai -- Friday 29 April 2011:
Melchior FRANZ wrote:
The bug was introduced with commit ba3820ade317ee36e496b9b40d2ec3987dd4aef0 [...] when using KMS my notebook's[2] screen remains dark, because the backlight isn't turned on.
Could you check whether the patch below changes the behavior? If this cures, it means that the backlight-combo mode doesn't work on your machine.
Yes, that works. (Test was with fafc9929c668f8bae6dd1f109f33a86d2cb3c460, which is current HEAD.)
Looking at bugzilla, the problem seems like the case lbpc=0. What about the patch below instead?
Takashi
--- diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c index a06ff07..ba60218 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c @@ -207,7 +207,8 @@ u32 intel_panel_get_backlight(struct drm_device *dev)
val &= ~1; pci_read_config_byte(dev->pdev, PCI_LBPC, &lbpc); - val *= lbpc; + if (lbpc) + val *= lbpc; } }
* Takashi Iwai -- Friday 29 April 2011: [https://bugzilla.kernel.org/show_bug.cgi?id=31522]
Looking at bugzilla, the problem seems like the case lbpc=0. What about the patch below instead?
val *= lbpc;
if (lbpc)
val *= lbpc;
Yes, that works as well. (I had assumed that this was the problem, but wasn't sure if a zero was even a legitimate value, or rather a sign for a problem or wrong assumption elsewhere.)
m.
At Fri, 29 Apr 2011 22:09:54 +0200, Melchior FRANZ wrote:
- Takashi Iwai -- Friday 29 April 2011:
[https://bugzilla.kernel.org/show_bug.cgi?id=31522]
Looking at bugzilla, the problem seems like the case lbpc=0. What about the patch below instead?
val *= lbpc;
if (lbpc)
val *= lbpc;
Yes, that works as well. (I had assumed that this was the problem, but wasn't sure if a zero was even a legitimate value, or rather a sign for a problem or wrong assumption elsewhere.)
Well, this was just my wild guess. I remember vaguely that the value zero could be interpreted as the max. It might be depending on the hardware.
So, the patch below may work better in your case.
Also, with the patch, does the backlight level can be adjusted correctly to different values? I wonder whether LBPC adjustment really works or not on your machine.
Takashi
--- diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c index a06ff07..aaa1f9e 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c @@ -207,6 +207,8 @@ u32 intel_panel_get_backlight(struct drm_device *dev)
val &= ~1; pci_read_config_byte(dev->pdev, PCI_LBPC, &lbpc); + if (!lbpc) + lbpc = 0xff; /* max value */ val *= lbpc; } }
* Takashi Iwai -- Saturday 30 April 2011:
I remember vaguely that the value zero could be interpreted as the max.
Also, with the patch, does the backlight level can be adjusted correctly to different values? I wonder whether LBPC adjustment really works or not on your machine.
if (!lbpc)
lbpc = 0xff; /* max value */
This change does *not* work on my machine. The screen stays black again.
Yes, backlight adjustment generally works on this notebook, but only with "acpi_osi=Linux" on the command line.
m.
At Sat, 30 Apr 2011 10:32:04 +0200, Melchior FRANZ wrote:
- Takashi Iwai -- Saturday 30 April 2011:
I remember vaguely that the value zero could be interpreted as the max.
Also, with the patch, does the backlight level can be adjusted correctly to different values? I wonder whether LBPC adjustment really works or not on your machine.
if (!lbpc)
lbpc = 0xff; /* max value */
This change does *not* work on my machine. The screen stays black again.
Hrm, then it's really hard to say how exactly the system behaves when lbpc=0... I guess we should avoid controlling LBPC in such a case, e.g. something like the patch below (totally untested).
But Intel guys must know of this better... I leave this to their hands.
Yes, backlight adjustment generally works on this notebook, but only with "acpi_osi=Linux" on the command line.
acpi_osi quirk should be better added statically, then.
thanks,
Takashi
--- diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 1c1b27c..c0ab771 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -328,6 +328,7 @@ typedef struct drm_i915_private { struct intel_overlay *overlay;
/* LVDS info */ + int backlight_combination_mode; /* 0=unknown, -1=no, 1=yes */ int backlight_level; /* restore backlight to this value */ bool backlight_enabled; struct drm_display_mode *panel_fixed_mode; diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c index a06ff07..320dd5f 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c @@ -115,14 +115,24 @@ done: static int is_backlight_combination_mode(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; - - if (INTEL_INFO(dev)->gen >= 4) - return I915_READ(BLC_PWM_CTL2) & BLM_COMBINATION_MODE; - - if (IS_GEN2(dev)) - return I915_READ(BLC_PWM_CTL) & BLM_LEGACY_MODE; - - return 0; + int combo_mode; + u8 lbpc; + + if (dev_priv->backlight_combination_mode) + return dev_priv->backlight_combination_mode > 0; + + pci_read_config_byte(dev->pdev, PCI_LBPC, &lbpc); + if (!lbpc) + combo_mode = 0; + else if (INTEL_INFO(dev)->gen >= 4) + combo_mode = I915_READ(BLC_PWM_CTL2) & BLM_COMBINATION_MODE; + else if (IS_GEN2(dev)) + combo_mode = I915_READ(BLC_PWM_CTL) & BLM_LEGACY_MODE; + else + combo_mode = 0; + + dev_priv->backlight_combination_mode = combo_mode ? -1 : 1; + return combo_mode; }
static u32 i915_read_blc_pwm_ctl(struct drm_i915_private *dev_priv)
Dropping Linus from the CC.
* Takashi Iwai -- Saturday 30 April 2011: * * At Sat, 30 Apr 2011 10:32:04 +0200, Melchior FRANZ wrote:
Yes, backlight adjustment generally works on this notebook, but only with "acpi_osi=Linux" on the command line.
acpi_osi quirk should be better added statically, then.
No, I guess the problem here is that acer_wmi doesn't support this machine yet. I told the ACER WMI maintainer and sent a DSDT image, but this message was thoroughly ignored.
$ dmesg|grep -i acer [ 0.000000] DMI: Acer TM5735/BA51_MV, BIOS V1.04 09/23/2010 [ 71.850534] acer_wmi: Acer Laptop ACPI-WMI Extras [ 72.350278] acer_wmi: Unable to detect available WMID devices
Machine: Acer Travelmate 5735Z-452G32Mnss
m.
Hi Melchior,
於 六,2011-04-30 於 13:34 +0200,Melchior FRANZ 提到:
Dropping Linus from the CC.
- Takashi Iwai -- Saturday 30 April 2011:
- At Sat, 30 Apr 2011 10:32:04 +0200, Melchior FRANZ wrote:
Yes, backlight adjustment generally works on this notebook, but only with "acpi_osi=Linux" on the command line.
acpi_osi quirk should be better added statically, then.
No, I guess the problem here is that acer_wmi doesn't support this machine yet. I told the ACER WMI maintainer and sent a DSDT image, but this message was thoroughly ignored.
$ dmesg|grep -i acer [ 0.000000] DMI: Acer TM5735/BA51_MV, BIOS V1.04 09/23/2010 [ 71.850534] acer_wmi: Acer Laptop ACPI-WMI Extras [ 72.350278] acer_wmi: Unable to detect available WMID devices
Machine: Acer Travelmate 5735Z-452G32Mnss
m.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Could you please attach DSDT on this mail or share your kernel bugzilla number to us?
I found cann't access BKO now?
Thank's Joey Lee
At Sat, 30 Apr 2011 13:34:51 +0200, Melchior FRANZ wrote:
Dropping Linus from the CC.
- Takashi Iwai -- Saturday 30 April 2011:
- At Sat, 30 Apr 2011 10:32:04 +0200, Melchior FRANZ wrote:
Yes, backlight adjustment generally works on this notebook, but only with "acpi_osi=Linux" on the command line.
acpi_osi quirk should be better added statically, then.
No, I guess the problem here is that acer_wmi doesn't support this machine yet. I told the ACER WMI maintainer and sent a DSDT image, but this message was thoroughly ignored.
$ dmesg|grep -i acer [ 0.000000] DMI: Acer TM5735/BA51_MV, BIOS V1.04 09/23/2010 [ 71.850534] acer_wmi: Acer Laptop ACPI-WMI Extras [ 72.350278] acer_wmi: Unable to detect available WMID devices
Machine: Acer Travelmate 5735Z-452G32Mnss
Hm, but the backlight control is done via the standard ACPI, no? If so, the fact that acer_wmi doesn't work sounds irrelevant.
BTW, did you try my previous patch?
Takashi
* Takashi Iwai -- Monday 02 May 2011: * > At Sat, 30 Apr 2011 13:34:51 +0200, Melchior FRANZ wrote:
- Takashi Iwai -- Saturday 30 April 2011:
acpi_osi quirk should be better added statically, then.
No, I guess the problem here is that acer_wmi doesn't support this machine yet.
Hm, but the backlight control is done via the standard ACPI, no?
I have no idea. If I were an expert, I would just have sent a patch, not a bug report. And I prefer fixes to "quirks". :-P
BTW, did you try my previous patch?
Works. I hadn't tested it before, because you seemed to wait for the opinion of some Intel people, and so did I. But thanks for that code!
m.
Hi Melchior,
於 一,2011-05-02 於 14:08 +0200,Takashi Iwai 提到:
At Sat, 30 Apr 2011 13:34:51 +0200, Melchior FRANZ wrote:
Dropping Linus from the CC.
- Takashi Iwai -- Saturday 30 April 2011:
- At Sat, 30 Apr 2011 10:32:04 +0200, Melchior FRANZ wrote:
Yes, backlight adjustment generally works on this notebook, but only with "acpi_osi=Linux" on the command line.
acpi_osi quirk should be better added statically, then.
No, I guess the problem here is that acer_wmi doesn't support this machine yet. I told the ACER WMI maintainer and sent a DSDT image, but this message was thoroughly ignored.
$ dmesg|grep -i acer [ 0.000000] DMI: Acer TM5735/BA51_MV, BIOS V1.04 09/23/2010 [ 71.850534] acer_wmi: Acer Laptop ACPI-WMI Extras [ 72.350278] acer_wmi: Unable to detect available WMID devices
Machine: Acer Travelmate 5735Z-452G32Mnss
Hm, but the backlight control is done via the standard ACPI, no? If so, the fact that acer_wmi doesn't work sounds irrelevant.
BTW, did you try my previous patch?
Takashi
Yes, please try Takashi's previous patch.
I am tracing bko#34142, but this issue does not related to your backlight control, because there have _BCM, _BQC declare in your DSDT, your machine MUST SUPPORTED by standard acpi backlight interface.
Even the acer-wmi can probed on your machine, it cann't help anything for your backlight control.
Thank's a lot! Joey Lee
dri-devel@lists.freedesktop.org