Message ID | 20210326095840.364424-18-ribalda@chromium.org |
---|---|
State | New |
Headers | show |
Series | uvcvideo: Fix v4l2-compliance errors | expand |
On 26/03/2021 10:58, Ricardo Ribalda wrote: > The uvc driver relies on the camera firmware to keep the control states > and therefore is not capable of changing an inactive control. > > Allow returning -EACESS in those cases. -EACCES > > Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> > --- > Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst | 5 +++++ > Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst | 5 +++++ > 2 files changed, 10 insertions(+) > > diff --git a/Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst b/Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst > index 4f1bed53fad5..8c0a203385c2 100644 > --- a/Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst > +++ b/Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst > @@ -95,3 +95,8 @@ EBUSY > > EACCES > Attempt to set a read-only control or to get a write-only control. > + > + Or if there is an attempt to set an inactive control and the driver is > + not capable of keeping the new value until the control is active again. keeping: 'caching' or 'storing' are better words, I think. > + This is the case for drivers that do not use the standard control > + framework and rely purely on the hardware to keep the controls' state. I would drop that last sentence. It is not relevant information to the users of the API. > diff --git a/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst b/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst > index b9c62affbb5a..bb7de7a25241 100644 > --- a/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst > +++ b/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst > @@ -438,3 +438,8 @@ EACCES > > Or the ``which`` field was set to ``V4L2_CTRL_WHICH_REQUEST_VAL`` but the > device does not support requests. > + > + Or if there is an attempt to set an inactive control and the driver is > + not capable of keeping the new value until the control is active again. > + This is the case for drivers that do not use the standard control > + framework and rely purely on the hardware to keep the controls' state. Same comments as above. > Regards, Hans
diff --git a/Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst b/Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst index 4f1bed53fad5..8c0a203385c2 100644 --- a/Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst +++ b/Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst @@ -95,3 +95,8 @@ EBUSY EACCES Attempt to set a read-only control or to get a write-only control. + + Or if there is an attempt to set an inactive control and the driver is + not capable of keeping the new value until the control is active again. + This is the case for drivers that do not use the standard control + framework and rely purely on the hardware to keep the controls' state. diff --git a/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst b/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst index b9c62affbb5a..bb7de7a25241 100644 --- a/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst +++ b/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst @@ -438,3 +438,8 @@ EACCES Or the ``which`` field was set to ``V4L2_CTRL_WHICH_REQUEST_VAL`` but the device does not support requests. + + Or if there is an attempt to set an inactive control and the driver is + not capable of keeping the new value until the control is active again. + This is the case for drivers that do not use the standard control + framework and rely purely on the hardware to keep the controls' state.
The uvc driver relies on the camera firmware to keep the control states and therefore is not capable of changing an inactive control. Allow returning -EACESS in those cases. Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> --- Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst | 5 +++++ Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst | 5 +++++ 2 files changed, 10 insertions(+)