media: i2c: cam-tb-setup: add more cmdline parameters for dual camera

Signed-off-by: ChuanHu Sun <aaron.sun@rock-chips.com>
Change-Id: Ic6026d0587e684a089f47dfef5b13c073954f399
This commit is contained in:
ChuanHu Sun
2024-09-05 16:16:56 +08:00
committed by 陈泽发
parent bda73bff2d
commit e4e51d9b4a
3 changed files with 48 additions and 136 deletions

View File

@@ -6,116 +6,36 @@
#include <linux/kernel.h>
#include "cam-tb-setup.h"
static u32 rk_cam_w;
static u32 rk_cam_h;
static u32 rk_cam_hdr;
static u32 rk_cam_fps;
static u32 rk_cam_skip_frame_interval;
static int __init rk_cam_w_setup(char *str)
{
int ret = 0;
unsigned long val = 0;
#define DEFINE_CAM_TB_PARAM(para) \
static u32 para; \
static int __init para##_setup(char *str) \
{ \
int ret = 0; \
unsigned long val = 0; \
ret = kstrtoul(str, 0, &val); \
if (!ret) \
para = (u32)val; \
else \
pr_err("get "#para" fail\n"); \
return 0; \
} \
u32 get_##para(void) \
{ \
return para; \
} \
EXPORT_SYMBOL(get_##para); \
__setup(#para"=", para##_setup)
ret = kstrtoul(str, 0, &val);
if (!ret)
rk_cam_w = (u32)val;
else
pr_err("get rk_cam_w fail\n");
DEFINE_CAM_TB_PARAM(rk_cam_w);
DEFINE_CAM_TB_PARAM(rk_cam_h);
DEFINE_CAM_TB_PARAM(rk_cam_hdr);
DEFINE_CAM_TB_PARAM(rk_cam_fps);
DEFINE_CAM_TB_PARAM(rk_cam1_max_fps);
DEFINE_CAM_TB_PARAM(rk_cam2_w);
DEFINE_CAM_TB_PARAM(rk_cam2_h);
DEFINE_CAM_TB_PARAM(rk_cam2_hdr);
DEFINE_CAM_TB_PARAM(rk_cam2_fps);
DEFINE_CAM_TB_PARAM(rk_cam2_max_fps);
DEFINE_CAM_TB_PARAM(rk_cam_skip);
return 0;
}
u32 get_rk_cam_w(void)
{
return rk_cam_w;
}
EXPORT_SYMBOL(get_rk_cam_w);
static int __init rk_cam_h_setup(char *str)
{
int ret = 0;
unsigned long val = 0;
ret = kstrtoul(str, 0, &val);
if (!ret)
rk_cam_h = (u32)val;
else
pr_err("get rk_cam_h fail\n");
return 0;
}
u32 get_rk_cam_h(void)
{
return rk_cam_h;
}
EXPORT_SYMBOL(get_rk_cam_h);
static int __init rk_cam_hdr_setup(char *str)
{
int ret = 0;
unsigned long val = 0;
ret = kstrtoul(str, 0, &val);
if (!ret)
rk_cam_hdr = (u32)val;
else
pr_err("get rk_cam_hdr fail\n");
return 0;
}
u32 get_rk_cam_hdr(void)
{
return rk_cam_hdr;
}
EXPORT_SYMBOL(get_rk_cam_hdr);
static int __init __maybe_unused rk_cam_fps_setup(char *str)
{
int ret = 0;
unsigned long val = 0;
ret = kstrtoul(str, 0, &val);
if (!ret)
rk_cam_fps = (u32)val;
else
pr_err("get rk_cam_fps fail\n");
return 0;
}
u32 get_rk_cam_fps(void)
{
return rk_cam_fps;
}
EXPORT_SYMBOL(get_rk_cam_fps);
static int __init __maybe_unused rk_cam_skip_frame_interval_setup(char *str)
{
int ret = 0;
unsigned long val = 0;
ret = kstrtoul(str, 0, &val);
if (!ret) {
rk_cam_skip_frame_interval = (u32)val;
} else {
rk_cam_skip_frame_interval = 0;
pr_err("get rk_cam_skip_frame_interval fail\n");
}
return 0;
}
u32 get_rk_cam_skip_frame_interval(void)
{
return rk_cam_skip_frame_interval;
}
EXPORT_SYMBOL(get_rk_cam_skip_frame_interval);
__setup("rk_cam_w=", rk_cam_w_setup);
__setup("rk_cam_h=", rk_cam_h_setup);
__setup("rk_cam_hdr=", rk_cam_hdr_setup);
__setup("rk_cam_fps=", rk_cam_fps_setup);
__setup("rk_cam_skip=", rk_cam_skip_frame_interval_setup);

View File

@@ -3,36 +3,28 @@
#ifndef CAM_TB_SETUP_H
#define CAM_TB_SETUP_H
#include <linux/types.h>
#ifdef CONFIG_VIDEO_ROCKCHIP_THUNDER_BOOT_SETUP
u32 get_rk_cam_w(void);
u32 get_rk_cam_h(void);
u32 get_rk_cam_hdr(void);
u32 get_rk_cam_fps(void);
u32 get_rk_cam_skip_frame_interval(void);
#define EXTERN_CAM_TB_PARAM(para) u32 get_##para(void)
#else
static inline u32 get_rk_cam_w(void)
{
return 0;
}
static inline u32 get_rk_cam_h(void)
{
return 0;
}
static inline u32 get_rk_cam_hdr(void)
{
return 0;
}
static inline u32 get_rk_cam_fps(void)
{
return 0;
}
static inline u32 get_rk_cam_skip_frame_interval(void)
{
return 0;
#define EXTERN_CAM_TB_PARAM(para) \
static inline u32 get_##para(void) \
{ \
return 0; \
}
#endif
EXTERN_CAM_TB_PARAM(rk_cam_w);
EXTERN_CAM_TB_PARAM(rk_cam_h);
EXTERN_CAM_TB_PARAM(rk_cam_hdr);
EXTERN_CAM_TB_PARAM(rk_cam_fps);
EXTERN_CAM_TB_PARAM(rk_cam1_max_fps);
EXTERN_CAM_TB_PARAM(rk_cam2_w);
EXTERN_CAM_TB_PARAM(rk_cam2_h);
EXTERN_CAM_TB_PARAM(rk_cam2_hdr);
EXTERN_CAM_TB_PARAM(rk_cam2_fps);
EXTERN_CAM_TB_PARAM(rk_cam2_max_fps);
EXTERN_CAM_TB_PARAM(rk_cam_skip);
#endif

View File

@@ -8288,7 +8288,7 @@ void rkcif_stream_init(struct rkcif_device *dev, u32 id)
init_completion(&stream->stop_complete);
init_completion(&stream->start_complete);
stream->is_wait_stop_complete = false;
stream->thunderboot_skip_interval = get_rk_cam_skip_frame_interval();
stream->thunderboot_skip_interval = get_rk_cam_skip();
atomic_set(&stream->sub_stream_buf_cnt, 0);
spin_lock_init(&stream->fence_lock);
rkcif_fence_context_init(&stream->fence_ctx);