Message ID | 20240604051533.3312944-2-christianshewitt@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] dt-bindings: media: amlogic,gx-vdec: add the GXLX SoC family and update GXL | expand |
On 04/06/2024 07:15, Christian Hewitt wrote: > Add the GXLX SoC platform which is based on GXL but omits the VP9 codec. > > Signed-off-by: Christian Hewitt <christianshewitt@gmail.com> > --- > drivers/staging/media/meson/vdec/vdec.c | 2 + > .../staging/media/meson/vdec/vdec_platform.c | 44 +++++++++++++++++++ > .../staging/media/meson/vdec/vdec_platform.h | 2 + > 3 files changed, 48 insertions(+) > > diff --git a/drivers/staging/media/meson/vdec/vdec.c b/drivers/staging/media/meson/vdec/vdec.c > index de3e0345ab7c..5e5b296f93ba 100644 > --- a/drivers/staging/media/meson/vdec/vdec.c > +++ b/drivers/staging/media/meson/vdec/vdec.c > @@ -982,6 +982,8 @@ static const struct of_device_id vdec_dt_match[] = { > .data = &vdec_platform_gxm }, > { .compatible = "amlogic,gxl-vdec", > .data = &vdec_platform_gxl }, > + { .compatible = "amlogic,gxlx-vdec", > + .data = &vdec_platform_gxlx }, > { .compatible = "amlogic,g12a-vdec", > .data = &vdec_platform_g12a }, > { .compatible = "amlogic,sm1-vdec", > diff --git a/drivers/staging/media/meson/vdec/vdec_platform.c b/drivers/staging/media/meson/vdec/vdec_platform.c > index 70c9fd7c8bc5..66bb307db85a 100644 > --- a/drivers/staging/media/meson/vdec/vdec_platform.c > +++ b/drivers/staging/media/meson/vdec/vdec_platform.c > @@ -101,6 +101,44 @@ static const struct amvdec_format vdec_formats_gxl[] = { > }, > }; > > +static const struct amvdec_format vdec_formats_gxlx[] = { > + { > + .pixfmt = V4L2_PIX_FMT_H264, > + .min_buffers = 2, > + .max_buffers = 24, > + .max_width = 3840, > + .max_height = 2160, > + .vdec_ops = &vdec_1_ops, > + .codec_ops = &codec_h264_ops, > + .firmware_path = "meson/vdec/gxl_h264.bin", > + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 }, > + .flags = V4L2_FMT_FLAG_COMPRESSED | > + V4L2_FMT_FLAG_DYN_RESOLUTION, > + }, { > + .pixfmt = V4L2_PIX_FMT_MPEG1, > + .min_buffers = 8, > + .max_buffers = 8, > + .max_width = 1920, > + .max_height = 1080, > + .vdec_ops = &vdec_1_ops, > + .codec_ops = &codec_mpeg12_ops, > + .firmware_path = "meson/vdec/gxl_mpeg12.bin", > + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 }, > + .flags = V4L2_FMT_FLAG_COMPRESSED, > + }, { > + .pixfmt = V4L2_PIX_FMT_MPEG2, > + .min_buffers = 8, > + .max_buffers = 8, > + .max_width = 1920, > + .max_height = 1080, > + .vdec_ops = &vdec_1_ops, > + .codec_ops = &codec_mpeg12_ops, > + .firmware_path = "meson/vdec/gxl_mpeg12.bin", > + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 }, > + .flags = V4L2_FMT_FLAG_COMPRESSED, > + }, > +}; > + > static const struct amvdec_format vdec_formats_gxm[] = { > { > .pixfmt = V4L2_PIX_FMT_VP9, > @@ -263,6 +301,12 @@ const struct vdec_platform vdec_platform_gxl = { > .revision = VDEC_REVISION_GXL, > }; > > +const struct vdec_platform vdec_platform_gxlx = { > + .formats = vdec_formats_gxlx, > + .num_formats = ARRAY_SIZE(vdec_formats_gxlx), > + .revision = VDEC_REVISION_GXLX, > +}; > + > const struct vdec_platform vdec_platform_gxm = { > .formats = vdec_formats_gxm, > .num_formats = ARRAY_SIZE(vdec_formats_gxm), > diff --git a/drivers/staging/media/meson/vdec/vdec_platform.h b/drivers/staging/media/meson/vdec/vdec_platform.h > index 731877a771f4..88ca4a9db8a8 100644 > --- a/drivers/staging/media/meson/vdec/vdec_platform.h > +++ b/drivers/staging/media/meson/vdec/vdec_platform.h > @@ -14,6 +14,7 @@ struct amvdec_format; > enum vdec_revision { > VDEC_REVISION_GXBB, > VDEC_REVISION_GXL, > + VDEC_REVISION_GXLX, > VDEC_REVISION_GXM, > VDEC_REVISION_G12A, > VDEC_REVISION_SM1, > @@ -28,6 +29,7 @@ struct vdec_platform { > extern const struct vdec_platform vdec_platform_gxbb; > extern const struct vdec_platform vdec_platform_gxm; > extern const struct vdec_platform vdec_platform_gxl; > +extern const struct vdec_platform vdec_platform_gxlx; > extern const struct vdec_platform vdec_platform_g12a; > extern const struct vdec_platform vdec_platform_sm1; > Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
diff --git a/drivers/staging/media/meson/vdec/vdec.c b/drivers/staging/media/meson/vdec/vdec.c index de3e0345ab7c..5e5b296f93ba 100644 --- a/drivers/staging/media/meson/vdec/vdec.c +++ b/drivers/staging/media/meson/vdec/vdec.c @@ -982,6 +982,8 @@ static const struct of_device_id vdec_dt_match[] = { .data = &vdec_platform_gxm }, { .compatible = "amlogic,gxl-vdec", .data = &vdec_platform_gxl }, + { .compatible = "amlogic,gxlx-vdec", + .data = &vdec_platform_gxlx }, { .compatible = "amlogic,g12a-vdec", .data = &vdec_platform_g12a }, { .compatible = "amlogic,sm1-vdec", diff --git a/drivers/staging/media/meson/vdec/vdec_platform.c b/drivers/staging/media/meson/vdec/vdec_platform.c index 70c9fd7c8bc5..66bb307db85a 100644 --- a/drivers/staging/media/meson/vdec/vdec_platform.c +++ b/drivers/staging/media/meson/vdec/vdec_platform.c @@ -101,6 +101,44 @@ static const struct amvdec_format vdec_formats_gxl[] = { }, }; +static const struct amvdec_format vdec_formats_gxlx[] = { + { + .pixfmt = V4L2_PIX_FMT_H264, + .min_buffers = 2, + .max_buffers = 24, + .max_width = 3840, + .max_height = 2160, + .vdec_ops = &vdec_1_ops, + .codec_ops = &codec_h264_ops, + .firmware_path = "meson/vdec/gxl_h264.bin", + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 }, + .flags = V4L2_FMT_FLAG_COMPRESSED | + V4L2_FMT_FLAG_DYN_RESOLUTION, + }, { + .pixfmt = V4L2_PIX_FMT_MPEG1, + .min_buffers = 8, + .max_buffers = 8, + .max_width = 1920, + .max_height = 1080, + .vdec_ops = &vdec_1_ops, + .codec_ops = &codec_mpeg12_ops, + .firmware_path = "meson/vdec/gxl_mpeg12.bin", + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 }, + .flags = V4L2_FMT_FLAG_COMPRESSED, + }, { + .pixfmt = V4L2_PIX_FMT_MPEG2, + .min_buffers = 8, + .max_buffers = 8, + .max_width = 1920, + .max_height = 1080, + .vdec_ops = &vdec_1_ops, + .codec_ops = &codec_mpeg12_ops, + .firmware_path = "meson/vdec/gxl_mpeg12.bin", + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 }, + .flags = V4L2_FMT_FLAG_COMPRESSED, + }, +}; + static const struct amvdec_format vdec_formats_gxm[] = { { .pixfmt = V4L2_PIX_FMT_VP9, @@ -263,6 +301,12 @@ const struct vdec_platform vdec_platform_gxl = { .revision = VDEC_REVISION_GXL, }; +const struct vdec_platform vdec_platform_gxlx = { + .formats = vdec_formats_gxlx, + .num_formats = ARRAY_SIZE(vdec_formats_gxlx), + .revision = VDEC_REVISION_GXLX, +}; + const struct vdec_platform vdec_platform_gxm = { .formats = vdec_formats_gxm, .num_formats = ARRAY_SIZE(vdec_formats_gxm), diff --git a/drivers/staging/media/meson/vdec/vdec_platform.h b/drivers/staging/media/meson/vdec/vdec_platform.h index 731877a771f4..88ca4a9db8a8 100644 --- a/drivers/staging/media/meson/vdec/vdec_platform.h +++ b/drivers/staging/media/meson/vdec/vdec_platform.h @@ -14,6 +14,7 @@ struct amvdec_format; enum vdec_revision { VDEC_REVISION_GXBB, VDEC_REVISION_GXL, + VDEC_REVISION_GXLX, VDEC_REVISION_GXM, VDEC_REVISION_G12A, VDEC_REVISION_SM1, @@ -28,6 +29,7 @@ struct vdec_platform { extern const struct vdec_platform vdec_platform_gxbb; extern const struct vdec_platform vdec_platform_gxm; extern const struct vdec_platform vdec_platform_gxl; +extern const struct vdec_platform vdec_platform_gxlx; extern const struct vdec_platform vdec_platform_g12a; extern const struct vdec_platform vdec_platform_sm1;
Add the GXLX SoC platform which is based on GXL but omits the VP9 codec. Signed-off-by: Christian Hewitt <christianshewitt@gmail.com> --- drivers/staging/media/meson/vdec/vdec.c | 2 + .../staging/media/meson/vdec/vdec_platform.c | 44 +++++++++++++++++++ .../staging/media/meson/vdec/vdec_platform.h | 2 + 3 files changed, 48 insertions(+)