Re: [PATCH v4 6/6] media: add Rockchip VPU JPEG encoder driver

2018-09-03 Thread Ezequiel Garcia
Hi Hans,

Thanks for the feedback.

On Mon, 2018-09-03 at 12:34 +0200, Hans Verkuil wrote:
> On 08/31/2018 05:52 PM, Ezequiel Garcia wrote:
> > Add a mem2mem driver for the VPU available on Rockchip SoCs.
> > Currently only JPEG encoding is supported, for RK3399 and RK3288
> > platforms.
> > 
> > Signed-off-by: Ezequiel Garcia 
> > ---
> >  MAINTAINERS   |   7 +
> >  drivers/media/platform/Kconfig|  13 +
> >  drivers/media/platform/Makefile   |   1 +
> >  drivers/media/platform/rockchip/vpu/Makefile  |   9 +
> >  .../platform/rockchip/vpu/rk3288_vpu_hw.c | 123 
> >  .../rockchip/vpu/rk3288_vpu_hw_jpege.c| 126 
> >  .../platform/rockchip/vpu/rk3288_vpu_regs.h   | 442 +
> >  .../platform/rockchip/vpu/rk3399_vpu_hw.c | 124 
> >  .../rockchip/vpu/rk3399_vpu_hw_jpege.c| 154 +
> >  .../platform/rockchip/vpu/rk3399_vpu_regs.h   | 601 +
> >  .../platform/rockchip/vpu/rockchip_vpu.h  | 362 +++
> >  .../rockchip/vpu/rockchip_vpu_common.h|  37 ++
> >  .../platform/rockchip/vpu/rockchip_vpu_drv.c  | 545 
> >  .../platform/rockchip/vpu/rockchip_vpu_enc.c  | 607 ++
> >  .../platform/rockchip/vpu/rockchip_vpu_hw.h   |  65 ++
> >  15 files changed, 3216 insertions(+)
> >  create mode 100644 drivers/media/platform/rockchip/vpu/Makefile
> >  create mode 100644 drivers/media/platform/rockchip/vpu/rk3288_vpu_hw.c
> >  create mode 100644 
> > drivers/media/platform/rockchip/vpu/rk3288_vpu_hw_jpege.c
> >  create mode 100644 drivers/media/platform/rockchip/vpu/rk3288_vpu_regs.h
> >  create mode 100644 drivers/media/platform/rockchip/vpu/rk3399_vpu_hw.c
> >  create mode 100644 
> > drivers/media/platform/rockchip/vpu/rk3399_vpu_hw_jpege.c
> >  create mode 100644 drivers/media/platform/rockchip/vpu/rk3399_vpu_regs.h
> >  create mode 100644 drivers/media/platform/rockchip/vpu/rockchip_vpu.h
> >  create mode 100644 
> > drivers/media/platform/rockchip/vpu/rockchip_vpu_common.h
> >  create mode 100644 drivers/media/platform/rockchip/vpu/rockchip_vpu_drv.c
> >  create mode 100644 drivers/media/platform/rockchip/vpu/rockchip_vpu_enc.c
> >  create mode 100644 drivers/media/platform/rockchip/vpu/rockchip_vpu_hw.h
> > 
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index da68e6da9981..e99b49c8dcf2 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -12272,6 +12272,13 @@ S: Maintained
> >  F: drivers/media/platform/rockchip/rga/
> >  F: Documentation/devicetree/bindings/media/rockchip-rga.txt
> >  
> > +ROCKCHIP VPU CODEC DRIVER
> > +M: Ezequiel Garcia 
> > +L: linux-media@vger.kernel.org
> > +S: Maintained
> > +F: drivers/media/platform/rockchip/vpu/
> > +F: Documentation/devicetree/bindings/media/rockchip-vpu.txt
> > +
> >  ROCKER DRIVER
> >  M: Jiri Pirko 
> >  L: net...@vger.kernel.org
> > diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
> > index b25c8d3c1c31..87eb854cf7cb 100644
> > --- a/drivers/media/platform/Kconfig
> > +++ b/drivers/media/platform/Kconfig
> > @@ -448,6 +448,19 @@ config VIDEO_ROCKCHIP_RGA
> >  
> >   To compile this driver as a module choose m here.
> >  
> > +config VIDEO_ROCKCHIP_VPU
> > +   tristate "Rockchip VPU driver"
> > +   depends on ARCH_ROCKCHIP || COMPILE_TEST
> > +   depends on VIDEO_DEV && VIDEO_V4L2 && MEDIA_CONTROLLER
> > +   select VIDEOBUF2_DMA_CONTIG
> > +   select V4L2_MEM2MEM_DEV
> > +   default n
> > +   help
> > + Support for the Video Processing Unit present on Rockchip SoC,
> > + which accelerates video and image encoding and decoding.
> > + To compile this driver as a module, choose M here: the module
> > + will be called rockchip-vpu.
> > +
> >  config VIDEO_TI_VPE
> > tristate "TI VPE (Video Processing Engine) driver"
> > depends on VIDEO_DEV && VIDEO_V4L2
> > diff --git a/drivers/media/platform/Makefile 
> > b/drivers/media/platform/Makefile
> > index 08640ba87fc2..9b93f6a6b6e2 100644
> > --- a/drivers/media/platform/Makefile
> > +++ b/drivers/media/platform/Makefile
> > @@ -67,6 +67,7 @@ obj-$(CONFIG_VIDEO_RENESAS_JPU)   += rcar_jpu.o
> >  obj-$(CONFIG_VIDEO_RENESAS_VSP1)   += vsp1/
> >  
> >  obj-$(CONFIG_VIDEO_ROCKCHIP_RGA)   += rockchip/rga/
> > +obj-$(CONFIG_VIDEO_ROCKCHIP_VPU)+= rockchip/vpu/
> >  
> >  obj-y  += omap/
> >  
> > diff --git a/drivers/media/platform/rockchip/vpu/Makefile 
> > b/drivers/media/platform/rockchip/vpu/Makefile
> > new file mode 100644
> > index ..f717dfda1d42
> > --- /dev/null
> > +++ b/drivers/media/platform/rockchip/vpu/Makefile
> > @@ -0,0 +1,9 @@
> > +obj-$(CONFIG_VIDEO_ROCKCHIP_VPU) += rockchip-vpu.o
> > +
> > +rockchip-vpu-y += \
> > +   rockchip_vpu_drv.o \
> > +   rockchip_vpu_enc.o \
> > +   rk3288_vpu_hw.o \
> > +   rk3288_vpu_hw_jpege.o \
> > +   rk3399_vpu_hw.o \
> > +   rk3399_vpu_hw_jpege.o
> > diff --git a/drivers/media/p

