Bug 212279 - AMDGPU doesn’t expose any way of setting the full RGB range [ryzen+ mobile]
Summary: AMDGPU doesn’t expose any way of setting the full RGB range [ryzen+ mobile]
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - non Intel) (show other bugs)
Hardware: All Linux
: P1 enhancement
Assignee: drivers_video-dri
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-03-14 23:44 UTC by Nelson G
Modified: 2021-03-15 21:06 UTC (History)
1 user (show)

See Also:
Kernel Version: all
Subsystem:
Regression: No
Bisected commit-id:


Attachments
edid-decode (6.20 KB, text/plain)
2021-03-15 18:25 UTC, Nelson G
Details
edited edid with wxedid (6.16 KB, text/plain)
2021-03-15 21:06 UTC, Nelson G
Details

Description Nelson G 2021-03-14 23:44:38 UTC
Hello,  I'd like to address that there's no way to set full RGB range to HDMI for my Thinkpad E495 (AMD Ryzen 5 3500U). 
I tried editing the edid.bin with wxedid but had no luck.

Is there a plan to enable this in the near future?. 

Thanks.
Comment 1 Alex Deucher 2021-03-15 17:58:29 UTC
IIRC, the driver sets full or limited range automatically based on the EDID.
Comment 2 Nelson G 2021-03-15 18:25:48 UTC
Created attachment 295873 [details]
edid-decode

Here is the edid file for my TV (works full rgb range with windows 10)
I will try to edit the file with wxEDID now, but, it would be less tedious if it were automatic as you say.
Comment 3 Nelson G 2021-03-15 21:06:53 UTC
Created attachment 295875 [details]
edited edid with wxedid

Got it!
I failed at editing the file first because it was a 0 byte file (didn't had my TV connected lol!)
So.  I followed this video https://www.youtube.com/watch?v=tYYMiX7dlak
And basically did the following in my debian sid partition (I will describe it for anyone interested): 

To find my TV edid
$ find /sys/devices/pci*/ -name edid 
Grab/copy the desired edid file to my home folder
$ cp /sys/devices/pci0000:00/0000:00:08.1/0000:05:00.0/drm/card0/card0-HDMI-A-1/edid ~/edid.bin

Then edited that file with wxedid to change the following:
SPF: Supported features = vsig_format to 0b00
CHD: CEA-861 header = YCbCr 4:2:2 to 0
CHD: CEA-861 header = YCbCr 4:4:4 to 0
VSD: Vendor Specific Data Block = DC_Y444 to 0

Then before saving the file I clicked Options > Recalc checksum (otherwise the system will not use your edited edid!), after that I did saved the file, and copied that new modified edid file to /lib/firmware/edid/edid.bin 
To use the new edid, I added 'drm_kms_helper.edid_firmware=HDMI-A-1:edid/edid.bin' to /etc/default/grub (to the line GRUB_CMDLINE_LINUX="foo")
updated initramfs with 'sudo update-initramfs -u' and then updated grub as well with 'sudo update-grub'.

Note:  I compiled the latest wxedid from sourceforge, and, 'options > recalc checksum' option is MISSING at least for me.  That's why the process was failing for me.  Luckily for me debian has a wxedid in their repo that has the recalc checksum option.  


Now...  bit of work ain't it?  I don't know if this happens because of my TV,  I haven't tried with other monitors/televisions.  But a bit of improvement in the matter would be GREAT.

Note You need to log in before you can comment on or make changes to this bug.