Message ID | 20210311154055.3496076-1-emil.l.velikov@gmail.com |
---|---|
Headers | show |
Series | Microship SAMA5D4 VPU support et al | expand |
On Thu, 2021-03-11 at 15:40 +0000, Emil Velikov wrote: > Hi all > > This series adds support for the Microchip SAMA5D4 VPU, which it based > on the Hantro G1. > > The hardware can support up-to 1280x720 for each of the MPEG2, VP8 and > H264 codecs. There is only a single decoder and no encoders on the SoC. > > The Hantro G1 post-processing is also enabled on the platform. > > To minimise duplication, the series starts with a few small cleanups. > > > As you may have noticed, this is my first patches series to linux-media, > so any tips how to make this as smoother process are appreciated. > > > Changes in v2: > - Add testing results in the cover letter (thanks Eze) > - s/Atmel/Microchip/ through the series (thanks Nicolas) > - Split defconfig change into separate commit (thanks Eze, Nicolas) > - Added Reviewed-by and Fixes tags (thanks Philipp) > - Split DT into separate commit, wrote binding document, fixup minor DT > warnings (thanks Eze) > - Rebased on top of 5.12-rc2, as per Linus' email to avoid 5.12-rc1 > https://lwn.net/Articles/848265/ > > > > Testing > ------- > > - v4l-compliance > > Command used: > v4l2-compliance -m0 > > Output summary: > > v4l2-compliance 1.21.0-4740, 32 bits, 32-bit time_t > v4l2-compliance SHA: f253495fa6de 2021-03-06 15:32:09 > > Compliance test for hantro-vpu device /dev/media0: > > Total for hantro-vpu device /dev/media0: 8, Succeeded: 8, Failed: 0, > Warnings: 0 > > Compliance test for hantro-vpu device /dev/video0: > > Total for hantro-vpu device /dev/video0: 46, Succeeded: 46, Failed: 0, > Warnings: 0 > > > - Post-processor testing > > Command used: > gst-launch-1.0 -v filesrc location=test.mp4 ! decodebin3 ! > video/x-raw,format=YUY2 ! ... > > Confirmed the VPU is used by observing the interrupts triggering, strace > showed extra v4l2 ioctls - VIDIOC_S_FMT(... V4L2_PIX_FMT_YUYV ...) > > > - MPEG2 testing, custom ffmpeg from > https://github.com/Kwiboo/FFmpeg/commits/v4l2-request-hwaccel-4.3 > > Command used: > ffmpeg -hwaccel drm -i mpeg2.mpeg2 -f rawvideo -pix_fmt yuv420p out.raw > > Confirmed the VPU is used by observing the interrupts triggering, strace > showed the v4l2 ioctls being used plus played back the resulting file. > > > - VP8 testing, using fluster > > Command used: > fluster.py run -ts VP8-TEST-VECTORS -d GStreamer-VP8-V4L2SL-Gst1.0 > > Output summary: > > Running test suite VP8-TEST-VECTORS with decoder GStreamer-VP8-V4L2SL-Gst1.0 > Ran 61 tests in 103.273s > > FAILED (failures=9, errors=2) > > > - H264 testing, using fluster > > Command used: > fluster.py run -ts JVT-AVC_V1 -d GStreamer-H.264-V4L2SL-Gst1.0 > > Output summary: > > Running test suite JVT-AVC_V1 with decoder GStreamer-H.264-V4L2SL-Gst1.0 > Ran 135 tests in 420.444s > > FAILED (failures=9, errors=55) > > > Looking forward to your feedback, > Emil > > > Emil Velikov (10): > media: hantro: use G1_REG_INTERRUPT directly for the mpeg2 > media: hantro: imx: reuse MB_DIM define > media: hantro: imx: remove duplicate dec_base init > media: hantro: imx: remove unused include > media: hantro: introduce hantro_g1.c for common API For patches 1-5: Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> > media: dt-bindings: Document SAMA5D4 VDEC bindings This one need to be reviewed by DT maintainers, I think. > media: hantro: add initial SAMA5D4 support For patch 7: Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> > ARM: dts: sama5d4: enable Hantro G1 VDEC > ARM: configs: at91: sama5: update with savedefconfig > ARM: configs: at91: sama5: enable the Hantro G1 engine > These need review from Microchip maintainers. Thanks! Ezequiel > .../media/microchip,sama5d4-vdec.yaml | 59 +++++++++ > arch/arm/boot/dts/sama5d4.dtsi | 9 ++ > arch/arm/configs/sama5_defconfig | 40 +++--- > drivers/staging/media/hantro/Kconfig | 10 +- > drivers/staging/media/hantro/Makefile | 4 + > drivers/staging/media/hantro/hantro_drv.c | 3 + > drivers/staging/media/hantro/hantro_g1.c | 39 ++++++ > .../media/hantro/hantro_g1_mpeg2_dec.c | 5 +- > drivers/staging/media/hantro/hantro_hw.h | 4 + > drivers/staging/media/hantro/imx8m_vpu_hw.c | 27 +--- > drivers/staging/media/hantro/rk3288_vpu_hw.c | 36 +----- > .../staging/media/hantro/sama5d4_vdec_hw.c | 117 ++++++++++++++++++ > 12 files changed, 274 insertions(+), 79 deletions(-) > create mode 100644 Documentation/devicetree/bindings/media/microchip,sama5d4-vdec.yaml > create mode 100644 drivers/staging/media/hantro/hantro_g1.c > create mode 100644 drivers/staging/media/hantro/sama5d4_vdec_hw.c >
On Tue, 16 Mar 2021 at 17:23, Ezequiel Garcia <ezequiel@collabora.com> wrote: > On Thu, 2021-03-11 at 15:40 +0000, Emil Velikov wrote: > > Emil Velikov (10): > > media: hantro: use G1_REG_INTERRUPT directly for the mpeg2 > > media: hantro: imx: reuse MB_DIM define > > media: hantro: imx: remove duplicate dec_base init > > media: hantro: imx: remove unused include > > media: hantro: introduce hantro_g1.c for common API > > For patches 1-5: > > Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> > > > media: dt-bindings: Document SAMA5D4 VDEC bindings > > This one need to be reviewed by DT maintainers, I think. > Rob can you help with this one? > > media: hantro: add initial SAMA5D4 support > > For patch 7: > > Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> > > > ARM: dts: sama5d4: enable Hantro G1 VDEC > > ARM: configs: at91: sama5: update with savedefconfig > > ARM: configs: at91: sama5: enable the Hantro G1 engine > > > > These need review from Microchip maintainers. > Alexandre, Ludovic, Nicolas Do you have any input of the patches or series as a whole? If you prefer we can drop the last two patches for the defconfig. I've included those for posterity. Thanks for the review Eze. Would you recommend that I resend the series with your R-B or it's better to wait for feedback from others? -Emil
Le jeudi 11 mars 2021 à 15:40 +0000, Emil Velikov a écrit : > Hi all > > This series adds support for the Microchip SAMA5D4 VPU, which it based > on the Hantro G1. Perhaps in your next version you could fix the object line, you wrote Microship instead of Microchip. > > The hardware can support up-to 1280x720 for each of the MPEG2, VP8 and > H264 codecs. There is only a single decoder and no encoders on the SoC. > > The Hantro G1 post-processing is also enabled on the platform. > > To minimise duplication, the series starts with a few small cleanups. > > > As you may have noticed, this is my first patches series to linux-media, > so any tips how to make this as smoother process are appreciated. > > > Changes in v2: > - Add testing results in the cover letter (thanks Eze) > - s/Atmel/Microchip/ through the series (thanks Nicolas) > - Split defconfig change into separate commit (thanks Eze, Nicolas) > - Added Reviewed-by and Fixes tags (thanks Philipp) > - Split DT into separate commit, wrote binding document, fixup minor DT > warnings (thanks Eze) > - Rebased on top of 5.12-rc2, as per Linus' email to avoid 5.12-rc1 > https://lwn.net/Articles/848265/ > > > > Testing > ------- > > - v4l-compliance > > Command used: > v4l2-compliance -m0 > > Output summary: > > v4l2-compliance 1.21.0-4740, 32 bits, 32-bit time_t > v4l2-compliance SHA: f253495fa6de 2021-03-06 15:32:09 > > Compliance test for hantro-vpu device /dev/media0: > > Total for hantro-vpu device /dev/media0: 8, Succeeded: 8, Failed: 0, > Warnings: 0 > > Compliance test for hantro-vpu device /dev/video0: > > Total for hantro-vpu device /dev/video0: 46, Succeeded: 46, Failed: 0, > Warnings: 0 > > > - Post-processor testing > > Command used: > gst-launch-1.0 -v filesrc location=test.mp4 ! decodebin3 ! > video/x-raw,format=YUY2 ! ... > > Confirmed the VPU is used by observing the interrupts triggering, strace > showed extra v4l2 ioctls - VIDIOC_S_FMT(... V4L2_PIX_FMT_YUYV ...) > > > - MPEG2 testing, custom ffmpeg from > https://github.com/Kwiboo/FFmpeg/commits/v4l2-request-hwaccel-4.3 > > Command used: > ffmpeg -hwaccel drm -i mpeg2.mpeg2 -f rawvideo -pix_fmt yuv420p out.raw > > Confirmed the VPU is used by observing the interrupts triggering, strace > showed the v4l2 ioctls being used plus played back the resulting file. > > > - VP8 testing, using fluster > > Command used: > fluster.py run -ts VP8-TEST-VECTORS -d GStreamer-VP8-V4L2SL-Gst1.0 > > Output summary: > > Running test suite VP8-TEST-VECTORS with decoder GStreamer-VP8-V4L2SL-Gst1.0 > Ran 61 tests in 103.273s > > FAILED (failures=9, errors=2) > > > - H264 testing, using fluster > > Command used: > fluster.py run -ts JVT-AVC_V1 -d GStreamer-H.264-V4L2SL-Gst1.0 > > Output summary: > > Running test suite JVT-AVC_V1 with decoder GStreamer-H.264-V4L2SL-Gst1.0 > Ran 135 tests in 420.444s > > FAILED (failures=9, errors=55) > > > Looking forward to your feedback, > Emil > > > Emil Velikov (10): > media: hantro: use G1_REG_INTERRUPT directly for the mpeg2 > media: hantro: imx: reuse MB_DIM define > media: hantro: imx: remove duplicate dec_base init > media: hantro: imx: remove unused include > media: hantro: introduce hantro_g1.c for common API > media: dt-bindings: Document SAMA5D4 VDEC bindings > media: hantro: add initial SAMA5D4 support > ARM: dts: sama5d4: enable Hantro G1 VDEC > ARM: configs: at91: sama5: update with savedefconfig > ARM: configs: at91: sama5: enable the Hantro G1 engine > > .../media/microchip,sama5d4-vdec.yaml | 59 +++++++++ > arch/arm/boot/dts/sama5d4.dtsi | 9 ++ > arch/arm/configs/sama5_defconfig | 40 +++--- > drivers/staging/media/hantro/Kconfig | 10 +- > drivers/staging/media/hantro/Makefile | 4 + > drivers/staging/media/hantro/hantro_drv.c | 3 + > drivers/staging/media/hantro/hantro_g1.c | 39 ++++++ > .../media/hantro/hantro_g1_mpeg2_dec.c | 5 +- > drivers/staging/media/hantro/hantro_hw.h | 4 + > drivers/staging/media/hantro/imx8m_vpu_hw.c | 27 +--- > drivers/staging/media/hantro/rk3288_vpu_hw.c | 36 +----- > .../staging/media/hantro/sama5d4_vdec_hw.c | 117 ++++++++++++++++++ > 12 files changed, 274 insertions(+), 79 deletions(-) > create mode 100644 Documentation/devicetree/bindings/media/microchip,sama5d4-vdec.yaml > create mode 100644 drivers/staging/media/hantro/hantro_g1.c > create mode 100644 drivers/staging/media/hantro/sama5d4_vdec_hw.c >
On 24/03/2021 14:44:14+0100, Nicolas Ferre wrote: > Now, when we have the tag from Rob, how to coordinate these different > pieces? Will it go through the media git tree? Will we benefit from a stable > branch to share or will we just have to wait for the driver to hit Mainline > before adding the defconfig and DT patches? > I think the defconfig and dt patches can go through at91 as soon as we get Rob's ack. There is no build dependency so it can be taken at any time. Worst case, we end up with a selected config option that doesn't exist.
Greetings all, On Thu, 25 Mar 2021 at 08:48, Alexandre Belloni <alexandre.belloni@bootlin.com> wrote: > > On 24/03/2021 14:44:14+0100, Nicolas Ferre wrote: > > Now, when we have the tag from Rob, how to coordinate these different > > pieces? Will it go through the media git tree? Will we benefit from a stable > > branch to share or will we just have to wait for the driver to hit Mainline > > before adding the defconfig and DT patches? > > Thanks for the Acked-by Nicolas. > > I think the defconfig and dt patches can go through at91 as soon as we > get Rob's ack. There is no build dependency so it can be taken at any > time. Worst case, we end up with a selected config option that doesn't > exist. > My personal preference is to merge everything in one go. I believe it will be easier from maintainer's point of view, plus odds of conflicts with the AT91 tree are close to zero. Then again, as long as the maintainers are happy - I'm fine either way. Thanks Emil
On 25/03/2021 at 09:48, Alexandre Belloni wrote: > On 24/03/2021 14:44:14+0100, Nicolas Ferre wrote: >> Now, when we have the tag from Rob, how to coordinate these different >> pieces? Will it go through the media git tree? Will we benefit from a stable >> branch to share or will we just have to wait for the driver to hit Mainline >> before adding the defconfig and DT patches? >> > > I think the defconfig and dt patches can go through at91 as soon as we > get Rob's ack. There is no build dependency so it can be taken at any > time. Worst case, we end up with a selected config option that doesn't > exist. Agreed, and it simplify things. My only concern is with triggering some of the bots while checking for DT compatible string definition. Regards, Nicolas -- Nicolas Ferre
On 25/03/2021 at 15:22, Emil Velikov wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > Greetings all, > > On Thu, 25 Mar 2021 at 08:48, Alexandre Belloni > <alexandre.belloni@bootlin.com> wrote: >> >> On 24/03/2021 14:44:14+0100, Nicolas Ferre wrote: >>> Now, when we have the tag from Rob, how to coordinate these different >>> pieces? Will it go through the media git tree? Will we benefit from a stable >>> branch to share or will we just have to wait for the driver to hit Mainline >>> before adding the defconfig and DT patches? >>> > Thanks for the Acked-by Nicolas. > >> >> I think the defconfig and dt patches can go through at91 as soon as we >> get Rob's ack. There is no build dependency so it can be taken at any >> time. Worst case, we end up with a selected config option that doesn't >> exist. >> > My personal preference is to merge everything in one go. > I believe it will be easier from maintainer's point of view, plus odds > of conflicts with the AT91 tree are close to zero. > > Then again, as long as the maintainers are happy - I'm fine either way. I'm taking defconfig 2 last patches of your series right now. No need to include them in subsequent versions. For DT, I'm waiting for settlement on refined code. As indicated by Alexandre, changes will need to travel through arm-soc tree so we'll coordinate when patches are ready. Thanks a lot! Best regards, Nicolas -- Nicolas Ferre