Re: [PATCH v7 0/6] staging: media: wave5: add wave5 codec driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, Hans,

> On 25/04/2022 12:16, Nas Chung wrote:
>> The wave5 codec is a stateful encoder/decoder.
>> It is found on the J721S2 SoC, JH7100 SoC, ssd202d SoC. Etc..
>> But current test report is based on J721S2 SoC.
>>
>> The driver currently supports V4L2_PIX_FMT_HEVC, V4L2_PIX_FMT_H264.
>>
>> This driver has so far been tested on J721S2 EVM board and pre-silicon FPGA.
>>
>> Testing on J721S2 EVM board shows it working fine both decoder and encoder.
>> The driver is successfully working with gstreamer v4l2 good-plugin without any modification.
>>
>> Testing on FPGA also shows it working fine, though the FPGA uses polled interrupts and copied buffers between the host and it's on board RAM.
>>
>> The wave5 driver will be updated to support various EXT_CTRL encoder interface.
> Please note that for some unknown reason neither v6 nor v7 ever reached the
> linux-media mailinglist. Can you try to repost, this time just to the mailinglist
> and with a CC to me?
>
> I have seen this problem before but it was never clear why linux-media would
> reject it. If you have an alternative email address you can email from, then
> you can try that as well.

I think my email client have a problem.
I will change the email client and repost it with the latest version test report.
Should i rename it for PATCH V8?

Thanks.
Nas.

