mbox series

[RESEND,v6,0/4] Add features to an existing driver

Message ID 20240617104818.221-1-jackson.lee@chipsnmedia.com
Headers show
Series Add features to an existing driver | expand

Message

jackson.lee June 17, 2024, 10:48 a.m. UTC
The wave5 codec driver is a stateful encoder/decoder.
The following patches is for supporting yuv422 inpuy format, supporting runtime suspend/resume feature and extra things.

v4l2-compliance results:
========================

v4l2-compliance 1.24.1, 64 bits, 64-bit time_t

Buffer ioctls:
       warn: v4l2-test-buffers.cpp(693): VIDIOC_CREATE_BUFS not supported
       warn: v4l2-test-buffers.cpp(693): VIDIOC_CREATE_BUFS not supported
    test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
    test VIDIOC_EXPBUF: OK
    test Requests: OK (Not Supported)

Total for wave5-dec device /dev/video0: 45, Succeeded: 45, Failed: 0, Warnings: 2 Total for wave5-enc device /dev/video1: 45, Succeeded: 45, Failed: 0, Warnings: 0

Fluster test results:
=====================

Running test suite JCT-VC-HEVC_V1 with decoder GStreamer-H.265-V4L2-Gst1.0 Using 1 parallel job(s)
Ran 132/147 tests successfully               in 88.745 secs

(1 test fails because of not supporting to parse multi frames, 1 test fails because of a missing frame and slight corruption,
 2 tests fail because of sizes which are incompatible with the IP, 11 tests fail because of unsupported 10 bit format)

Running test suite JVT-AVC_V1 with decoder GStreamer-H.264-V4L2-Gst1.0 Using 1 parallel job(s)
Ran 77/135 tests successfully               in 32.044 secs

(58 fail because the hardware is unable to decode  MBAFF / FMO / Field / Extended profile streams.)

Change since v5:
================
* For [PATCH v4 3/4] media: chips-media: wave5: Use helpers to calculate bytesperline and sizeimage.
 - Fix v4l2-compliance error for the vidioc_enum_framesizes

* For [PATCH v4 1/4] media: chips-media: wave5: Support SPS/PPS generation for each IDR
 - Remove warning messages for the checkpatch.pl script

Change since v4:
================
* For [PATCH v4 2/4] media: chips-media: wave5: Support runtime suspend/resume
 - Fix warning message

* For [PATCH v4 3/4] media: chips-media: wave5: Use helpers to calculate bytesperline and sizeimage.
 - Fix warning message
 - add Reviewed-By tag

* For [PATCH v4 4/4] media: chips-media: wave5: Support YUV422 raw pixel-formats on the encoder
 - add Reviewed-By tag

Change since v3:
=================

* For [PATCH v4 1/4] media: chips-media: wave5: Support SPS/PPS generation for each IDR
 - add Reviewed-By tag

* For [PATCH v4 2/4] media: chips-media: wave5: Support runtime suspend/resume
 - add Reviewed-By tag

* For [PATCH v4 3/4] media: chips-media: wave5: Use helpers to calculate bytesperline and sizeimage.
 - modify the commit message
 - define three framesize structures for decoder

* For [PATCH v4 4/4] media: chips-media: wave5: Support YUV422 raw pixel-formats on the encoder
 - modify the commit message
 - use the v4l2_format_info to calculate luma, chroma size

Change since v2:
=================

* For [PATCH v3 0/4] media: chips-media: wave5: Support SPS/PPS generation for each IDR
 - add the suggested _SHIFT suffix

* For [PATCH v3 1/4] media: chips-media: wave5: Support runtime suspend/resume
 - change a commit message

* For [PATCH v3 2/4] media: chips-media: wave5: Use helpers to calculate bytesperline and sizeimage
 - add pix_fmt_type parameter into wave5_update_pix_fmt function
 - add min/max width/height values into dec_fmt_list 

Change since v1:
=================

* For [PATCH v2 0/4] media: chips-media: wave5: Support SPS/PPS generation for each IDR
 - define a macro for register addresses

