mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
CHROMIUM: media: rockchip/isp1: Replace stream state with a boolean
The rkisp1_state enum consists only of 3 entries, where 1 is completely unused and the other two respectively mean not streaming or streaming. Replace it with a boolean called "streaming". While at it, remove "saved_state" member from rkisp1_stream struct, as it is not used anywhere. BUG=b:78779539 TEST=Make sure camera works on scarlet. Change-Id: I329b62951e214a25ac35a5c189814cebba26dbf1 Signed-off-by: Tomasz Figa <tfiga@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1059006 Tested-by: yichong zhong <zyc@rock-chips.com> Reviewed-by: Ricky Liang <jcliang@chromium.org> Reviewed-by: yichong zhong <zyc@rock-chips.com> Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
This commit is contained in:
@@ -878,7 +878,7 @@ static void mp_stop_mi(struct rkisp1_stream *stream)
|
||||
{
|
||||
void __iomem *base = stream->ispdev->base_addr;
|
||||
|
||||
if (stream->state != RKISP1_STATE_STREAMING)
|
||||
if (!stream->streaming)
|
||||
return;
|
||||
stream->ops->clr_frame_end_int(base);
|
||||
stream->ops->disable_mi(stream);
|
||||
@@ -888,7 +888,7 @@ static void sp_stop_mi(struct rkisp1_stream *stream)
|
||||
{
|
||||
void __iomem *base = stream->ispdev->base_addr;
|
||||
|
||||
if (stream->state != RKISP1_STATE_STREAMING)
|
||||
if (!stream->streaming)
|
||||
return;
|
||||
stream->ops->clr_frame_end_int(base);
|
||||
stream->ops->disable_mi(stream);
|
||||
@@ -980,13 +980,13 @@ static void rkisp1_stream_stop(struct rkisp1_stream *stream)
|
||||
|
||||
stream->stopping = true;
|
||||
ret = wait_event_timeout(stream->done,
|
||||
stream->state != RKISP1_STATE_STREAMING,
|
||||
!stream->streaming,
|
||||
msecs_to_jiffies(1000));
|
||||
if (!ret) {
|
||||
v4l2_warn(v4l2_dev, "waiting on event return error %d\n", ret);
|
||||
stream->ops->stop_mi(stream);
|
||||
stream->stopping = false;
|
||||
stream->state = RKISP1_STATE_READY;
|
||||
stream->streaming = false;
|
||||
}
|
||||
disable_dcrop(stream, true);
|
||||
disable_rsz(stream, true);
|
||||
@@ -1022,11 +1022,11 @@ static int rkisp1_start(struct rkisp1_stream *stream)
|
||||
* also required because the sencond FE maybe corrupt especially
|
||||
* when run at 120fps.
|
||||
*/
|
||||
if (other->state != RKISP1_STATE_STREAMING) {
|
||||
if (!other->streaming) {
|
||||
force_cfg_update(base);
|
||||
mi_frame_end(stream);
|
||||
}
|
||||
stream->state = RKISP1_STATE_STREAMING;
|
||||
stream->streaming = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1100,7 +1100,7 @@ static void rkisp1_buf_queue(struct vb2_buffer *vb)
|
||||
spin_lock_irqsave(&stream->vbq_lock, lock_flags);
|
||||
|
||||
/* XXX: replace dummy to speed up */
|
||||
if (stream->state == RKISP1_STATE_STREAMING &&
|
||||
if (stream->streaming &&
|
||||
stream->next_buf == NULL &&
|
||||
atomic_read(&stream->ispdev->isp_sdev.frm_sync_seq) == 0) {
|
||||
stream->next_buf = ispbuf;
|
||||
@@ -1193,7 +1193,7 @@ static int rkisp1_stream_start(struct rkisp1_stream *stream)
|
||||
bool async = false;
|
||||
int ret;
|
||||
|
||||
if (other->state == RKISP1_STATE_STREAMING)
|
||||
if (other->streaming)
|
||||
async = true;
|
||||
|
||||
ret = rkisp1_config_rsz(stream, async);
|
||||
@@ -1224,7 +1224,7 @@ rkisp1_start_streaming(struct vb2_queue *queue, unsigned int count)
|
||||
struct v4l2_device *v4l2_dev = &dev->v4l2_dev;
|
||||
int ret;
|
||||
|
||||
if (WARN_ON(stream->state != RKISP1_STATE_READY))
|
||||
if (WARN_ON(stream->streaming))
|
||||
return -EBUSY;
|
||||
|
||||
ret = rkisp1_create_dummy_buf(stream);
|
||||
@@ -1331,7 +1331,7 @@ static void rkisp1_set_fmt(struct rkisp1_stream *stream,
|
||||
if (!pixm->quantization)
|
||||
pixm->quantization = V4L2_QUANTIZATION_FULL_RANGE;
|
||||
/* can not change quantization when stream-on */
|
||||
if (other_stream->state == RKISP1_STATE_STREAMING)
|
||||
if (other_stream->streaming)
|
||||
pixm->quantization = other_stream->out_fmt.quantization;
|
||||
|
||||
/* calculate size */
|
||||
@@ -1408,7 +1408,7 @@ void rkisp1_stream_init(struct rkisp1_device *dev, u32 id)
|
||||
stream->config = &rkisp1_mp_stream_config;
|
||||
}
|
||||
|
||||
stream->state = RKISP1_STATE_READY;
|
||||
stream->streaming = false;
|
||||
|
||||
memset(&pixm, 0, sizeof(pixm));
|
||||
pixm.pixelformat = V4L2_PIX_FMT_YUYV;
|
||||
@@ -1726,7 +1726,7 @@ void rkisp1_mi_isr(struct rkisp1_stream *stream)
|
||||
*/
|
||||
if (stream->ops->is_stream_stopped(dev->base_addr)) {
|
||||
stream->stopping = false;
|
||||
stream->state = RKISP1_STATE_READY;
|
||||
stream->streaming = false;
|
||||
wake_up(&stream->done);
|
||||
} else {
|
||||
stream->ops->stop_mi(stream);
|
||||
|
||||
@@ -166,8 +166,6 @@ struct rkisp1_stream {
|
||||
u32 id;
|
||||
struct rkisp1_device *ispdev;
|
||||
struct rkisp1_vdev_node vnode;
|
||||
enum rkisp1_state state;
|
||||
enum rkisp1_state saved_state;
|
||||
struct capture_fmt out_isp_fmt;
|
||||
struct v4l2_pix_format_mplane out_fmt;
|
||||
struct v4l2_rect dcrop;
|
||||
@@ -178,6 +176,7 @@ struct rkisp1_stream {
|
||||
struct rkisp1_dummy_buffer dummy_buf;
|
||||
struct rkisp1_buffer *curr_buf;
|
||||
struct rkisp1_buffer *next_buf;
|
||||
bool streaming;
|
||||
bool stopping;
|
||||
wait_queue_head_t done;
|
||||
union {
|
||||
|
||||
@@ -85,15 +85,6 @@ enum rkisp1_fmt_raw_pat_type {
|
||||
RAW_BGGR,
|
||||
};
|
||||
|
||||
enum rkisp1_state {
|
||||
/* path not yet opened: */
|
||||
RKISP1_STATE_DISABLED,
|
||||
/* path opened and configured, ready for streaming: */
|
||||
RKISP1_STATE_READY,
|
||||
/* path is streaming: */
|
||||
RKISP1_STATE_STREAMING
|
||||
};
|
||||
|
||||
struct rkisp1_buffer {
|
||||
struct vb2_v4l2_buffer vb;
|
||||
struct list_head queue;
|
||||
|
||||
@@ -359,9 +359,9 @@ static int rkisp1_config_cif(struct rkisp1_device *dev)
|
||||
u32 cif_id;
|
||||
|
||||
v4l2_dbg(1, rkisp1_debug, &dev->v4l2_dev,
|
||||
"SP state = %d, MP state = %d\n",
|
||||
dev->stream[RKISP1_STREAM_SP].state,
|
||||
dev->stream[RKISP1_STREAM_MP].state);
|
||||
"SP streaming = %d, MP streaming = %d\n",
|
||||
dev->stream[RKISP1_STREAM_SP].streaming,
|
||||
dev->stream[RKISP1_STREAM_MP].streaming);
|
||||
|
||||
cif_id = readl(dev->base_addr + CIF_VI_ID);
|
||||
v4l2_dbg(1, rkisp1_debug, &dev->v4l2_dev, "CIF_ID 0x%08x\n", cif_id);
|
||||
@@ -384,9 +384,9 @@ static int rkisp1_isp_stop(struct rkisp1_device *dev)
|
||||
u32 val;
|
||||
|
||||
v4l2_dbg(1, rkisp1_debug, &dev->v4l2_dev,
|
||||
"SP state = %d, MP state = %d\n",
|
||||
dev->stream[RKISP1_STREAM_SP].state,
|
||||
dev->stream[RKISP1_STREAM_MP].state);
|
||||
"SP streaming = %d, MP streaming = %d\n",
|
||||
dev->stream[RKISP1_STREAM_SP].streaming,
|
||||
dev->stream[RKISP1_STREAM_MP].streaming);
|
||||
|
||||
/*
|
||||
* ISP(mi) stop in mi frame end -> Stop ISP(mipi) ->
|
||||
@@ -414,9 +414,9 @@ static int rkisp1_isp_stop(struct rkisp1_device *dev)
|
||||
readx_poll_timeout(readl, base + CIF_ISP_RIS,
|
||||
val, val & CIF_ISP_OFF, 20, 100);
|
||||
v4l2_dbg(1, rkisp1_debug, &dev->v4l2_dev,
|
||||
"state(MP:%d, SP:%d), MI_CTRL:%x, ISP_CTRL:%x, MIPI_CTRL:%x\n",
|
||||
dev->stream[RKISP1_STREAM_SP].state,
|
||||
dev->stream[RKISP1_STREAM_MP].state,
|
||||
"streaming(MP:%d, SP:%d), MI_CTRL:%x, ISP_CTRL:%x, MIPI_CTRL:%x\n",
|
||||
dev->stream[RKISP1_STREAM_SP].streaming,
|
||||
dev->stream[RKISP1_STREAM_MP].streaming,
|
||||
readl(base + CIF_MI_CTRL),
|
||||
readl(base + CIF_ISP_CTRL),
|
||||
readl(base + CIF_MIPI_CTRL));
|
||||
@@ -435,9 +435,9 @@ static int rkisp1_isp_start(struct rkisp1_device *dev)
|
||||
u32 val;
|
||||
|
||||
v4l2_dbg(1, rkisp1_debug, &dev->v4l2_dev,
|
||||
"SP state = %d, MP state = %d\n",
|
||||
dev->stream[RKISP1_STREAM_SP].state,
|
||||
dev->stream[RKISP1_STREAM_MP].state);
|
||||
"SP streaming = %d, MP streaming = %d\n",
|
||||
dev->stream[RKISP1_STREAM_SP].streaming,
|
||||
dev->stream[RKISP1_STREAM_MP].streaming);
|
||||
|
||||
/* Activate MIPI */
|
||||
if (sensor->mbus.type == V4L2_MBUS_CSI2) {
|
||||
@@ -457,10 +457,10 @@ static int rkisp1_isp_start(struct rkisp1_device *dev)
|
||||
usleep_range(1000, 1200);
|
||||
|
||||
v4l2_dbg(1, rkisp1_debug, &dev->v4l2_dev,
|
||||
"SP state = %d, MP state = %d MI_CTRL 0x%08x\n"
|
||||
"SP streaming = %d, MP streaming = %d MI_CTRL 0x%08x\n"
|
||||
" ISP_CTRL 0x%08x MIPI_CTRL 0x%08x\n",
|
||||
dev->stream[RKISP1_STREAM_SP].state,
|
||||
dev->stream[RKISP1_STREAM_MP].state,
|
||||
dev->stream[RKISP1_STREAM_SP].streaming,
|
||||
dev->stream[RKISP1_STREAM_MP].streaming,
|
||||
readl(base + CIF_MI_CTRL),
|
||||
readl(base + CIF_ISP_CTRL),
|
||||
readl(base + CIF_MIPI_CTRL));
|
||||
|
||||
Reference in New Issue
Block a user