Skip to content

Commit

Permalink
[media] exynos4-is: Fix TRY format propagation at MIPI-CSIS subdev
Browse files Browse the repository at this point in the history
Ensure TRY format is propagated from the sink to source pad.
The format at both pads is always same so the TRY format buffer
for pad 0 is used to hold format for both pads.
While at it remove redundant fmt->pad checking.

Reported-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Sylwester Nawrocki authored and Mauro Carvalho Chehab committed Apr 25, 2013
1 parent aceb59e commit cbd5354
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions drivers/media/platform/exynos4-is/mipi-csis.c
Original file line number Diff line number Diff line change
Expand Up @@ -549,10 +549,10 @@ static struct csis_pix_format const *s5pcsis_try_format(

static struct v4l2_mbus_framefmt *__s5pcsis_get_format(
struct csis_state *state, struct v4l2_subdev_fh *fh,
u32 pad, enum v4l2_subdev_format_whence which)
enum v4l2_subdev_format_whence which)
{
if (which == V4L2_SUBDEV_FORMAT_TRY)
return fh ? v4l2_subdev_get_try_format(fh, pad) : NULL;
return fh ? v4l2_subdev_get_try_format(fh, 0) : NULL;

return &state->format;
}
Expand All @@ -564,10 +564,7 @@ static int s5pcsis_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
struct csis_pix_format const *csis_fmt;
struct v4l2_mbus_framefmt *mf;

if (fmt->pad != CSIS_PAD_SOURCE && fmt->pad != CSIS_PAD_SINK)
return -EINVAL;

mf = __s5pcsis_get_format(state, fh, fmt->pad, fmt->which);
mf = __s5pcsis_get_format(state, fh, fmt->which);

if (fmt->pad == CSIS_PAD_SOURCE) {
if (mf) {
Expand All @@ -594,10 +591,7 @@ static int s5pcsis_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
struct csis_state *state = sd_to_csis_state(sd);
struct v4l2_mbus_framefmt *mf;

if (fmt->pad != CSIS_PAD_SOURCE && fmt->pad != CSIS_PAD_SINK)
return -EINVAL;

mf = __s5pcsis_get_format(state, fh, fmt->pad, fmt->which);
mf = __s5pcsis_get_format(state, fh, fmt->which);
if (!mf)
return -EINVAL;

Expand Down

0 comments on commit cbd5354

Please sign in to comment.