Re: [Patch 01/35] media: ti-vpe: vpdma: Make vpdma library into its own module

2016-10-24 Thread Benoit Parrot
Hans,

Thanks for the review.


Hans Verkuil  wrote on Mon [2016-Oct-17 16:08:55 +0200]:
> On 09/28/2016 11:16 PM, Benoit Parrot wrote:
> > The VPDMA (Video Port DMA) as found in devices such as DRA7xx is
> > used for both the Video Processing Engine (VPE) and the Video Input
> > Port (VIP).
> > 
> > In preparation for this we need to turn vpdma into its own
> > kernel module.
> > 
> > Signed-off-by: Benoit Parrot 
> > ---
> >  drivers/media/platform/Kconfig |  6 ++
> >  drivers/media/platform/ti-vpe/Makefile |  4 +++-
> >  drivers/media/platform/ti-vpe/vpdma.c  | 28 +++-
> >  3 files changed, 36 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
> > index f98ed3fd0efd..3c15c5a53bd5 100644
> > --- a/drivers/media/platform/Kconfig
> > +++ b/drivers/media/platform/Kconfig
> > @@ -334,6 +334,7 @@ config VIDEO_TI_VPE
> > depends on HAS_DMA
> > select VIDEOBUF2_DMA_CONTIG
> > select V4L2_MEM2MEM_DEV
> > +   select VIDEO_TI_VPDMA
> > default n
> > ---help---
> >   Support for the TI VPE(Video Processing Engine) block
> > @@ -347,6 +348,11 @@ config VIDEO_TI_VPE_DEBUG
> >  
> >  endif # V4L_MEM2MEM_DRIVERS
> >  
> > +# TI VIDEO PORT Helper Modules
> > +# These will be selected by VPE and VIP
> > +config VIDEO_TI_VPDMA
> > +   tristate
> > +
> >  menuconfig V4L_TEST_DRIVERS
> > bool "Media test drivers"
> > depends on MEDIA_CAMERA_SUPPORT
> > diff --git a/drivers/media/platform/ti-vpe/Makefile 
> > b/drivers/media/platform/ti-vpe/Makefile
> > index e236059a60ad..faca5e115c1d 100644
> > --- a/drivers/media/platform/ti-vpe/Makefile
> > +++ b/drivers/media/platform/ti-vpe/Makefile
> > @@ -1,6 +1,8 @@
> >  obj-$(CONFIG_VIDEO_TI_VPE) += ti-vpe.o
> > +obj-$(CONFIG_VIDEO_TI_VPDMA) += ti-vpdma.o
> >  
> > -ti-vpe-y := vpe.o sc.o csc.o vpdma.o
> > +ti-vpe-y := vpe.o sc.o csc.o
> > +ti-vpdma-y := vpdma.o
> >  
> >  ccflags-$(CONFIG_VIDEO_TI_VPE_DEBUG) += -DDEBUG
> >  
> > diff --git a/drivers/media/platform/ti-vpe/vpdma.c 
> > b/drivers/media/platform/ti-vpe/vpdma.c
> > index 3e2e3a33e6ed..e55cb58213bf 100644
> > --- a/drivers/media/platform/ti-vpe/vpdma.c
> > +++ b/drivers/media/platform/ti-vpe/vpdma.c
> > @@ -75,6 +75,7 @@ const struct vpdma_data_format vpdma_yuv_fmts[] = {
> > .depth  = 16,
> > },
> >  };
> > +EXPORT_SYMBOL(vpdma_yuv_fmts);
> 
> EXPORT_SYMBOL_GPL?

I think for now I would rather go for consistency.
So I'll leave it as is.

Regards,
Benoit

> 
> (Up to you).
> 
> Regards,
> 
>   Hans


Re: [Patch 01/35] media: ti-vpe: vpdma: Make vpdma library into its own module

2016-10-24 Thread Benoit Parrot
Hans,

Thanks for the review.


