From f07e572f6447465d8938679533d604e402b0f066 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Thu, 18 Feb 2021 18:04:33 +0100 Subject: bcm27xx: import latest patches from the RPi foundation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bcm2708: boot tested on RPi B+ v1.2 bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G bcm2710: boot tested on RPi 3B v1.2 bcm2711: boot tested on RPi 4B v1.1 4G Signed-off-by: Álvaro Fernández Rojas --- ...mx290-Add-support-to-enumerate-all-frame-.patch | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 target/linux/bcm27xx/patches-5.4/950-0824-media-i2c-imx290-Add-support-to-enumerate-all-frame-.patch (limited to 'target/linux/bcm27xx/patches-5.4/950-0824-media-i2c-imx290-Add-support-to-enumerate-all-frame-.patch') diff --git a/target/linux/bcm27xx/patches-5.4/950-0824-media-i2c-imx290-Add-support-to-enumerate-all-frame-.patch b/target/linux/bcm27xx/patches-5.4/950-0824-media-i2c-imx290-Add-support-to-enumerate-all-frame-.patch new file mode 100644 index 0000000000..8ae528a423 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-0824-media-i2c-imx290-Add-support-to-enumerate-all-frame-.patch @@ -0,0 +1,58 @@ +From 9ca04663315302f1556798e9da29eabf08aecd59 Mon Sep 17 00:00:00 2001 +From: Manivannan Sadhasivam +Date: Fri, 12 Jun 2020 15:53:53 +0200 +Subject: [PATCH] media: i2c: imx290: Add support to enumerate all + frame sizes + +Commit 3b867fb641d884b714fba390ae866714ba475f29 upstream. + +Add support to enumerate all frame sizes supported by IMX290. This is +required for using with userspace tools such as libcamera. + +Signed-off-by: Manivannan Sadhasivam +Signed-off-by: Andrey Konovalov +Signed-off-by: Sakari Ailus +Signed-off-by: Mauro Carvalho Chehab +--- + drivers/media/i2c/imx290.c | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +--- a/drivers/media/i2c/imx290.c ++++ b/drivers/media/i2c/imx290.c +@@ -528,6 +528,28 @@ static int imx290_enum_mbus_code(struct + return 0; + } + ++static int imx290_enum_frame_size(struct v4l2_subdev *sd, ++ struct v4l2_subdev_pad_config *cfg, ++ struct v4l2_subdev_frame_size_enum *fse) ++{ ++ const struct imx290 *imx290 = to_imx290(sd); ++ const struct imx290_mode *imx290_modes = imx290_modes_ptr(imx290); ++ ++ if ((fse->code != imx290_formats[0].code) && ++ (fse->code != imx290_formats[1].code)) ++ return -EINVAL; ++ ++ if (fse->index >= imx290_modes_num(imx290)) ++ return -EINVAL; ++ ++ fse->min_width = imx290_modes[fse->index].width; ++ fse->max_width = imx290_modes[fse->index].width; ++ fse->min_height = imx290_modes[fse->index].height; ++ fse->max_height = imx290_modes[fse->index].height; ++ ++ return 0; ++} ++ + static int imx290_get_fmt(struct v4l2_subdev *sd, + struct v4l2_subdev_pad_config *cfg, + struct v4l2_subdev_format *fmt) +@@ -873,6 +895,7 @@ static const struct v4l2_subdev_video_op + static const struct v4l2_subdev_pad_ops imx290_pad_ops = { + .init_cfg = imx290_entity_init_cfg, + .enum_mbus_code = imx290_enum_mbus_code, ++ .enum_frame_size = imx290_enum_frame_size, + .get_fmt = imx290_get_fmt, + .set_fmt = imx290_set_fmt, + }; -- cgit v1.2.3