Skip to content

Commit

Permalink
media: rockchip: isp1: fix isp don't work if default sensor fmt great…
Browse files Browse the repository at this point in the history
…er than isp max size

Change-Id: I3c757c71ea2ea05b3b0330aa7f8e6eea8295be3a
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
  • Loading branch information
Cai YiWei authored and rkhuangtao committed Dec 27, 2018
1 parent 3826d6b commit 40ce742
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 14 deletions.
23 changes: 23 additions & 0 deletions drivers/media/platform/rockchip/isp1/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,29 @@ static int _set_pipeline_default_fmt(struct rkisp1_device *dev)
return -ENXIO;
}

if (dev->isp_ver == ISP_V12) {
fmt.format.width = clamp_t(u32, fmt.format.width,
CIF_ISP_INPUT_W_MIN,
CIF_ISP_INPUT_W_MAX_V12);
fmt.format.height = clamp_t(u32, fmt.format.height,
CIF_ISP_INPUT_H_MIN,
CIF_ISP_INPUT_H_MAX_V12);
} else if (dev->isp_ver == ISP_V13) {
fmt.format.width = clamp_t(u32, fmt.format.width,
CIF_ISP_INPUT_W_MIN,
CIF_ISP_INPUT_W_MAX_V13);
fmt.format.height = clamp_t(u32, fmt.format.height,
CIF_ISP_INPUT_H_MIN,
CIF_ISP_INPUT_H_MAX_V13);
} else {
fmt.format.width = clamp_t(u32, fmt.format.width,
CIF_ISP_INPUT_W_MIN,
CIF_ISP_INPUT_W_MAX);
fmt.format.height = clamp_t(u32, fmt.format.height,
CIF_ISP_INPUT_H_MIN,
CIF_ISP_INPUT_H_MAX);
}

sel.r.left = 0;
sel.r.top = 0;
width = fmt.format.width;
Expand Down
14 changes: 0 additions & 14 deletions drivers/media/platform/rockchip/isp1/rkisp1.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,20 +46,6 @@
#include "common.h"
#include "regs.h"

#define CIF_ISP_INPUT_W_MAX 4416
#define CIF_ISP_INPUT_H_MAX 3312
#define CIF_ISP_INPUT_W_MAX_V12 3264
#define CIF_ISP_INPUT_H_MAX_V12 2448
#define CIF_ISP_INPUT_W_MAX_V13 1920
#define CIF_ISP_INPUT_H_MAX_V13 1080
#define CIF_ISP_INPUT_W_MIN 32
#define CIF_ISP_INPUT_H_MIN 16
#define CIF_ISP_OUTPUT_W_MAX CIF_ISP_INPUT_W_MAX
#define CIF_ISP_OUTPUT_H_MAX CIF_ISP_INPUT_H_MAX
#define CIF_ISP_OUTPUT_W_MIN CIF_ISP_INPUT_W_MIN
#define CIF_ISP_OUTPUT_H_MIN CIF_ISP_INPUT_H_MIN
#define CIF_ISP_ADD_DATA_VC_MAX 3

/*
* NOTE: MIPI controller and input MUX are also configured in this file,
* because ISP Subdev is not only describe ISP submodule(input size,format, output size, format),
Expand Down
14 changes: 14 additions & 0 deletions drivers/media/platform/rockchip/isp1/rkisp1.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,20 @@
#include <media/v4l2-fwnode.h>
#include "common.h"

#define CIF_ISP_INPUT_W_MAX 4416
#define CIF_ISP_INPUT_H_MAX 3312
#define CIF_ISP_INPUT_W_MAX_V12 3264
#define CIF_ISP_INPUT_H_MAX_V12 2448
#define CIF_ISP_INPUT_W_MAX_V13 1920
#define CIF_ISP_INPUT_H_MAX_V13 1080
#define CIF_ISP_INPUT_W_MIN 32
#define CIF_ISP_INPUT_H_MIN 16
#define CIF_ISP_OUTPUT_W_MAX CIF_ISP_INPUT_W_MAX
#define CIF_ISP_OUTPUT_H_MAX CIF_ISP_INPUT_H_MAX
#define CIF_ISP_OUTPUT_W_MIN CIF_ISP_INPUT_W_MIN
#define CIF_ISP_OUTPUT_H_MIN CIF_ISP_INPUT_H_MIN
#define CIF_ISP_ADD_DATA_VC_MAX 3

struct rkisp1_stream;

/*
Expand Down

0 comments on commit 40ce742

Please sign in to comment.