Comment 3 for bug 1854413

Revision history for this message
In , sda (sda-linux-kernel-bugs) wrote :

Created attachment 286111
fix_max_backlight_calculations

When running Ubuntu with linux-image-5.3.0-23-generic, mainline 5.3.13, or latest 5.4+ my Lenovo ThinkPad P1 Gen 2 is unable to change the backlight brightness. The buttons trigger the on-screen display and move the bar but the actual display brightness does not change. With the kernel option i915.enable_dpcd_backlight=1 it does make the backlight change but erratically. For example moving through the range you get stuff like off, medium bright, dim, bright, medium, off. This does work in Ubuntu linux-image-4.15.0-1059-oem. It seems the following commits in particular make the difference.

UBUNTU: SAUCE: i915: intel_dp_aux_backlight: Fix max backlight calculations
https://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-oem/+git/eoan/commit/?h=oem&id=ff39163c455f31005e2709a2006a7605b3d8a05f

UBUNTU: SAUCE: drm/i915: customize DPCD brightness control for specific panel
https://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-oem/+git/eoan/commit/?h=oem&id=cf7286b44a6e27967f5ed134c4492dd17bde118a

I ported the above commits to the latest linux mainline kernel and am running that. This was in part because >= 5.3.12 fixes another issue with this hardware where the screen remains black after a resume (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1854177).

https://github.com/altendky/linux/commit/395eb4b85f6a0f85061c0598247727de0d9316f6
https://github.com/altendky/linux/commit/c2dc38e6aadf3d979bea83e382a1b119574df7af

Built with:

git clean -fdx && cp /boot/config-5.3.0-23-generic .config && yes '' | make oldconfig && make clean && make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-altendky-backlight

Note that the use of DEVICE_ID_ANY is likely bad and the correct ID for this panel should be identified. I wanted to first confirm it worked before bothering to figure out which ID was needed there and how to get it.