Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
Admin message
The migration is almost done, at least the rest should happen in the background. There are still a few technical difference between the old cluster and the new ones, and they are summarized in this issue. Please pay attention to the TL:DR at the end of the comment.
Project 'drm/intel' was moved to 'drm/i915/kernel'. Please update any links and bookmarks that may still have the old path.
[i915] intel_backlight does not function - Lenovo X1 Yoga OLED
Created attachment 126688
Full dmesg output with drm.debug=0x1e log_buf_len=1M
On the OLED version of the Lenovo X1 Yoga, the intel_backlight device reports a range of 0 to 852, but its setting has no effect. (Perhaps not too surprising since this device technically has no backlight.) The display brightness is always (near?) maximum when Linux is booted.
The thinkpad_acpi module does no better at providing brightness controls.
The xrandr --brightness setting is a nearly-adequate workaround, but is occasionally reset while using X.org normally (I have not investigated the cause yet).
Attached logs are from an Ubuntu kernel-ppa image, stamped:
cod/tip/drm-intel-next/2016-09-20 (6e05f3d3b9298a56d6f1acb474a75cf14a17c31e)
The laptop display is attached to eDP1. There is a second display attached to DP1; I can provide logs without that if requested.
I was not able to create a vbios dump. ("Input/Output error")
Attachment 126688, "Full dmesg output with drm.debug=0x1e log_buf_len=1M": dmesg.txt
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
Okay, this means i915.enable_dpcd_backlight=1 doesn't matter.
What's under /sys/class/backlight/? Under each directory there, can you change backlight by echoing (as root) values between 0 and $(cat max_brightness) to the brightness sysfs attribute file?
There are a variety of LED controls, mostly exposed by thinkpad_acpi: capslock, numlock, scrolllock, phy0, kbd_backlight, power, standby, thinklight, thinkvantage; none of these affect screen brightness.
[ 5.387513] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver
[ 5.387513] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default...
[ 5.392293] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
What's under /sys/class/backlight/? Under each directory there, can you
change backlight by echoing (as root) values between 0 and $(cat
max_brightness) to the brightness sysfs attribute file?
Hello Dan, any change on this? Last update was on February, is this still a issue for you? If so, could you please provide the requested information. Thank you.
I have re-tested with cod/tip/drm-intel-next/2017-09-30 (e18063e88bd579c479a2b45820be6c4625f841c3) from the kernel-ppa.
Maybe it has nothing to do, but just in case, have you tried the
"acpi_backlight=vendor" method?
Yes, I have tested this. It does not help.
> What's under /sys/class/backlight/? Under each directory there, can you
> change backlight by echoing (as root) values between 0 and $(cat
> max_brightness) to the brightness sysfs attribute file?
There is only intel_backlight (c.f. #8 (closed)). intel_backlight has a max_brightness (852), but changing brightness has no effect.
> Hello Dan, any change on this?
There is no change. Considering that Intel shipped a special release of their Windows driver just for this laptop to fix brightness controls, I do not expect to be surprised by a fix.
Basically, we don't know how brightness is controlled on this laptop.
On Windows this is handled by a kernel module separate from the main Intel graphics driver. The build for the model mentioned in this report is available at https://support.lenovo.com/en/us/downloads/ds113141 though some other laptops (X1 Yoga Generation 2, Alienware 13 R3) use slightly different versions of what's clearly the same codebase.
The download above contains debug symbols, so I've done some cursory analysis. It communicates with the panel via eDP AUX (couldn't say if it's using I2C-over-AUX, though) through an interface exposed by the primary Intel graphics driver. References to gamma and voltages (ELVSS) indicate it's considerably more low-level.
It's developed by Intel, not a third-party manufacturer; I have no insight into your organisation so forgive me if I'm wrong but I would imagine you can inquire about this internally.
The download above contains debug symbols, so I've done some cursory
analysis. It communicates with the panel via eDP AUX (couldn't say if it's
using I2C-over-AUX, though) through an interface exposed by the primary
Intel graphics driver. References to gamma and voltages (ELVSS) indicate
it's considerably more low-level.
It's developed by Intel, not a third-party manufacturer; I have no insight
into your organisation so forgive me if I'm wrong but I would imagine you
can inquire about this internally.
Mostly adding that it indeed remains an issue on the 2nd generation X1 Yoga OLED. The only difference with the report above is that max_brightness is 1060.
While I haven't looked at the Taichi's driver, I highly doubt that, as the brightness setting protocol for the devices mentioned in *this* thread appears to involve low level (OLED technology specific) commands.
By the way - I'm new to Freedesktop's Bugzilla so I'm wary to change things, but is the reporter really who this bug should be assigned to?
...By the way - I'm new to Freedesktop's Bugzilla so I'm wary to change things,
but is the reporter really who this bug should be assigned to?
Hello Niklas,
Bugs are assigned to the reporters when some information is needed from them, in this case it seems that to reset the assignee field skipped our sight, thanks for pointing that.
The download above contains debug symbols, so I've done some cursory
analysis. It communicates with the panel via eDP AUX (couldn't say if it's
using I2C-over-AUX, though) through an interface exposed by the primary
Intel graphics driver. References to gamma and voltages (ELVSS) indicate
it's considerably more low-level.
The panel's DPCD indicates that it doesn't support the DP standard native aux backlight control (see comment 7). It seems like some proprietary sauce.
> It's developed by Intel, not a third-party manufacturer; I have no insight
> into your organisation so forgive me if I'm wrong but I would imagine you
> can inquire about this internally.
Suffice it to say, it's not just tracking this down, it's also getting the permission to open source something that the display vendor apparently deemed best to do in their own proprietary way instead of following the DP specs.
Jani - just so we are sure not to give up hope unnecessarily: the display is made by Samsung and the driver by intel; neither are the worst in terms of open-sourcing drivers (nor is Lenovo in fact). So, are you sure the driver is in fact proprietary, rather than this simply being an oversight? The fact that even the windows machines initially couldn't change their brightness suggests oversight/incompetence is not an implausible explanation. Also, since formally there is no back light for OLED displays, it is not that strange to not think of using the backlight API -- though I certainly would have thought it would be very logical to re-purpose that!
p.s. If it helps to have someone outside to attempt to contact about this, I'd gladly do it -- but it would almost certainly help to know where start! Likely, the post to the Lenovo forum I just made [1] is not going to be much use... If you have any specific person where an e-mail would help, just let me know.
...So, are you sure the driver is in fact proprietary,
rather than this simply being an oversight? The fact
that even the windows machines initially couldn't change their brightness
suggests oversight/incompetence is not an implausible explanation.
The *protocol* is "proprietary" as in (apparently) vendor-specific and not publicly documented, and the *driver* is "proprietary" in that it has certainly never gotten an opensource release; it also utilises an API provided by the general Windows Intel GPU driver for talking to the display.
Windows systems naturally also depend on this driver, device-specific versions of which are shipped with all laptops using such a display in addition to being provided online, to change brightness. The fact that the brightness controls on Windows don't do anything without it installed appears to be intended behaviour.
> Also, since formally there is no back light for OLED displays, it is not that
> strange to not think of using the backlight API -- though I certainly would
> have thought it would be very logical to re-purpose that!
(In reply to Jani Nikula from comment 25)
> Suffice it to say, it's not just tracking this down, it's also getting the
> permission to open source something that the display vendor apparently
> deemed best to do in their own proprietary way instead of following the DP
> specs.
Hi Jani, thanks for responding. FWIW, I can see technical reasons for this decision beyond just politics/NIH. While I'm not sure anybody's actually using it for that (the laptop in question has custom color management software, but I think that uses standard software/GPU LUTs internally), the protocol ought to allow for color management / gamma correction in display voltage levels, which I believe is more flexible than what DP provides.
Have you tried to contact anyone about this? Is there anything you can say about our chances of having this hardware supported in intel_backlight?
Have you tried to contact anyone about this? Is there anything you can say
about our chances of having this hardware supported in intel_backlight?
Based on my current (and possibly flawed, mind you) understanding, the chances are slim, I'm afraid.
If anyone can enable CONFIG_DRM_DP_AUX_CHARDEV=y and dump the DPCD using the aux chardev (IIRC should pop up somewhere under /sys/class/drm/card0-eDP-1), it might give some clues.
If anyone can enable CONFIG_DRM_DP_AUX_CHARDEV=y and dump the DPCD using the
aux chardev (IIRC should pop up somewhere under /sys/class/drm/card0-eDP-1),
it might give some clues.
Almost full DPCD data from X1 Yoga 2nd generation is attached.
Reading it with cat gives only the first few bytes and several
[drm:intel_dp_aux_ch] *ERROR* dp_aux_ch receive error status 0x6f4003ff
in dmesg.
ddrescue was able to extract everything except for byte 0x53:
# pos size status
0x00000000 0x00000053 +
0x00000053 0x00000001 -
0x00000054 0x000FFFAC +
I've got one of these Lenovo X1 Yoga (Gen 2) OLED-equipped machines. It seems like you already have the data that you asked for, so I don't know if I need to do the same as the other guys have done, but let me know if it would be helpful.
And Udi, I really have to thank you -- this is the first time since the upgrade to 17.10/switch to Wayland that I wasn't stuck having my display at whatever brightness it uses when uncontrollable. It was really obnoxious in a dark room. I can recommend it to anyone who's got one of these and needs to get by in the meantime.
Do you have any idea whether this color management form of brightness control has the positive impacts on power consumption that traditional backlight adjustments do?
I can clearly observe that my laptop uses less power when lowering the brightness using color management to reduce brightness. This is how OLED works -- the amount of power used is relative to the brightness of the pixels.
First of all. Sorry about spam.
This is mass update for our bugs.
Sorry if you feel this annoying but with this trying to understand if bug still valid or not.
If bug investigation still in progress, please ignore this and I apologize!
If you think this is not anymore valid, please comment to the bug that can be closed.
If you haven't tested with our latest pre-upstream tree(drm-tip), can you do that also to see if issue is valid there still and if you cannot see issue there, please comment to the bug.
I can clearly observe that my laptop uses less power when lowering the
brightness using color management to reduce brightness. This is how OLED
works -- the amount of power used is relative to the brightness of the
pixels.
When I have gone through the Lenovo x1 yoga OLED model laptop spec,I understood that for this particular OLED model laptops will not have backlight feature.
As LED displays emitts brighter light and backlight feature will be incorporated in LCD displays.
Please refer the doc below:-
http://www.notebookreview.com/notebookreview/lenovo-thinkpad-x1-yoga-oled-2017-review/
As backlight feature is not supported,can we close the bug?
The terminology around brightness control predates proliferation of OLED displays; it used to be solely about backlight control. The bug is still very much valid.
I tested the above patch for the OLED Display in the XPS 15 7590 OLED Laptop, because this model also has a SDC panel, just with a different Product ID.
It works very good. I have now proper brightness control without any loss of color depth.
The patch nearly worked out of the box for me:
I applied the patch on the current Ubuntu 5.3.0-26-generic kernel.
All I had to do was to disable the following capable check in:
I think the check is not needed in this case, because we know that we are going to use the quirk brightness method (based on the EDID check and the enable check before the capable check).
For my quick test I just commented both lines out. A proper fix would be to add the quirk check inside of
intel_dp_aux_display_control_capable
or move the capable check inside the else branch of the drm_dp_has_quirk check.
I even tried to add the mfg and prod-ID to the quirk list and added the option i915.enable_dpcd_backlight=1 to the grub script, but it still did not work:
I believe I have the same laptop that Lyude mention in the patch as well: Lenovo ThinkPad X1 Extreme 2nd, model 20QVCTO1WW that experience the same issue.
I'm using the following boot options:
GRUB_CMDLINE_LINUX_DEFAULT="quiet iwlwifi.power_save=Y iwldvm.force_cam=N power_level=5 i915.fastboot=1 i915.enable_psr=0 i915.enable_guc=2 i915.enable_fbc=1 i915.enable_dpcd_backlight=1 nouveau.modeset=0 apparmor=1 security=apparmor udev.log_priority=3"
in order to be able to adjust the backlight. Unfortunately turning backlight up/down does not happen with monotonically incremental steps, but jerky ones.
Linux organic 5.6.7-1-MANJARO #1 (moved) SMP PREEMPT Thu Apr 23 10:50:31 UTC 2020 x86_64 GNU/Linux
The patch mentioned in #28 (comment 387675) is not for this device, unfortunately, but for the 2019 OLED ThinkPad models. (Display ID "SDC4141" according to the patch - it's actually PnP ID LEN4141 on Windows (SDC4141 is an unrelated LCD) but shows up as SDC4141 in EDID on Linux for some reason.)
This and the other drm-intel patches for Samsung AMOLED panel support are all for laptops from 2019 and later, supporting standard(ish) backlight control mechanisms.
Earlier laptops (starting with the 2016 ThinkPad this issue is about) all seem to use the same process as mobile devices with Samsung AMOLED displays - configuring much lower-level detail over panel-specific (though similar) protocols. There are drivers for some of these mobile devices in mainline (e.g. https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c ) and OEM kernels.
That communication goes through eDP AUX via the Tcon (a Parade DP699, specific to Samsung AMOLED) - at least on the X1 Yoga.
(Original research, unfortunately I don't have enough details for implementation.)