Re: [PATCH v2 1/1] Documentation: v4l: Document rotation and orientation for sensor drivers

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

 



Hi Laurent,

On Wed, Apr 05, 2023 at 08:41:02AM +0300, Laurent Pinchart wrote:
> Hello,
> 
> On Thu, Mar 30, 2023 at 06:27:25PM +0200, Jacopo Mondi wrote:
> > On Thu, Mar 30, 2023 at 11:50:15AM +0300, Sakari Ailus wrote:
> > > On Wed, Mar 29, 2023 at 08:21:06PM +0200, Jacopo Mondi wrote:
> > > > On Tue, Mar 28, 2023 at 05:52:48PM +0300, Sakari Ailus wrote:
> > > > > Document how rotation and orientation should be taken into account in
> > > > > writing camera sensor drivers.
> > > > >
> > > > > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> > > > > ---
> > > > > since v1:
> > > > >
> > > > > Use speclial double quotes around functions to use non-proportional font for
> > > > > them.
> > > > >
> > > > >  Documentation/driver-api/media/camera-sensor.rst      | 11 +++++++++++
> > > > >  .../userspace-api/media/v4l/ext-ctrls-camera.rst      |  1 +
> > > > >  2 files changed, 12 insertions(+)
> > > > >
> > > > > diff --git a/Documentation/driver-api/media/camera-sensor.rst b/Documentation/driver-api/media/camera-sensor.rst
> > > > > index c7d4891bd24e..2618a91b0d85 100644
> > > > > --- a/Documentation/driver-api/media/camera-sensor.rst
> > > > > +++ b/Documentation/driver-api/media/camera-sensor.rst
> > > > > @@ -151,3 +151,14 @@ used to obtain device's power state after the power state transition:
> > > > >  The function returns a non-zero value if it succeeded getting the power count or
> > > > >  runtime PM was disabled, in either of which cases the driver may proceed to
> > > > >  access the device.
> > > > > +
> > > > > +Rotation and orientation
> > > > > +------------------------
> > > > > +
> > > > > +Some systems have been implemented so that the camera sensor has been mounted
> > > > > +upside down compared to its natural mounting rotation. In such a case, the
> > > > > +:ref:`V4L2_CID_CAMERA_SENSOR_ROTATION <v4l2-camera-sensor-rotation>` control
> > > > > +shall indicate the mounting rotation.
> > > >
> > > > I would put it in imperative form for driver developers
> > > >
> > > > "Some systems have been implemented so that the camera sensor has been mounted
> > > > upside down compared to its natural mounting rotation. In such a case,
> 
> I'd simplify it further:
> 
> "Some systems have the camera sensor mounted upside down compared to its
> natural mounting rotation. In such cases, "
> 
> More words can add clarity, but when they don't, excess words should be
> removed :-)

Works for me.

> 
> > > > drivers should register the :ref:`V4L2_CID_CAMERA_SENSOR_ROTATION
> > > > <v4l2-camera-sensor-rotation>` control to report the information to
> > > > userspace."
> > >
> > > That is in conditional, suggesting it isn't mandatory. Is that what you
> > > wanted to say?
> > 
> > "drivers shall register..." ?
> 
> Sounds good, maybe with s/register/expose/. Or
> 
> "drivers shall expose the information to userspace with the
> :ref:`V4L2_CID_CAMERA_SENSOR_ROTATION <v4l2-camera-sensor-rotation>`
> control."
> 
> > > > I would also specify how drivers should initialize their flip controls
> > > >
> > > > "Mode-based sensor driver implementations that have any vertical or
> 
> s/driver implementations/drivers/
> 
> (still chasing extraneous words)
> 
> > > > horizontal flips embedded in the register programming sequences should
> > > > initialize the V4L2_CID_HFLIP and V4L2_CID_VFLIP controls with the
> > > > values programmed by the register sequences.
> > >
> > > I'd use "shall" also here. I can't think of a reasonable exception as it
> > > breaks how this is meant to work for user space.
> > 
> > Yes, I agree
> 
> Agreed. I'd drop "Mode-based" though, I don't think that's relevant,
> other drivers may do something similar.

I'll change these for v3.

> 
> > > > Drivers which implement writable flip controls could automatically
> > > > compensate for the sensor's mounting rotation and shall reflect that in
> > > > the V4L2_CID_HFLIP and V4L2_CID_VFLIP controls initial and default values."
> > >
> > > Good point. For existing drivers (such as CCS or IMX258) this could help
> > > existing users but I'm not sure I'd do this for new drivers. Comments and
> > > opinions would be welcome from others, too. Cc Laurent, too.
> 
> I wouldn't for new drivers, no, and even for IMX258 and CCS, I'm tempted
> to not keep that backward compatibility. We need to assess whether or
> not it would cause breakages in practice, if the risk is very low, I'd
> favour consistency. This is especially the case for CCS.

I've actually already posted patches doing just this for CCS.

> 
> > > > > +
> > > > > +Use ``v4l2_fwnode_device_parse()`` to obtain this information and
> > > > > +``v4l2_ctrl_new_fwnode_properties()`` to generate the appropriate controls.
> > > >
> > > > I would also mention the orientation control before introducing
> > > > v4l2_fwnode_device_parse.
> > > >
> > > > "Sensor drivers should also report their mounting orientation with the
> > > > :ref:`V4L2_CID_CAMERA_SENSOR_ORIENTATION <v4l2-camera-sensor-orientation>`.
> > > >
> > > > Both controls can be registered by using the ``v4l2_fwnode_device_parse()``
> > > > function to obtain this information from the firmware interface and
> > > > ``v4l2_ctrl_new_fwnode_properties()`` to generate the appropriate controls."
> > > >
> > > > How does this work for you ?
> > >
> > > I'd just use "shall" here, too.
> > 
> > Agree on this as well
> > 
> > > This applies of course to new drivers only, many existing ones are missing
> > > these bits.
> > 
> > I know :( It's however worth it to encourage new drivers to do that!
> 

-- 
Regards,

Sakari Ailus



[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