* For [PATCH v2 1/4] media: chips-media: wave5: Support runtime suspend/resume
 - add auto suspend/resume

* For [PATCH v2 2/4] media: chips-media: wave5: Use helpers to calculate bytesperline and sizeimage
 - use helper functions to calculate bytesperline and sizeimage

* For [PATCH v2 3/4] media: chips-media: wave5: Support YUV422 raw pixel-formats on the encoder
 - remove unnecessary codes

Change since v0:
=================
The DEFAULT_SRC_SIZE macro was defined using multiple lines, To make a simple define, tab and multiple lines has been removed, The macro is defined using one line.


jackson.lee (4):
  media: chips-media: wave5: Support SPS/PPS generation for each IDR
  media: chips-media: wave5: Support runtime suspend/resume
  media: chips-media: wave5: Use helpers to calculate bytesperline and
    sizeimage.
  media: chips-media: wave5: Support YUV422 raw pixel-formats on the
    encoder.

 .../platform/chips-media/wave5/wave5-helper.c |  24 ++
 .../platform/chips-media/wave5/wave5-helper.h |   5 +
 .../platform/chips-media/wave5/wave5-hw.c     |  30 +-
 .../chips-media/wave5/wave5-vpu-dec.c         | 316 +++++++-----------
 .../chips-media/wave5/wave5-vpu-enc.c         | 308 +++++++++--------
 .../platform/chips-media/wave5/wave5-vpu.c    |  43 +++
 .../platform/chips-media/wave5/wave5-vpu.h    |   5 +-
 .../platform/chips-media/wave5/wave5-vpuapi.c |  14 +-
 .../platform/chips-media/wave5/wave5-vpuapi.h |   1 +
 .../chips-media/wave5/wave5-vpuconfig.h       |  27 +-
 .../media/platform/chips-media/wave5/wave5.h  |   3 +
 11 files changed, 430 insertions(+), 346 deletions(-)

Comments

Sebastian Fricke June 18, 2024, 9:29 a.m. UTC | #1
Hey Jackson,

what is up with all the resends, I can see that you send V6 two times
without a RESEND tag and once with a RESEND tag?
Was that an error on your side or did you actually change something?
Does it matter for me which version to consider or are they all the same
content-wise?

Regards,
Sebastian