Hans Verkuil  wrote on Mon [2016-Oct-17 16:08:55 +0200]:
> On 09/28/2016 11:16 PM, Benoit Parrot wrote:
> > The VPDMA (Video Port DMA) as found in devices such as DRA7xx is
> > used for both the Video Processing Engine (VPE) and the Video Input
> > Port (VIP).
> > 
> > In preparation for this we need to turn vpdma into its own
> > kernel module.
> > 
> > Signed-off-by: Benoit Parrot 
> > ---
> >  drivers/media/platform/Kconfig |  6 ++
> >  drivers/media/platform/ti-vpe/Makefile |  4 +++-
> >  drivers/media/platform/ti-vpe/vpdma.c  | 28 +++-
> >  3 files changed, 36 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
> > index f98ed3fd0efd..3c15c5a53bd5 100644
> > --- a/drivers/media/platform/Kconfig
> > +++ b/drivers/media/platform/Kconfig
> > @@ -334,6 +334,7 @@ config VIDEO_TI_VPE
> > depends on HAS_DMA
> > select VIDEOBUF2_DMA_CONTIG
> > select V4L2_MEM2MEM_DEV
> > +   select VIDEO_TI_VPDMA
> > default n
> > ---help---
> >   Support for the TI VPE(Video Processing Engine) block
> > @@ -347,6 +348,11 @@ config VIDEO_TI_VPE_DEBUG
> >  
> >  endif # V4L_MEM2MEM_DRIVERS
> >  
> > +# TI VIDEO PORT Helper Modules
> > +# These will be selected by VPE and VIP
> > +config VIDEO_TI_VPDMA
> > +   tristate
> > +
> >  menuconfig V4L_TEST_DRIVERS
> > bool "Media test drivers"
> > depends on MEDIA_CAMERA_SUPPORT
> > diff --git a/drivers/media/platform/ti-vpe/Makefile 
> > b/drivers/media/platform/ti-vpe/Makefile
> > index e236059a60ad..faca5e115c1d 100644
> > --- a/drivers/media/platform/ti-vpe/Makefile
> > +++ b/drivers/media/platform/ti-vpe/Makefile
> > @@ -1,6 +1,8 @@
> >  obj-$(CONFIG_VIDEO_TI_VPE) += ti-vpe.o
> > +obj-$(CONFIG_VIDEO_TI_VPDMA) += ti-vpdma.o
> >  
> > -ti-vpe-y := vpe.o sc.o csc.o vpdma.o
> > +ti-vpe-y := vpe.o sc.o csc.o
> > +ti-vpdma-y := vpdma.o
> >  
> >  ccflags-$(CONFIG_VIDEO_TI_VPE_DEBUG) += -DDEBUG
> >  
> > diff --git a/drivers/media/platform/ti-vpe/vpdma.c 
> > b/drivers/media/platform/ti-vpe/vpdma.c
> > index 3e2e3a33e6ed..e55cb58213bf 100644
> > --- a/drivers/media/platform/ti-vpe/vpdma.c
> > +++ b/drivers/media/platform/ti-vpe/vpdma.c
> > @@ -75,6 +75,7 @@ const struct vpdma_data_format vpdma_yuv_fmts[] = {
> > .depth  = 16,
> > },
> >  };
> > +EXPORT_SYMBOL(vpdma_yuv_fmts);
> 
> EXPORT_SYMBOL_GPL?

I think for now I would rather go for consistency.
So I'll leave it as is.

Regards,
Benoit

> 
> (Up to you).
> 
> Regards,
> 
>   Hans


Re: [Patch 01/35] media: ti-vpe: vpdma: Make vpdma library into its own module

