Closed kitakar5525 closed 3 years ago
If I compare dmesg log:
# 5.4.50-general-surface-k5-06734-g912c6036578d
kern :warn : [ 240.209676] i915 0000:00:02.0: cannot find GPIO chip gpio_crystalcove, deferring
kern :debug : [ 240.209688] i915 0000:00:02.0: No GPIO consumer panel found
kern :err : [ 240.209851] [drm:vlv_dsi_init [i915]] *ERROR* Failed to own gpio for panel control
kern :err : [ 240.209967] [drm:pwm_setup_backlight [i915]] *ERROR* Failed to get the PMIC PWM chip
kern :info : [ 240.240304] [drm] Initialized i915 1.6.0 20200114 for 0000:00:02.0 on minor 1
kern :info : [ 240.242837] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
# Arch's 5.4.50-1-lts
kern :warn : [ 2.226362] i915 0000:00:02.0: cannot find GPIO chip gpio_crystalcove, deferring
kern :err : [ 2.226504] [drm:vlv_dsi_init [i915]] *ERROR* Failed to own gpio for panel control
kern :info : [ 2.238280] [drm] Initialized i915 1.6.0 20190822 for 0000:00:02.0 on minor 0
kern :info : [ 2.241094] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
So, the difference is this line:
[drm:pwm_setup_backlight [i915]] ERROR Failed to get the PMIC PWM chip
OK, figured it out.
The chromiumos kernel backported upstream commit as 39c7a7c0 48624e7b ("UPSTREAM: drm/i915: DSI: select correct PWM controller to use based on the VBT").
Then, it should be followed by commit 2f093958 ("mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight"), but actually not backported.
I'll cherry-pick the commit 2f093958 to fix this issue in the next build.
By the way, I found another issue and its cause.
On Surface 3 (may affect also the other Bay/Cherry Trail devices), recent mainline Linux kernel (not chromeos kernel specific) causes delay between display off and on, with the following dmesg output:
kern :err : [ 99.106779] i2c_designware 808622C1:05: controller timed out
kern :err : [ 99.106828] i915 0000:00:02.0: [drm] *ERROR* Failed to xfer payload of size (1) to reg (1)
kern :err : [ 100.120082] i2c_designware 808622C1:05: controller timed out
kern :err : [ 100.120133] i915 0000:00:02.0: [drm] *ERROR* Failed to xfer payload of size (1) to reg (22)
This was introduced by commit 8cbf89db ("drm/i915/dsi: Parse the I2C element from the VBT MIPI sequence block (v3)") and chromiumos kernel backported this commit as 69fc6d06
.
The backlight control works without the commit anyway. So, mipi_exec_i2c()
should not be called on Surface 3 ?
Until I find the right way to address the controller timed out
issue, I'll revert this commit for faster display off/on transition.
Backlight issue fixed by commit https://github.com/kitakar5525/linux-kernel/commit/7e2dc21a9512a7e126ba99abb81bf5b73c1ae9ed.
Display off/on delay mitigated by commit https://github.com/kitakar5525/linux-kernel/commit/6072d02801657b83638b5d7223275543666420bf.
Somehow backlight not adjustable on Surface 3 with both general and minimal config of chromeos-5.4.
Affected:
Works on Arch Linux with 5.4.50-1-lts with its kernel config.
I recommend using chromeos-4.19 kernels for now...