[libcamera-devel,v2,00/13] raspberrypi: Report sensor orientation through DT
mbox series

Message ID 20200715011833.24600-1-laurent.pinchart@ideasonboard.com
Headers show
Series
  • raspberrypi: Report sensor orientation through DT
Related show

Message

Laurent Pinchart July 15, 2020, 1:18 a.m. UTC
Hi Dave,

This patch series reports sensor orientation through DT for the OV5647,
IMX219 and IMX477. The first 8 patches are backported from mainline,
while the last 5 patches are new.

Compared to v1, I've mentioned the upstream commit SHA1 in all the
backported patches, and enabled DT overlay parameter support.

The patches are based on top of rpi-5.4.y. I've posted
https://github.com/raspberrypi/linux/pull/3723 (I'm sure it's at least
partly due to me being used to the mailing list workflow, but going
through the github UI is so frustrating :-S).

The kernel and libcamera sides need to be merged together. Could you
please let me know when you plan to merge the kernel changes ? I'll push
the libcamera changes accordingly.

Jacopo Mondi (8):
  media: dt-bindings: video-interfaces: Document 'orientation' property
  media: dt-bindings: video-interface: Replace 'rotation' description
  media: v4l2-ctrl: Document V4L2_CID_CAMERA_ORIENTATION
  media: v4l2-ctrl: Document V4L2_CID_CAMERA_SENSOR_ROTATION
  media: v4l2-ctrls: Add camera orientation and rotation
  media: v4l2-fwnode: Add helper to parse device properties
  media: v4l2-ctrls: Add helper to register properties
  media: i2c: imx219: Parse and register properties

Laurent Pinchart (5):
  media: i2c: ov5647: Parse and register properties
  media: i2c: imx477: Parse and register properties
  dt/dtoverlays: ov5647: Add parameter to set camera module rotation
  dt/dtoverlays: imx219: Add parameter to set camera module rotation
  dt/dtoverlays: imx477: Add parameter to set camera module rotation

 .../bindings/media/video-interfaces.txt       | 370 +++++++++++++++++-
 .../media/uapi/v4l/ext-ctrls-camera.rst       | 151 +++++++
 arch/arm/boot/dts/overlays/README             |  15 +-
 arch/arm/boot/dts/overlays/imx219-overlay.dts |   6 +
 arch/arm/boot/dts/overlays/imx477-overlay.dts |   6 +
 arch/arm/boot/dts/overlays/ov5647-overlay.dts |   4 +
 drivers/media/i2c/imx219.c                    |  12 +-
 drivers/media/i2c/imx477.c                    |  12 +-
 drivers/media/i2c/ov5647.c                    |  13 +-
 drivers/media/v4l2-core/v4l2-ctrls.c          |  53 +++
 drivers/media/v4l2-core/v4l2-fwnode.c         |  42 ++
 include/media/v4l2-ctrls.h                    |  26 ++
 include/media/v4l2-fwnode.h                   |  47 +++
 include/uapi/linux/v4l2-controls.h            |   7 +
 14 files changed, 752 insertions(+), 12 deletions(-)

Comments

Dave Stevenson July 15, 2020, 11:30 a.m. UTC | #1
Hi Laurent

On Wed, 15 Jul 2020 at 02:18, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Dave,
>
> This patch series reports sensor orientation through DT for the OV5647,
> IMX219 and IMX477. The first 8 patches are backported from mainline,
> while the last 5 patches are new.
>
> Compared to v1, I've mentioned the upstream commit SHA1 in all the
> backported patches, and enabled DT overlay parameter support.
>
> The patches are based on top of rpi-5.4.y. I've posted
> https://github.com/raspberrypi/linux/pull/3723 (I'm sure it's at least
> partly due to me being used to the mailing list workflow, but going
> through the github UI is so frustrating :-S).

I'd say the exact opposite!

> The kernel and libcamera sides need to be merged together. Could you
> please let me know when you plan to merge the kernel changes ? I'll push
> the libcamera changes accordingly.

Phil's the main gatekeeper on the repo, but other than the couple of
minor comments that he's made, I see no reason for the merge to be
significantly delayed.

I haven't checked the libcamera side - does it fail totally if the
controls aren't defined, or drop back to some default? I have a docs
page[1] that tries to list out all the controls and ioctls that are
mandatory for libcamera on the Pi.

  Dave

[1] https://www.raspberrypi.org/documentation/linux/software/libcamera/csi-2-usage.md

