Bug 106228 - amdgpu reads back brightness 0 (which is not true) if checked before a brightness has been explicitly set
Summary: amdgpu reads back brightness 0 (which is not true) if checked before a bright...
Status: RESOLVED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/AMDgpu (show other bugs)
Version: unspecified
Hardware: Other Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-04-25 03:43 UTC by jian-hong
Modified: 2018-07-26 07:41 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
The full dmesg (65.41 KB, text/plain)
2018-04-25 03:43 UTC, jian-hong
no flags Details
Patch that should fix the problem (1.26 KB, patch)
2018-07-23 18:32 UTC, David Francis
no flags Details | Splinter Review
additional patch (2.99 KB, patch)
2018-07-24 20:06 UTC, Daniel Drake
no flags Details | Splinter Review

Description jian-hong 2018-04-25 03:43:32 UTC
Created attachment 139091 [details]
The full dmesg

I have tried to install Linux OS on ASUS laptop which is equipped with AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx.

When the Linux installation completed and entered to the OS, the brightness of display looks normal but the brightness bar is shown as the lowest level within the display's brightness GUI setting.

Also check "cat /sys/class/backlight/amdgpu_bl0/brightness" and it is 0.

After a system reboot, Brightness is dimmed to the lowest level.
Check "cat /sys/class/backlight/amdgpu_bl0/brightness" again and it is 12.

To make sure it is the problem that "system always reads back brightness 0 if checked before a brightness has been explicitly set".
I disable all of the brightness setting applications, including masking systemd-backlight service and than reboot.
"cat /sys/class/backlight/amdgpu_bl0/brightness" before set brightness manually again and it reads back 0, but the brightness of display looks normal actually.
Then, if I drag the brightness bar in GUI, the actual brightness changes and the "/sys/class/backlight/amdgpu_bl0/brightness" goes to the right value.
And, I reboot again, then the same things happen again.

I also tried this with kernel v4.17.0-rc2.  It still has the same problem.
Comment 1 Alex Deucher 2018-05-08 19:45:06 UTC
Harry, I thought we fixed something like this recently.  Maybe this patch?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c3d7bad88e3b35b981eecc1645ddbb3f13a8b54f
Comment 2 Harry Wentland 2018-05-08 21:06:02 UTC
That patch only affects Carrizo and should only be needed for S3.

We don't see this issue with Ubuntu 18.04 on a Raven laptop we have available. The OS (Gnome) shows brightness as expected on boot.

I wonder if some laptops behave differently but I can't think why.
Comment 3 Daniel Drake 2018-06-05 15:38:12 UTC
Do you have any specific debugging suggestions?
Can we ship an affected laptop to you for diagnosis?
Comment 4 David Francis 2018-07-23 18:32:30 UTC
Created attachment 140795 [details] [review]
Patch that should fix the problem

Could you try out this patch and check if it works?  Thanks.
Comment 5 Daniel Drake 2018-07-24 20:06:11 UTC
Created attachment 140809 [details] [review]
additional patch

this patch may also be required
Comment 6 jian-hong 2018-07-25 10:05:36 UTC
Apply "[PATCH] drm/amdgpu: Read back max backlight value at boot" to Linux 4.18.0-rc6 kernel.

I disable all of the brightness setting applications, including masking systemd-backlight service and than reboot.
"cat /sys/class/backlight/amdgpu_bl0/brightness" before set brightness manually again and it reads back 255 (the maximum brightness).

If I unmask systemd-backlight service and than reboot for test, "cat /sys/class/backlight/amdgpu_bl0/brightness" before set brightness manually again and it reads back the brightness which is saved before last reboot.
Comment 7 jian-hong 2018-07-25 10:07:42 UTC
Applied both "[PATCH] drm/amdgpu: Read back max backlight value at boot" and "[PATCH] drm/amd/display: Implement backlight_ops.get_brightness" to Linux 4.18.0-rc6 kernel.

I got the same behavior as previous comment.
Comment 8 David Francis 2018-07-25 19:26:47 UTC
When systemd-backlight is disabled, on reboot is the actual brightness coming from the monitor maximum?  

If it is, I believe this is working as intended.
Comment 9 jian-hong 2018-07-26 07:41:13 UTC
Hi David,

Yes!  It is. Thanks


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.