drivers/media/platform/verisilicon/hantro_v4l2.c | 1 + .../platform/verisilicon/rockchip_vpu981_hw_av1_dec.c | 4 ++++ drivers/media/platform/verisilicon/rockchip_vpu_hw.c | 14 ++++++++++++++ 3 files changed, 19 insertions(+)
This is a "customer" format, though on Rockchip RK3588 it has been
verified to be NV15 format, which matches what the GPU and display
handles has 10bit pixel formats.
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
---
drivers/media/platform/verisilicon/hantro_v4l2.c | 1 +
.../platform/verisilicon/rockchip_vpu981_hw_av1_dec.c | 4 ++++
drivers/media/platform/verisilicon/rockchip_vpu_hw.c | 14 ++++++++++++++
3 files changed, 19 insertions(+)
diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c b/drivers/media/platform/verisilicon/hantro_v4l2.c
index 2bce940a58227c2bfef2bc3343992e4588ab36a4..7c3515cf7d64a090adfb8d8aff368f9a617f8c8a 100644
--- a/drivers/media/platform/verisilicon/hantro_v4l2.c
+++ b/drivers/media/platform/verisilicon/hantro_v4l2.c
@@ -77,6 +77,7 @@ int hantro_get_format_depth(u32 fourcc)
switch (fourcc) {
case V4L2_PIX_FMT_P010:
case V4L2_PIX_FMT_P010_4L4:
+ case V4L2_PIX_FMT_NV15:
case V4L2_PIX_FMT_NV15_4L4:
return 10;
default:
diff --git a/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c b/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
index 69b5d9e12926fb408c08f8ba2139d05ba44389b7..e4703bb6be7c175a89c0b8868cf2eafb84a872ed 100644
--- a/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
+++ b/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
@@ -2202,6 +2202,10 @@ static void rockchip_vpu981_postproc_enable(struct hantro_ctx *ctx)
case V4L2_PIX_FMT_NV12:
hantro_reg_write(vpu, &av1_pp_out_format, 3);
break;
+ case V4L2_PIX_FMT_NV15:
+ /* this mapping is RK specific */
+ hantro_reg_write(vpu, &av1_pp_out_format, 10);
+ break;
default:
hantro_reg_write(vpu, &av1_pp_out_format, 0);
}
diff --git a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
index 964122e7c355934cd80eb442219f6ba51bba8b71..f7c4a176167b40fe79ec5a6759dff8a77e849ae3 100644
--- a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
+++ b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
@@ -92,6 +92,20 @@ static const struct hantro_fmt rockchip_vpu981_postproc_fmts[] = {
.step_height = MB_DIM,
},
},
+ {
+ .fourcc = V4L2_PIX_FMT_NV15,
+ .codec_mode = HANTRO_MODE_NONE,
+ .match_depth = true,
+ .postprocessed = true,
+ .frmsize = {
+ .min_width = ROCKCHIP_VPU981_MIN_SIZE,
+ .max_width = FMT_4K_WIDTH,
+ .step_width = MB_DIM,
+ .min_height = ROCKCHIP_VPU981_MIN_SIZE,
+ .max_height = FMT_4K_HEIGHT,
+ .step_height = MB_DIM,
+ },
+ },
{
.fourcc = V4L2_PIX_FMT_P010,
.codec_mode = HANTRO_MODE_NONE,
---
base-commit: 9ddc3d6c16ea2587898a315f20f7b8fbd791dc1b
change-id: 20250403-b4-hantro-nv15-support-07def4e7a537
Best regards,
--
Nicolas Dufresne <nicolas.dufresne@collabora.com>
Le 09/04/2025 à 21:30, Nicolas Dufresne a écrit :
> This is a "customer" format, though on Rockchip RK3588 it has been
> verified to be NV15 format, which matches what the GPU and display
> handles has 10bit pixel formats.
>
> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by Benjamin Gaignard <benjamin.gaignard@collabora.com>
> ---
> drivers/media/platform/verisilicon/hantro_v4l2.c | 1 +
> .../platform/verisilicon/rockchip_vpu981_hw_av1_dec.c | 4 ++++
> drivers/media/platform/verisilicon/rockchip_vpu_hw.c | 14 ++++++++++++++
> 3 files changed, 19 insertions(+)
>
> diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c b/drivers/media/platform/verisilicon/hantro_v4l2.c
> index 2bce940a58227c2bfef2bc3343992e4588ab36a4..7c3515cf7d64a090adfb8d8aff368f9a617f8c8a 100644
> --- a/drivers/media/platform/verisilicon/hantro_v4l2.c
> +++ b/drivers/media/platform/verisilicon/hantro_v4l2.c
> @@ -77,6 +77,7 @@ int hantro_get_format_depth(u32 fourcc)
> switch (fourcc) {
> case V4L2_PIX_FMT_P010:
> case V4L2_PIX_FMT_P010_4L4:
> + case V4L2_PIX_FMT_NV15:
> case V4L2_PIX_FMT_NV15_4L4:
> return 10;
> default:
> diff --git a/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c b/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
> index 69b5d9e12926fb408c08f8ba2139d05ba44389b7..e4703bb6be7c175a89c0b8868cf2eafb84a872ed 100644
> --- a/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
> +++ b/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
> @@ -2202,6 +2202,10 @@ static void rockchip_vpu981_postproc_enable(struct hantro_ctx *ctx)
> case V4L2_PIX_FMT_NV12:
> hantro_reg_write(vpu, &av1_pp_out_format, 3);
> break;
> + case V4L2_PIX_FMT_NV15:
> + /* this mapping is RK specific */
> + hantro_reg_write(vpu, &av1_pp_out_format, 10);
> + break;
> default:
> hantro_reg_write(vpu, &av1_pp_out_format, 0);
> }
> diff --git a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
> index 964122e7c355934cd80eb442219f6ba51bba8b71..f7c4a176167b40fe79ec5a6759dff8a77e849ae3 100644
> --- a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
> +++ b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
> @@ -92,6 +92,20 @@ static const struct hantro_fmt rockchip_vpu981_postproc_fmts[] = {
> .step_height = MB_DIM,
> },
> },
> + {
> + .fourcc = V4L2_PIX_FMT_NV15,
> + .codec_mode = HANTRO_MODE_NONE,
> + .match_depth = true,
> + .postprocessed = true,
> + .frmsize = {
> + .min_width = ROCKCHIP_VPU981_MIN_SIZE,
> + .max_width = FMT_4K_WIDTH,
> + .step_width = MB_DIM,
> + .min_height = ROCKCHIP_VPU981_MIN_SIZE,
> + .max_height = FMT_4K_HEIGHT,
> + .step_height = MB_DIM,
> + },
> + },
> {
> .fourcc = V4L2_PIX_FMT_P010,
> .codec_mode = HANTRO_MODE_NONE,
>
> ---
> base-commit: 9ddc3d6c16ea2587898a315f20f7b8fbd791dc1b
> change-id: 20250403-b4-hantro-nv15-support-07def4e7a537
>
> Best regards,
Hi Nicolas,
Typo in subject? s/verisilicono/verisilicon/
At 2025-04-10 03:30:09, "Nicolas Dufresne" <nicolas.dufresne@collabora.com> wrote:
>This is a "customer" format, though on Rockchip RK3588 it has been
>verified to be NV15 format, which matches what the GPU and display
>handles has 10bit pixel formats.
>
>Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
>---
> drivers/media/platform/verisilicon/hantro_v4l2.c | 1 +
> .../platform/verisilicon/rockchip_vpu981_hw_av1_dec.c | 4 ++++
> drivers/media/platform/verisilicon/rockchip_vpu_hw.c | 14 ++++++++++++++
> 3 files changed, 19 insertions(+)
>
>diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c b/drivers/media/platform/verisilicon/hantro_v4l2.c
>index 2bce940a58227c2bfef2bc3343992e4588ab36a4..7c3515cf7d64a090adfb8d8aff368f9a617f8c8a 100644
>--- a/drivers/media/platform/verisilicon/hantro_v4l2.c
>+++ b/drivers/media/platform/verisilicon/hantro_v4l2.c
>@@ -77,6 +77,7 @@ int hantro_get_format_depth(u32 fourcc)
> switch (fourcc) {
> case V4L2_PIX_FMT_P010:
> case V4L2_PIX_FMT_P010_4L4:
>+ case V4L2_PIX_FMT_NV15:
> case V4L2_PIX_FMT_NV15_4L4:
> return 10;
> default:
>diff --git a/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c b/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
>index 69b5d9e12926fb408c08f8ba2139d05ba44389b7..e4703bb6be7c175a89c0b8868cf2eafb84a872ed 100644
>--- a/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
>+++ b/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
>@@ -2202,6 +2202,10 @@ static void rockchip_vpu981_postproc_enable(struct hantro_ctx *ctx)
> case V4L2_PIX_FMT_NV12:
> hantro_reg_write(vpu, &av1_pp_out_format, 3);
> break;
>+ case V4L2_PIX_FMT_NV15:
>+ /* this mapping is RK specific */
>+ hantro_reg_write(vpu, &av1_pp_out_format, 10);
>+ break;
> default:
> hantro_reg_write(vpu, &av1_pp_out_format, 0);
> }
>diff --git a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
>index 964122e7c355934cd80eb442219f6ba51bba8b71..f7c4a176167b40fe79ec5a6759dff8a77e849ae3 100644
>--- a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
>+++ b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
>@@ -92,6 +92,20 @@ static const struct hantro_fmt rockchip_vpu981_postproc_fmts[] = {
> .step_height = MB_DIM,
> },
> },
>+ {
>+ .fourcc = V4L2_PIX_FMT_NV15,
>+ .codec_mode = HANTRO_MODE_NONE,
>+ .match_depth = true,
>+ .postprocessed = true,
>+ .frmsize = {
>+ .min_width = ROCKCHIP_VPU981_MIN_SIZE,
>+ .max_width = FMT_4K_WIDTH,
>+ .step_width = MB_DIM,
>+ .min_height = ROCKCHIP_VPU981_MIN_SIZE,
>+ .max_height = FMT_4K_HEIGHT,
>+ .step_height = MB_DIM,
>+ },
>+ },
> {
> .fourcc = V4L2_PIX_FMT_P010,
> .codec_mode = HANTRO_MODE_NONE,
>
>---
>base-commit: 9ddc3d6c16ea2587898a315f20f7b8fbd791dc1b
>change-id: 20250403-b4-hantro-nv15-support-07def4e7a537
>
>Best regards,
>--
>Nicolas Dufresne <nicolas.dufresne@collabora.com>
>
Hey,
Le jeudi 10 avril 2025 à 08:27 +0800, Andy Yan a écrit :
>
> Hi Nicolas,
> Typo in subject? s/verisilicono/verisilicon/
I noticed few seconds after that email went, fixed locally.
thanks,
Nicolas
>
> At 2025-04-10 03:30:09, "Nicolas Dufresne"
> <nicolas.dufresne@collabora.com> wrote:
> > This is a "customer" format, though on Rockchip RK3588 it has been
> > verified to be NV15 format, which matches what the GPU and display
> > handles has 10bit pixel formats.
> >
> > Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
> > ---
> > drivers/media/platform/verisilicon/hantro_v4l2.c | 1 +
> > .../platform/verisilicon/rockchip_vpu981_hw_av1_dec.c | 4
> > ++++
> > drivers/media/platform/verisilicon/rockchip_vpu_hw.c | 14
> > ++++++++++++++
> > 3 files changed, 19 insertions(+)
> >
> > diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c
> > b/drivers/media/platform/verisilicon/hantro_v4l2.c
> > index
> > 2bce940a58227c2bfef2bc3343992e4588ab36a4..7c3515cf7d64a090adfb8d8af
> > f368f9a617f8c8a 100644
> > --- a/drivers/media/platform/verisilicon/hantro_v4l2.c
> > +++ b/drivers/media/platform/verisilicon/hantro_v4l2.c
> > @@ -77,6 +77,7 @@ int hantro_get_format_depth(u32 fourcc)
> > switch (fourcc) {
> > case V4L2_PIX_FMT_P010:
> > case V4L2_PIX_FMT_P010_4L4:
> > + case V4L2_PIX_FMT_NV15:
> > case V4L2_PIX_FMT_NV15_4L4:
> > return 10;
> > default:
> > diff --git
> > a/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
> > b/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
> > index
> > 69b5d9e12926fb408c08f8ba2139d05ba44389b7..e4703bb6be7c175a89c0b8868
> > cf2eafb84a872ed 100644
> > ---
> > a/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
> > +++
> > b/drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
> > @@ -2202,6 +2202,10 @@ static void
> > rockchip_vpu981_postproc_enable(struct hantro_ctx *ctx)
> > case V4L2_PIX_FMT_NV12:
> > hantro_reg_write(vpu, &av1_pp_out_format, 3);
> > break;
> > + case V4L2_PIX_FMT_NV15:
> > + /* this mapping is RK specific */
> > + hantro_reg_write(vpu, &av1_pp_out_format, 10);
> > + break;
> > default:
> > hantro_reg_write(vpu, &av1_pp_out_format, 0);
> > }
> > diff --git a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
> > b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
> > index
> > 964122e7c355934cd80eb442219f6ba51bba8b71..f7c4a176167b40fe79ec5a675
> > 9dff8a77e849ae3 100644
> > --- a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
> > +++ b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
> > @@ -92,6 +92,20 @@ static const struct hantro_fmt
> > rockchip_vpu981_postproc_fmts[] = {
> > .step_height = MB_DIM,
> > },
> > },
> > + {
> > + .fourcc = V4L2_PIX_FMT_NV15,
> > + .codec_mode = HANTRO_MODE_NONE,
> > + .match_depth = true,
> > + .postprocessed = true,
> > + .frmsize = {
> > + .min_width = ROCKCHIP_VPU981_MIN_SIZE,
> > + .max_width = FMT_4K_WIDTH,
> > + .step_width = MB_DIM,
> > + .min_height = ROCKCHIP_VPU981_MIN_SIZE,
> > + .max_height = FMT_4K_HEIGHT,
> > + .step_height = MB_DIM,
> > + },
> > + },
> > {
> > .fourcc = V4L2_PIX_FMT_P010,
> > .codec_mode = HANTRO_MODE_NONE,
> >
> > ---
> > base-commit: 9ddc3d6c16ea2587898a315f20f7b8fbd791dc1b
> > change-id: 20250403-b4-hantro-nv15-support-07def4e7a537
> >
> > Best regards,
> > --
> > Nicolas Dufresne <nicolas.dufresne@collabora.com>
> >
--
Nicolas Dufresne
Principal Engineer at Collabora
© 2016 - 2026 Red Hat, Inc.