lkml.org 
[lkml]   [2018]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 032/205] media: tvp5150: fix width alignment during set_selection()
    Date
    4.19-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Marco Felsch <m.felsch@pengutronix.de>

    [ Upstream commit bd24db04101f45a9c1d874fe21b0c7eab7bcadec ]

    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: 963ddc63e20d ("[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>
    ---
    drivers/media/i2c/tvp5150.c | 14 +++++++++-----
    1 file changed, 9 insertions(+), 5 deletions(-)

    --- a/drivers/media/i2c/tvp5150.c
    +++ b/drivers/media/i2c/tvp5150.c
    @@ -901,9 +901,6 @@ static int tvp5150_set_selection(struct

    /* 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 */
    @@ -917,9 +914,16 @@ static int tvp5150_set_selection(struct
    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,

    \
     
     \ /
      Last update: 2018-11-19 19:08    [W:4.072 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site