Bug 204251
Summary: | intel_backlight brightness ACPI BIOS Error (bug) on Dell Precision 5540 (CoffeeLake) | ||
---|---|---|---|
Product: | ACPI | Reporter: | Arcadiy Ivanov (arcadiy) |
Component: | BIOS | Assignee: | acpi_bios |
Status: | CLOSED DOCUMENTED | ||
Severity: | high | CC: | anarsoul, deon, ivanramello, jonathon.padfield, kai.heng.feng, kenbell, madcamel, perry_yuan, r.sharadh, rui.zhang, scottjbarr, superm1, swat.artur |
Priority: | P1 | ||
Hardware: | Intel | ||
OS: | Linux | ||
See Also: | https://bugs.freedesktop.org/show_bug.cgi?id=111179 | ||
Kernel Version: | 5.1.18-300.fc30.x86_64 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Attachments: |
ACPI dump
custom dsdt for brt6 |
Description
Arcadiy Ivanov
2019-07-21 04:47:19 UTC
To make sure I'm following properly - you're saying that when changing the brightness using sysfs in the intel_backlight driver is when those ACPI errors show up in the system logs? A few things that will be needed to investigate these further: 1) What kernel? Is this happening with mainline? 2) Do you have the binary NVIDIA driver installed as well? 3) Can you please check if you have switchable graphics turned on or off in BIOS setup? This can cause ACPI tables to be populated differently on Dell systems. 4) Can you please share an ACPI dump for this system (please note whether switchable graphics is on or off in this dump too). I'm saying: a. The intel_brightness values change, but the brightness doesn't except to turn off. a. The ACPI errors occur every time the brightness is changed via keyboard combo. I just edited brightness directly by writing to it - it didn't change, but ACPI errors also didn't appear. So the ACPI errors are artifacts of pressing the key combination. To answer your questions: 1. Kernel is 5.1.18-300.fc30.x86_64. I'll be trying the drm-tip for https://bugs.freedesktop.org/show_bug.cgi?id=111179 anyway. 2. Yes, but (a) it's not active as no NVidia Linux driver supports T2000 in 5540 (b) it's Bumblebee'd anyway, so the device is off. 3. I believe switchable graphics is ON but I'll recheck. 4. Any particular ACPI tables you want or all of them? > I just edited brightness directly by writing to it - it didn't change, but
> ACPI errors also didn't appear.
Let me rephrase it :)
I just edited `brightness` in /sys/class/backlight/intel_backlight. The value changed, the monitor observed brightness didn't, but ACPI errors also did not appear.
(In reply to Mario Limonciello from comment #1) > 3) Can you please check if you have switchable graphics turned on or off in > BIOS setup? This can cause ACPI tables to be populated differently on Dell > systems. The "switchable graphics" option is completely absent from Dell Precision 5540 BIOS 1.1.1! I have no idea if I have it on or off. DRM i915 debug logs. The driver seems to be functioning but the brightness isn't being set. Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=65535/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 65535 Jul 22 11:10:09 hostname kernel: [drm:edp_panel_vdd_on [i915]] Turning eDP port A VDD on Jul 22 11:10:09 hostname kernel: [drm:edp_panel_vdd_on [i915]] PP_STATUS: 0x80000008 PP_CONTROL: 0x0000006f Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=65508/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 65508 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=65427/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 65427 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=65293/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 65293 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=65105/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 65105 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=64863/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 64863 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=64568/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 64568 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=64195/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 64195 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=63818/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 63818 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=63436/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 63436 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=63107/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 63107 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=62816/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 62816 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=62610/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 62610 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=62442/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 62442 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=62328/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 62328 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=62268/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 62268 Jul 22 11:10:09 hostname kernel: [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=62258/65535 Jul 22 11:10:09 hostname kernel: [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 62258 Created attachment 283919 [details]
ACPI dump
I do recall that this design has changed graphics - the HDMI port is wired directly to NVIDIA graphics and hence wouldn't work when NVIDIA is disabled (a'la bumblebee). This part of the design might not be working well with bumblebee.
> [28007.115439] ACPI BIOS Error (bug): Could not resolve symbol
> [\_SB.PCI0.PEG0.PEGP.BRT6.LCD], AE_NOT_FOUND (20190215/psargs-330)
IIRC \_SB.PCI0.PEG0.PEGP.BRT6 is referring to the discrete graphics.
Can you please check that if you un-bumblebee your system if this still happens?
Arcadiy, please attach output of `find /sys -name edid | grep eDP | xargs cat | xxd`. I see exactly the same issue with a Dell XPS 15 7590 - changing the values in /sys/class/backlight/intel_backlight/backlight doesn't result in a change to screen brightness - using the fn+f11 (reduce screen brightness) and fn+f12 (increase screen brightness) results in ACPI errors in dmesg output (shown here for fn+f11) [ 1067.475776] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.PEG0.PEGP.BRT6.LCD], AE_NOT_FOUND (20190215/psargs-330) [ 1067.475796] ACPI Error: Aborting method \_SB.PCI0.PEG0.PEGP.BRT6 due to previous error (AE_NOT_FOUND) (20190215/psparse-529) [ 1067.475940] ACPI Error: Aborting method \EV5 due to previous error (AE_NOT_FOUND) (20190215/psparse-529) [ 1067.476078] ACPI Error: Aborting method \SMEE due to previous error (AE_NOT_FOUND) (20190215/psparse-529) [ 1067.476213] ACPI Error: Aborting method \SMIE due to previous error (AE_NOT_FOUND) (20190215/psparse-529) [ 1067.476340] ACPI Error: Aborting method \NEVT due to previous error (AE_NOT_FOUND) (20190215/psparse-529) [ 1067.476691] ACPI Error: Aborting method \_SB.PCI0.LPCB.ECDV._Q66 due to previous error (AE_NOT_FOUND) (20190215/psparse-529) (In reply to Kai-Heng Feng from comment #8) > Arcadiy, please attach output of `find /sys -name edid | grep eDP | xargs > cat | xxd`. # find /sys -name edid | grep eDP | xargs cat | xxd 00000000: 00ff ffff ffff ff00 4d10 ba14 0000 0000 ........M....... 00000010: 161d 0104 a522 1378 0ede 50a3 544c 9926 .....".x..P.TL.& 00000020: 0f50 5400 0000 0101 0101 0101 0101 0101 .PT............. 00000030: 0101 0101 0101 ac37 80a0 7038 3e40 3020 .......7..p8>@0 00000040: 3500 58c2 1000 0018 0000 0000 0000 0000 5.X............. 00000050: 0000 0000 0000 0000 0000 0000 00fe 004d ...............M 00000060: 5750 3154 804c 5131 3536 4d31 0000 0000 WP1T.LQ156M1.... 00000070: 0002 4103 3200 1200 000a 010a 2020 00d3 ..A.2....... .. Same story with drm-tip (5.3.0rc1+). I'll be filing a i915 DRM bug for brightness control. DRM i915 upstream filed for backlight: https://bugs.freedesktop.org/show_bug.cgi?id=111202 This means your panel is a WLED one, so I think it's pretty similar to the OLED one I am working on. We'll need to decide to control the backlight from kernel or userspace first. (In reply to Kai-Heng Feng from comment #13) > This means your panel is a WLED one, so I think it's pretty similar to the > OLED one I am working on. According to Dell it's IGZO4, I'm fairly certain tech-wise it's not even close to OLED, although I have no idea about brightness control signalling. I can confirm that removing `i915.enable_dpcd_backlight=1` fixes the brightness issue. @Arcadiy, The question I'd have is why did you have that on your kernel command line in the first place rather than taking the kernel default behavior? That would be a good question. This OS has been moving from machine to machine for years and I think it was due to a brightness control issue in previous hardware (7510?). At any rate, while brightness control is restored, the ACPI error spam continues regardless. Ha! I "remembered" why it was turned on. Without `enable_dpcd_backlight=1` external monitors fail to go to "energy saving" mode. So eDP1 goes to sleep but external monitors via TB hub don't. I think that is worth bringing back up with the i915 guys. There should be a happy medium; or at least a way to enable that on a per-display basis. @KH can you repro the ACPI errors though? I do think we should get those cleaned up, even if brightness is working properly when not using enable_dpcd_backlight=1. I can't reproduce the errors on latest BIOS (1.2.3) and Linux v5.13-rc2. I will test on 1.2.3. On 1.2.3 with 5.1.20-300.fc30 the ACPI errors are still there. I'm seeing this also on a Dell Precision 7530 running CentOS 7.6.1810 with kernel 5.2.8-1.el7.elrepo.x86_64. The errors appear whether the BIOS video options "Enable Switchable Graphics" and/or "Discrete Graphics Controller Direct Output Mode" (to bypass the Intel integrated graphics adapter) are enabled or disabled. If I boot instead the 3.10.0-957.27.2.el7.x86_64 kernel then the above errors do not appear. acpiexec dsdt.dat: - find BRT6 \_SB.PCI0.GFX0.BRT6 Method 0x55e9480d0200 001 Args 2 Len 001A Aml 0x7f26bbc23cd9 \_SB.PCI0.PEG0.PEGP.BRT6 Method 0x55e9480d2640 001 Args 2 Len 0022 Aml 0x7f26bbc2401b - find LCD \_SB.PCI0.GFX0.LCD Device 0x55e9480cdf50 001 so we have two BRT6 method, they share similar code. it is okay for \_SB.PCI0.GFX0.BRT6 to use relative path LCD, but it is not okay for \_SB.PCI0.PEG0.PEGP.BRT6 to do so. Method (BRT6, 2, NotSerialized) { If ((EVD5 == One)) { If ((Arg0 == One)) { Notify (LCD, 0x86) // Device-Specific } If ((Arg0 & 0x02)) { Notify (LCD, 0x87) // Device-Specific } } } I guess the ACPI errors will go away if we replace LCD with \_SB.PCI0.GFX0.LCD. (In reply to Arcadiy Ivanov from comment #15) > I can confirm that removing `i915.enable_dpcd_backlight=1` fixes the > brightness issue. Because the Panel use the DPCD Aux channel to control the PWM of the backlight module. You can try the latest i915 backlight patch from Lyude. It can be patched into v5.5 rc2 kernel https://patchwork.freedesktop.org/series/69914/ maybe you still need to add i915.enable_dpcd_backlight=1 to your grub to force the i915 work under dpcd backlight control mode. On my notebook, a Dell Precision 7530 running Arch Linux with kernel 5.4.6.arch3-1, pressing the brightness up/down keys (Fn + up/down arrows) throws precisely the same seven lines of ACPI errors. However, writing values directly to /sys/class/intel_backlight/brightness *works* (as described in the Arch wiki: https://wiki.archlinux.org/index.php/Backlight#ACPI ) and the internal LCD brightness changes. I haven’t tried using the kernel parameter i915.enable_dpcd_backlight=1 yet, but I shall as soon as I get back to my notebook. That said, I’m more interested in patching the SSDT method if possible, to keep the native functionality, as mentioned in the comment: (In reply to Zhang Rui from comment #24) > acpiexec dsdt.dat: > - find BRT6 > \_SB.PCI0.GFX0.BRT6 Method 0x55e9480d0200 001 Args 2 Len > 001A Aml 0x7f26bbc23cd9 > \_SB.PCI0.PEG0.PEGP.BRT6 Method 0x55e9480d2640 001 Args 2 Len > 0022 Aml 0x7f26bbc2401b > - find LCD > \_SB.PCI0.GFX0.LCD Device 0x55e9480cdf50 001 > > so we have two BRT6 method, they share similar code. > it is okay for \_SB.PCI0.GFX0.BRT6 to use relative path LCD, but it is not > okay for > \_SB.PCI0.PEG0.PEGP.BRT6 to do so. > > Method (BRT6, 2, NotSerialized) > { > If ((EVD5 == One)) > { > If ((Arg0 == One)) > { > Notify (LCD, 0x86) // Device-Specific > } > > If ((Arg0 & 0x02)) > { > Notify (LCD, 0x87) // Device-Specific > } > } > } > I guess the ACPI errors will go away if we replace LCD with > \_SB.PCI0.GFX0.LCD. so anyone can try patch the ACPI table and check if the ACPI errors are gone or not? (In reply to Zhang Rui from comment #27) > so anyone can try patch the ACPI table and check if the ACPI errors are gone > or not? Hi Rui. I could help to try your patch if you can tell me what steps i need to follow. Created attachment 286641 [details]
custom dsdt for brt6
please make sure your kernel is built with CONFIG_ACPI_CUSTOM_METHOD set.
and then run "cat brt6.aml > /sys/kernel/debug/acpi/custom_method", and then check if the ACPI error messages can be reproduced or not.
I can confirm this bug with a Precision 5540 with vanilla 5.4.11. In kernel 5.1.x I was able to adjust my backlight by poking intel_backlight in sysfs. After updating to 5.3.x I lost this ability. I believe there is a regression here. The ACPI messages appear to be an independent issue from the backlight control issue. I've always gotten the ACPI messages, even when backlight control used to work correctly. I have tried building a kernel with CONFIG_ACPI_CUSTOM_METHOD and following Zhang's instructions. There was no change in behavior. (In reply to madcamel from comment #30) > I can confirm this bug with a Precision 5540 with vanilla 5.4.11. > > In kernel 5.1.x I was able to adjust my backlight by poking intel_backlight > in sysfs. After updating to 5.3.x I lost this ability. I believe there is a > regression here. > for this particular problem, please report a graphics bug instead Same problem on Dell Precision 7730 (UHD screen, integrated GPU). Brightness does not change pressing below keys, there are similar errors instead. Fn+Up Jan 26 08:52:38 P7730 kernel: [ 2740.582555] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.PEG0.NHDA], AE_NOT_FOUND (20190816/psargs-330) Jan 26 08:52:38 P7730 kernel: [ 2740.582575] ACPI Error: Aborting method \NEVT due to previous error (AE_NOT_FOUND) (20190816/psparse-529) Jan 26 08:52:38 P7730 kernel: [ 2740.582588] ACPI Error: Aborting method \_SB.PCI0.LPCB.ECDV._Q66 due to previous error (AE_NOT_FOUND) (20190816/psparse-529) Fn+Down Jan 26 08:52:46 P7730 kernel: [ 2748.592444] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.PEG0.NHDA], AE_NOT_FOUND (20190816/psargs-330) Jan 26 08:52:46 P7730 kernel: [ 2748.592461] ACPI Error: Aborting method \NEVT due to previous error (AE_NOT_FOUND) (20190816/psparse-529) Jan 26 08:52:46 P7730 kernel: [ 2748.592474] ACPI Error: Aborting method \_SB.PCI0.LPCB.ECDV._Q66 due to previous error (AE_NOT_FOUND) (20190816/psparse-529) Dell firmware is newest: root@P7730:~# fwupdmgr get-updates No upgrades for Thunderbolt Controller: current version is 41.00: 41.00=same, 36.00=older No upgrades for System Firmware: current version is 1.12.1: 1.12.1=same, 1.11.0=older, 1.10.1=older, 1.9.0=older, 1.8.2=older I tried downgrade BIOS to 1.10.1 a few weeks ago, it restored brightness control, AFAIR there were no errors in syslog. On the other hand I restored Ubuntu 16.04 image (shipped with this machine) - brightness control worked here, whichever BIOS version was: 10,11,12. After dist-upgrade to 18.04 then 19.10 brightness control was lost again, same errors. Current kernel in Debian testing: $ uname -a Linux P7730 5.4.0-3-amd64 #1 SMP Debian 5.4.13-1 (2020-01-19) x86_64 GNU/Linux Tried also this option: # systool -vm i915 | grep dpcd enable_dpcd_backlight= "1" But it didn't help. And grub parameters "acpi_osi=Linux acpi_backlight=vendor", all to no avail. So we have two problems here. One is the ACPI errors. Another one is a kernel regression which breaks backlight control. For the second one, please report a bug to the graphics experts. For the first one, I'd prefer to close it as it seems harmless (according to comment #30), and they're caused by buggy AML code IMO (according to comment #32). Dell released a new BIOS version 1.13.1 a few weeks ago. I made an upgrade, above ACPI BIOS errors do not occur anymore, but brightness control using default shortcuts (Fn+Up|Down) still does not work. Kernel version 5.6.0-2-amd64, video driver i915. I'll try to find these graphics experts, wherever they exist ;-) I have the same issue with XPS 15 7590. I patched DSDT with suggested fix and I'm loading it using initrd and it fixes the issue for me. @Artur, please check this page https://bugs.freedesktop.org/ first. You probably can raise your problem to https://gitlab.freedesktop.org/drm September of 2022, I'm on Ubuntu 22.04 using 5.19.0-12.1-liquorix-amd64 kernel and I can confirm I see the same problem still when adjusting the brightness on a Dell Precision 5540 with OLED panel and Nvidia+Intel graphics card, profile is set to "NVIDIA On-Demand" so Intel CoffeeLake-H GT2 (UHD Graphics 630) is the main driver and nvidia quadro t2000 just boosts when needed, which isn't often. ------------ [163874.296179] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.PEG0.PEGP.BRT6.LCD], AE_NOT_FOUND (20220331/psargs-330) [163874.296190] ACPI Error: Aborting method \_SB.PCI0.PEG0.PEGP.BRT6 due to previous error (AE_NOT_FOUND) (20220331/psparse-529) [163874.296240] ACPI Error: Aborting method \EV5 due to previous error (AE_NOT_FOUND) (20220331/psparse-529) [163874.296288] ACPI Error: Aborting method \SMEE due to previous error (AE_NOT_FOUND) (20220331/psparse-529) [163874.296337] ACPI Error: Aborting method \SMIE due to previous error (AE_NOT_FOUND) (20220331/psparse-529) [163874.296386] ACPI Error: Aborting method \NEVT due to previous error (AE_NOT_FOUND) (20220331/psparse-529) [163874.296434] ACPI Error: Aborting method \_SB.PCI0.LPCB.ECDV._Q66 due to previous error (AE_NOT_FOUND) (20220331/psparse-529) ------------ I have not yet tried i915.enable_dpcd_backlight=1 ; but the brightness control does seem to work, but it gets a little funny around 85%, like up to 85% it's adjusting the brighness but 90/95/100 it's instead playing with the contrast. |