Hi Gergo I missed sending the reviewed-by sorry :) Btw, do you still have access to the device? Could you tell me what you get from and UVC_GET_MAX, UVC_GET_MIN for UVC_CT_PANTILT_RELATIVE_CONTROL and UVC_CT_ZOOM_RELATIVE_CONTROL ? Thanks! On Mon, 20 Nov 2023 at 19:53, Gergo Koteles <soyer@xxxxxx> wrote: > > Devices with pan/tilt controls but without pan/tilt speed controls > return 1 for the default value of V4L2_CID_PAN_SPEED or > V4L2_CID_TILT_SPEED. For these controls, the value of 1 means a > move and that's not a good default. > > Currently, for these controls the UVC_GET_DEF query returns > bPanSpeed or bTiltSpeed of CT_PANTILT_RELATIVE_CONTROL. > > According to the UVC 1.5 specification, the default value of bPanSpeed > or bTiltSpeed should be 1 if the pan/tilt control doesn't support > speed control. > > "If the control does not support speed control for the Tilt control, > it will return the value 1 in this field for all these requests." > > This patch modifies the uvc_ctrl_get_rel_speed to return hardcoded 0 > for UVC_GET_DEF query, because that's the stop or don't move value > for these V4L2 controls. > > Previous discussion > Link: https://lore.kernel.org/all/CAP_ceTy6XVmvTTAmvCp1YU2wxHwXqnarm69Yaz8K4FmpJqYxAg@xxxxxxxxxxxxxx/ > > Signed-off-by: Gergo Koteles <soyer@xxxxxx> Reviewed-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx> > --- > drivers/media/usb/uvc/uvc_ctrl.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c > index 5e9d3da862dd..e131958c0930 100644 > --- a/drivers/media/usb/uvc/uvc_ctrl.c > +++ b/drivers/media/usb/uvc/uvc_ctrl.c > @@ -444,9 +444,10 @@ static s32 uvc_ctrl_get_rel_speed(struct uvc_control_mapping *mapping, > return -data[first+1]; > case UVC_GET_MAX: > case UVC_GET_RES: > + return data[first+1]; > case UVC_GET_DEF: > default: > - return data[first+1]; > + return 0; > } > } > > > base-commit: be9aac187433af6abba5fcc2e73d91d0794ba360 > -- > 2.42.0 > > -- Ricardo Ribalda