[Why]
drm_get_max_frl_rate() only decodes Max_FRL_Rate values 1-6, so a sink
advertising an HDMI 2.2 rate (7, 8 or 9) falls into the default case and
is reported as having no FRL support at all.

[How]
Decode the HDMI 2.2 Max_FRL_Rate values 7, 8 and 9 as 16, 20 and 24 Gbps
per lane over 4 lanes.

Signed-off-by: Fangzhi Zuo <[email protected]>
---
 drivers/gpu/drm/drm_edid.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 42f4e41c459f..48d5c4bd4812 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -6193,6 +6193,18 @@ void drm_get_max_frl_rate(int max_frl_rate, u8 
*max_lanes, u8 *max_rate_per_lane
                *max_lanes = 4;
                *max_rate_per_lane = 12;
                break;
+       case 7:
+               *max_lanes = 4;
+               *max_rate_per_lane = 16;
+               break;
+       case 8:
+               *max_lanes = 4;
+               *max_rate_per_lane = 20;
+               break;
+       case 9:
+               *max_lanes = 4;
+               *max_rate_per_lane = 24;
+               break;
        case 0:
        default:
                *max_lanes = 0;
-- 
2.53.0

Reply via email to