From ee930fffee469d076998274a2ca55e13dc1efb67 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 10 May 2024 08:50:54 +0000 Subject: [PATCH] enable tun/tap/iptables --- u-boot/drivers/video/drm/phy-rockchip-samsung-hdptx-hdmi.c | 81 +++++++++++++++++++++++++++++++++------- 1 files changed, 66 insertions(+), 15 deletions(-) diff --git a/u-boot/drivers/video/drm/phy-rockchip-samsung-hdptx-hdmi.c b/u-boot/drivers/video/drm/phy-rockchip-samsung-hdptx-hdmi.c index 4a00253..f964ddb 100644 --- a/u-boot/drivers/video/drm/phy-rockchip-samsung-hdptx-hdmi.c +++ b/u-boot/drivers/video/drm/phy-rockchip-samsung-hdptx-hdmi.c @@ -1278,9 +1278,9 @@ hdptx_write(hdptx, CMN_REG0043, 0x00); hdptx_write(hdptx, CMN_REG0044, 0x46); hdptx_write(hdptx, CMN_REG0045, 0x24); - hdptx_write(hdptx, CMN_REG0046, 0xff); + hdptx_write(hdptx, CMN_REG0046, 0xdd); hdptx_write(hdptx, CMN_REG0047, 0x00); - hdptx_write(hdptx, CMN_REG0048, 0x44); + hdptx_write(hdptx, CMN_REG0048, 0x11); hdptx_write(hdptx, CMN_REG0049, 0xfa); hdptx_write(hdptx, CMN_REG004A, 0x08); hdptx_write(hdptx, CMN_REG004B, 0x00); @@ -1457,6 +1457,13 @@ hdptx_write(hdptx, LANE_REG0616, 0x02); hdptx_write(hdptx, LANE_REG061B, 0x01); hdptx_write(hdptx, LANE_REG061E, 0x08); + + /* fix Inter-Pair Skew exceed the limits */ + hdptx_write(hdptx, LANE_REG031E, 0x02); + hdptx_write(hdptx, LANE_REG041E, 0x02); + hdptx_write(hdptx, LANE_REG051E, 0x02); + hdptx_write(hdptx, LANE_REG061E, 0x0a); + hdptx_write(hdptx, LANE_REG061F, 0x15); hdptx_write(hdptx, LANE_REG0620, 0xa0); @@ -1705,6 +1712,33 @@ hdptx_write(hdptx, LANE_REG061F, 0x15); hdptx_write(hdptx, LANE_REG0620, 0xa0); + hdptx_write(hdptx, LANE_REG031E, 0x02); + hdptx_write(hdptx, LANE_REG041E, 0x02); + hdptx_write(hdptx, LANE_REG051E, 0x02); + hdptx_write(hdptx, LANE_REG061E, 0x02); + + hdptx_write(hdptx, LANE_REG0303, 0x2f); + hdptx_write(hdptx, LANE_REG0403, 0x2f); + hdptx_write(hdptx, LANE_REG0503, 0x2f); + hdptx_write(hdptx, LANE_REG0603, 0x2f); + hdptx_write(hdptx, LANE_REG0305, 0x03); + hdptx_write(hdptx, LANE_REG0405, 0x03); + hdptx_write(hdptx, LANE_REG0505, 0x03); + hdptx_write(hdptx, LANE_REG0605, 0x03); + hdptx_write(hdptx, LANE_REG0306, 0xfc); + hdptx_write(hdptx, LANE_REG0406, 0xfc); + hdptx_write(hdptx, LANE_REG0506, 0xfc); + hdptx_write(hdptx, LANE_REG0606, 0xfc); + + hdptx_write(hdptx, LANE_REG0305, 0x4f); + hdptx_write(hdptx, LANE_REG0405, 0x4f); + hdptx_write(hdptx, LANE_REG0505, 0x4f); + hdptx_write(hdptx, LANE_REG0605, 0x4f); + hdptx_write(hdptx, LANE_REG0304, 0x14); + hdptx_write(hdptx, LANE_REG0404, 0x14); + hdptx_write(hdptx, LANE_REG0504, 0x14); + hdptx_write(hdptx, LANE_REG0604, 0x14); + return hdptx_post_enable_lane(hdptx); } @@ -1774,6 +1808,33 @@ hdptx_write(hdptx, LANE_REG061B, 0x01); hdptx_write(hdptx, LANE_REG061F, 0x15); hdptx_write(hdptx, LANE_REG0620, 0xa0); + + hdptx_write(hdptx, LANE_REG031E, 0x02); + hdptx_write(hdptx, LANE_REG041E, 0x02); + hdptx_write(hdptx, LANE_REG051E, 0x02); + hdptx_write(hdptx, LANE_REG061E, 0x02); + + hdptx_write(hdptx, LANE_REG0303, 0x2f); + hdptx_write(hdptx, LANE_REG0403, 0x2f); + hdptx_write(hdptx, LANE_REG0503, 0x2f); + hdptx_write(hdptx, LANE_REG0603, 0x2f); + hdptx_write(hdptx, LANE_REG0305, 0x03); + hdptx_write(hdptx, LANE_REG0405, 0x03); + hdptx_write(hdptx, LANE_REG0505, 0x03); + hdptx_write(hdptx, LANE_REG0605, 0x03); + hdptx_write(hdptx, LANE_REG0306, 0xfc); + hdptx_write(hdptx, LANE_REG0406, 0xfc); + hdptx_write(hdptx, LANE_REG0506, 0xfc); + hdptx_write(hdptx, LANE_REG0606, 0xfc); + + hdptx_write(hdptx, LANE_REG0305, 0x4f); + hdptx_write(hdptx, LANE_REG0405, 0x4f); + hdptx_write(hdptx, LANE_REG0505, 0x4f); + hdptx_write(hdptx, LANE_REG0605, 0x4f); + hdptx_write(hdptx, LANE_REG0304, 0x14); + hdptx_write(hdptx, LANE_REG0404, 0x14); + hdptx_write(hdptx, LANE_REG0504, 0x14); + hdptx_write(hdptx, LANE_REG0604, 0x14); return hdptx_post_enable_lane(hdptx); } @@ -1951,12 +2012,14 @@ subnode = ofnode_find_subnode(parent->node, "clk-port"); if (!ofnode_valid(subnode)) { - printf("%s: no subnode for %s", __func__, parent->name); + free(str); + printf("%s: no subnode for %s\n", __func__, parent->name); return -ENXIO; } ret = device_bind_driver_to_node(parent, "clk_hdptx", str, subnode, &child); if (ret) { + free(str); printf("%s: clk-port cannot bind its driver\n", __func__); return ret; } @@ -2019,18 +2082,6 @@ new_rate = rate; priv->rate = rate; } - } - } else { - if (!hdptx_ropll_cmn_config(hdptx, rate)) { - new_rate = rate; - priv->rate = rate; - } - } - - if (rate > (HDMI20_MAX_RATE / 100)) { - if (!hdptx_lcpll_cmn_config(hdptx, rate)) { - new_rate = rate; - priv->rate = rate; } } else { if (!hdptx_ropll_cmn_config(hdptx, rate)) { -- Gitblit v1.6.2