Re: [PATCH 2/2] media: v4l2: map UVC_CT_ROLL_ABSOLUTE_CONTROL

From: Gergo Koteles
Date: Fri Jun 14 2024 - 12:27:09 EST


Hi Laurent,

On Wed, 2024-06-12 at 23:31 +0300, Laurent Pinchart wrote:
> On Wed, Jun 12, 2024 at 08:31:14PM +0200, Gergo Koteles wrote:
> > Some new UVC cameras can report whether they are mounted in 'portrait
> > mode'.
> >
> > Current roll degrees (-90, 0, 90, 180) are reported with
> > UVC_CT_ROLL_ABSOLUTE_CONTROL.
>
> UVC_CT_ROLL_ABSOLUTE_CONTROL is about controlling the motion of the
> camera along the roll axis, while this patch series sounds like you want
> to support reporting the mounting orientation of the device, not cause
> the device to rotate. Is that right ?

The SET_CUR of UVC_CT_ROLL_ABSOLUTE_CONTROL is optional, so I think
it's for reporting also.

The cameras I've tested before can't roll the sensor, they only report
the angle/orientation.

Yes, I was thinking to support the mounting orientation report, however
I tried a friend's DJI Osmo Pocket 3, which can roll the sensor in +-
30˚ with ROLL_ABSOLUTE UVC control. It can also be
Panned/Tilted/Zoomed, very cool.

I think mapping UVC_CT_ROLL_ABSOLUTE_CONTROL to V4L2_CID_ROLL_ABSOLUTE
would be useful. I can reword the commit message a bit if you'd like.

>
> If that's the case, the right V4L2 control to use would be
> V4L2_CID_CAMERA_SENSOR_ROTATION. Mapping it to
> UVC_CT_ROLL_ABSOLUTE_CONTROL is problematic though, as
> UVC_CT_ROLL_ABSOLUTE_CONTROL is not meant for this in the UVC spec. We
> would likely need a quirk to control how it gets used.
>

I can also create a quirk for the other two cameras to map
UVC_CT_ROLL_ABSOLUTE_CONTROL to V4L2_CID_CAMERA_SENSOR_ROTATION.

Maybe it can be detected if CT_ROLL_ABSOLUTE_CONTROL doesn't have
SET_CUR, default 0, step 90.

>
Best regards,
Gergo