On 17.06.2024 19:48, Jackson.lee wrote:
>The wave5 codec driver is a stateful encoder/decoder.
>The following patches is for supporting yuv422 inpuy format, supporting runtime suspend/resume feature and extra things.
>
>v4l2-compliance results:
>========================
>
>v4l2-compliance 1.24.1, 64 bits, 64-bit time_t
>
>Buffer ioctls:
>       warn: v4l2-test-buffers.cpp(693): VIDIOC_CREATE_BUFS not supported
>       warn: v4l2-test-buffers.cpp(693): VIDIOC_CREATE_BUFS not supported
>    test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
>    test VIDIOC_EXPBUF: OK
>    test Requests: OK (Not Supported)
>
>Total for wave5-dec device /dev/video0: 45, Succeeded: 45, Failed: 0, Warnings: 2 Total for wave5-enc device /dev/video1: 45, Succeeded: 45, Failed: 0, Warnings: 0
>
>Fluster test results:
>=====================
>
>Running test suite JCT-VC-HEVC_V1 with decoder GStreamer-H.265-V4L2-Gst1.0 Using 1 parallel job(s)
>Ran 132/147 tests successfully               in 88.745 secs
>
>(1 test fails because of not supporting to parse multi frames, 1 test fails because of a missing frame and slight corruption,
> 2 tests fail because of sizes which are incompatible with the IP, 11 tests fail because of unsupported 10 bit format)
>
>Running test suite JVT-AVC_V1 with decoder GStreamer-H.264-V4L2-Gst1.0 Using 1 parallel job(s)
>Ran 77/135 tests successfully               in 32.044 secs
>
>(58 fail because the hardware is unable to decode  MBAFF / FMO / Field / Extended profile streams.)
>
>Change since v5:
>================
>* For [PATCH v4 3/4] media: chips-media: wave5: Use helpers to calculate bytesperline and sizeimage.
> - Fix v4l2-compliance error for the vidioc_enum_framesizes
>
>* For [PATCH v4 1/4] media: chips-media: wave5: Support SPS/PPS generation for each IDR
> - Remove warning messages for the checkpatch.pl script
>
>Change since v4:
>================
>* For [PATCH v4 2/4] media: chips-media: wave5: Support runtime suspend/resume
> - Fix warning message
>
>* For [PATCH v4 3/4] media: chips-media: wave5: Use helpers to calculate bytesperline and sizeimage.
> - Fix warning message
> - add Reviewed-By tag
>
>* For [PATCH v4 4/4] media: chips-media: wave5: Support YUV422 raw pixel-formats on the encoder
> - add Reviewed-By tag
>
>Change since v3:
>=================
>
>* For [PATCH v4 1/4] media: chips-media: wave5: Support SPS/PPS generation for each IDR
> - add Reviewed-By tag
>
>* For [PATCH v4 2/4] media: chips-media: wave5: Support runtime suspend/resume
> - add Reviewed-By tag
>
>* For [PATCH v4 3/4] media: chips-media: wave5: Use helpers to calculate bytesperline and sizeimage.
> - modify the commit message
> - define three framesize structures for decoder
>
>* For [PATCH v4 4/4] media: chips-media: wave5: Support YUV422 raw pixel-formats on the encoder
> - modify the commit message
> - use the v4l2_format_info to calculate luma, chroma size
>
>Change since v2:
>=================
>
>* For [PATCH v3 0/4] media: chips-media: wave5: Support SPS/PPS generation for each IDR
> - add the suggested _SHIFT suffix
>
>* For [PATCH v3 1/4] media: chips-media: wave5: Support runtime suspend/resume
> - change a commit message
>
>* For [PATCH v3 2/4] media: chips-media: wave5: Use helpers to calculate bytesperline and sizeimage
> - add pix_fmt_type parameter into wave5_update_pix_fmt function
> - add min/max width/height values into dec_fmt_list
>
>Change since v1:
>=================
>
>* For [PATCH v2 0/4] media: chips-media: wave5: Support SPS/PPS generation for each IDR
> - define a macro for register addresses
>
>* For [PATCH v2 1/4] media: chips-media: wave5: Support runtime suspend/resume
> - add auto suspend/resume
>
>* For [PATCH v2 2/4] media: chips-media: wave5: Use helpers to calculate bytesperline and sizeimage
> - use helper functions to calculate bytesperline and sizeimage
>
>* For [PATCH v2 3/4] media: chips-media: wave5: Support YUV422 raw pixel-formats on the encoder
> - remove unnecessary codes
>
>Change since v0:
>=================
>The DEFAULT_SRC_SIZE macro was defined using multiple lines, To make a simple define, tab and multiple lines has been removed, The macro is defined using one line.
>
>
>jackson.lee (4):
>  media: chips-media: wave5: Support SPS/PPS generation for each IDR
>  media: chips-media: wave5: Support runtime suspend/resume
>  media: chips-media: wave5: Use helpers to calculate bytesperline and
>    sizeimage.
>  media: chips-media: wave5: Support YUV422 raw pixel-formats on the
>    encoder.
>
> .../platform/chips-media/wave5/wave5-helper.c |  24 ++
> .../platform/chips-media/wave5/wave5-helper.h |   5 +
> .../platform/chips-media/wave5/wave5-hw.c     |  30 +-
> .../chips-media/wave5/wave5-vpu-dec.c         | 316 +++++++-----------
> .../chips-media/wave5/wave5-vpu-enc.c         | 308 +++++++++--------
> .../platform/chips-media/wave5/wave5-vpu.c    |  43 +++
> .../platform/chips-media/wave5/wave5-vpu.h    |   5 +-
> .../platform/chips-media/wave5/wave5-vpuapi.c |  14 +-
> .../platform/chips-media/wave5/wave5-vpuapi.h |   1 +
> .../chips-media/wave5/wave5-vpuconfig.h       |  27 +-
> .../media/platform/chips-media/wave5/wave5.h  |   3 +
> 11 files changed, 430 insertions(+), 346 deletions(-)
>
>-- 
>2.43.0
>
jackson.lee June 19, 2024, 5:38 a.m. UTC | #2
Hi Sebastian

