From 99de7079fe460dc12d751f58a6d410f0211d2f8c Mon Sep 17 00:00:00 2001 From: Li Huang Date: Thu, 17 Oct 2024 16:12:28 +0800 Subject: [PATCH 1/3] MALI: rockchip: Fix build warning after disable CONFIG_PM Change-Id: I23002ed6814f4dcdd3f071411907df9328f886b5 Signed-off-by: Li Huang --- .../platform/rk/mali_kbase_config_rk.c | 23 +++++++------------ drivers/gpu/arm/mali400/mali/platform/rk/rk.c | 2 +- .../platform/rk/mali_kbase_config_rk.c | 19 +++++---------- 3 files changed, 15 insertions(+), 29 deletions(-) diff --git a/drivers/gpu/arm/bifrost/platform/rk/mali_kbase_config_rk.c b/drivers/gpu/arm/bifrost/platform/rk/mali_kbase_config_rk.c index 07b300651b02..cb3f6979bb5d 100755 --- a/drivers/gpu/arm/bifrost/platform/rk/mali_kbase_config_rk.c +++ b/drivers/gpu/arm/bifrost/platform/rk/mali_kbase_config_rk.c @@ -201,7 +201,7 @@ struct kbase_platform_funcs_conf platform_funcs = { /*---------------------------------------------------------------------------*/ -static int rk_pm_callback_runtime_on(struct kbase_device *kbdev) +static __maybe_unused int rk_pm_callback_runtime_on(struct kbase_device *kbdev) { struct rockchip_opp_info *opp_info = &kbdev->opp_info; int ret = 0; @@ -226,7 +226,7 @@ static int rk_pm_callback_runtime_on(struct kbase_device *kbdev) return 0; } -static void rk_pm_callback_runtime_off(struct kbase_device *kbdev) +static __maybe_unused void rk_pm_callback_runtime_off(struct kbase_device *kbdev) { struct rockchip_opp_info *opp_info = &kbdev->opp_info; @@ -310,29 +310,22 @@ static void rk_pm_callback_power_off(struct kbase_device *kbdev) msecs_to_jiffies(platform->delay_ms)); } -static int rk_kbase_device_runtime_init(struct kbase_device *kbdev) +static __maybe_unused int rk_kbase_device_runtime_init(struct kbase_device *kbdev) { return 0; } -static void rk_kbase_device_runtime_disable(struct kbase_device *kbdev) +static __maybe_unused void rk_kbase_device_runtime_disable(struct kbase_device *kbdev) { } struct kbase_pm_callback_conf pm_callbacks = { .power_on_callback = rk_pm_callback_power_on, .power_off_callback = rk_pm_callback_power_off, -#ifdef CONFIG_PM - .power_runtime_init_callback = rk_kbase_device_runtime_init, - .power_runtime_term_callback = rk_kbase_device_runtime_disable, - .power_runtime_on_callback = rk_pm_callback_runtime_on, - .power_runtime_off_callback = rk_pm_callback_runtime_off, -#else /* CONFIG_PM */ - .power_runtime_init_callback = NULL, - .power_runtime_term_callback = NULL, - .power_runtime_on_callback = NULL, - .power_runtime_off_callback = NULL, -#endif /* CONFIG_PM */ + .power_runtime_init_callback = pm_ptr(rk_kbase_device_runtime_init), + .power_runtime_term_callback = pm_ptr(rk_kbase_device_runtime_disable), + .power_runtime_on_callback = pm_ptr(rk_pm_callback_runtime_on), + .power_runtime_off_callback = pm_ptr(rk_pm_callback_runtime_off), }; /*---------------------------------------------------------------------------*/ diff --git a/drivers/gpu/arm/mali400/mali/platform/rk/rk.c b/drivers/gpu/arm/mali400/mali/platform/rk/rk.c index 9027d6817501..edbdf8b5f0f7 100644 --- a/drivers/gpu/arm/mali400/mali/platform/rk/rk.c +++ b/drivers/gpu/arm/mali400/mali/platform/rk/rk.c @@ -404,7 +404,6 @@ static int power_model_simple_init(struct platform_device *pdev) /*---------------------------------------------------------------------------*/ -#ifdef CONFIG_PM static int rk_platform_enable_clk_gpu(struct device *dev) { @@ -516,6 +515,7 @@ void rk_platform_uninit_opp_table(struct mali_device *mdev) rockchip_uninit_opp_table(mdev->dev, &mdev->opp_info); } +#ifdef CONFIG_PM static int mali_runtime_suspend(struct device *device) { int ret = 0; diff --git a/drivers/gpu/arm/midgard/platform/rk/mali_kbase_config_rk.c b/drivers/gpu/arm/midgard/platform/rk/mali_kbase_config_rk.c index b5aedce68cb4..dcdf87345c00 100644 --- a/drivers/gpu/arm/midgard/platform/rk/mali_kbase_config_rk.c +++ b/drivers/gpu/arm/midgard/platform/rk/mali_kbase_config_rk.c @@ -169,12 +169,12 @@ struct kbase_platform_funcs_conf platform_funcs = { /*---------------------------------------------------------------------------*/ -static int rk_pm_callback_runtime_on(struct kbase_device *kbdev) +static __maybe_unused int rk_pm_callback_runtime_on(struct kbase_device *kbdev) { return 0; } -static void rk_pm_callback_runtime_off(struct kbase_device *kbdev) +static __maybe_unused void rk_pm_callback_runtime_off(struct kbase_device *kbdev) { } @@ -248,17 +248,10 @@ void rk_kbase_device_runtime_disable(struct kbase_device *kbdev) struct kbase_pm_callback_conf pm_callbacks = { .power_on_callback = rk_pm_callback_power_on, .power_off_callback = rk_pm_callback_power_off, -#ifdef CONFIG_PM - .power_runtime_init_callback = rk_kbase_device_runtime_init, - .power_runtime_term_callback = rk_kbase_device_runtime_disable, - .power_runtime_on_callback = rk_pm_callback_runtime_on, - .power_runtime_off_callback = rk_pm_callback_runtime_off, -#else /* CONFIG_PM */ - .power_runtime_init_callback = NULL, - .power_runtime_term_callback = NULL, - .power_runtime_on_callback = NULL, - .power_runtime_off_callback = NULL, -#endif /* CONFIG_PM */ + .power_runtime_init_callback = pm_ptr(rk_kbase_device_runtime_init), + .power_runtime_term_callback = pm_ptr(rk_kbase_device_runtime_disable), + .power_runtime_on_callback = pm_ptr(rk_pm_callback_runtime_on), + .power_runtime_off_callback = pm_ptr(rk_pm_callback_runtime_off), }; int kbase_platform_early_init(void) From 15a69b362c5ae4ac8af2eb10feb735d6bdb6f22e Mon Sep 17 00:00:00 2001 From: Huibin Hong Date: Wed, 23 Oct 2024 14:22:27 +0800 Subject: [PATCH 2/3] ARM: dts: rockchip: rk3502: support uart frac 96M and 128M Change-Id: Ifb9c17ee28f4e822836f7aeaa354e3cbd3454e85 Signed-off-by: Huibin Hong --- arch/arm/boot/dts/rk3502.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/rk3502.dtsi b/arch/arm/boot/dts/rk3502.dtsi index d1eeaf85a57e..1667a348abf0 100644 --- a/arch/arm/boot/dts/rk3502.dtsi +++ b/arch/arm/boot/dts/rk3502.dtsi @@ -1324,6 +1324,13 @@ rockchip,grf = <&grf>; #clock-cells = <1>; #reset-cells = <1>; + + assigned-clocks = + <&cru CLK_FRAC_UART_MATRIX0>, + <&cru CLK_FRAC_UART_MATRIX1>; + assigned-clock-rates = + <96000000>, + <128000000>; }; pinctrl: pinctrl { From 15a640d32eccc0ed53036217c0f6435e526c8c3e Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Fri, 20 Sep 2024 09:17:11 +0800 Subject: [PATCH 3/3] media: i2c: imx415 fixes error logic of rhs1_old/rhs2_old Signed-off-by: Zefa Chen Change-Id: If9f8f245f13f40824a56d95cf315dd88adcf39b8 --- drivers/media/i2c/imx415.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/drivers/media/i2c/imx415.c b/drivers/media/i2c/imx415.c index 67a875593c4e..d2636434b8ab 100644 --- a/drivers/media/i2c/imx415.c +++ b/drivers/media/i2c/imx415.c @@ -245,6 +245,8 @@ struct imx415 { struct preisp_hdrae_exp_s init_hdrae_exp; struct v4l2_fwnode_endpoint bus_cfg; struct cam_sw_info *cam_sw_inf; + int rhs1_old; + int rhs2_old; }; static struct rkmodule_csi_dphy_param dcphy_param = { @@ -1632,8 +1634,6 @@ static int imx415_set_hdrae_3frame(struct imx415 *imx415, u32 l_a_gain, m_a_gain, s_a_gain; int shr2, shr1, shr0, rhs2, rhs1 = 0; int rhs1_change_limit, rhs2_change_limit = 0; - static int rhs1_old = IMX415_RHS1_DEFAULT; - static int rhs2_old = IMX415_RHS2_DEFAULT; int ret = 0; u32 fsc; int rhs1_max = 0; @@ -1723,13 +1723,13 @@ static int imx415_set_hdrae_3frame(struct imx415 *imx415, rhs1 = rhs1_max; dev_dbg(&client->dev, "line(%d) rhs1 %d, m_exp_time %d rhs1_old %d\n", - __LINE__, rhs1, m_exp_time, rhs1_old); + __LINE__, rhs1, m_exp_time, imx415->rhs1_old); //Dynamic adjustment rhs2 must meet the following conditions if (imx415->cur_mode->height == 2192) - rhs1_change_limit = rhs1_old + 3 * BRL_ALL - fsc + 3; + rhs1_change_limit = imx415->rhs1_old + 3 * BRL_ALL - fsc + 3; else - rhs1_change_limit = rhs1_old + 3 * BRL_BINNING - fsc + 3; + rhs1_change_limit = imx415->rhs1_old + 3 * BRL_BINNING - fsc + 3; rhs1_change_limit = (rhs1_change_limit < 25) ? 25 : rhs1_change_limit; rhs1_change_limit = (rhs1_change_limit + 5) / 6 * 6 + 1; if (rhs1_max < rhs1_change_limit) { @@ -1743,9 +1743,9 @@ static int imx415_set_hdrae_3frame(struct imx415 *imx415, dev_dbg(&client->dev, "line(%d) m_exp_time %d rhs1_old %d, rhs1_new %d\n", - __LINE__, m_exp_time, rhs1_old, rhs1); + __LINE__, m_exp_time, imx415->rhs1_old, rhs1); - rhs1_old = rhs1; + imx415->rhs1_old = rhs1; /* shr1 = rhs1 - s_exp_time */ if (rhs1 - m_exp_time <= SHR1_MIN_X3) { @@ -1763,13 +1763,13 @@ static int imx415_set_hdrae_3frame(struct imx415 *imx415, rhs2 = 50; dev_dbg(&client->dev, "line(%d) rhs2 %d, s_exp_time %d, rhs2_old %d\n", - __LINE__, rhs2, s_exp_time, rhs2_old); + __LINE__, rhs2, s_exp_time, imx415->rhs2_old); //Dynamic adjustment rhs2 must meet the following conditions if (imx415->cur_mode->height == 2192) - rhs2_change_limit = rhs2_old + 3 * BRL_ALL - fsc + 3; + rhs2_change_limit = imx415->rhs2_old + 3 * BRL_ALL - fsc + 3; else - rhs2_change_limit = rhs2_old + 3 * BRL_BINNING - fsc + 3; + rhs2_change_limit = imx415->rhs2_old + 3 * BRL_BINNING - fsc + 3; rhs2_change_limit = (rhs2_change_limit < 50) ? 50 : rhs2_change_limit; rhs2_change_limit = (rhs2_change_limit + 5) / 6 * 6 + 2; if ((shr0 - 13) < rhs2_change_limit) { @@ -1781,7 +1781,7 @@ static int imx415_set_hdrae_3frame(struct imx415 *imx415, if (rhs2 < rhs2_change_limit) rhs2 = rhs2_change_limit; - rhs2_old = rhs2; + imx415->rhs2_old = rhs2; /* shr2 = rhs2 - s_exp_time */ if (rhs2 - s_exp_time <= shr2_min) { @@ -1887,7 +1887,6 @@ static int imx415_set_hdrae(struct imx415 *imx415, u32 l_exp_time, m_exp_time, s_exp_time; u32 l_a_gain, m_a_gain, s_a_gain; int shr1, shr0, rhs1, rhs1_max, rhs1_min; - static int rhs1_old = IMX415_RHS1_DEFAULT; int ret = 0; u32 fsc; @@ -1953,10 +1952,10 @@ static int imx415_set_hdrae(struct imx415 *imx415, if (imx415->cur_mode->height == 2192) { rhs1_max = min(RHS1_MAX_X2(BRL_ALL), ((shr0 - 9u) / 4 * 4 + 1)); - rhs1_min = max(SHR1_MIN_X2 + 8u, rhs1_old + 2 * BRL_ALL - fsc + 2); + rhs1_min = max(SHR1_MIN_X2 + 8u, imx415->rhs1_old + 2 * BRL_ALL - fsc + 2); } else { rhs1_max = min(RHS1_MAX_X2(BRL_BINNING), ((shr0 - 9u) / 4 * 4 + 1)); - rhs1_min = max(SHR1_MIN_X2 + 8u, rhs1_old + 2 * BRL_BINNING - fsc + 2); + rhs1_min = max(SHR1_MIN_X2 + 8u, imx415->rhs1_old + 2 * BRL_BINNING - fsc + 2); } rhs1_min = (rhs1_min + 3) / 4 * 4 + 1; rhs1 = (SHR1_MIN_X2 + s_exp_time + 3) / 4 * 4 + 1;/* shall be 4n + 1 */ @@ -1972,9 +1971,9 @@ static int imx415_set_hdrae(struct imx415 *imx415, rhs1 = clamp(rhs1, rhs1_min, rhs1_max); dev_dbg(&client->dev, "line(%d) rhs1 %d, short time %d rhs1_old %d, rhs1_new %d\n", - __LINE__, rhs1, s_exp_time, rhs1_old, rhs1); + __LINE__, rhs1, s_exp_time, imx415->rhs1_old, rhs1); - rhs1_old = rhs1; + imx415->rhs1_old = rhs1; /* shr1 = rhs1 - s_exp_time */ if (rhs1 - s_exp_time <= SHR1_MIN_X2) { @@ -2322,6 +2321,8 @@ static int __imx415_start_stream(struct imx415 *imx415) if (ret) return ret; if (imx415->has_init_exp && imx415->cur_mode->hdr_mode != NO_HDR) { + imx415->rhs1_old = IMX415_RHS1_DEFAULT; + imx415->rhs2_old = IMX415_RHS2_DEFAULT; ret = imx415_ioctl(&imx415->subdev, PREISP_CMD_SET_HDRAE_EXP, &imx415->init_hdrae_exp); if (ret) {