mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
media: rockchip: aiisp: add ioctl to reduce memory
Change-Id: Ie0bbdf18e6a9e0c2990f505cfdd771fb69497ca3 Signed-off-by: Hu Kejun <william.hu@rock-chips.com>
This commit is contained in:
@@ -655,6 +655,9 @@ static int rkaiisp_init_pool(struct rkaiisp_device *aidev, struct rkaiisp_ispbuf
|
||||
if (aidev->exealgo == AIYNR) {
|
||||
stride = ((ispbuf->iir_width + 3) / 4 * 8 * 11 + 7) >> 3;
|
||||
size = stride * (ispbuf->iir_height + 3) / 4;
|
||||
} else if (aidev->mem_mode == COMBO_MEMODE) {
|
||||
stride = ((ispbuf->iir_width + 7) / 8 * 15 * 11 + 7) >> 3;
|
||||
size = stride * (ispbuf->iir_height + 7) / 8;
|
||||
} else {
|
||||
stride = ((ispbuf->iir_width + 1) / 2 * 15 * 11 + 7) >> 3;
|
||||
size = stride * (ispbuf->iir_height + 1) / 2;
|
||||
@@ -1941,6 +1944,13 @@ static long rkaiisp_ioctl_default(struct file *file, void *fh,
|
||||
case RKAIISP_CMD_GET_YNRBUF_INFO:
|
||||
ret = rkaiisp_get_ynrbuf_info(aidev, arg);
|
||||
break;
|
||||
case RKAIISP_CMD_SET_MEMORY_MODE: {
|
||||
enum rkaiisp_mem_mode *mem_mode = (enum rkaiisp_mem_mode *)arg;
|
||||
|
||||
aidev->mem_mode = *mem_mode;
|
||||
ret = 0;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
}
|
||||
|
||||
@@ -147,6 +147,7 @@ struct rkaiisp_device {
|
||||
enum rkaiisp_exemode exemode;
|
||||
enum rkaiisp_model_mode model_mode;
|
||||
enum rkaiisp_hwstate hwstate;
|
||||
enum rkaiisp_mem_mode mem_mode;
|
||||
u32 para_size;
|
||||
u32 max_runcnt;
|
||||
u32 model_runcnt;
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
#define RKAIISP_CMD_GET_YNRBUF_INFO \
|
||||
_IOR('V', BASE_VIDIOC_PRIVATE + 5, struct rkaiisp_ynrbuf_info)
|
||||
|
||||
#define RKAIISP_CMD_SET_MEMORY_MODE \
|
||||
_IOW('V', BASE_VIDIOC_PRIVATE + 6, enum rkaiisp_mem_mode)
|
||||
|
||||
/**********************EVENT_PRIVATE***************************/
|
||||
#define RKAIISP_V4L2_EVENT_AIISP_DONE (V4L2_EVENT_PRIVATE_START + 1)
|
||||
|
||||
@@ -80,6 +83,11 @@ enum rkaiisp_exemode {
|
||||
BOTHEVENT_IN_KERNEL
|
||||
};
|
||||
|
||||
enum rkaiisp_mem_mode {
|
||||
SINGLE_MEMODE,
|
||||
COMBO_MEMODE,
|
||||
};
|
||||
|
||||
struct rkaiisp_airms_st {
|
||||
int sequence;
|
||||
int inbuf_idx;
|
||||
|
||||
Reference in New Issue
Block a user