mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
media: rockchip: isp: add api get isp work mode for rockit
Change-Id: I279283df68deb3118f3971138d23c13d952de76d Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
@@ -657,3 +657,37 @@ int rkisp_rockit_get_ispdev(char **name)
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(rkisp_rockit_get_ispdev);
|
||||
|
||||
int rkisp_rockit_get_isp_mode(const char *name)
|
||||
{
|
||||
struct rkisp_device *ispdev = NULL;
|
||||
int i, ret = -EINVAL;
|
||||
|
||||
if (rockit_cfg == NULL)
|
||||
goto end;
|
||||
|
||||
for (i = 0; i < rockit_cfg->isp_num; i++) {
|
||||
if (!strcmp(rockit_cfg->rkisp_dev_cfg[i].isp_name, name)) {
|
||||
ispdev = rockit_cfg->rkisp_dev_cfg[i].isp_dev;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!ispdev)
|
||||
goto end;
|
||||
|
||||
if (ispdev->is_pre_on) {
|
||||
if (IS_HDR_RDBK(ispdev->rd_mode))
|
||||
ret = RKISP_FAST_OFFLINE;
|
||||
else
|
||||
ret = RKISP_FAST_ONLINE;
|
||||
} else {
|
||||
if (IS_HDR_RDBK(ispdev->rd_mode))
|
||||
ret = RKISP_NORMAL_OFFLINE;
|
||||
else
|
||||
ret = RKISP_NORMAL_ONLINE;
|
||||
}
|
||||
|
||||
end:
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(rkisp_rockit_get_isp_mode);
|
||||
|
||||
@@ -14,6 +14,13 @@
|
||||
|
||||
#define ROCKIT_VICAP_NUM_MAX 6
|
||||
|
||||
enum {
|
||||
RKISP_NORMAL_ONLINE,
|
||||
RKISP_NORMAL_OFFLINE,
|
||||
RKISP_FAST_ONLINE,
|
||||
RKISP_FAST_OFFLINE,
|
||||
};
|
||||
|
||||
enum function_cmd {
|
||||
ROCKIT_BUF_QUE,
|
||||
ROCKIT_MPIBUF_DONE
|
||||
@@ -116,6 +123,7 @@ struct rockit_rkcif_cfg {
|
||||
|
||||
void *rkisp_rockit_function_register(void *function, int cmd);
|
||||
int rkisp_rockit_get_ispdev(char **name);
|
||||
int rkisp_rockit_get_isp_mode(const char *name);
|
||||
int rkisp_rockit_buf_queue(struct rockit_cfg *input_rockit_cfg);
|
||||
int rkisp_rockit_pause_stream(struct rockit_cfg *input_rockit_cfg);
|
||||
int rkisp_rockit_resume_stream(struct rockit_cfg *input_rockit_cfg);
|
||||
@@ -137,6 +145,7 @@ int rkcif_rockit_pause_stream(struct rockit_rkcif_cfg *input_rockit_cfg);
|
||||
|
||||
static inline void *rkisp_rockit_function_register(void *function, int cmd) { return NULL; }
|
||||
static inline int rkisp_rockit_get_ispdev(char **name) { return -EINVAL; }
|
||||
static inline int rkisp_rockit_get_isp_mode(const char *name) { return -EINVAL; }
|
||||
static inline int rkisp_rockit_buf_queue(struct rockit_cfg *input_rockit_cfg)
|
||||
{
|
||||
return -EINVAL;
|
||||
|
||||
Reference in New Issue
Block a user