Re: [PATCH v4 6/6] media: add Rockchip VPU JPEG encoder driver

2018-09-03 Thread Hans Verkuil
On 08/31/2018 05:52 PM, Ezequiel Garcia wrote:
> Add a mem2mem driver for the VPU available on Rockchip SoCs.
> Currently only JPEG encoding is supported, for RK3399 and RK3288
> platforms.
> 
> Signed-off-by: Ezequiel Garcia 
> ---
>  MAINTAINERS   |   7 +
>  drivers/media/platform/Kconfig|  13 +
>  drivers/media/platform/Makefile   |   1 +
>  drivers/media/platform/rockchip/vpu/Makefile  |   9 +
>  .../platform/rockchip/vpu/rk3288_vpu_hw.c | 123 
>  .../rockchip/vpu/rk3288_vpu_hw_jpege.c| 126 
>  .../platform/rockchip/vpu/rk3288_vpu_regs.h   | 442 +
>  .../platform/rockchip/vpu/rk3399_vpu_hw.c | 124 
>  .../rockchip/vpu/rk3399_vpu_hw_jpege.c| 154 +
>  .../platform/rockchip/vpu/rk3399_vpu_regs.h   | 601 +
>  .../platform/rockchip/vpu/rockchip_vpu.h  | 362 +++
>  .../rockchip/vpu/rockchip_vpu_common.h|  37 ++
>  .../platform/rockchip/vpu/rockchip_vpu_drv.c  | 545 
>  .../platform/rockchip/vpu/rockchip_vpu_enc.c  | 607 ++
>  .../platform/rockchip/vpu/rockchip_vpu_hw.h   |  65 ++
>  15 files changed, 3216 insertions(+)
>  create mode 100644 drivers/media/platform/rockchip/vpu/Makefile
>  create mode 100644 drivers/media/platform/rockchip/vpu/rk3288_vpu_hw.c
>  create mode 100644 drivers/media/platform/rockchip/vpu/rk3288_vpu_hw_jpege.c
>  create mode 100644 drivers/media/platform/rockchip/vpu/rk3288_vpu_regs.h
>  create mode 100644 drivers/media/platform/rockchip/vpu/rk3399_vpu_hw.c
>  create mode 100644 drivers/media/platform/rockchip/vpu/rk3399_vpu_hw_jpege.c
>  create mode 100644 drivers/media/platform/rockchip/vpu/rk3399_vpu_regs.h
>  create mode 100644 drivers/media/platform/rockchip/vpu/rockchip_vpu.h
>  create mode 100644 drivers/media/platform/rockchip/vpu/rockchip_vpu_common.h
>  create mode 100644 drivers/media/platform/rockchip/vpu/rockchip_vpu_drv.c
>  create mode 100644 drivers/media/platform/rockchip/vpu/rockchip_vpu_enc.c
>  create mode 100644 drivers/media/platform/rockchip/vpu/rockchip_vpu_hw.h
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index da68e6da9981..e99b49c8dcf2 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12272,6 +12272,13 @@ S:   Maintained
>  F:   drivers/media/platform/rockchip/rga/
>  F:   Documentation/devicetree/bindings/media/rockchip-rga.txt
>  
> +ROCKCHIP VPU CODEC DRIVER
> +M:   Ezequiel Garcia 
> +L:   linux-media@vger.kernel.org
> +S:   Maintained
> +F:   drivers/media/platform/rockchip/vpu/
> +F:   Documentation/devicetree/bindings/media/rockchip-vpu.txt
> +
>  ROCKER DRIVER
>  M:   Jiri Pirko 
>  L:   net...@vger.kernel.org
> diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
> index b25c8d3c1c31..87eb854cf7cb 100644
> --- a/drivers/media/platform/Kconfig
> +++ b/drivers/media/platform/Kconfig
> @@ -448,6 +448,19 @@ config VIDEO_ROCKCHIP_RGA
>  
> To compile this driver as a module choose m here.
>  
> +config VIDEO_ROCKCHIP_VPU
> + tristate "Rockchip VPU driver"
> + depends on ARCH_ROCKCHIP || COMPILE_TEST
> + depends on VIDEO_DEV && VIDEO_V4L2 && MEDIA_CONTROLLER
> + select VIDEOBUF2_DMA_CONTIG
> + select V4L2_MEM2MEM_DEV
> + default n
> + help
> +   Support for the Video Processing Unit present on Rockchip SoC,
> +   which accelerates video and image encoding and decoding.
> +   To compile this driver as a module, choose M here: the module
> +   will be called rockchip-vpu.
> +
>  config VIDEO_TI_VPE
>   tristate "TI VPE (Video Processing Engine) driver"
>   depends on VIDEO_DEV && VIDEO_V4L2
> diff --git a/drivers/media/platform/Makefile b/drivers/media/platform/Makefile
> index 08640ba87fc2..9b93f6a6b6e2 100644
> --- a/drivers/media/platform/Makefile
> +++ b/drivers/media/platform/Makefile
> @@ -67,6 +67,7 @@ obj-$(CONFIG_VIDEO_RENESAS_JPU) += rcar_jpu.o
>  obj-$(CONFIG_VIDEO_RENESAS_VSP1) += vsp1/
>  
>  obj-$(CONFIG_VIDEO_ROCKCHIP_RGA) += rockchip/rga/
> +obj-$(CONFIG_VIDEO_ROCKCHIP_VPU)+= rockchip/vpu/
>  
>  obj-y+= omap/
>  
> diff --git a/drivers/media/platform/rockchip/vpu/Makefile 
> b/drivers/media/platform/rockchip/vpu/Makefile
> new file mode 100644
> index ..f717dfda1d42
> --- /dev/null
> +++ b/drivers/media/platform/rockchip/vpu/Makefile
> @@ -0,0 +1,9 @@
> +obj-$(CONFIG_VIDEO_ROCKCHIP_VPU) += rockchip-vpu.o
> +
> +rockchip-vpu-y += \
> + rockchip_vpu_drv.o \
> + rockchip_vpu_enc.o \
> + rk3288_vpu_hw.o \
> + rk3288_vpu_hw_jpege.o \
> + rk3399_vpu_hw.o \
> + rk3399_vpu_hw_jpege.o
> diff --git a/drivers/media/platform/rockchip/vpu/rk3288_vpu_hw.c 
> b/drivers/media/platform/rockchip/vpu/rk3288_vpu_hw.c
> new file mode 100644
> index ..474e1ec758df
> --- /dev/null
> +++ b/drivers/media/platform/rockchip/vpu/rk3288_vpu_hw.c
> @@ -0,0 +1,123 @@
> +// SPD