From: Benjamin Gaignard <benjamin.gaignard@collabora.com>
To: ezequiel@collabora.com, p.zabel@pengutronix.de,
mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org,
s.hauer@pengutronix.de, kernel@pengutronix.de,
festevam@gmail.com, linux-imx@nxp.com,
gregkh@linuxfoundation.org, mripard@kernel.org,
paul.kocialkowski@bootlin.com, wens@csie.org,
jernej.skrabec@siol.net, peng.fan@nxp.com,
hverkuil-cisco@xs4all.nl, dan.carpenter@oracle.com
Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, kernel@collabora.com,
Benjamin Gaignard <benjamin.gaignard@collabora.com>
Subject: [PATCH v3 0/9] Add HANTRO G2/HEVC decoder support for IMX8MQ
Date: Mon, 22 Feb 2021 13:23:57 +0100 [thread overview]
Message-ID: <20210222122406.41782-1-benjamin.gaignard@collabora.com> (raw)
The IMX8MQ got two VPUs but until now only G1 has been enabled.
This series aim to add the second VPU (aka G2) and provide basic
HEVC decoding support.
To be able to decode HEVC it is needed to add/update some of the
structures in the uapi. In addition of them one HANTRO dedicated
control is required to inform the driver of the numbre of bits to skip
at the beginning of the slice header.
The hardware require to allocate few auxiliary buffers to store the
references frame or tile size data.
The driver has been tested with fluster test suite stream.
For example with this command: ./fluster.py run -ts JCT-VC-HEVC_V1 -d GStreamer-H.265-V4L2SL-Gst1.0
This series depends of the reset rework posted here: https://www.spinics.net/lists/arm-kernel/msg875766.html
Finally the both VPUs will have a node the device-tree and be
independent from v4l2 point of view.
A branch with all the dev is available here:
https://gitlab.collabora.com/benjamin.gaignard/for-upstream/-/commits/upstream_g2_v2
version 3:
- Fix typo in Hantro v4l2 dedicated control
- Add documentation for the new structures and fields
- Rebased on top of media_tree for-linus-5.12-rc1 tag
version 2:
- remove all change related to scaling
- squash commits to a coherent split
- be more verbose about the added fields
- fix the comments done by Ezequiel about dma_alloc_coherent usage
- fix Dan's comments about control copy, reverse the test logic
in tile_buffer_reallocate, rework some goto and return cases.
- be more verbose about why I change the bindings
- remove all sign-off expect mime since it is confusing
- remove useless clocks in VPUs nodes
Benjamin
Benjamin Gaignard (9):
media: hevc: Modify structures to follow H265 ITU spec
media: hantro: Define HEVC codec profiles and supported features
media: hantro: Add a field to distinguish the hardware versions
media: uapi: Add a control for HANTRO driver
media: hantro: Introduce G2/HEVC decoder
media: hantro: handle V4L2_PIX_FMT_HEVC_SLICE control
media: hantro: IMX8M: add variant for G2/HEVC codec
dt-bindings: media: nxp,imx8mq-vpu: Update bindings
arm64: dts: imx8mq: Add node to G2 hardware
.../bindings/media/nxp,imx8mq-vpu.yaml | 54 +-
.../media/v4l/ext-ctrls-codec.rst | 126 +++-
.../media/v4l/vidioc-queryctrl.rst | 6 +
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 41 +-
drivers/media/v4l2-core/v4l2-ctrls.c | 26 +-
drivers/staging/media/hantro/Makefile | 2 +
drivers/staging/media/hantro/hantro.h | 34 +-
drivers/staging/media/hantro/hantro_drv.c | 103 +++
.../staging/media/hantro/hantro_g2_hevc_dec.c | 587 ++++++++++++++++++
drivers/staging/media/hantro/hantro_g2_regs.h | 198 ++++++
drivers/staging/media/hantro/hantro_hevc.c | 321 ++++++++++
drivers/staging/media/hantro/hantro_hw.h | 48 ++
.../staging/media/hantro/hantro_postproc.c | 17 +
drivers/staging/media/hantro/hantro_v4l2.c | 1 +
drivers/staging/media/hantro/imx8m_vpu_hw.c | 95 ++-
drivers/staging/media/sunxi/cedrus/cedrus.c | 6 +
drivers/staging/media/sunxi/cedrus/cedrus.h | 1 +
.../staging/media/sunxi/cedrus/cedrus_dec.c | 2 +
.../staging/media/sunxi/cedrus/cedrus_h265.c | 6 +-
include/media/hevc-ctrls.h | 45 +-
include/uapi/linux/hantro-v4l2-controls.h | 20 +
include/uapi/linux/v4l2-controls.h | 5 +
22 files changed, 1674 insertions(+), 70 deletions(-)
create mode 100644 drivers/staging/media/hantro/hantro_g2_hevc_dec.c
create mode 100644 drivers/staging/media/hantro/hantro_g2_regs.h
create mode 100644 drivers/staging/media/hantro/hantro_hevc.c
create mode 100644 include/uapi/linux/hantro-v4l2-controls.h
--
2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Gaignard <benjamin.gaignard@collabora.com>
To: ezequiel@collabora.com, p.zabel@pengutronix.de,
mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org,
s.hauer@pengutronix.de, kernel@pengutronix.de,
festevam@gmail.com, linux-imx@nxp.com,
gregkh@linuxfoundation.org, mripard@kernel.org,
paul.kocialkowski@bootlin.com, wens@csie.org,
jernej.skrabec@siol.net, peng.fan@nxp.com,
hverkuil-cisco@xs4all.nl, dan.carpenter@oracle.com
Cc: devicetree@vger.kernel.org,
Benjamin Gaignard <benjamin.gaignard@collabora.com>,
linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org,
kernel@collabora.com, linux-arm-kernel@lists.infradead.org,
linux-media@vger.kernel.org
Subject: [PATCH v3 0/9] Add HANTRO G2/HEVC decoder support for IMX8MQ
Date: Mon, 22 Feb 2021 13:23:57 +0100 [thread overview]
Message-ID: <20210222122406.41782-1-benjamin.gaignard@collabora.com> (raw)
The IMX8MQ got two VPUs but until now only G1 has been enabled.
This series aim to add the second VPU (aka G2) and provide basic
HEVC decoding support.
To be able to decode HEVC it is needed to add/update some of the
structures in the uapi. In addition of them one HANTRO dedicated
control is required to inform the driver of the numbre of bits to skip
at the beginning of the slice header.
The hardware require to allocate few auxiliary buffers to store the
references frame or tile size data.
The driver has been tested with fluster test suite stream.
For example with this command: ./fluster.py run -ts JCT-VC-HEVC_V1 -d GStreamer-H.265-V4L2SL-Gst1.0
This series depends of the reset rework posted here: https://www.spinics.net/lists/arm-kernel/msg875766.html
Finally the both VPUs will have a node the device-tree and be
independent from v4l2 point of view.
A branch with all the dev is available here:
https://gitlab.collabora.com/benjamin.gaignard/for-upstream/-/commits/upstream_g2_v2
version 3:
- Fix typo in Hantro v4l2 dedicated control
- Add documentation for the new structures and fields
- Rebased on top of media_tree for-linus-5.12-rc1 tag
version 2:
- remove all change related to scaling
- squash commits to a coherent split
- be more verbose about the added fields
- fix the comments done by Ezequiel about dma_alloc_coherent usage
- fix Dan's comments about control copy, reverse the test logic
in tile_buffer_reallocate, rework some goto and return cases.
- be more verbose about why I change the bindings
- remove all sign-off expect mime since it is confusing
- remove useless clocks in VPUs nodes
Benjamin
Benjamin Gaignard (9):
media: hevc: Modify structures to follow H265 ITU spec
media: hantro: Define HEVC codec profiles and supported features
media: hantro: Add a field to distinguish the hardware versions
media: uapi: Add a control for HANTRO driver
media: hantro: Introduce G2/HEVC decoder
media: hantro: handle V4L2_PIX_FMT_HEVC_SLICE control
media: hantro: IMX8M: add variant for G2/HEVC codec
dt-bindings: media: nxp,imx8mq-vpu: Update bindings
arm64: dts: imx8mq: Add node to G2 hardware
.../bindings/media/nxp,imx8mq-vpu.yaml | 54 +-
.../media/v4l/ext-ctrls-codec.rst | 126 +++-
.../media/v4l/vidioc-queryctrl.rst | 6 +
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 41 +-
drivers/media/v4l2-core/v4l2-ctrls.c | 26 +-
drivers/staging/media/hantro/Makefile | 2 +
drivers/staging/media/hantro/hantro.h | 34 +-
drivers/staging/media/hantro/hantro_drv.c | 103 +++
.../staging/media/hantro/hantro_g2_hevc_dec.c | 587 ++++++++++++++++++
drivers/staging/media/hantro/hantro_g2_regs.h | 198 ++++++
drivers/staging/media/hantro/hantro_hevc.c | 321 ++++++++++
drivers/staging/media/hantro/hantro_hw.h | 48 ++
.../staging/media/hantro/hantro_postproc.c | 17 +
drivers/staging/media/hantro/hantro_v4l2.c | 1 +
drivers/staging/media/hantro/imx8m_vpu_hw.c | 95 ++-
drivers/staging/media/sunxi/cedrus/cedrus.c | 6 +
drivers/staging/media/sunxi/cedrus/cedrus.h | 1 +
.../staging/media/sunxi/cedrus/cedrus_dec.c | 2 +
.../staging/media/sunxi/cedrus/cedrus_h265.c | 6 +-
include/media/hevc-ctrls.h | 45 +-
include/uapi/linux/hantro-v4l2-controls.h | 20 +
include/uapi/linux/v4l2-controls.h | 5 +
22 files changed, 1674 insertions(+), 70 deletions(-)
create mode 100644 drivers/staging/media/hantro/hantro_g2_hevc_dec.c
create mode 100644 drivers/staging/media/hantro/hantro_g2_regs.h
create mode 100644 drivers/staging/media/hantro/hantro_hevc.c
create mode 100644 include/uapi/linux/hantro-v4l2-controls.h
--
2.25.1
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Gaignard <benjamin.gaignard@collabora.com>
To: ezequiel@collabora.com, p.zabel@pengutronix.de,
mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org,
s.hauer@pengutronix.de, kernel@pengutronix.de,
festevam@gmail.com, linux-imx@nxp.com,
gregkh@linuxfoundation.org, mripard@kernel.org,
paul.kocialkowski@bootlin.com, wens@csie.org,
jernej.skrabec@siol.net, peng.fan@nxp.com,
hverkuil-cisco@xs4all.nl, dan.carpenter@oracle.com
Cc: devicetree@vger.kernel.org,
Benjamin Gaignard <benjamin.gaignard@collabora.com>,
linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org,
kernel@collabora.com, linux-arm-kernel@lists.infradead.org,
linux-media@vger.kernel.org
Subject: [PATCH v3 0/9] Add HANTRO G2/HEVC decoder support for IMX8MQ
Date: Mon, 22 Feb 2021 13:23:57 +0100 [thread overview]
Message-ID: <20210222122406.41782-1-benjamin.gaignard@collabora.com> (raw)
The IMX8MQ got two VPUs but until now only G1 has been enabled.
This series aim to add the second VPU (aka G2) and provide basic
HEVC decoding support.
To be able to decode HEVC it is needed to add/update some of the
structures in the uapi. In addition of them one HANTRO dedicated
control is required to inform the driver of the numbre of bits to skip
at the beginning of the slice header.
The hardware require to allocate few auxiliary buffers to store the
references frame or tile size data.
The driver has been tested with fluster test suite stream.
For example with this command: ./fluster.py run -ts JCT-VC-HEVC_V1 -d GStreamer-H.265-V4L2SL-Gst1.0
This series depends of the reset rework posted here: https://www.spinics.net/lists/arm-kernel/msg875766.html
Finally the both VPUs will have a node the device-tree and be
independent from v4l2 point of view.
A branch with all the dev is available here:
https://gitlab.collabora.com/benjamin.gaignard/for-upstream/-/commits/upstream_g2_v2
version 3:
- Fix typo in Hantro v4l2 dedicated control
- Add documentation for the new structures and fields
- Rebased on top of media_tree for-linus-5.12-rc1 tag
version 2:
- remove all change related to scaling
- squash commits to a coherent split
- be more verbose about the added fields
- fix the comments done by Ezequiel about dma_alloc_coherent usage
- fix Dan's comments about control copy, reverse the test logic
in tile_buffer_reallocate, rework some goto and return cases.
- be more verbose about why I change the bindings
- remove all sign-off expect mime since it is confusing
- remove useless clocks in VPUs nodes
Benjamin
Benjamin Gaignard (9):
media: hevc: Modify structures to follow H265 ITU spec
media: hantro: Define HEVC codec profiles and supported features
media: hantro: Add a field to distinguish the hardware versions
media: uapi: Add a control for HANTRO driver
media: hantro: Introduce G2/HEVC decoder
media: hantro: handle V4L2_PIX_FMT_HEVC_SLICE control
media: hantro: IMX8M: add variant for G2/HEVC codec
dt-bindings: media: nxp,imx8mq-vpu: Update bindings
arm64: dts: imx8mq: Add node to G2 hardware
.../bindings/media/nxp,imx8mq-vpu.yaml | 54 +-
.../media/v4l/ext-ctrls-codec.rst | 126 +++-
.../media/v4l/vidioc-queryctrl.rst | 6 +
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 41 +-
drivers/media/v4l2-core/v4l2-ctrls.c | 26 +-
drivers/staging/media/hantro/Makefile | 2 +
drivers/staging/media/hantro/hantro.h | 34 +-
drivers/staging/media/hantro/hantro_drv.c | 103 +++
.../staging/media/hantro/hantro_g2_hevc_dec.c | 587 ++++++++++++++++++
drivers/staging/media/hantro/hantro_g2_regs.h | 198 ++++++
drivers/staging/media/hantro/hantro_hevc.c | 321 ++++++++++
drivers/staging/media/hantro/hantro_hw.h | 48 ++
.../staging/media/hantro/hantro_postproc.c | 17 +
drivers/staging/media/hantro/hantro_v4l2.c | 1 +
drivers/staging/media/hantro/imx8m_vpu_hw.c | 95 ++-
drivers/staging/media/sunxi/cedrus/cedrus.c | 6 +
drivers/staging/media/sunxi/cedrus/cedrus.h | 1 +
.../staging/media/sunxi/cedrus/cedrus_dec.c | 2 +
.../staging/media/sunxi/cedrus/cedrus_h265.c | 6 +-
include/media/hevc-ctrls.h | 45 +-
include/uapi/linux/hantro-v4l2-controls.h | 20 +
include/uapi/linux/v4l2-controls.h | 5 +
22 files changed, 1674 insertions(+), 70 deletions(-)
create mode 100644 drivers/staging/media/hantro/hantro_g2_hevc_dec.c
create mode 100644 drivers/staging/media/hantro/hantro_g2_regs.h
create mode 100644 drivers/staging/media/hantro/hantro_hevc.c
create mode 100644 include/uapi/linux/hantro-v4l2-controls.h
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2021-02-22 12:57 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-22 12:23 Benjamin Gaignard [this message]
2021-02-22 12:23 ` [PATCH v3 0/9] Add HANTRO G2/HEVC decoder support for IMX8MQ Benjamin Gaignard
2021-02-22 12:23 ` Benjamin Gaignard
2021-02-22 12:23 ` [PATCH v3 1/9] media: hevc: Modify structures to follow H265 ITU spec Benjamin Gaignard
2021-02-22 12:23 ` Benjamin Gaignard
2021-02-22 12:23 ` Benjamin Gaignard
2021-02-25 13:09 ` Ezequiel Garcia
2021-02-25 13:09 ` Ezequiel Garcia
2021-02-25 13:09 ` Ezequiel Garcia
2021-02-25 17:01 ` Jernej Škrabec
2021-02-25 17:01 ` Jernej Škrabec
2021-02-25 17:01 ` Jernej Škrabec
2021-02-25 17:34 ` Ezequiel Garcia
2021-02-25 17:34 ` Ezequiel Garcia
2021-02-25 17:34 ` Ezequiel Garcia
2021-02-25 18:05 ` Jernej Škrabec
2021-02-25 18:05 ` Jernej Škrabec
2021-02-25 18:05 ` Jernej Škrabec
2021-02-25 18:34 ` John Cox
2021-02-25 18:34 ` John Cox
2021-02-25 18:34 ` John Cox
2021-02-25 19:11 ` Nicolas Dufresne
2021-02-25 19:11 ` Nicolas Dufresne
2021-02-25 19:11 ` Nicolas Dufresne
2021-02-25 18:35 ` Nicolas Dufresne
2021-02-25 18:35 ` Nicolas Dufresne
2021-02-25 18:35 ` Nicolas Dufresne
2021-02-22 12:23 ` [PATCH v3 2/9] media: hantro: Define HEVC codec profiles and supported features Benjamin Gaignard
2021-02-22 12:23 ` Benjamin Gaignard
2021-02-22 12:23 ` Benjamin Gaignard
2021-02-24 20:39 ` Ezequiel Garcia
2021-02-24 20:39 ` Ezequiel Garcia
2021-02-24 20:39 ` Ezequiel Garcia
2021-02-22 12:24 ` [PATCH v3 3/9] media: hantro: Add a field to distinguish the hardware versions Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-22 12:24 ` [PATCH v3 4/9] media: uapi: Add a control for HANTRO driver Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-25 14:05 ` Ezequiel Garcia
2021-02-25 14:05 ` Ezequiel Garcia
2021-02-25 14:05 ` Ezequiel Garcia
2021-02-22 12:24 ` [PATCH v3 5/9] media: hantro: Introduce G2/HEVC decoder Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-25 17:55 ` Ezequiel Garcia
2021-02-25 17:55 ` Ezequiel Garcia
2021-02-25 17:55 ` Ezequiel Garcia
2021-02-26 9:47 ` Benjamin Gaignard
2021-02-26 9:47 ` Benjamin Gaignard
2021-02-26 9:47 ` Benjamin Gaignard
2021-02-26 21:08 ` Ezequiel Garcia
2021-02-26 21:08 ` Ezequiel Garcia
2021-02-26 21:08 ` Ezequiel Garcia
2021-02-22 12:24 ` [PATCH v3 6/9] media: hantro: handle V4L2_PIX_FMT_HEVC_SLICE control Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-22 12:24 ` [PATCH v3 7/9] media: hantro: IMX8M: add variant for G2/HEVC codec Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-22 12:24 ` [PATCH v3 8/9] dt-bindings: media: nxp,imx8mq-vpu: Update bindings Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-23 0:34 ` Rob Herring
2021-02-23 0:34 ` Rob Herring
2021-02-23 0:34 ` Rob Herring
2021-02-23 8:04 ` Benjamin Gaignard
2021-02-23 8:04 ` Benjamin Gaignard
2021-02-23 8:04 ` Benjamin Gaignard
2021-02-23 14:31 ` Rob Herring
2021-02-23 14:31 ` [PATCH v3 8/9] dt-bindings: media: nxp, imx8mq-vpu: " Rob Herring
2021-02-23 14:31 ` Rob Herring
2021-02-23 14:48 ` [PATCH v3 8/9] dt-bindings: media: nxp,imx8mq-vpu: " Ezequiel Garcia
2021-02-23 14:48 ` Ezequiel Garcia
2021-02-23 14:48 ` Ezequiel Garcia
2021-02-22 12:24 ` [PATCH v3 9/9] arm64: dts: imx8mq: Add node to G2 hardware Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-22 12:24 ` Benjamin Gaignard
2021-02-24 20:31 ` [PATCH v3 0/9] Add HANTRO G2/HEVC decoder support for IMX8MQ Ezequiel Garcia
2021-02-24 20:31 ` Ezequiel Garcia
2021-02-24 20:31 ` Ezequiel Garcia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210222122406.41782-1-benjamin.gaignard@collabora.com \
--to=benjamin.gaignard@collabora.com \
--cc=dan.carpenter@oracle.com \
--cc=devicetree@vger.kernel.org \
--cc=ezequiel@collabora.com \
--cc=festevam@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hverkuil-cisco@xs4all.nl \
--cc=jernej.skrabec@siol.net \
--cc=kernel@collabora.com \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mchehab@kernel.org \
--cc=mripard@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=paul.kocialkowski@bootlin.com \
--cc=peng.fan@nxp.com \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.