Message ID | 20220225164600.1044663-13-benjamin.gaignard@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Move HEVC stateless controls out of staging | expand |
Hi! Dne petek, 25. februar 2022 ob 17:45:58 CET je Benjamin Gaignard napisal(a): > Hantro hardware needs a dedicated v4l2 control to perform HEVC > decoding. Move it to a dedicated header file to prepare HEVC > uAPI un-staging. > > Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> > --- > .../userspace-api/media/drivers/hantro.rst | 5 ----- > drivers/staging/media/hantro/hantro_drv.c | 1 + > include/media/hevc-ctrls.h | 13 ------------- > include/uapi/linux/hantro-media.h | 19 +++++++++++++++++++ > include/uapi/linux/v4l2-controls.h | 5 +++++ > 5 files changed, 25 insertions(+), 18 deletions(-) > create mode 100644 include/uapi/linux/hantro-media.h > > diff --git a/Documentation/userspace-api/media/drivers/hantro.rst b/ Documentation/userspace-api/media/drivers/hantro.rst > index cd9754b4e005..78dcd2a44a03 100644 > --- a/Documentation/userspace-api/media/drivers/hantro.rst > +++ b/Documentation/userspace-api/media/drivers/hantro.rst > @@ -12,8 +12,3 @@ The Hantro video decoder driver implements the following driver-specific control > to before syntax element "slice_temporal_mvp_enabled_flag". > If IDR, the skipped bits are just "pic_output_flag" > (separate_colour_plane_flag is not supported). > - > -.. note:: > - > - This control is not yet part of the public kernel API and > - it is expected to change. > diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/ media/hantro/hantro_drv.c > index 6f58c259d8fc..783a92a38c8e 100644 > --- a/drivers/staging/media/hantro/hantro_drv.c > +++ b/drivers/staging/media/hantro/hantro_drv.c > @@ -11,6 +11,7 @@ > */ > > #include <linux/clk.h> > +#include <linux/hantro-media.h> > #include <linux/module.h> > #include <linux/of.h> > #include <linux/platform_device.h> > diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h > index cbf41d180fe9..f29298c8c2f8 100644 > --- a/include/media/hevc-ctrls.h > +++ b/include/media/hevc-ctrls.h > @@ -443,17 +443,4 @@ struct v4l2_ctrl_hevc_scaling_matrix { > __u8 scaling_list_dc_coef_32x32[2]; > }; > > -/* MPEG-class control IDs specific to the Hantro driver as defined by V4L2 */ > -#define V4L2_CID_CODEC_HANTRO_BASE (V4L2_CTRL_CLASS_CODEC | 0x1200) > -/* > - * V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP - > - * the number of data (in bits) to skip in the > - * slice segment header. > - * If non-IDR, the bits to be skipped go from syntax element "pic_output_flag" > - * to before syntax element "slice_temporal_mvp_enabled_flag". > - * If IDR, the skipped bits are just "pic_output_flag" > - * (separate_colour_plane_flag is not supported). > - */ > -#define V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP (V4L2_CID_CODEC_HANTRO_BASE + 0) > - > #endif > diff --git a/include/uapi/linux/hantro-media.h b/include/uapi/linux/hantro- media.h > new file mode 100644 > index 000000000000..b4e7ab7e6452 > --- /dev/null > +++ b/include/uapi/linux/hantro-media.h > @@ -0,0 +1,19 @@ > +/* SPDX-License-Identifier: GPL-2.0-or-later */ I get error: include/uapi/linux/hantro-media.h: missing "WITH Linux-syscall-note" for SPDX-License-Identifier make[1]: *** [scripts/Makefile.headersinst:63: usr/include/linux/hantro- media.h] Error 1 when installing headers. Best regards, Jernej > + > +#ifndef __UAPI_HANTRO_MEDIA_H__ > +#define __UAPI_HANTRO_MEDIA_H__ > + > +#include <linux/v4l2-controls.h> > + > +/* > + * V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP - > + * the number of data (in bits) to skip in the > + * slice segment header. > + * If non-IDR, the bits to be skipped go from syntax element "pic_output_flag" > + * to before syntax element "slice_temporal_mvp_enabled_flag". > + * If IDR, the skipped bits are just "pic_output_flag" > + * (separate_colour_plane_flag is not supported). > + */ > +#define V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP (V4L2_CID_USER_HANTRO_BASE + 0) > + > +#endif /* __UAPI_HANTRO_MEDIA_H__ */ > diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2- controls.h > index c8e0f84d204d..d56a1c7fb91d 100644 > --- a/include/uapi/linux/v4l2-controls.h > +++ b/include/uapi/linux/v4l2-controls.h > @@ -218,6 +218,11 @@ enum v4l2_colorfx { > * We reserve 16 controls for this driver. > */ > #define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170) > +/* > + * The base for Hantro driver controls. > + * We reserve 128 controls for this driver. > + */ > +#define V4L2_CID_USER_HANTRO_BASE (V4L2_CID_USER_BASE + 0x1180) > > /* MPEG-class control IDs */ > /* The MPEG controls are applicable to all codec controls > -- > 2.32.0 > >
diff --git a/Documentation/userspace-api/media/drivers/hantro.rst b/Documentation/userspace-api/media/drivers/hantro.rst index cd9754b4e005..78dcd2a44a03 100644 --- a/Documentation/userspace-api/media/drivers/hantro.rst +++ b/Documentation/userspace-api/media/drivers/hantro.rst @@ -12,8 +12,3 @@ The Hantro video decoder driver implements the following driver-specific control to before syntax element "slice_temporal_mvp_enabled_flag". If IDR, the skipped bits are just "pic_output_flag" (separate_colour_plane_flag is not supported). - -.. note:: - - This control is not yet part of the public kernel API and - it is expected to change. diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c index 6f58c259d8fc..783a92a38c8e 100644 --- a/drivers/staging/media/hantro/hantro_drv.c +++ b/drivers/staging/media/hantro/hantro_drv.c @@ -11,6 +11,7 @@ */ #include <linux/clk.h> +#include <linux/hantro-media.h> #include <linux/module.h> #include <linux/of.h> #include <linux/platform_device.h> diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h index cbf41d180fe9..f29298c8c2f8 100644 --- a/include/media/hevc-ctrls.h +++ b/include/media/hevc-ctrls.h @@ -443,17 +443,4 @@ struct v4l2_ctrl_hevc_scaling_matrix { __u8 scaling_list_dc_coef_32x32[2]; }; -/* MPEG-class control IDs specific to the Hantro driver as defined by V4L2 */ -#define V4L2_CID_CODEC_HANTRO_BASE (V4L2_CTRL_CLASS_CODEC | 0x1200) -/* - * V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP - - * the number of data (in bits) to skip in the - * slice segment header. - * If non-IDR, the bits to be skipped go from syntax element "pic_output_flag" - * to before syntax element "slice_temporal_mvp_enabled_flag". - * If IDR, the skipped bits are just "pic_output_flag" - * (separate_colour_plane_flag is not supported). - */ -#define V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP (V4L2_CID_CODEC_HANTRO_BASE + 0) - #endif diff --git a/include/uapi/linux/hantro-media.h b/include/uapi/linux/hantro-media.h new file mode 100644 index 000000000000..b4e7ab7e6452 --- /dev/null +++ b/include/uapi/linux/hantro-media.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef __UAPI_HANTRO_MEDIA_H__ +#define __UAPI_HANTRO_MEDIA_H__ + +#include <linux/v4l2-controls.h> + +/* + * V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP - + * the number of data (in bits) to skip in the + * slice segment header. + * If non-IDR, the bits to be skipped go from syntax element "pic_output_flag" + * to before syntax element "slice_temporal_mvp_enabled_flag". + * If IDR, the skipped bits are just "pic_output_flag" + * (separate_colour_plane_flag is not supported). + */ +#define V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP (V4L2_CID_USER_HANTRO_BASE + 0) + +#endif /* __UAPI_HANTRO_MEDIA_H__ */ diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h index c8e0f84d204d..d56a1c7fb91d 100644 --- a/include/uapi/linux/v4l2-controls.h +++ b/include/uapi/linux/v4l2-controls.h @@ -218,6 +218,11 @@ enum v4l2_colorfx { * We reserve 16 controls for this driver. */ #define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170) +/* + * The base for Hantro driver controls. + * We reserve 128 controls for this driver. + */ +#define V4L2_CID_USER_HANTRO_BASE (V4L2_CID_USER_BASE + 0x1180) /* MPEG-class control IDs */ /* The MPEG controls are applicable to all codec controls
Hantro hardware needs a dedicated v4l2 control to perform HEVC decoding. Move it to a dedicated header file to prepare HEVC uAPI un-staging. Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> --- .../userspace-api/media/drivers/hantro.rst | 5 ----- drivers/staging/media/hantro/hantro_drv.c | 1 + include/media/hevc-ctrls.h | 13 ------------- include/uapi/linux/hantro-media.h | 19 +++++++++++++++++++ include/uapi/linux/v4l2-controls.h | 5 +++++ 5 files changed, 25 insertions(+), 18 deletions(-) create mode 100644 include/uapi/linux/hantro-media.h