Re: [RFC PATCH v7 06/13] media: uapi: Add V4L2_CAP_AUDIO_M2M capability flag

From: Hans Verkuil
Date: Wed Oct 25 2023 - 06:25:20 EST


On 20/10/2023 11:30, Shengjiu Wang wrote:
> V4L2_CAP_AUDIO_M2M is similar to V4L2_CAP_VIDEO_M2M flag.
>
> It is used for audio memory to memory case.
>
> Signed-off-by: Shengjiu Wang <shengjiu.wang@xxxxxxx>
> ---
> Documentation/userspace-api/media/v4l/vidioc-querycap.rst | 3 +++
> Documentation/userspace-api/media/videodev2.h.rst.exceptions | 1 +
> include/uapi/linux/videodev2.h | 1 +
> 3 files changed, 5 insertions(+)
>
> diff --git a/Documentation/userspace-api/media/v4l/vidioc-querycap.rst b/Documentation/userspace-api/media/v4l/vidioc-querycap.rst
> index 6c57b8428356..0b3cefefc86b 100644
> --- a/Documentation/userspace-api/media/v4l/vidioc-querycap.rst
> +++ b/Documentation/userspace-api/media/v4l/vidioc-querycap.rst
> @@ -259,6 +259,9 @@ specification the ioctl returns an ``EINVAL`` error code.
> video topology configuration, including which I/O entity is routed to
> the input/output, is configured by userspace via the Media Controller.
> See :ref:`media_controller`.
> + * - ``V4L2_CAP_AUDIO_M2M``
> + - 0x40000000
> + - The device supports the audio Memory-To-Memory interface.
> * - ``V4L2_CAP_DEVICE_CAPS``
> - 0x80000000
> - The driver fills the ``device_caps`` field. This capability can
> diff --git a/Documentation/userspace-api/media/videodev2.h.rst.exceptions b/Documentation/userspace-api/media/videodev2.h.rst.exceptions
> index 3e58aac4ef0b..da6d0b8e4c2c 100644
> --- a/Documentation/userspace-api/media/videodev2.h.rst.exceptions
> +++ b/Documentation/userspace-api/media/videodev2.h.rst.exceptions
> @@ -197,6 +197,7 @@ replace define V4L2_CAP_META_OUTPUT device-capabilities
> replace define V4L2_CAP_DEVICE_CAPS device-capabilities
> replace define V4L2_CAP_TOUCH device-capabilities
> replace define V4L2_CAP_IO_MC device-capabilities
> +replace define V4L2_CAP_AUDIO_M2M device-capabilities
>
> # V4L2 pix flags
> replace define V4L2_PIX_FMT_PRIV_MAGIC :c:type:`v4l2_pix_format`
> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
> index c3d4e490ce7c..d5da76607101 100644
> --- a/include/uapi/linux/videodev2.h
> +++ b/include/uapi/linux/videodev2.h
> @@ -508,6 +508,7 @@ struct v4l2_capability {
> #define V4L2_CAP_TOUCH 0x10000000 /* Is a touch device */
>
> #define V4L2_CAP_IO_MC 0x20000000 /* Is input/output controlled by the media controller */
> +#define V4L2_CAP_AUDIO_M2M 0x40000000 /* audio memory to memory */

Let's pick 0x00000008 for this to fill up a hole in the caps.

Regards,

Hans

>
> #define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */
>