2016-10-17 Thread Hans Verkuil
On 09/28/2016 11:16 PM, Benoit Parrot wrote:
> The VPDMA (Video Port DMA) as found in devices such as DRA7xx is
> used for both the Video Processing Engine (VPE) and the Video Input
> Port (VIP).
> 
> In preparation for this we need to turn vpdma into its own
> kernel module.
> 
> Signed-off-by: Benoit Parrot 
> ---
>  drivers/media/platform/Kconfig |  6 ++
>  drivers/media/platform/ti-vpe/Makefile |  4 +++-
>  drivers/media/platform/ti-vpe/vpdma.c  | 28 +++-
>  3 files changed, 36 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
> index f98ed3fd0efd..3c15c5a53bd5 100644
> --- a/drivers/media/platform/Kconfig
> +++ b/drivers/media/platform/Kconfig
> @@ -334,6 +334,7 @@ config VIDEO_TI_VPE
>   depends on HAS_DMA
>   select VIDEOBUF2_DMA_CONTIG
>   select V4L2_MEM2MEM_DEV
> + select VIDEO_TI_VPDMA
>   default n
>   ---help---
> Support for the TI VPE(Video Processing Engine) block
> @@ -347,6 +348,11 @@ config VIDEO_TI_VPE_DEBUG
>  
>  endif # V4L_MEM2MEM_DRIVERS
>  
> +# TI VIDEO PORT Helper Modules
> +# These will be selected by VPE and VIP
> +config VIDEO_TI_VPDMA
> + tristate
> +
>  menuconfig V4L_TEST_DRIVERS
>   bool "Media test drivers"
>   depends on MEDIA_CAMERA_SUPPORT
> diff --git a/drivers/media/platform/ti-vpe/Makefile 
> b/drivers/media/platform/ti-vpe/Makefile
> index e236059a60ad..faca5e115c1d 100644
> --- a/drivers/media/platform/ti-vpe/Makefile
> +++ b/drivers/media/platform/ti-vpe/Makefile
> @@ -1,6 +1,8 @@
>  obj-$(CONFIG_VIDEO_TI_VPE) += ti-vpe.o
> +obj-$(CONFIG_VIDEO_TI_VPDMA) += ti-vpdma.o
>  
> -ti-vpe-y := vpe.o sc.o csc.o vpdma.o
> +ti-vpe-y := vpe.o sc.o csc.o
> +ti-vpdma-y := vpdma.o
>  
>  ccflags-$(CONFIG_VIDEO_TI_VPE_DEBUG) += -DDEBUG
>  
> diff --git a/drivers/media/platform/ti-vpe/vpdma.c 
> b/drivers/media/platform/ti-vpe/vpdma.c
> index 3e2e3a33e6ed..e55cb58213bf 100644
> --- a/drivers/media/platform/ti-vpe/vpdma.c
> +++ b/drivers/media/platform/ti-vpe/vpdma.c
> @@ -75,6 +75,7 @@ const struct vpdma_data_format vpdma_yuv_fmts[] = {
>   .depth  = 16,
>   },
>  };
> +EXPORT_SYMBOL(vpdma_yuv_fmts);

EXPORT_SYMBOL_GPL?

(Up to you).

Regards,

Hans


Re: [Patch 01/35] media: ti-vpe: vpdma: Make vpdma library into its own module

