Message ID | 20190327151743.18528-3-andrealmeid@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: vimc: Add support for multiplanar formats | expand |
On 3/27/19 12:17 PM, André Almeida wrote: > Change the way subdevices check if the stream is running. Verify the stream > pointer instead of src_frame. This makes easier to get rid of the void* and > u8* in the subdevices structs. Also, remove redundant checks for stream. > > Signed-off-by: André Almeida <andrealmeid@collabora.com> Acked-by: Helen Koike <helen.koike@collabora.com> > --- > Changes in v2: > - Squashed commits that remove unnecessary checks together > - Reworded commit message > > drivers/media/platform/vimc/vimc-debayer.c | 5 +---- > drivers/media/platform/vimc/vimc-scaler.c | 7 ++----- > drivers/media/platform/vimc/vimc-sensor.c | 6 +----- > 3 files changed, 4 insertions(+), 14 deletions(-) > > diff --git a/drivers/media/platform/vimc/vimc-debayer.c b/drivers/media/platform/vimc/vimc-debayer.c > index 419ad57a4f5c..613b7abbe06e 100644 > --- a/drivers/media/platform/vimc/vimc-debayer.c > +++ b/drivers/media/platform/vimc/vimc-debayer.c > @@ -270,7 +270,7 @@ static int vimc_deb_set_fmt(struct v4l2_subdev *sd, > > if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { > /* Do not change the format while stream is on */ > - if (vdeb->src_frame) > + if (vdeb->ved.stream) > return -EBUSY; > > sink_fmt = &vdeb->sink_fmt; > @@ -337,9 +337,6 @@ static int vimc_deb_s_stream(struct v4l2_subdev *sd, int enable) > const struct v4l2_format_info *pix_info; > unsigned int frame_size; > > - if (vdeb->src_frame) > - return 0; > - > /* We only support translating bayer to RGB24 */ > if (src_pixelformat != V4L2_PIX_FMT_RGB24) { > dev_err(vdeb->dev, > diff --git a/drivers/media/platform/vimc/vimc-scaler.c b/drivers/media/platform/vimc/vimc-scaler.c > index f15542920bdc..8544c745c6e6 100644 > --- a/drivers/media/platform/vimc/vimc-scaler.c > +++ b/drivers/media/platform/vimc/vimc-scaler.c > @@ -158,7 +158,7 @@ static int vimc_sca_set_fmt(struct v4l2_subdev *sd, > > if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { > /* Do not change the format while stream is on */ > - if (vsca->src_frame) > + if (vsca->ved.stream) > return -EBUSY; > > sink_fmt = &vsca->sink_fmt; > @@ -213,9 +213,6 @@ static int vimc_sca_s_stream(struct v4l2_subdev *sd, int enable) > const struct v4l2_format_info *pix_info; > unsigned int frame_size; > > - if (vsca->src_frame) > - return 0; > - > if (!vimc_sca_is_pixfmt_supported(pixelformat)) { > dev_err(vsca->dev, "pixfmt (%s) is not supported\n", > v4l2_get_fourcc_name(pixelformat)); > @@ -337,7 +334,7 @@ static void *vimc_sca_process_frame(struct vimc_ent_device *ved, > ved); > > /* If the stream in this node is not active, just return */ > - if (!vsca->src_frame) > + if (!ved->stream) > return ERR_PTR(-EINVAL); > > vimc_sca_fill_src_frame(vsca, sink_frame); > diff --git a/drivers/media/platform/vimc/vimc-sensor.c b/drivers/media/platform/vimc/vimc-sensor.c > index 081e54204c9f..1b2b75b27952 100644 > --- a/drivers/media/platform/vimc/vimc-sensor.c > +++ b/drivers/media/platform/vimc/vimc-sensor.c > @@ -141,7 +141,7 @@ static int vimc_sen_set_fmt(struct v4l2_subdev *sd, > > if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { > /* Do not change the format while stream is on */ > - if (vsen->frame) > + if (vsen->ved.stream) > return -EBUSY; > > mf = &vsen->mbus_format; > @@ -197,10 +197,6 @@ static int vimc_sen_s_stream(struct v4l2_subdev *sd, int enable) > const struct v4l2_format_info *pix_info; > unsigned int frame_size; > > - if (vsen->kthread_sen) > - /* tpg is already executing */ > - return 0; > - > /* Calculate the frame size */ > pix_info = v4l2_format_info(pixelformat); > frame_size = vsen->mbus_format.width * pix_info->bpp[0] * >
diff --git a/drivers/media/platform/vimc/vimc-debayer.c b/drivers/media/platform/vimc/vimc-debayer.c index 419ad57a4f5c..613b7abbe06e 100644 --- a/drivers/media/platform/vimc/vimc-debayer.c +++ b/drivers/media/platform/vimc/vimc-debayer.c @@ -270,7 +270,7 @@ static int vimc_deb_set_fmt(struct v4l2_subdev *sd, if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { /* Do not change the format while stream is on */ - if (vdeb->src_frame) + if (vdeb->ved.stream) return -EBUSY; sink_fmt = &vdeb->sink_fmt; @@ -337,9 +337,6 @@ static int vimc_deb_s_stream(struct v4l2_subdev *sd, int enable) const struct v4l2_format_info *pix_info; unsigned int frame_size; - if (vdeb->src_frame) - return 0; - /* We only support translating bayer to RGB24 */ if (src_pixelformat != V4L2_PIX_FMT_RGB24) { dev_err(vdeb->dev, diff --git a/drivers/media/platform/vimc/vimc-scaler.c b/drivers/media/platform/vimc/vimc-scaler.c index f15542920bdc..8544c745c6e6 100644 --- a/drivers/media/platform/vimc/vimc-scaler.c +++ b/drivers/media/platform/vimc/vimc-scaler.c @@ -158,7 +158,7 @@ static int vimc_sca_set_fmt(struct v4l2_subdev *sd, if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { /* Do not change the format while stream is on */ - if (vsca->src_frame) + if (vsca->ved.stream) return -EBUSY; sink_fmt = &vsca->sink_fmt; @@ -213,9 +213,6 @@ static int vimc_sca_s_stream(struct v4l2_subdev *sd, int enable) const struct v4l2_format_info *pix_info; unsigned int frame_size; - if (vsca->src_frame) - return 0; - if (!vimc_sca_is_pixfmt_supported(pixelformat)) { dev_err(vsca->dev, "pixfmt (%s) is not supported\n", v4l2_get_fourcc_name(pixelformat)); @@ -337,7 +334,7 @@ static void *vimc_sca_process_frame(struct vimc_ent_device *ved, ved); /* If the stream in this node is not active, just return */ - if (!vsca->src_frame) + if (!ved->stream) return ERR_PTR(-EINVAL); vimc_sca_fill_src_frame(vsca, sink_frame); diff --git a/drivers/media/platform/vimc/vimc-sensor.c b/drivers/media/platform/vimc/vimc-sensor.c index 081e54204c9f..1b2b75b27952 100644 --- a/drivers/media/platform/vimc/vimc-sensor.c +++ b/drivers/media/platform/vimc/vimc-sensor.c @@ -141,7 +141,7 @@ static int vimc_sen_set_fmt(struct v4l2_subdev *sd, if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { /* Do not change the format while stream is on */ - if (vsen->frame) + if (vsen->ved.stream) return -EBUSY; mf = &vsen->mbus_format; @@ -197,10 +197,6 @@ static int vimc_sen_s_stream(struct v4l2_subdev *sd, int enable) const struct v4l2_format_info *pix_info; unsigned int frame_size; - if (vsen->kthread_sen) - /* tpg is already executing */ - return 0; - /* Calculate the frame size */ pix_info = v4l2_format_info(pixelformat); frame_size = vsen->mbus_format.width * pix_info->bpp[0] *
Change the way subdevices check if the stream is running. Verify the stream pointer instead of src_frame. This makes easier to get rid of the void* and u8* in the subdevices structs. Also, remove redundant checks for stream. Signed-off-by: André Almeida <andrealmeid@collabora.com> --- Changes in v2: - Squashed commits that remove unnecessary checks together - Reworded commit message drivers/media/platform/vimc/vimc-debayer.c | 5 +---- drivers/media/platform/vimc/vimc-scaler.c | 7 ++----- drivers/media/platform/vimc/vimc-sensor.c | 6 +----- 3 files changed, 4 insertions(+), 14 deletions(-)