Re: [PATCH 4/4] media: i2c: imx219: Selection compliance fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hans,

On Wed, Aug 05, 2020 at 12:57:21PM +0200, Jacopo Mondi wrote:
> From: Hans Verkuil <hverkuil@xxxxxxxxx>
>
> To comply with the intended usage of the V4L2 selection target when
> used to retrieve a sensor image properties, adjust the rectangles
> returned by the imx219 driver.
>
> The top/left crop coordinates of the TGT_CROP rectangle were set to
> (0, 0) instead of (8, 8) which is the offset from the larger physical
> pixel array rectangle. This was also a mismatch with the default values
> crop rectangle value, so this is corrected. Found with v4l2-compliance.
>
> While at it, add V4L2_SEL_TGT_CROP_BOUNDS support: CROP_DEFAULT and
> CROP_BOUNDS have the same size as the non-active pixels are not readable
> using the selection API. Found with v4l2-compliance.
>
> Fixes: e6d4ef7d58aa7 ("media: i2c: imx219: Implement get_selection")
> Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
> [reword commit message, use macros for pixel offsets]
> Signed-off-by: Jacopo Mondi <jacopo@xxxxxxxxxx>

Has this fallen to the cracks ? It was part of a larger series
(abandoned for now) but I think this patch has merits and can be broke
out.

If that's the case I'll fix ov5647 which I have in the pipe which
suffer from the same issue as this one and update the libcamera side
that uses this information.

Thanks
  j

> ---
>  drivers/media/i2c/imx219.c | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c
> index 60b23d113fc56..ff48a95b448b1 100644
> --- a/drivers/media/i2c/imx219.c
> +++ b/drivers/media/i2c/imx219.c
> @@ -473,8 +473,8 @@ static const struct imx219_mode supported_modes[] = {
>  		.width = 3280,
>  		.height = 2464,
>  		.crop = {
> -			.left = 0,
> -			.top = 0,
> +			.left = IMX219_PIXEL_ARRAY_LEFT,
> +			.top = IMX219_PIXEL_ARRAY_TOP,
>  			.width = 3280,
>  			.height = 2464
>  		},
> @@ -489,8 +489,8 @@ static const struct imx219_mode supported_modes[] = {
>  		.width = 1920,
>  		.height = 1080,
>  		.crop = {
> -			.left = 680,
> -			.top = 692,
> +			.left = 688,
> +			.top = 700,
>  			.width = 1920,
>  			.height = 1080
>  		},
> @@ -505,8 +505,8 @@ static const struct imx219_mode supported_modes[] = {
>  		.width = 1640,
>  		.height = 1232,
>  		.crop = {
> -			.left = 0,
> -			.top = 0,
> +			.left = IMX219_PIXEL_ARRAY_LEFT,
> +			.top = IMX219_PIXEL_ARRAY_TOP,
>  			.width = 3280,
>  			.height = 2464
>  		},
> @@ -521,8 +521,8 @@ static const struct imx219_mode supported_modes[] = {
>  		.width = 640,
>  		.height = 480,
>  		.crop = {
> -			.left = 1000,
> -			.top = 752,
> +			.left = 1008,
> +			.top = 760,
>  			.width = 1280,
>  			.height = 960
>  		},
> @@ -1045,6 +1045,7 @@ static int imx219_get_selection(struct v4l2_subdev *sd,
>  		return 0;
>
>  	case V4L2_SEL_TGT_CROP_DEFAULT:
> +	case V4L2_SEL_TGT_CROP_BOUNDS:
>  		sel->r.top = IMX219_PIXEL_ARRAY_TOP;
>  		sel->r.left = IMX219_PIXEL_ARRAY_LEFT;
>  		sel->r.width = IMX219_PIXEL_ARRAY_WIDTH;
> --
> 2.27.0
>



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux