mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
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:
@@ -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 {
|
||||
|
||||
@@ -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),
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user