Merge commit '15a640d32eccc0ed53036217c0f6435e526c8c3e'

* commit '15a640d32eccc0ed53036217c0f6435e526c8c3e':
  media: i2c: imx415 fixes error logic of rhs1_old/rhs2_old
  ARM: dts: rockchip: rk3502: support uart frac 96M and 128M
  MALI: rockchip: Fix build warning after disable CONFIG_PM

Change-Id: I0cac4364e0ebe58fc6d1a48c8fdc979a96609270
This commit is contained in:
Tao Huang
2024-10-24 19:34:19 +08:00
5 changed files with 39 additions and 45 deletions

View File

@@ -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 {

View File

@@ -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),
};
/*---------------------------------------------------------------------------*/

View File

@@ -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;

View File

@@ -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)

View File

@@ -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) {