From fbb6c848dd89786fe24856ee6b5e773910ded29c Mon Sep 17 00:00:00 2001
From: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Date: Mon, 18 Jul 2022 23:41:21 +0200
Subject: [PATCH] media: destage Hantro VPU driver

The Hantro mainline driver has been used in production
since several years and was only kept as a staging driver
due the stateless CODEC controls.

Now that all the stateless CODEC controls have been moved
out of staging, graduate the driver as well.

Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
 MAINTAINERS                                                 | 2 +-
 drivers/media/platform/Kconfig                              | 1 +
 drivers/media/platform/Makefile                             | 1 +
 .../media/hantro => media/platform/verisilicon}/Kconfig     | 6 +++++-
 .../media/hantro => media/platform/verisilicon}/Makefile    | 0
 .../media/hantro => media/platform/verisilicon}/hantro.h    | 0
 .../hantro => media/platform/verisilicon}/hantro_drv.c      | 0
 .../media/hantro => media/platform/verisilicon}/hantro_g1.c | 0
 .../platform/verisilicon}/hantro_g1_h264_dec.c              | 0
 .../platform/verisilicon}/hantro_g1_mpeg2_dec.c             | 0
 .../hantro => media/platform/verisilicon}/hantro_g1_regs.h  | 0
 .../platform/verisilicon}/hantro_g1_vp8_dec.c               | 0
 .../media/hantro => media/platform/verisilicon}/hantro_g2.c | 0
 .../platform/verisilicon}/hantro_g2_hevc_dec.c              | 0
 .../hantro => media/platform/verisilicon}/hantro_g2_regs.h  | 0
 .../platform/verisilicon}/hantro_g2_vp9_dec.c               | 0
 .../platform/verisilicon}/hantro_h1_jpeg_enc.c              | 0
 .../hantro => media/platform/verisilicon}/hantro_h1_regs.h  | 0
 .../hantro => media/platform/verisilicon}/hantro_h264.c     | 0
 .../hantro => media/platform/verisilicon}/hantro_hevc.c     | 0
 .../media/hantro => media/platform/verisilicon}/hantro_hw.h | 0
 .../hantro => media/platform/verisilicon}/hantro_jpeg.c     | 0
 .../hantro => media/platform/verisilicon}/hantro_jpeg.h     | 0
 .../hantro => media/platform/verisilicon}/hantro_mpeg2.c    | 0
 .../hantro => media/platform/verisilicon}/hantro_postproc.c | 0
 .../hantro => media/platform/verisilicon}/hantro_v4l2.c     | 0
 .../hantro => media/platform/verisilicon}/hantro_v4l2.h     | 0
 .../hantro => media/platform/verisilicon}/hantro_vp8.c      | 0
 .../hantro => media/platform/verisilicon}/hantro_vp9.c      | 0
 .../hantro => media/platform/verisilicon}/hantro_vp9.h      | 0
 .../hantro => media/platform/verisilicon}/imx8m_vpu_hw.c    | 0
 .../platform/verisilicon}/rockchip_vpu2_hw_h264_dec.c       | 0
 .../platform/verisilicon}/rockchip_vpu2_hw_jpeg_enc.c       | 0
 .../platform/verisilicon}/rockchip_vpu2_hw_mpeg2_dec.c      | 0
 .../platform/verisilicon}/rockchip_vpu2_hw_vp8_dec.c        | 0
 .../platform/verisilicon}/rockchip_vpu2_regs.h              | 0
 .../hantro => media/platform/verisilicon}/rockchip_vpu_hw.c | 0
 .../hantro => media/platform/verisilicon}/sama5d4_vdec_hw.c | 0
 .../hantro => media/platform/verisilicon}/sunxi_vpu_hw.c    | 0
 drivers/staging/media/Kconfig                               | 2 --
 drivers/staging/media/Makefile                              | 1 -
 drivers/staging/media/hantro/TODO                           | 2 --
 42 files changed, 8 insertions(+), 7 deletions(-)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/Kconfig (91%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/Makefile (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro.h (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_drv.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_g1.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_g1_h264_dec.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_g1_mpeg2_dec.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_g1_regs.h (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_g1_vp8_dec.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_g2.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_g2_hevc_dec.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_g2_regs.h (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_g2_vp9_dec.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_h1_jpeg_enc.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_h1_regs.h (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_h264.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_hevc.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_hw.h (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_jpeg.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_jpeg.h (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_mpeg2.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_postproc.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_v4l2.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_v4l2.h (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_vp8.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_vp9.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/hantro_vp9.h (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/imx8m_vpu_hw.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/rockchip_vpu2_hw_h264_dec.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/rockchip_vpu2_hw_jpeg_enc.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/rockchip_vpu2_hw_mpeg2_dec.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/rockchip_vpu2_hw_vp8_dec.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/rockchip_vpu2_regs.h (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/rockchip_vpu_hw.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/sama5d4_vdec_hw.c (100%)
 rename drivers/{staging/media/hantro => media/platform/verisilicon}/sunxi_vpu_hw.c (100%)
 delete mode 100644 drivers/staging/media/hantro/TODO

diff --git a/MAINTAINERS b/MAINTAINERS
index fee641d108470..a58f1fc6dd47f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8904,7 +8904,7 @@ S:	Maintained
 F:	Documentation/devicetree/bindings/media/nxp,imx8mq-vpu.yaml
 F:	Documentation/devicetree/bindings/media/rockchip,rk3568-vepu.yaml
 F:	Documentation/devicetree/bindings/media/rockchip-vpu.yaml
-F:	drivers/staging/media/hantro/
+F:	drivers/media/platform/verisilicon/
 
 HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
 M:	Frank Seidel <frank@f-seidel.de>
diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index f1056ceaf5a8c..a9334263fa9ba 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -81,6 +81,7 @@ source "drivers/media/platform/samsung/Kconfig"
 source "drivers/media/platform/st/Kconfig"
 source "drivers/media/platform/sunxi/Kconfig"
 source "drivers/media/platform/ti/Kconfig"
+source "drivers/media/platform/verisilicon/Kconfig"
 source "drivers/media/platform/via/Kconfig"
 source "drivers/media/platform/xilinx/Kconfig"
 
diff --git a/drivers/media/platform/Makefile b/drivers/media/platform/Makefile
index a881e97bae950..a91f42024273d 100644
--- a/drivers/media/platform/Makefile
+++ b/drivers/media/platform/Makefile
@@ -24,6 +24,7 @@ obj-y += samsung/
 obj-y += st/
 obj-y += sunxi/
 obj-y += ti/
+obj-y += verisilicon/
 obj-y += via/
 obj-y += xilinx/
 
diff --git a/drivers/staging/media/hantro/Kconfig b/drivers/media/platform/verisilicon/Kconfig
similarity index 91%
rename from drivers/staging/media/hantro/Kconfig
rename to drivers/media/platform/verisilicon/Kconfig
index 0172a6822ec22..e65b836b9d788 100644
--- a/drivers/staging/media/hantro/Kconfig
+++ b/drivers/media/platform/verisilicon/Kconfig
@@ -1,7 +1,11 @@
-# SPDX-License-Identifier: GPL-2.0
+# SPDX-License-Identifier: GPL-2.0-only
+
+comment "Verisilicon media platform drivers"
+
 config VIDEO_HANTRO
 	tristate "Hantro VPU driver"
 	depends on ARCH_MXC || ARCH_ROCKCHIP || ARCH_AT91 || ARCH_SUNXI || COMPILE_TEST
+	depends on V4L_MEM2MEM_DRIVERS
 	depends on VIDEO_DEV
 	select MEDIA_CONTROLLER
 	select MEDIA_CONTROLLER_REQUEST_API
diff --git a/drivers/staging/media/hantro/Makefile b/drivers/media/platform/verisilicon/Makefile
similarity index 100%
rename from drivers/staging/media/hantro/Makefile
rename to drivers/media/platform/verisilicon/Makefile
diff --git a/drivers/staging/media/hantro/hantro.h b/drivers/media/platform/verisilicon/hantro.h
similarity index 100%
rename from drivers/staging/media/hantro/hantro.h
rename to drivers/media/platform/verisilicon/hantro.h
diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/media/platform/verisilicon/hantro_drv.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_drv.c
rename to drivers/media/platform/verisilicon/hantro_drv.c
diff --git a/drivers/staging/media/hantro/hantro_g1.c b/drivers/media/platform/verisilicon/hantro_g1.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_g1.c
rename to drivers/media/platform/verisilicon/hantro_g1.c
diff --git a/drivers/staging/media/hantro/hantro_g1_h264_dec.c b/drivers/media/platform/verisilicon/hantro_g1_h264_dec.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_g1_h264_dec.c
rename to drivers/media/platform/verisilicon/hantro_g1_h264_dec.c
diff --git a/drivers/staging/media/hantro/hantro_g1_mpeg2_dec.c b/drivers/media/platform/verisilicon/hantro_g1_mpeg2_dec.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_g1_mpeg2_dec.c
rename to drivers/media/platform/verisilicon/hantro_g1_mpeg2_dec.c
diff --git a/drivers/staging/media/hantro/hantro_g1_regs.h b/drivers/media/platform/verisilicon/hantro_g1_regs.h
similarity index 100%
rename from drivers/staging/media/hantro/hantro_g1_regs.h
rename to drivers/media/platform/verisilicon/hantro_g1_regs.h
diff --git a/drivers/staging/media/hantro/hantro_g1_vp8_dec.c b/drivers/media/platform/verisilicon/hantro_g1_vp8_dec.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_g1_vp8_dec.c
rename to drivers/media/platform/verisilicon/hantro_g1_vp8_dec.c
diff --git a/drivers/staging/media/hantro/hantro_g2.c b/drivers/media/platform/verisilicon/hantro_g2.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_g2.c
rename to drivers/media/platform/verisilicon/hantro_g2.c
diff --git a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c b/drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_g2_hevc_dec.c
rename to drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c
diff --git a/drivers/staging/media/hantro/hantro_g2_regs.h b/drivers/media/platform/verisilicon/hantro_g2_regs.h
similarity index 100%
rename from drivers/staging/media/hantro/hantro_g2_regs.h
rename to drivers/media/platform/verisilicon/hantro_g2_regs.h
diff --git a/drivers/staging/media/hantro/hantro_g2_vp9_dec.c b/drivers/media/platform/verisilicon/hantro_g2_vp9_dec.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_g2_vp9_dec.c
rename to drivers/media/platform/verisilicon/hantro_g2_vp9_dec.c
diff --git a/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c b/drivers/media/platform/verisilicon/hantro_h1_jpeg_enc.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_h1_jpeg_enc.c
rename to drivers/media/platform/verisilicon/hantro_h1_jpeg_enc.c
diff --git a/drivers/staging/media/hantro/hantro_h1_regs.h b/drivers/media/platform/verisilicon/hantro_h1_regs.h
similarity index 100%
rename from drivers/staging/media/hantro/hantro_h1_regs.h
rename to drivers/media/platform/verisilicon/hantro_h1_regs.h
diff --git a/drivers/staging/media/hantro/hantro_h264.c b/drivers/media/platform/verisilicon/hantro_h264.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_h264.c
rename to drivers/media/platform/verisilicon/hantro_h264.c
diff --git a/drivers/staging/media/hantro/hantro_hevc.c b/drivers/media/platform/verisilicon/hantro_hevc.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_hevc.c
rename to drivers/media/platform/verisilicon/hantro_hevc.c
diff --git a/drivers/staging/media/hantro/hantro_hw.h b/drivers/media/platform/verisilicon/hantro_hw.h
similarity index 100%
rename from drivers/staging/media/hantro/hantro_hw.h
rename to drivers/media/platform/verisilicon/hantro_hw.h
diff --git a/drivers/staging/media/hantro/hantro_jpeg.c b/drivers/media/platform/verisilicon/hantro_jpeg.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_jpeg.c
rename to drivers/media/platform/verisilicon/hantro_jpeg.c
diff --git a/drivers/staging/media/hantro/hantro_jpeg.h b/drivers/media/platform/verisilicon/hantro_jpeg.h
similarity index 100%
rename from drivers/staging/media/hantro/hantro_jpeg.h
rename to drivers/media/platform/verisilicon/hantro_jpeg.h
diff --git a/drivers/staging/media/hantro/hantro_mpeg2.c b/drivers/media/platform/verisilicon/hantro_mpeg2.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_mpeg2.c
rename to drivers/media/platform/verisilicon/hantro_mpeg2.c
diff --git a/drivers/staging/media/hantro/hantro_postproc.c b/drivers/media/platform/verisilicon/hantro_postproc.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_postproc.c
rename to drivers/media/platform/verisilicon/hantro_postproc.c
diff --git a/drivers/staging/media/hantro/hantro_v4l2.c b/drivers/media/platform/verisilicon/hantro_v4l2.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_v4l2.c
rename to drivers/media/platform/verisilicon/hantro_v4l2.c
diff --git a/drivers/staging/media/hantro/hantro_v4l2.h b/drivers/media/platform/verisilicon/hantro_v4l2.h
similarity index 100%
rename from drivers/staging/media/hantro/hantro_v4l2.h
rename to drivers/media/platform/verisilicon/hantro_v4l2.h
diff --git a/drivers/staging/media/hantro/hantro_vp8.c b/drivers/media/platform/verisilicon/hantro_vp8.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_vp8.c
rename to drivers/media/platform/verisilicon/hantro_vp8.c
diff --git a/drivers/staging/media/hantro/hantro_vp9.c b/drivers/media/platform/verisilicon/hantro_vp9.c
similarity index 100%
rename from drivers/staging/media/hantro/hantro_vp9.c
rename to drivers/media/platform/verisilicon/hantro_vp9.c
diff --git a/drivers/staging/media/hantro/hantro_vp9.h b/drivers/media/platform/verisilicon/hantro_vp9.h
similarity index 100%
rename from drivers/staging/media/hantro/hantro_vp9.h
rename to drivers/media/platform/verisilicon/hantro_vp9.h
diff --git a/drivers/staging/media/hantro/imx8m_vpu_hw.c b/drivers/media/platform/verisilicon/imx8m_vpu_hw.c
similarity index 100%
rename from drivers/staging/media/hantro/imx8m_vpu_hw.c
rename to drivers/media/platform/verisilicon/imx8m_vpu_hw.c
diff --git a/drivers/staging/media/hantro/rockchip_vpu2_hw_h264_dec.c b/drivers/media/platform/verisilicon/rockchip_vpu2_hw_h264_dec.c
similarity index 100%
rename from drivers/staging/media/hantro/rockchip_vpu2_hw_h264_dec.c
rename to drivers/media/platform/verisilicon/rockchip_vpu2_hw_h264_dec.c
diff --git a/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c b/drivers/media/platform/verisilicon/rockchip_vpu2_hw_jpeg_enc.c
similarity index 100%
rename from drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
rename to drivers/media/platform/verisilicon/rockchip_vpu2_hw_jpeg_enc.c
diff --git a/drivers/staging/media/hantro/rockchip_vpu2_hw_mpeg2_dec.c b/drivers/media/platform/verisilicon/rockchip_vpu2_hw_mpeg2_dec.c
similarity index 100%
rename from drivers/staging/media/hantro/rockchip_vpu2_hw_mpeg2_dec.c
rename to drivers/media/platform/verisilicon/rockchip_vpu2_hw_mpeg2_dec.c
diff --git a/drivers/staging/media/hantro/rockchip_vpu2_hw_vp8_dec.c b/drivers/media/platform/verisilicon/rockchip_vpu2_hw_vp8_dec.c
similarity index 100%
rename from drivers/staging/media/hantro/rockchip_vpu2_hw_vp8_dec.c
rename to drivers/media/platform/verisilicon/rockchip_vpu2_hw_vp8_dec.c
diff --git a/drivers/staging/media/hantro/rockchip_vpu2_regs.h b/drivers/media/platform/verisilicon/rockchip_vpu2_regs.h
similarity index 100%
rename from drivers/staging/media/hantro/rockchip_vpu2_regs.h
rename to drivers/media/platform/verisilicon/rockchip_vpu2_regs.h
diff --git a/drivers/staging/media/hantro/rockchip_vpu_hw.c b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c
similarity index 100%
rename from drivers/staging/media/hantro/rockchip_vpu_hw.c
rename to drivers/media/platform/verisilicon/rockchip_vpu_hw.c
diff --git a/drivers/staging/media/hantro/sama5d4_vdec_hw.c b/drivers/media/platform/verisilicon/sama5d4_vdec_hw.c
similarity index 100%
rename from drivers/staging/media/hantro/sama5d4_vdec_hw.c
rename to drivers/media/platform/verisilicon/sama5d4_vdec_hw.c
diff --git a/drivers/staging/media/hantro/sunxi_vpu_hw.c b/drivers/media/platform/verisilicon/sunxi_vpu_hw.c
similarity index 100%
rename from drivers/staging/media/hantro/sunxi_vpu_hw.c
rename to drivers/media/platform/verisilicon/sunxi_vpu_hw.c
diff --git a/drivers/staging/media/Kconfig b/drivers/staging/media/Kconfig
index 56eeecb03b31c..d4f03b203ae54 100644
--- a/drivers/staging/media/Kconfig
+++ b/drivers/staging/media/Kconfig
@@ -22,8 +22,6 @@ if STAGING_MEDIA && MEDIA_SUPPORT
 # Please keep them in alphabetic order
 source "drivers/staging/media/atomisp/Kconfig"
 
-source "drivers/staging/media/hantro/Kconfig"
-
 source "drivers/staging/media/imx/Kconfig"
 
 source "drivers/staging/media/ipu3/Kconfig"
diff --git a/drivers/staging/media/Makefile b/drivers/staging/media/Makefile
index 874df4953729a..a387692b84f29 100644
--- a/drivers/staging/media/Makefile
+++ b/drivers/staging/media/Makefile
@@ -10,7 +10,6 @@ obj-$(CONFIG_VIDEO_ROCKCHIP_VDEC)	+= rkvdec/
 obj-$(CONFIG_VIDEO_STKWEBCAM)	+= deprecated/stkwebcam/
 obj-$(CONFIG_VIDEO_SUNXI)	+= sunxi/
 obj-$(CONFIG_VIDEO_TEGRA)	+= tegra-video/
-obj-$(CONFIG_VIDEO_HANTRO)	+= hantro/
 obj-$(CONFIG_VIDEO_IPU3_IMGU)	+= ipu3/
 obj-$(CONFIG_VIDEO_TM6000)	+= deprecated/tm6000/
 obj-$(CONFIG_VIDEO_VIU)		+= deprecated/fsl-viu/
diff --git a/drivers/staging/media/hantro/TODO b/drivers/staging/media/hantro/TODO
deleted file mode 100644
index 8483ff4821460..0000000000000
--- a/drivers/staging/media/hantro/TODO
+++ /dev/null
@@ -1,2 +0,0 @@
-The V4L controls for the HEVC CODEC are not yet part of the stable uABI,
-we are keeping this driver in staging until the HEVC uABI has been merged.