Bug 83021
Summary: | Brightness is automatically set to zero when switching from X session to tty | ||
---|---|---|---|
Product: | Drivers | Reporter: | Gabriele Mazzotta (gabriele.mzt) |
Component: | Video(DRI - Intel) | Assignee: | intel-gfx-bugs (intel-gfx-bugs) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | gabriele.mzt, intel-gfx-bugs, tittiatcoke |
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 3.17-rc1 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Attachments: | dmesg with drm.debug=0xe |
Description
Gabriele Mazzotta
2014-08-22 14:40:51 UTC
The problem seems to be that when the panel is disabled, the actual brightness is set to 0, but right after that is set to backlight.min along with backlight.level, probably because of intel_backlight_device_update_status(). When the panel is enabled, backlight.level is compared against 0 in intel_panel_enable_backlight(), so the actual brightness is not changed since the current level is not 0, but backlight.min. 1) Please attach dmesg with drm.debug=0xe module param set all the way from boot to the problem. 2) Please try this patch: diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c index 59b028f0b1e8..ad2bbf1ae090 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c @@ -946,7 +946,8 @@ void intel_panel_enable_backlight(struct intel_connector *connector) WARN_ON(panel->backlight.max == 0); - if (panel->backlight.level == 0) { + if (panel->backlight.level == 0 || + panel->backlight.level < panel->backlight.min) { panel->backlight.level = panel->backlight.max; if (panel->backlight.device) panel->backlight.device->props.brightness = Created attachment 148021 [details]
dmesg with drm.debug=0xe
1) 29.866760 is when I switched back to my X session, the bug happens right
before that.
2) It doesn't work. The following works:
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index 59b028f..10f6ecd 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -946,7 +946,8 @@ void intel_panel_enable_backlight(struct intel_connector *connector)
WARN_ON(panel->backlight.max == 0);
- if (panel->backlight.level == 0) {
+ if (panel->backlight.level == 0 ||
+ panel->backlight.level <= panel->backlight.min) {
panel->backlight.level = panel->backlight.max;
if (panel->backlight.device)
panel->backlight.device->props.brightness =
I'm currently using 3.18-rc1 and one of the changes fixed the problem (I didn't try 3.17). Closing this. |