>
>> v4l2-compliance tests from J721S2:
>>
>> # v4l2-compliance -d0
>> v4l2-compliance SHA: not available, 64 bits
> You must compile v4l2-compliance from the v4l-utils git repo. You can tell because
> the SHA will be shown. That way I can be certain you tested with the latest
> v4l2-compliance.
>
>> Compliance test for vpu-dec device /dev/video0:
>>
>> Driver Info:
>>         Driver name      : vpu-dec
>>         Card type        : vpu-dec
>>         Bus info         : platform:vpu-dec
>>         Driver version   : 5.10.100
> 5.10 is really quite old, is it possible to test with a newer kernel?
>
> Regards,
>
>	Hans
>
>>         Capabilities     : 0x84204000
>>                 Video Memory-to-Memory Multiplanar
>>                 Streaming
>>                 Extended Pix Format
>>                 Device Capabilities
>>         Device Caps      : 0x04204000
>>                 Video Memory-to-Memory Multiplanar
>>                 Streaming
>>                 Extended Pix Format
>>         Detected Stateful Decoder
>>
>> Required ioctls:
>>         test VIDIOC_QUERYCAP: OK
>>
>> Allow for multiple opens:
>>         test second /dev/video0 open: OK
>>         test VIDIOC_QUERYCAP: OK
>>         test VIDIOC_G/S_PRIORITY: OK
>>         test for unlimited opens: OK
>>
>> Debug ioctls:
>>         test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
>>         test VIDIOC_LOG_STATUS: OK (Not Supported)
>>
>> Input ioctls:
>>         test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
>>         test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>         test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>>         test VIDIOC_ENUMAUDIO: OK (Not Supported)
>>         test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
>>         test VIDIOC_G/S_AUDIO: OK (Not Supported)
>>         Inputs: 0 Audio Inputs: 0 Tuners: 0
>>
>> Output ioctls:
>>         test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>>         test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>         test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>>         test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>>         test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>>         Outputs: 0 Audio Outputs: 0 Modulators: 0
>>
>> Input/Output configuration ioctls:
>>         test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
>>         test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>>         test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
>>         test VIDIOC_G/S_EDID: OK (Not Supported)
>>
>> Control ioctls:
>>         test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
>>         test VIDIOC_QUERYCTRL: OK
>>         test VIDIOC_G/S_CTRL: OK
>>         test VIDIOC_G/S/TRY_EXT_CTRLS: OK
>>         test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
>>         test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>>         Standard Controls: 2 Private Controls: 1
>>
>> Format ioctls:
>>         test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
>>         test VIDIOC_G/S_PARM: OK (Not Supported)
>>         test VIDIOC_G_FBUF: OK (Not Supported)
>>         test VIDIOC_G_FMT: OK
>>         test VIDIOC_TRY_FMT: OK
>>         test VIDIOC_S_FMT: OK
>>         test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
>>         test Cropping: OK (Not Supported)
>>         test Composing: OK
>>         test Scaling: OK
>>
>> Codec ioctls:
>>         test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
>>         test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>>         test VIDIOC_(TRY_)DECODER_CMD: OK
>>
>> Buffer ioctls:
>>         test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
>>         test VIDIOC_EXPBUF: OK
>>         test Requests: OK (Not Supported)
>>
>> Total for vpu-dec device /dev/video0: 44, Succeeded: 44, Failed: 0, Warnings: 0
>>
>> # v4l2-compliance -d1
>> v4l2-compliance SHA: not available, 64 bits
>>
>> Compliance test for vpu-enc device /dev/video1:
>>
>> Driver Info:
>>         Driver name      : vpu-enc
>>         Card type        : vpu-enc
>>         Bus info         : platform:vpu-enc
>>         Driver version   : 5.10.100
>>         Capabilities     : 0x84204000
>>                 Video Memory-to-Memory Multiplanar
>>                 Streaming
>>                 Extended Pix Format
>>                 Device Capabilities
>>         Device Caps      : 0x04204000
>>                 Video Memory-to-Memory Multiplanar
>>                 Streaming
>>                 Extended Pix Format
>>         Detected Stateful Encoder
>>
>> Required ioctls:
>>         test VIDIOC_QUERYCAP: OK
>>
>> Allow for multiple opens:
>>         test second /dev/video1 open: OK
>>         test VIDIOC_QUERYCAP: OK
>>         test VIDIOC_G/S_PRIORITY: OK
>>         test for unlimited opens: OK
>>
>> Debug ioctls:
>>         test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
>>         test VIDIOC_LOG_STATUS: OK (Not Supported)
>>
>> Input ioctls:
>>         test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
>>         test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>         test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>>         test VIDIOC_ENUMAUDIO: OK (Not Supported)
>>         test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
>>         test VIDIOC_G/S_AUDIO: OK (Not Supported)
>>         Inputs: 0 Audio Inputs: 0 Tuners: 0
>>
>> Output ioctls:
>>         test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>>         test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
>>         test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>>         test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>>         test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>>         Outputs: 0 Audio Outputs: 0 Modulators: 0
>>
>> Input/Output configuration ioctls:
>>         test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
>>         test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>>         test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
>>         test VIDIOC_G/S_EDID: OK (Not Supported)
>>
>> Control ioctls:
>>         test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
>>         test VIDIOC_QUERYCTRL: OK
>>         test VIDIOC_G/S_CTRL: OK
>>         test VIDIOC_G/S/TRY_EXT_CTRLS: OK
>>         test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
>>         test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>>         Standard Controls: 15 Private Controls: 0
>>
>> Format ioctls:
>>         test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
>>                 warn: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-formats.cpp(1320): S_PARM is supported for buftype 2, but not for ENUM_FRAMEINTERVALS
>>                 warn: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-formats.cpp(1320): S_PARM is supported for buftype 10, but not for ENUM_FRAMEINTERVALS
>>         test VIDIOC_G/S_PARM: OK
>>         test VIDIOC_G_FBUF: OK (Not Supported)
>>         test VIDIOC_G_FMT: OK
>>         test VIDIOC_TRY_FMT: OK
>>         test VIDIOC_S_FMT: OK
>>         test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
>>         test Cropping: OK
>>         test Composing: OK (Not Supported)
>>         test Scaling: OK
>>
>> Codec ioctls:
>>         test VIDIOC_(TRY_)ENCODER_CMD: OK
>>         test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>>         test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
>>
>> Buffer ioctls:
>>         test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
>>         test VIDIOC_EXPBUF: OK
>>         test Requests: OK (Not Supported)
>>
>> Total for vpu-enc device /dev/video1: 44, Succeeded: 44, Failed: 0, Warnings: 2
>>
>> changes since v6:
>>
>> * update TODO file
>> * get sram info from device tree
>>
>> changes since v5:
>>
>> * support NV12/NV21 pixelformat for encoder and decoder
>> * handle adnormal exit and EOS
>>
>> changes since v4:
>>
>> * refactor functions in wave5-hw and fix bug reported by Daniel Palmer
>> * rename functions and variables to better names
>> * change variable types such as replacing s32 with u32 and int with bool as appropriate
>>
>> changes since v3:
>>
>> * Fixing all issues commented by Dan Carpenter
>> * Change file names to have wave5- prefix
>> * In wave5_vpu_probe, enable the clocks before reading registers, as commented from Daniel Palmer
>> * Add more to the TODO list,
>>
>> changes since v2:
>>
>> Main fixes includes:
>> * change the yaml and dirver code to support up to 4 clks (instead of one)
>> * fix Kconfig format
>> * remove unneeded cast,
>> * change var types
>> * change var names, func names
>> * checkpatch fixes
>>
>> changes since v1:
>>
>> Fix chanes due to comments from Ezequiel and Dan Carpenter. Main fixes inclueds:
>> * move all files to one dir 'wave5'
>> * replace private error codes with standart error codes
>> * fix extra spaces
>> * various checkpatch fixes
>> * replace private 'DPRINTK' macro with standart 'dev_err/dbg ..'
>> * fix error handling
>> * add more possible fixes to the TODO file
>>
>>
>> Dafna Hirschfeld (1):
>>   staging: media: wave5: Add the vdi layer
>>
>> Nas Chung (3):
>>   staging: media: wave5: Add vpuapi layer
>>   staging: media: wave5: Add the v4l2 layer
>>   staging: media: wave5: Add TODO file
>>
>> Robert Beckett (2):
>>   dt-bindings: media: staging: wave5: add yaml devicetree bindings
>>   media: wave5: Add wave5 driver to maintainers file
>>
>>  .../bindings/staging/media/cnm,wave.yaml      |   73 +
>>  MAINTAINERS                                   |    9 +
>>  drivers/staging/media/Kconfig                 |    2 +
>>  drivers/staging/media/Makefile                |    1 +
>>  drivers/staging/media/wave5/Kconfig           |   12 +
>>  drivers/staging/media/wave5/Makefile          |   10 +
>>  drivers/staging/media/wave5/TODO              |   34 +
>>  drivers/staging/media/wave5/wave5-hw.c        | 3405 +++++++++++++++++
>>  drivers/staging/media/wave5/wave5-regdefine.h |  655 ++++
>>  drivers/staging/media/wave5/wave5-vdi.c       |  260 ++
>>  drivers/staging/media/wave5/wave5-vdi.h       |   81 +
>>  drivers/staging/media/wave5/wave5-vpu-dec.c   | 1385 +++++++
>>  drivers/staging/media/wave5/wave5-vpu-enc.c   | 1532 ++++++++
>>  drivers/staging/media/wave5/wave5-vpu.c       |  381 ++
>>  drivers/staging/media/wave5/wave5-vpu.h       |   73 +
>>  drivers/staging/media/wave5/wave5-vpuapi.c    | 1049 +++++
>>  drivers/staging/media/wave5/wave5-vpuapi.h    | 1144 ++++++
>>  drivers/staging/media/wave5/wave5-vpuconfig.h |   91 +
>>  drivers/staging/media/wave5/wave5-vpuerror.h  |  455 +++
>>  drivers/staging/media/wave5/wave5.h           |   82 +
>>  20 files changed, 10734 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/staging/media/cnm,wave.yaml
>>  create mode 100644 drivers/staging/media/wave5/Kconfig
>>  create mode 100644 drivers/staging/media/wave5/Makefile
>>  create mode 100644 drivers/staging/media/wave5/TODO
>>  create mode 100644 drivers/staging/media/wave5/wave5-hw.c
>>  create mode 100644 drivers/staging/media/wave5/wave5-regdefine.h
>>  create mode 100644 drivers/staging/media/wave5/wave5-vdi.c
>>  create mode 100644 drivers/staging/media/wave5/wave5-vdi.h
>>  create mode 100644 drivers/staging/media/wave5/wave5-vpu-dec.c
>>  create mode 100644 drivers/staging/media/wave5/wave5-vpu-enc.c
>>  create mode 100644 drivers/staging/media/wave5/wave5-vpu.c
>>  create mode 100644 drivers/staging/media/wave5/wave5-vpu.h
>>  create mode 100644 drivers/staging/media/wave5/wave5-vpuapi.c
>>  create mode 100644 drivers/staging/media/wave5/wave5-vpuapi.h
>>  create mode 100644 drivers/staging/media/wave5/wave5-vpuconfig.h
>>  create mode 100644 drivers/staging/media/wave5/wave5-vpuerror.h
>>  create mode 100644 drivers/staging/media/wave5/wave5.h



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux