drm/rockchip: dw_hdmi: Allow outputs that don't need output switching
authorHeiko Stuebner <heiko@sntech.de>
Wed, 12 Sep 2018 12:47:36 +0000 (14:47 +0200)
committerHeiko Stuebner <heiko@sntech.de>
Fri, 28 Sep 2018 09:50:00 +0000 (11:50 +0200)
So far we always encountered socs with 2 output crtcs needing the driver
to tell the hdmi block which output to connect to. But there also exist
socs with only one crtc like the rk3228, rk3328 and rk3368.

So adapt the register field to simply carry a negative value to signal
that no output-switching is necessary.

changes in v3:
- fixed wording issue found by Robin Murphy

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Robin Murphy <robin.murphy@arm.com>
Reviewed-by: Zheng Yang <zhengyang@rock-chips.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180912124740.20343-3-heiko@sntech.de
drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c

index 11309a2a4e435fdee87ba9aff83787dee8e848d1..b09c3531305bccaa84b85722199ad94aea3e99c9 100644 (file)
@@ -36,7 +36,7 @@
  * @lcdsel_lit: reg value of selecting vop little for HDMI
  */
 struct rockchip_hdmi_chip_data {
-       u32     lcdsel_grf_reg;
+       int     lcdsel_grf_reg;
        u32     lcdsel_big;
        u32     lcdsel_lit;
 };
@@ -245,6 +245,9 @@ static void dw_hdmi_rockchip_encoder_enable(struct drm_encoder *encoder)
        u32 val;
        int ret;
 
+       if (hdmi->chip_data->lcdsel_grf_reg < 0)
+               return;
+
        ret = drm_of_encoder_active_endpoint_id(hdmi->dev->of_node, encoder);
        if (ret)
                val = hdmi->chip_data->lcdsel_lit;