> Jacopo Mondi (8):
>   media: dt-bindings: video-interfaces: Document 'orientation' property
>   media: dt-bindings: video-interface: Replace 'rotation' description
>   media: v4l2-ctrl: Document V4L2_CID_CAMERA_ORIENTATION
>   media: v4l2-ctrl: Document V4L2_CID_CAMERA_SENSOR_ROTATION
>   media: v4l2-ctrls: Add camera orientation and rotation
>   media: v4l2-fwnode: Add helper to parse device properties
>   media: v4l2-ctrls: Add helper to register properties
>   media: i2c: imx219: Parse and register properties
>
> Laurent Pinchart (5):
>   media: i2c: ov5647: Parse and register properties
>   media: i2c: imx477: Parse and register properties
>   dt/dtoverlays: ov5647: Add parameter to set camera module rotation
>   dt/dtoverlays: imx219: Add parameter to set camera module rotation
>   dt/dtoverlays: imx477: Add parameter to set camera module rotation
>
>  .../bindings/media/video-interfaces.txt       | 370 +++++++++++++++++-
>  .../media/uapi/v4l/ext-ctrls-camera.rst       | 151 +++++++
>  arch/arm/boot/dts/overlays/README             |  15 +-
>  arch/arm/boot/dts/overlays/imx219-overlay.dts |   6 +
>  arch/arm/boot/dts/overlays/imx477-overlay.dts |   6 +
>  arch/arm/boot/dts/overlays/ov5647-overlay.dts |   4 +
>  drivers/media/i2c/imx219.c                    |  12 +-
>  drivers/media/i2c/imx477.c                    |  12 +-
>  drivers/media/i2c/ov5647.c                    |  13 +-
>  drivers/media/v4l2-core/v4l2-ctrls.c          |  53 +++
>  drivers/media/v4l2-core/v4l2-fwnode.c         |  42 ++
>  include/media/v4l2-ctrls.h                    |  26 ++
>  include/media/v4l2-fwnode.h                   |  47 +++
>  include/uapi/linux/v4l2-controls.h            |   7 +
>  14 files changed, 752 insertions(+), 12 deletions(-)
>
> --
> Regards,
>
> Laurent Pinchart
>
Laurent Pinchart July 15, 2020, 10:54 p.m. UTC | #2
Hi Dave,

On Wed, Jul 15, 2020 at 12:30:34PM +0100, Dave Stevenson wrote:
> On Wed, 15 Jul 2020 at 02:18, Laurent Pinchart wrote:
> >
> > Hi Dave,
> >
> > This patch series reports sensor orientation through DT for the OV5647,
> > IMX219 and IMX477. The first 8 patches are backported from mainline,
> > while the last 5 patches are new.
> >
> > Compared to v1, I've mentioned the upstream commit SHA1 in all the
> > backported patches, and enabled DT overlay parameter support.
> >
> > The patches are based on top of rpi-5.4.y. I've posted
> > https://github.com/raspberrypi/linux/pull/3723 (I'm sure it's at least
> > partly due to me being used to the mailing list workflow, but going
> > through the github UI is so frustrating :-S).
> 
> I'd say the exact opposite!

Changes are hard, right ? :-)

> > The kernel and libcamera sides need to be merged together. Could you
> > please let me know when you plan to merge the kernel changes ? I'll push
> > the libcamera changes accordingly.
> 
> Phil's the main gatekeeper on the repo, but other than the couple of
> minor comments that he's made, I see no reason for the merge to be
> significantly delayed.
> 
> I haven't checked the libcamera side - does it fail totally if the
> controls aren't defined, or drop back to some default? I have a docs
> page[1] that tries to list out all the controls and ioctls that are
> mandatory for libcamera on the Pi.

libcamera will fallback to default values, so it should be safe (but
will result in an upside-down image during the transition). It's
actually safe to merge the kernel patches without the libcamera side, so
I'll wait for Phil to merge the branch, and I'll then push the patches
in libcamera.

> [1] https://www.raspberrypi.org/documentation/linux/software/libcamera/csi-2-usage.md

That's an interesting document, thanks. Could you add
V4L2_CID_CAMERA_ORIENTATION and V4L2_CID_CAMERA_SENSOR_ROTATION ? While
not strictly mandatory, it's a good practice to support them.

> > Jacopo Mondi (8):
> >   media: dt-bindings: video-interfaces: Document 'orientation' property
> >   media: dt-bindings: video-interface: Replace 'rotation' description
> >   media: v4l2-ctrl: Document V4L2_CID_CAMERA_ORIENTATION
> >   media: v4l2-ctrl: Document V4L2_CID_CAMERA_SENSOR_ROTATION
> >   media: v4l2-ctrls: Add camera orientation and rotation
> >   media: v4l2-fwnode: Add helper to parse device properties
> >   media: v4l2-ctrls: Add helper to register properties
> >   media: i2c: imx219: Parse and register properties
> >
> > Laurent Pinchart (5):
> >   media: i2c: ov5647: Parse and register properties
> >   media: i2c: imx477: Parse and register properties
> >   dt/dtoverlays: ov5647: Add parameter to set camera module rotation
> >   dt/dtoverlays: imx219: Add parameter to set camera module rotation
> >   dt/dtoverlays: imx477: Add parameter to set camera module rotation
> >
> >  .../bindings/media/video-interfaces.txt       | 370 +++++++++++++++++-
> >  .../media/uapi/v4l/ext-ctrls-camera.rst       | 151 +++++++
> >  arch/arm/boot/dts/overlays/README             |  15 +-
> >  arch/arm/boot/dts/overlays/imx219-overlay.dts |   6 +
> >  arch/arm/boot/dts/overlays/imx477-overlay.dts |   6 +
> >  arch/arm/boot/dts/overlays/ov5647-overlay.dts |   4 +
> >  drivers/media/i2c/imx219.c                    |  12 +-
> >  drivers/media/i2c/imx477.c                    |  12 +-
> >  drivers/media/i2c/ov5647.c                    |  13 +-
> >  drivers/media/v4l2-core/v4l2-ctrls.c          |  53 +++
> >  drivers/media/v4l2-core/v4l2-fwnode.c         |  42 ++
> >  include/media/v4l2-ctrls.h                    |  26 ++
> >  include/media/v4l2-fwnode.h                   |  47 +++
> >  include/uapi/linux/v4l2-controls.h            |   7 +
> >  14 files changed, 752 insertions(+), 12 deletions(-)