There are several other SoCs that contain Hantro IP based VPUs, such as
NXP i.MX8MQ (Hantro G1 and G2) and i.MX8MM (Hantro G1, G2, and H1). To
maximize code sharing, add initial support for these SoCs to the
Rockchip VPU driver, after renaming it to Hantro VPU.
This series is based on the br-v5.3g tag, commit e568d2cc1ef6
("rockchip/vpu: Add support for MPEG-2 decoding on RK3288") with
https://patchwork.linuxtv.org/patch/56402/ ("rockchip/vpu: Add support
for MPEG-2 decoding on RK3328") applied on top. It supports MPEG-2
decoding on i.MX8MQ. MPEG-2 decoding and JPEG encoding on i.MX8MM may
or may not work, I don't have the hardware to test.
Changes since v3:
- Split rk3288_vpu_regs.h into hantro_g1_regs.h and hantro_h1_regs.h,
rename VDPU register defines to G1 and VEPU register defines to H1.
- Make Rockchip / i.MX8M support configurable.
- Keep staging/media Kconfig in alphabetic order.
- Rename bases to reg_bases
- Move dynamic clocks before i.MX8M support.
regards
Philipp
Philipp Zabel (10):
rockchip/vpu: rename from rockchip to hantro
media: hantro: print video device name in addition to device node
media: hantro: add PM runtime resume callback
media: hantro: make irq names configurable
media: hantro: add support for named register ranges
media: hantro: add support for separate control block
media: hantro: allow arbitrary number of clocks
media: dt-bindings: Document i.MX8MQ and i.MX8MM VPU bindings
media: hantro: add initial i.MX8MQ support
media: hantro: add initial i.MX8MM support (untested)
.../devicetree/bindings/media/imx8m-vpu.txt | 56 +++
MAINTAINERS | 4 +-
drivers/staging/media/Kconfig | 4 +-
drivers/staging/media/Makefile | 2 +-
drivers/staging/media/hantro/Kconfig | 31 ++
drivers/staging/media/hantro/Makefile | 18 +
.../media/{rockchip/vpu => hantro}/TODO | 0
.../vpu/rockchip_vpu.h => hantro/hantro.h} | 167 ++++---
.../hantro_drv.c} | 335 ++++++-------
.../media/hantro/hantro_g1_mpeg2_dec.c | 260 ++++++++++
drivers/staging/media/hantro/hantro_g1_regs.h | 301 ++++++++++++
.../staging/media/hantro/hantro_h1_jpeg_enc.c | 125 +++++
drivers/staging/media/hantro/hantro_h1_regs.h | 154 ++++++
drivers/staging/media/hantro/hantro_hw.h | 104 ++++
.../hantro_jpeg.c} | 18 +-
drivers/staging/media/hantro/hantro_jpeg.h | 13 +
.../hantro_mpeg2.c} | 14 +-
.../hantro_v4l2.c} | 234 +++++----
.../hantro_v4l2.h} | 16 +-
drivers/staging/media/hantro/imx8m_vpu_hw.c | 311 ++++++++++++
drivers/staging/media/hantro/rk3288_vpu_hw.c | 187 ++++++++
.../{rockchip/vpu => hantro}/rk3399_vpu_hw.c | 92 ++--
.../vpu => hantro}/rk3399_vpu_hw_jpeg_enc.c | 32 +-
.../vpu => hantro}/rk3399_vpu_hw_mpeg2_dec.c | 37 +-
.../vpu => hantro}/rk3399_vpu_regs.h | 2 +-
drivers/staging/media/rockchip/vpu/Kconfig | 14 -
drivers/staging/media/rockchip/vpu/Makefile | 14 -
.../media/rockchip/vpu/rk3288_vpu_hw.c | 177 -------
.../rockchip/vpu/rk3288_vpu_hw_jpeg_enc.c | 125 -----
.../rockchip/vpu/rk3288_vpu_hw_mpeg2_dec.c | 261 -----------
.../media/rockchip/vpu/rk3288_vpu_regs.h | 443 ------------------
.../media/rockchip/vpu/rockchip_vpu_hw.h | 103 ----
.../media/rockchip/vpu/rockchip_vpu_jpeg.h | 14 -
33 files changed, 2061 insertions(+), 1607 deletions(-)
create mode 100644 Documentation/devicetree/bindings/media/imx8m-vpu.txt
create mode 100644 drivers/staging/media/hantro/Kconfig
create mode 100644 drivers/staging/media/hantro/Makefile
rename drivers/staging/media/{rockchip/vpu => hantro}/TODO (100%)
rename drivers/staging/media/{rockchip/vpu/rockchip_vpu.h => hantro/hantro.h}
(66%)
rename drivers/staging/media/{rockchip/vpu/rockchip_vpu_drv.c =>
hantro/hantro_drv.c} (69%)
create mode 100644 drivers/staging/media/hantro/hantro_g1_mpeg2_dec.c
create mode 100644 drivers/staging/media/hantro/hantro_g1_regs.h
create mode 100644 drivers/staging/media/hantro/hantro_h1_jpeg_enc.c
create mode 100644 drivers/staging/media/hantro/hantro_h1_regs.h
create mode 100644 drivers/staging/media/hantro/hantro_hw.h
rename drivers/staging/media/{rockchip/vpu/rockchip_vpu_jpeg.c =>
hantro/hantro_jpeg.c} (95%)
create mode 100644 drivers/staging/media/hantro/hantro_jpeg.h
rename drivers/staging/media/{rockchip/vpu/rockchip_vpu_mpeg2.c =>
hantro/hantro_mpeg2.c} (79%)
rename drivers/staging/media/{rockchip/vpu/rockchip_vpu_v4l2.c =>
hantro/hantro_v4l2.c} (69%)
rename drivers/staging/media/{rockchip/vpu/rockchip_vpu_v4l2.h =>
hantro/hantro_v4l2.h} (53%)
create mode 100644 drivers/staging/media/hantro/imx8m_vpu_hw.c
create mode 100644 drivers/staging/media/hantro/rk3288_vpu_hw.c
rename drivers/staging/media/{rockchip/vpu => hantro}/rk3399_vpu_hw.c (62%)
rename drivers/staging/media/{rockchip/vpu => hantro}/rk3399_vpu_hw_jpeg_enc.c
(86%)
rename drivers/staging/media/{rockchip/vpu =>
hantro}/rk3399_vpu_hw_mpeg2_dec.c (92%)
rename drivers/staging/media/{rockchip/vpu => hantro}/rk3399_vpu_regs.h (99%)
delete mode 100644 drivers/staging/media/rockchip/vpu/Kconfig
delete mode 100644 drivers/staging/media/rockchip/vpu/Makefile
delete mode 100644 drivers/staging/media/rockchip/vpu/rk3288_vpu_hw.c
delete mode 100644 drivers/staging/media/rockchip/vpu/rk3288_vpu_hw_jpeg_enc.c
delete mode 100644 drivers/staging/media/rockchip/vpu/rk3288_vpu_hw_mpeg2_dec.c
delete mode 100644 drivers/staging/media/rockchip/vpu/rk3288_vpu_regs.h
delete mode 100644 drivers/staging/media/rockchip/vpu/rockchip_vpu_hw.h
delete mode 100644 drivers/staging/media/rockchip/vpu/rockchip_vpu_jpeg.h
--
2.20.1