2016-10-17 Thread Hans Verkuil
On 09/28/2016 11:16 PM, Benoit Parrot wrote:
> The VPDMA (Video Port DMA) as found in devices such as DRA7xx is
> used for both the Video Processing Engine (VPE) and the Video Input
> Port (VIP).
> 
> In preparation for this we need to turn vpdma into its own
> kernel module.
> 
> Signed-off-by: Benoit Parrot 
> ---
>  drivers/media/platform/Kconfig |  6 ++
>  drivers/media/platform/ti-vpe/Makefile |  4 +++-
>  drivers/media/platform/ti-vpe/vpdma.c  | 28 +++-
>  3 files changed, 36 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
> index f98ed3fd0efd..3c15c5a53bd5 100644
> --- a/drivers/media/platform/Kconfig
> +++ b/drivers/media/platform/Kconfig
> @@ -334,6 +334,7 @@ config VIDEO_TI_VPE
>   depends on HAS_DMA
>   select VIDEOBUF2_DMA_CONTIG
>   select V4L2_MEM2MEM_DEV
> + select VIDEO_TI_VPDMA
>   default n
>   ---help---
> Support for the TI VPE(Video Processing Engine) block
> @@ -347,6 +348,11 @@ config VIDEO_TI_VPE_DEBUG
>  
>  endif # V4L_MEM2MEM_DRIVERS
>  
> +# TI VIDEO PORT Helper Modules
> +# These will be selected by VPE and VIP
> +config VIDEO_TI_VPDMA
> + tristate
> +
>  menuconfig V4L_TEST_DRIVERS
>   bool "Media test drivers"
>   depends on MEDIA_CAMERA_SUPPORT
> diff --git a/drivers/media/platform/ti-vpe/Makefile 
> b/drivers/media/platform/ti-vpe/Makefile
> index e236059a60ad..faca5e115c1d 100644
> --- a/drivers/media/platform/ti-vpe/Makefile
> +++ b/drivers/media/platform/ti-vpe/Makefile
> @@ -1,6 +1,8 @@
>  obj-$(CONFIG_VIDEO_TI_VPE) += ti-vpe.o
> +obj-$(CONFIG_VIDEO_TI_VPDMA) += ti-vpdma.o
>  
> -ti-vpe-y := vpe.o sc.o csc.o vpdma.o
> +ti-vpe-y := vpe.o sc.o csc.o
> +ti-vpdma-y := vpdma.o
>  
>  ccflags-$(CONFIG_VIDEO_TI_VPE_DEBUG) += -DDEBUG
>  
> diff --git a/drivers/media/platform/ti-vpe/vpdma.c 
> b/drivers/media/platform/ti-vpe/vpdma.c
> index 3e2e3a33e6ed..e55cb58213bf 100644
> --- a/drivers/media/platform/ti-vpe/vpdma.c
> +++ b/drivers/media/platform/ti-vpe/vpdma.c
> @@ -75,6 +75,7 @@ const struct vpdma_data_format vpdma_yuv_fmts[] = {
>   .depth  = 16,
>   },
>  };
> +EXPORT_SYMBOL(vpdma_yuv_fmts);

EXPORT_SYMBOL_GPL?

(Up to you).

Regards,

Hans


[Patch 01/35] media: ti-vpe: vpdma: Make vpdma library into its own module

2016-09-28 Thread Benoit Parrot
The VPDMA (Video Port DMA) as found in devices such as DRA7xx is
used for both the Video Processing Engine (VPE) and the Video Input
Port (VIP).

In preparation for this we need to turn vpdma into its own
kernel module.

Signed-off-by: Benoit Parrot 
---
 drivers/media/platform/Kconfig |  6 ++
 drivers/media/platform/ti-vpe/Makefile |  4 +++-
 drivers/media/platform/ti-vpe/vpdma.c  | 28 +++-
 3 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index f98ed3fd0efd..3c15c5a53bd5 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -334,6 +334,7 @@ config VIDEO_TI_VPE
depends on HAS_DMA
select VIDEOBUF2_DMA_CONTIG
select V4L2_MEM2MEM_DEV
+   select VIDEO_TI_VPDMA
default n
---help---
  Support for the TI VPE(Video Processing Engine) block
@@ -347,6 +348,11 @@ config VIDEO_TI_VPE_DEBUG
 
 endif # V4L_MEM2MEM_DRIVERS
 
+# TI VIDEO PORT Helper Modules
+# These will be selected by VPE and VIP
+config VIDEO_TI_VPDMA
+   tristate
+
 menuconfig V4L_TEST_DRIVERS
bool "Media test drivers"
depends on MEDIA_CAMERA_SUPPORT
diff --git a/drivers/media/platform/ti-vpe/Makefile 
b/drivers/media/platform/ti-vpe/Makefile
index e236059a60ad..faca5e115c1d 100644
--- a/drivers/media/platform/ti-vpe/Makefile
+++ b/drivers/media/platform/ti-vpe/Makefile
@@ -1,6 +1,8 @@
 obj-$(CONFIG_VIDEO_TI_VPE) += ti-vpe.o
