mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
media: tvp5150: fix width alignment during set_selection()
[ Upstream commitbd24db0410] The driver ignored the width alignment which exists due to the UYVY colorspace format. Fix the width alignment and make use of the the provided v4l2 helper function to set the width, height and all alignments in one. Fixes:963ddc63e2("[media] media: tvp5150: Add cropping support") Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
06bbe23870
commit
155bd1c4bf
@@ -870,9 +870,6 @@ static int tvp5150_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
|
||||
|
||||
/* tvp5150 has some special limits */
|
||||
rect.left = clamp(rect.left, 0, TVP5150_MAX_CROP_LEFT);
|
||||
rect.width = clamp_t(unsigned int, rect.width,
|
||||
TVP5150_H_MAX - TVP5150_MAX_CROP_LEFT - rect.left,
|
||||
TVP5150_H_MAX - rect.left);
|
||||
rect.top = clamp(rect.top, 0, TVP5150_MAX_CROP_TOP);
|
||||
|
||||
/* Calculate height based on current standard */
|
||||
@@ -886,9 +883,16 @@ static int tvp5150_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
|
||||
else
|
||||
hmax = TVP5150_V_MAX_OTHERS;
|
||||
|
||||
rect.height = clamp_t(unsigned int, rect.height,
|
||||
/*
|
||||
* alignments:
|
||||
* - width = 2 due to UYVY colorspace
|
||||
* - height, image = no special alignment
|
||||
*/
|
||||
v4l_bound_align_image(&rect.width,
|
||||
TVP5150_H_MAX - TVP5150_MAX_CROP_LEFT - rect.left,
|
||||
TVP5150_H_MAX - rect.left, 1, &rect.height,
|
||||
hmax - TVP5150_MAX_CROP_TOP - rect.top,
|
||||
hmax - rect.top);
|
||||
hmax - rect.top, 0, 0);
|
||||
|
||||
tvp5150_write(sd, TVP5150_VERT_BLANKING_START, rect.top);
|
||||
tvp5150_write(sd, TVP5150_VERT_BLANKING_STOP,
|
||||
|
||||
Reference in New Issue
Block a user