From 0170785447ca3fcc51b8f46cfc485340c5c40f93 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 15 Apr 2025 15:38:55 +0100 Subject: [PATCH] media: i2c: imx219: Restore the 1920x1080 to using a 1:1 PAR Commit 0af46fbc333d ("media: i2c: imx219: Calculate crop rectangle dynamically") meant that the 1920x1080 switched from using no binning to using vertical binning but no horizontal binning. Restore the original behaviour by ensuring the two binning settings are the same. Fixes: 0af46fbc333d ("media: i2c: imx219: Calculate crop rectangle dynamically") Signed-off-by: Dave Stevenson --- drivers/media/i2c/imx219.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -843,7 +843,7 @@ static int imx219_set_pad_format(struct const struct imx219_mode *mode; struct v4l2_mbus_framefmt *format; struct v4l2_rect *crop; - unsigned int bin_h, bin_v; + unsigned int bin_h, bin_v, binning; mode = v4l2_find_nearest_size(supported_modes, ARRAY_SIZE(supported_modes), @@ -861,10 +861,11 @@ static int imx219_set_pad_format(struct */ bin_h = min(IMX219_PIXEL_ARRAY_WIDTH / format->width, 2U); bin_v = min(IMX219_PIXEL_ARRAY_HEIGHT / format->height, 2U); + binning = min(bin_h, bin_v); crop = v4l2_subdev_state_get_crop(state, 0); - crop->width = format->width * bin_h; - crop->height = format->height * bin_v; + crop->width = format->width * binning; + crop->height = format->height * binning; crop->left = (IMX219_NATIVE_WIDTH - crop->width) / 2; crop->top = (IMX219_NATIVE_HEIGHT - crop->height) / 2;