From 697ee6a0fb6329e1d8153ba42dc423ad1656a366 Mon Sep 17 00:00:00 2001 From: Tomasz Figa Date: Tue, 15 May 2018 15:47:47 +0900 Subject: [PATCH] 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 Reviewed-on: https://chromium-review.googlesource.com/1059006 Tested-by: yichong zhong Reviewed-by: Ricky Liang Reviewed-by: yichong zhong Reviewed-by: Alexandre Courbot --- .../media/platform/rockchip/isp1/capture.c | 24 +++++++-------- .../media/platform/rockchip/isp1/capture.h | 3 +- drivers/media/platform/rockchip/isp1/common.h | 9 ------ drivers/media/platform/rockchip/isp1/rkisp1.c | 30 +++++++++---------- 4 files changed, 28 insertions(+), 38 deletions(-) diff --git a/drivers/media/platform/rockchip/isp1/capture.c b/drivers/media/platform/rockchip/isp1/capture.c index 68acbfbbf7b5..116fcd1a998b 100644 --- a/drivers/media/platform/rockchip/isp1/capture.c +++ b/drivers/media/platform/rockchip/isp1/capture.c @@ -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); diff --git a/drivers/media/platform/rockchip/isp1/capture.h b/drivers/media/platform/rockchip/isp1/capture.h index f0989103daa1..94e580272b29 100644 --- a/drivers/media/platform/rockchip/isp1/capture.h +++ b/drivers/media/platform/rockchip/isp1/capture.h @@ -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 { diff --git a/drivers/media/platform/rockchip/isp1/common.h b/drivers/media/platform/rockchip/isp1/common.h index 1adfb9039b60..0d78446fda28 100644 --- a/drivers/media/platform/rockchip/isp1/common.h +++ b/drivers/media/platform/rockchip/isp1/common.h @@ -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; diff --git a/drivers/media/platform/rockchip/isp1/rkisp1.c b/drivers/media/platform/rockchip/isp1/rkisp1.c index 0438d6ddba91..98098ff02db7 100644 --- a/drivers/media/platform/rockchip/isp1/rkisp1.c +++ b/drivers/media/platform/rockchip/isp1/rkisp1.c @@ -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));