mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
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:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user