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

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

 



Yes, v8 is fine.

Hans

On April 26, 2022 11:53:15 AM GMT+02:00, Nas Chung <nas.chung@xxxxxxxxxxxxxxx> wrote:
>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

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.




[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