+obj-$(CONFIG_VIDEO_TI_VPDMA) += ti-vpdma.o
 
-ti-vpe-y := vpe.o sc.o csc.o vpdma.o
+ti-vpe-y := vpe.o sc.o csc.o
+ti-vpdma-y := vpdma.o
 
 ccflags-$(CONFIG_VIDEO_TI_VPE_DEBUG) += -DDEBUG
 
diff --git a/drivers/media/platform/ti-vpe/vpdma.c 
b/drivers/media/platform/ti-vpe/vpdma.c
index 3e2e3a33e6ed..e55cb58213bf 100644
--- a/drivers/media/platform/ti-vpe/vpdma.c
+++ b/drivers/media/platform/ti-vpe/vpdma.c
@@ -75,6 +75,7 @@ const struct vpdma_data_format vpdma_yuv_fmts[] = {
.depth  = 16,
},
 };
+EXPORT_SYMBOL(vpdma_yuv_fmts);
 
 const struct vpdma_data_format vpdma_rgb_fmts[] = {
[VPDMA_DATA_FMT_RGB565] = {
@@ -178,6 +179,7 @@ const struct vpdma_data_format vpdma_rgb_fmts[] = {
.depth  = 32,
},
 };
+EXPORT_SYMBOL(vpdma_rgb_fmts);
 
 const struct vpdma_data_format vpdma_misc_fmts[] = {
[VPDMA_DATA_FMT_MV] = {
@@ -186,6 +188,7 @@ const struct vpdma_data_format vpdma_misc_fmts[] = {
.depth  = 4,
},
 };
+EXPORT_SYMBOL(vpdma_misc_fmts);
 
 struct vpdma_channel_info {
int num;/* VPDMA channel number */
@@ -317,6 +320,7 @@ void vpdma_dump_regs(struct vpdma_data *vpdma)
DUMPREG(VIP_UP_UV_CSTAT);
DUMPREG(VPI_CTL_CSTAT);
 }
+EXPORT_SYMBOL(vpdma_dump_regs);
 
 /*
  * Allocate a DMA buffer
@@ -333,6 +337,7 @@ int vpdma_alloc_desc_buf(struct vpdma_buf *buf, size_t size)
 
return 0;
 }
+EXPORT_SYMBOL(vpdma_alloc_desc_buf);
 
 void vpdma_free_desc_buf(struct vpdma_buf *buf)
 {
@@ -341,6 +346,7 @@ void vpdma_free_desc_buf(struct vpdma_buf *buf)
buf->addr = NULL;
buf->size = 0;
 }
+EXPORT_SYMBOL(vpdma_free_desc_buf);
 
 /*
  * map descriptor/payload DMA buffer, enabling DMA access
@@ -361,6 +367,7 @@ int vpdma_map_desc_buf(struct vpdma_data *vpdma, struct 
vpdma_buf *buf)
 
return 0;
 }
+EXPORT_SYMBOL(vpdma_map_desc_buf);
 
 /*
  * unmap descriptor/payload DMA buffer, disabling DMA access and
@@ -375,6 +382,7 @@ void vpdma_unmap_desc_buf(struct vpdma_data *vpdma, struct 
vpdma_buf *buf)
 
buf->mapped = false;
 }
+EXPORT_SYMBOL(vpdma_unmap_desc_buf);
 
 /*
  * create a descriptor list, the user of this list will append configuration,
@@ -396,6 +404,7 @@ int vpdma_create_desc_list(struct vpdma_desc_list *list, 
size_t size, int type)
 
return 0;
 }
+EXPORT_SYMBOL(vpdma_create_desc_list);
 
 /*
  * once a descriptor list is parsed by VPDMA, we reset the list by emptying it,
@@ -405,6 +414,7 @@ void vpdma_reset_desc_list(struct vpdma_desc_list *list)
 {
list->next = list->buf.addr;
 }
+EXPORT_SYMBOL(vpdma_reset_desc_list);
 
 /*
  * free the buffer allocated fot the VPDMA descriptor list, this should be
@@ -416,11 +426,13 @@ void vpdma_free_desc_list(struct vpdma_desc_list *list)
 
list->next = NULL;
 }
+EXPORT_SYMBOL(vpdma_free_desc_list);
 
-static bool vpdma_list_busy(struct vpdma_data *vpdma, int list_num)
+bool vpdma_list_busy(struct vpdma_data *vpdma, int list_num)
 {
return read_reg(vpdma, VPDMA_LIST_STAT_SYNC) & BIT(list_num + 16);
 }
+EXPORT_SYMBOL(vpdma_list_busy);
 
 /*
  * submit a list of DMA descriptors to the VPE VPDMA, do not wait for 
completion
@@ -446,6 +458,7 @@ int vpdma_submit_descs(struct vpdma_data *vpdma, struct 
vpdma_desc_list *list)
 
return 0;
 }
+EXPORT_SYMBOL(vpdma_submit_descs);
 
 static void dump_cfd(struct vpdma_cfd *cfd)
 {
@@ -498,6 +511,7 @@ void 

[Patch 01/35] media: ti-vpe: vpdma: Make vpdma library into its own module

2016-09-28 Thread Benoit Parrot
The VPDMA (Video Port DMA) as found in devices such as DRA7xx is
used for both the Video Processing Engine (VPE) and the Video Input
Port (VIP).

In preparation for this we need to turn vpdma into its own
kernel module.

Signed-off-by: Benoit Parrot 
---
 drivers/media/platform/Kconfig |  6 ++
 drivers/media/platform/ti-vpe/Makefile |  4 +++-
 drivers/media/platform/ti-vpe/vpdma.c  | 28 +++-
 3 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index f98ed3fd0efd..3c15c5a53bd5 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -334,6 +334,7 @@ config VIDEO_TI_VPE
depends on HAS_DMA
select VIDEOBUF2_DMA_CONTIG
select V4L2_MEM2MEM_DEV
+   select VIDEO_TI_VPDMA
default n
---help---
  Support for the TI VPE(Video Processing Engine) block
@@ -347,6 +348,11 @@ config VIDEO_TI_VPE_DEBUG
 
 endif # V4L_MEM2MEM_DRIVERS
 
+# TI VIDEO PORT Helper Modules
+# These will be selected by VPE and VIP
+config VIDEO_TI_VPDMA
+   tristate
+
 menuconfig V4L_TEST_DRIVERS
bool "Media test drivers"
depends on MEDIA_CAMERA_SUPPORT
diff --git a/drivers/media/platform/ti-vpe/Makefile 
b/drivers/media/platform/ti-vpe/Makefile
index e236059a60ad..faca5e115c1d 100644
--- a/drivers/media/platform/ti-vpe/Makefile
+++ b/drivers/media/platform/ti-vpe/Makefile
@@ -1,6 +1,8 @@
 obj-$(CONFIG_VIDEO_TI_VPE) += ti-vpe.o
+obj-$(CONFIG_VIDEO_TI_VPDMA) += ti-vpdma.o
 
-ti-vpe-y := vpe.o sc.o csc.o vpdma.o
+ti-vpe-y := vpe.o sc.o csc.o
+ti-vpdma-y := vpdma.o
 
 ccflags-$(CONFIG_VIDEO_TI_VPE_DEBUG) += -DDEBUG
 
diff --git a/drivers/media/platform/ti-vpe/vpdma.c 
b/drivers/media/platform/ti-vpe/vpdma.c
index 3e2e3a33e6ed..e55cb58213bf 100644
--- a/drivers/media/platform/ti-vpe/vpdma.c
+++ b/drivers/media/platform/ti-vpe/vpdma.c
@@ -75,6 +75,7 @@ const struct vpdma_data_format vpdma_yuv_fmts[] = {
.depth  = 16,
},
 };
+EXPORT_SYMBOL(vpdma_yuv_fmts);
 
 const struct vpdma_data_format vpdma_rgb_fmts[] = {
[VPDMA_DATA_FMT_RGB565] = {
@@ -178,6 +179,7 @@ const struct vpdma_data_format vpdma_rgb_fmts[] = {
.depth  = 32,
},
 };
+EXPORT_SYMBOL(vpdma_rgb_fmts);
 
 const struct vpdma_data_format vpdma_misc_fmts[] = {
[VPDMA_DATA_FMT_MV] = {
@@ -186,6 +188,7 @@ const struct vpdma_data_format vpdma_misc_fmts[] = {
.depth  = 4,
},
 };
+EXPORT_SYMBOL(vpdma_misc_fmts);
 
 struct vpdma_channel_info {
int num;/* VPDMA channel number */
@@ -317,6 +320,7 @@ void vpdma_dump_regs(struct vpdma_data *vpdma)
DUMPREG(VIP_UP_UV_CSTAT);
DUMPREG(VPI_CTL_CSTAT);
 }
+EXPORT_SYMBOL(vpdma_dump_regs);
 
 /*
  * Allocate a DMA buffer
@@ -333,6 +337,7 @@ int vpdma_alloc_desc_buf(struct vpdma_buf *buf, size_t size)
 
return 0;
 }
+EXPORT_SYMBOL(vpdma_alloc_desc_buf);
 
 void vpdma_free_desc_buf(struct vpdma_buf *buf)
 {
@@ -341,6 +346,7 @@ void vpdma_free_desc_buf(struct vpdma_buf *buf)
buf->addr = NULL;
buf->size = 0;
 }
+EXPORT_SYMBOL(vpdma_free_desc_buf);
 
 /*
  * map descriptor/payload DMA buffer, enabling DMA access
@@ -361,6 +367,7 @@ int vpdma_map_desc_buf(struct vpdma_data *vpdma, struct 
vpdma_buf *buf)
 
return 0;
 }
+EXPORT_SYMBOL(vpdma_map_desc_buf);
 
 /*
  * unmap descriptor/payload DMA buffer, disabling DMA access and
@@ -375,6 +382,7 @@ void vpdma_unmap_desc_buf(struct vpdma_data *vpdma, struct 
vpdma_buf *buf)
 
buf->mapped = false;
 }
+EXPORT_SYMBOL(vpdma_unmap_desc_buf);
 
 /*
  * create a descriptor list, the user of this list will append configuration,
@@ -396,6 +404,7 @@ int vpdma_create_desc_list(struct vpdma_desc_list *list, 
size_t size, int type)
 
return 0;
 }
+EXPORT_SYMBOL(vpdma_create_desc_list);
 
 /*
  * once a descriptor list is parsed by VPDMA, we reset the list by emptying it,
@@ -405,6 +414,7 @@ void vpdma_reset_desc_list(struct vpdma_desc_list *list)
 {
list->next = list->buf.addr;
 }
+EXPORT_SYMBOL(vpdma_reset_desc_list);
 
 /*
  * free the buffer allocated fot the VPDMA descriptor list, this should be
@@ -416,11 +426,13 @@ void vpdma_free_desc_list(struct vpdma_desc_list *list)
 
list->next = NULL;
 }
+EXPORT_SYMBOL(vpdma_free_desc_list);
 
-static bool vpdma_list_busy(struct vpdma_data *vpdma, int list_num)
+bool vpdma_list_busy(struct vpdma_data *vpdma, int list_num)
 {
return read_reg(vpdma, VPDMA_LIST_STAT_SYNC) & BIT(list_num + 16);
 }
+EXPORT_SYMBOL(vpdma_list_busy);
 
 /*
  * submit a list of DMA descriptors to the VPE VPDMA, do not wait for 
completion
@@ -446,6 +458,7 @@ int vpdma_submit_descs(struct vpdma_data *vpdma, struct 
vpdma_desc_list *list)
 
return 0;
 }
+EXPORT_SYMBOL(vpdma_submit_descs);
 
 static void dump_cfd(struct vpdma_cfd *cfd)
 {
@@ -498,6 +511,7 @@ void