diff --git a/patch/kernel/archive/rk322x-6.4/01-linux-0002-rockchip-from-list.patch b/patch/kernel/archive/rk322x-6.4/01-linux-0002-rockchip-from-list.patch index 21da17d29..781097da6 100644 --- a/patch/kernel/archive/rk322x-6.4/01-linux-0002-rockchip-from-list.patch +++ b/patch/kernel/archive/rk322x-6.4/01-linux-0002-rockchip-from-list.patch @@ -1,57 +1,3 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Sat, 10 Oct 2020 15:32:18 +0000 -Subject: [PATCH] phy/rockchip: inno-hdmi: use correct vco_div_5 macro on - rk3328 - -inno_hdmi_phy_rk3328_clk_set_rate() is using the RK3228 macro -when configuring vco_div_5 on RK3328. - -Fix this by using correct vco_div_5 macro for RK3328. - -Fixes: 53706a116863 ("phy: add Rockchip Innosilicon hdmi phy") -Signed-off-by: Jonas Karlman ---- - drivers/phy/rockchip/phy-rockchip-inno-hdmi.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -index 80acca4e9e14..15339338aae3 100644 ---- a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -+++ b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -@@ -790,8 +790,8 @@ static int inno_hdmi_phy_rk3328_clk_set_rate(struct clk_hw *hw, - RK3328_PRE_PLL_POWER_DOWN); - - /* Configure pre-pll */ -- inno_update_bits(inno, 0xa0, RK3228_PCLK_VCO_DIV_5_MASK, -- RK3228_PCLK_VCO_DIV_5(cfg->vco_div_5_en)); -+ inno_update_bits(inno, 0xa0, RK3328_PCLK_VCO_DIV_5_MASK, -+ RK3328_PCLK_VCO_DIV_5(cfg->vco_div_5_en)); - inno_write(inno, 0xa1, RK3328_PRE_PLL_PRE_DIV(cfg->prediv)); - - val = RK3328_SPREAD_SPECTRUM_MOD_DISABLE; - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Zheng Yang -Date: Sat, 10 Oct 2020 15:32:18 +0000 -Subject: [PATCH] phy/rockchip: inno-hdmi: round fractal pixclock in rk3328 - recalc_rate - -inno_hdmi_phy_rk3328_clk_recalc_rate() is returning a rate not found -in the pre pll config table when the fractal divider is used. -This can prevent proper power_on because a tmdsclock for the new rate -is not found in the pre pll config table. - -Fix this by saving and returning a rounded pixel rate that exist -in the pre pll config table. - -Fixes: 53706a116863 ("phy: add Rockchip Innosilicon hdmi phy") -Signed-off-by: Zheng Yang -Signed-off-by: Jonas Karlman ---- - drivers/phy/rockchip/phy-rockchip-inno-hdmi.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - diff --git a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c index 15339338aae3..15a008a1ac7b 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c @@ -110,53 +56,6 @@ index 15a008a1ac7b..4b936ca19920 100644 do_div(vco, (nd * (no_a == 1 ? no_b : no_a) * no_d * 2)); -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Sat, 10 Oct 2020 15:32:19 +0000 -Subject: [PATCH] phy/rockchip: inno-hdmi: do not power on rk3328 post pll on - reg write - -inno_write is used to configure 0xaa reg, that also hold the -POST_PLL_POWER_DOWN bit. -When POST_PLL_REFCLK_SEL_TMDS is configured the power down bit is not -taken into consideration. - -Fix this by keeping the power down bit until configuration is complete. -Also reorder the reg write order for consistency. - -Fixes: 53706a116863 ("phy: add Rockchip Innosilicon hdmi phy") -Signed-off-by: Jonas Karlman ---- - drivers/phy/rockchip/phy-rockchip-inno-hdmi.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -index 4b936ca19920..620961fcfc1d 100644 ---- a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -+++ b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -@@ -1020,9 +1020,10 @@ inno_hdmi_phy_rk3328_power_on(struct inno_hdmi_phy *inno, - - inno_write(inno, 0xac, RK3328_POST_PLL_FB_DIV_7_0(cfg->fbdiv)); - if (cfg->postdiv == 1) { -- inno_write(inno, 0xaa, RK3328_POST_PLL_REFCLK_SEL_TMDS); - inno_write(inno, 0xab, RK3328_POST_PLL_FB_DIV_8(cfg->fbdiv) | - RK3328_POST_PLL_PRE_DIV(cfg->prediv)); -+ inno_write(inno, 0xaa, RK3328_POST_PLL_REFCLK_SEL_TMDS | -+ RK3328_POST_PLL_POWER_DOWN); - } else { - v = (cfg->postdiv / 2) - 1; - v &= RK3328_POST_PLL_POST_DIV_MASK; -@@ -1030,7 +1031,8 @@ inno_hdmi_phy_rk3328_power_on(struct inno_hdmi_phy *inno, - inno_write(inno, 0xab, RK3328_POST_PLL_FB_DIV_8(cfg->fbdiv) | - RK3328_POST_PLL_PRE_DIV(cfg->prediv)); - inno_write(inno, 0xaa, RK3328_POST_PLL_POST_DIV_ENABLE | -- RK3328_POST_PLL_REFCLK_SEL_TMDS); -+ RK3328_POST_PLL_REFCLK_SEL_TMDS | -+ RK3328_POST_PLL_POWER_DOWN); - } - - for (v = 0; v < 14; v++) - From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Huicong Xu Date: Sat, 10 Oct 2020 15:32:20 +0000 diff --git a/patch/kernel/archive/rockchip64-6.1/rk3399-add-dp-alt-mode.patch b/patch/kernel/archive/rockchip64-6.1/rk3399-add-dp-alt-mode.patch index 99f9e9012..ed23af663 100644 --- a/patch/kernel/archive/rockchip64-6.1/rk3399-add-dp-alt-mode.patch +++ b/patch/kernel/archive/rockchip64-6.1/rk3399-add-dp-alt-mode.patch @@ -145,26 +145,6 @@ index 4075c0d7e6a2..fa8abf67ac4e 100644 ret = sysfs_create_group(&alt->dev.kobj, &dp_altmode_group); if (ret) -diff --git a/drivers/usb/typec/bus.c b/drivers/usb/typec/bus.c -index 31c2a3130cad..09d1bcc0f9f2 100644 ---- a/drivers/usb/typec/bus.c -+++ b/drivers/usb/typec/bus.c -@@ -156,8 +156,14 @@ EXPORT_SYMBOL_GPL(typec_altmode_exit); - */ - void typec_altmode_attention(struct typec_altmode *adev, u32 vdo) - { -- struct typec_altmode *pdev = &to_altmode(adev)->partner->adev; -+ struct typec_altmode *pdev; -+ WARN_ONCE(!adev, "typec bus attention: adev is NULL!"); -+ WARN_ONCE(!to_altmode(adev)->partner, "typec bus attention: partner is NULL!"); -+ if(!adev || !to_altmode(adev)->partner) { -+ return; -+ } - -+ pdev = &to_altmode(adev)->partner->adev; - if (pdev->ops && pdev->ops->attention) - pdev->ops->attention(pdev, vdo); - } diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index 032d21a96779..a27bdd9e721e 100644 --- a/drivers/usb/typec/tcpm/tcpm.c diff --git a/patch/kernel/archive/rockchip64-6.5/board-pbp-add-dp-alt-mode.patch b/patch/kernel/archive/rockchip64-6.5/board-pbp-add-dp-alt-mode.patch index 0821676d7..7724122d3 100644 --- a/patch/kernel/archive/rockchip64-6.5/board-pbp-add-dp-alt-mode.patch +++ b/patch/kernel/archive/rockchip64-6.5/board-pbp-add-dp-alt-mode.patch @@ -175,26 +175,6 @@ index cdf8261e22db..05172e17b2bf 100644 ret = sysfs_create_group(&alt->dev.kobj, &dp_altmode_group); if (ret) -diff --git a/drivers/usb/typec/bus.c b/drivers/usb/typec/bus.c -index fe5b9a2e61f5..c9fd08fd2be4 100644 ---- a/drivers/usb/typec/bus.c -+++ b/drivers/usb/typec/bus.c -@@ -185,8 +185,14 @@ EXPORT_SYMBOL_GPL(typec_altmode_exit); - */ - void typec_altmode_attention(struct typec_altmode *adev, u32 vdo) - { -- struct typec_altmode *pdev = &to_altmode(adev)->partner->adev; -+ struct typec_altmode *pdev; -+ WARN_ONCE(!adev, "typec bus attention: adev is NULL!"); -+ WARN_ONCE(!to_altmode(adev)->partner, "typec bus attention: partner is NULL!"); -+ if(!adev || !to_altmode(adev)->partner) { -+ return; -+ } - -+ pdev = &to_altmode(adev)->partner->adev; - if (pdev->ops && pdev->ops->attention) - pdev->ops->attention(pdev, vdo); - } diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index cc1d83926497..ca3908c37b1b 100644 --- a/drivers/usb/typec/tcpm/tcpm.c