ath79/mikrotik: use routerbootpart partitions
[oweals/openwrt.git] / target / linux / layerscape / patches-5.4 / 805-display-0030-drm-imx-hdp-fix-issue-with-non-SCDC-HDMI-sinks.patch
1 From d9440f7cb8fa5853b9dcc6e2b165725ac3e8b70c Mon Sep 17 00:00:00 2001
2 From: Laurentiu Palcu <laurentiu.palcu@nxp.com>
3 Date: Wed, 27 Nov 2019 13:34:51 +0200
4 Subject: [PATCH] drm/imx/hdp: fix issue with non-SCDC HDMI sinks
5
6 Currently, if sink does not support SCDC, even if the sink is HDMI 1.4 or 2.0,
7 the hdmi_type is left to default value (MODE_DVI). Hence the HDMI controler is
8 not properly initialized when cdns_hdmi_ctrl_init() is called.
9
10 Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
11 Reported-by: Jared Hu <jared.hu@nxp.com>
12 Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
13 ---
14  drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c | 20 ++++++++++----------
15  1 file changed, 10 insertions(+), 10 deletions(-)
16
17 --- a/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c
18 +++ b/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c
19 @@ -29,11 +29,17 @@
20  static void hdmi_sink_config(struct cdns_mhdp_device *mhdp)
21  {
22         struct drm_scdc *scdc = &mhdp->connector.base.display_info.hdmi.scdc;
23 -       u8 buff;
24 +       struct drm_display_info *di = &mhdp->connector.base.display_info;
25 +       u8 buff = 0;
26 +
27 +       if (scdc->supported || di->color_formats & DRM_COLOR_FORMAT_YCRCB420)
28 +               mhdp->hdmi.hdmi_type = MODE_HDMI_2_0;
29 +       else
30 +               mhdp->hdmi.hdmi_type = MODE_HDMI_1_4;
31  
32         /* check sink support SCDC or not */
33 -       if (scdc->supported != true) {
34 -               DRM_INFO("Sink Not Support SCDC\n");
35 +       if (!scdc->supported) {
36 +               DRM_INFO("Sink does not support SCDC\n");
37                 return;
38         }
39  
40 @@ -43,19 +49,13 @@ static void hdmi_sink_config(struct cdns
41                  * Enable scrambling and TMDS_Bit_Clock_Ratio
42                  */
43                 buff = SCDC_TMDS_BIT_CLOCK_RATIO_BY_40 | SCDC_SCRAMBLING_ENABLE;
44 -               mhdp->hdmi.hdmi_type = MODE_HDMI_2_0;
45         } else  if (scdc->scrambling.low_rates) {
46                 /*
47                  * Enable scrambling and HDMI2.0 when scrambling capability of sink
48                  * be indicated in the HF-VSDB LTE_340Mcsc_scramble bit
49                  */
50                 buff = SCDC_SCRAMBLING_ENABLE;
51 -               mhdp->hdmi.hdmi_type = MODE_HDMI_2_0;
52 -       } else {
53 -               /* Default work in HDMI1.4 */
54 -               buff = 0;
55 -               mhdp->hdmi.hdmi_type = MODE_HDMI_1_4;
56 -        }
57 +       }
58  
59         /* TMDS config */
60         cdns_hdmi_scdc_write(mhdp, 0x20, buff);