> -----Original Message-----
> From: Sebastian Fricke <sebastian.fricke@collabora.com>
> Sent: Tuesday, June 18, 2024 6:30 PM
> To: jackson.lee <jackson.lee@chipsnmedia.com>
> Cc: mchehab@kernel.org; nicolas@ndufresne.ca; linux-media@vger.kernel.org;
> linux-kernel@vger.kernel.org; hverkuil@xs4all.nl; Nas Chung
> <nas.chung@chipsnmedia.com>; lafley.kim <lafley.kim@chipsnmedia.com>; b-
> brnich@ti.com
> Subject: Re: [RESEND PATCH v6 0/4] Add features to an existing driver
> 
> Hey Jackson,
> 
> what is up with all the resends, I can see that you send V6 two times without
> a RESEND tag and once with a RESEND tag?
> Was that an error on your side or did you actually change something?
> Does it matter for me which version to consider or are they all the same
> content-wise?
> 


Sorry for the confusion.

Please pick the v6 RESEND patch, and please ignore the v6 patches sent two times without the RESEND tag.
I missed to remove the "-ENOTTY" code in the v6 patch two times,  I sent the v6 patch with RESEND tag, again.

Thanks
Jackson

> Regards,
> Sebastian
> 
> On 17.06.2024 19:48, Jackson.lee wrote:
> >The wave5 codec driver is a stateful encoder/decoder.
> >The following patches is for supporting yuv422 inpuy format, supporting
> runtime suspend/resume feature and extra things.
> >
> >v4l2-compliance results:
> >========================
> >
> >v4l2-compliance 1.24.1, 64 bits, 64-bit time_t
> >
> >Buffer ioctls:
> >       warn: v4l2-test-buffers.cpp(693): VIDIOC_CREATE_BUFS not supported
> >       warn: v4l2-test-buffers.cpp(693): VIDIOC_CREATE_BUFS not supported
> >    test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
> >    test VIDIOC_EXPBUF: OK
> >    test Requests: OK (Not Supported)
> >
> >Total for wave5-dec device /dev/video0: 45, Succeeded: 45, Failed: 0,
> >Warnings: 2 Total for wave5-enc device /dev/video1: 45, Succeeded: 45,
> >Failed: 0, Warnings: 0
> >
> >Fluster test results:
> >=====================
> >
> >Running test suite JCT-VC-HEVC_V1 with decoder GStreamer-H.265-V4L2-Gst1.0
> Using 1 parallel job(s)
> >Ran 132/147 tests successfully               in 88.745 secs
> >
> >(1 test fails because of not supporting to parse multi frames, 1 test
> >fails because of a missing frame and slight corruption,
> > 2 tests fail because of sizes which are incompatible with the IP, 11
> >tests fail because of unsupported 10 bit format)
> >
> >Running test suite JVT-AVC_V1 with decoder GStreamer-H.264-V4L2-Gst1.0 Using
> 1 parallel job(s)
> >Ran 77/135 tests successfully               in 32.044 secs
> >
> >(58 fail because the hardware is unable to decode  MBAFF / FMO / Field
> >/ Extended profile streams.)
> >
> >Change since v5:
> >================
> >* For [PATCH v4 3/4] media: chips-media: wave5: Use helpers to calculate
> bytesperline and sizeimage.
> > - Fix v4l2-compliance error for the vidioc_enum_framesizes
> >
> >* For [PATCH v4 1/4] media: chips-media: wave5: Support SPS/PPS
> >generation for each IDR
> > - Remove warning messages for the checkpatch.pl script
> >
> >Change since v4:
> >================
> >* For [PATCH v4 2/4] media: chips-media: wave5: Support runtime
> >suspend/resume
> > - Fix warning message
> >
> >* For [PATCH v4 3/4] media: chips-media: wave5: Use helpers to calculate
> bytesperline and sizeimage.
> > - Fix warning message
> > - add Reviewed-By tag
> >
> >* For [PATCH v4 4/4] media: chips-media: wave5: Support YUV422 raw
> >pixel-formats on the encoder
> > - add Reviewed-By tag
> >
> >Change since v3:
> >=================
> >
> >* For [PATCH v4 1/4] media: chips-media: wave5: Support SPS/PPS
> >generation for each IDR
> > - add Reviewed-By tag
> >
> >* For [PATCH v4 2/4] media: chips-media: wave5: Support runtime
> >suspend/resume
> > - add Reviewed-By tag
> >
> >* For [PATCH v4 3/4] media: chips-media: wave5: Use helpers to calculate
> bytesperline and sizeimage.
> > - modify the commit message
> > - define three framesize structures for decoder
> >
> >* For [PATCH v4 4/4] media: chips-media: wave5: Support YUV422 raw
> >pixel-formats on the encoder
> > - modify the commit message
> > - use the v4l2_format_info to calculate luma, chroma size
> >
> >Change since v2:
> >=================
> >
> >* For [PATCH v3 0/4] media: chips-media: wave5: Support SPS/PPS
> >generation for each IDR
> > - add the suggested _SHIFT suffix
> >
> >* For [PATCH v3 1/4] media: chips-media: wave5: Support runtime
> >suspend/resume
> > - change a commit message
> >
> >* For [PATCH v3 2/4] media: chips-media: wave5: Use helpers to
> >calculate bytesperline and sizeimage
> > - add pix_fmt_type parameter into wave5_update_pix_fmt function
> > - add min/max width/height values into dec_fmt_list
> >
> >Change since v1:
> >=================
> >
> >* For [PATCH v2 0/4] media: chips-media: wave5: Support SPS/PPS
> >generation for each IDR
> > - define a macro for register addresses
> >
> >* For [PATCH v2 1/4] media: chips-media: wave5: Support runtime
> >suspend/resume
> > - add auto suspend/resume
> >
> >* For [PATCH v2 2/4] media: chips-media: wave5: Use helpers to
> >calculate bytesperline and sizeimage
> > - use helper functions to calculate bytesperline and sizeimage
> >
> >* For [PATCH v2 3/4] media: chips-media: wave5: Support YUV422 raw
> >pixel-formats on the encoder
> > - remove unnecessary codes
> >
> >Change since v0:
> >=================
> >The DEFAULT_SRC_SIZE macro was defined using multiple lines, To make a
> simple define, tab and multiple lines has been removed, The macro is defined
> using one line.
> >
> >
> >jackson.lee (4):
> >  media: chips-media: wave5: Support SPS/PPS generation for each IDR
> >  media: chips-media: wave5: Support runtime suspend/resume
> >  media: chips-media: wave5: Use helpers to calculate bytesperline and
> >    sizeimage.
> >  media: chips-media: wave5: Support YUV422 raw pixel-formats on the
> >    encoder.
> >
> > .../platform/chips-media/wave5/wave5-helper.c |  24 ++
> > .../platform/chips-media/wave5/wave5-helper.h |   5 +
> > .../platform/chips-media/wave5/wave5-hw.c     |  30 +-
> > .../chips-media/wave5/wave5-vpu-dec.c         | 316 +++++++-----------
> > .../chips-media/wave5/wave5-vpu-enc.c         | 308 +++++++++--------
> > .../platform/chips-media/wave5/wave5-vpu.c    |  43 +++
> > .../platform/chips-media/wave5/wave5-vpu.h    |   5 +-
> > .../platform/chips-media/wave5/wave5-vpuapi.c |  14 +-
> > .../platform/chips-media/wave5/wave5-vpuapi.h |   1 +
> > .../chips-media/wave5/wave5-vpuconfig.h       |  27 +-
> > .../media/platform/chips-media/wave5/wave5.h  |   3 +
> > 11 files changed, 430 insertions(+), 346 deletions(-)
> >
> >--
> >2.43.0
> >