Skip to content

Commit

Permalink
staging: vc04_services: Split vchiq-mmal into a module
Browse files Browse the repository at this point in the history
In preparation for adding a video codec V4L2 module which also
wants to use vchiq-mmal functions, split it out into an
independent module.
The minimum number of changes have been made to achieve this
(eg straight moves where possible) so existing checkpatch
errors will still be present.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
  • Loading branch information
6by9 authored and Phil Elwell committed May 28, 2019
1 parent 8a4f344 commit 03e949c
Show file tree
Hide file tree
Showing 15 changed files with 43 additions and 3 deletions.
1 change: 1 addition & 0 deletions drivers/staging/vc04_services/Kconfig
Expand Up @@ -21,6 +21,7 @@ config BCM2835_VCHIQ
source "drivers/staging/vc04_services/bcm2835-audio/Kconfig"

source "drivers/staging/vc04_services/bcm2835-camera/Kconfig"
source "drivers/staging/vc04_services/vchiq-mmal/Kconfig"

endif

1 change: 1 addition & 0 deletions drivers/staging/vc04_services/Makefile
Expand Up @@ -12,6 +12,7 @@ vchiq-objs := \

obj-$(CONFIG_SND_BCM2835) += bcm2835-audio/
obj-$(CONFIG_VIDEO_BCM2835) += bcm2835-camera/
obj-$(CONFIG_BCM2835_VCHIQ_MMAL) += vchiq-mmal/

ccflags-y += -Idrivers/staging/vc04_services -D__VCCOREVER__=0x04000000

2 changes: 1 addition & 1 deletion drivers/staging/vc04_services/bcm2835-camera/Kconfig
Expand Up @@ -2,7 +2,7 @@ config VIDEO_BCM2835
tristate "BCM2835 Camera"
depends on MEDIA_SUPPORT
depends on VIDEO_V4L2 && (ARCH_BCM2835 || COMPILE_TEST)
select BCM2835_VCHIQ
select BCM2835_VCHIQ_MMAL
select VIDEOBUF2_VMALLOC
select BTREE
help
Expand Down
5 changes: 3 additions & 2 deletions drivers/staging/vc04_services/bcm2835-camera/Makefile
@@ -1,11 +1,12 @@
# SPDX-License-Identifier: GPL-2.0
bcm2835-v4l2-$(CONFIG_VIDEO_BCM2835) := \
bcm2835-camera.o \
controls.o \
mmal-vchiq.o
controls.o

obj-$(CONFIG_VIDEO_BCM2835) += bcm2835-v4l2.o

ccflags-y += \
-I $(srctree)/$(src)/.. \
-Idrivers/staging/vc04_services \
-Idrivers/staging/vc04_services/vchiq-mmal \
-D__VCCOREVER__=0x04000000
7 changes: 7 additions & 0 deletions drivers/staging/vc04_services/vchiq-mmal/Kconfig
@@ -0,0 +1,7 @@
config BCM2835_VCHIQ_MMAL
tristate "BCM2835 MMAL VCHIQ service"
depends on (ARCH_BCM2835 || COMPILE_TEST)
select BCM2835_VCHIQ
help
Enables the MMAL API over VCHIQ as used for the
majority of the multimedia services on VideoCore.
8 changes: 8 additions & 0 deletions drivers/staging/vc04_services/vchiq-mmal/Makefile
@@ -0,0 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
bcm2835-mmal-vchiq-objs := mmal-vchiq.o

obj-$(CONFIG_BCM2835_VCHIQ_MMAL) += bcm2835-mmal-vchiq.o

ccflags-y += \
-Idrivers/staging/vc04_services \
-D__VCCOREVER__=0x04000000
Expand Up @@ -17,6 +17,7 @@

#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/mm.h>
#include <linux/slab.h>
Expand All @@ -31,6 +32,11 @@
#define USE_VCHIQ_ARM
#include "interface/vchi/vchi.h"

MODULE_DESCRIPTION("BCM2835 MMAL VCHIQ interface");
MODULE_AUTHOR("Dave Stevenson, <dave.stevenson@raspberrypi.org>");
MODULE_LICENSE("GPL");
MODULE_VERSION("0.0.1");

/* maximum number of components supported */
#define VCHIQ_MMAL_MAX_COMPONENTS 4

Expand Down Expand Up @@ -1396,6 +1402,7 @@ int vchiq_mmal_port_set_format(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_port_set_format);

int vchiq_mmal_port_parameter_set(struct vchiq_mmal_instance *instance,
struct vchiq_mmal_port *port,
Expand All @@ -1412,6 +1419,7 @@ int vchiq_mmal_port_parameter_set(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_port_parameter_set);

int vchiq_mmal_port_parameter_get(struct vchiq_mmal_instance *instance,
struct vchiq_mmal_port *port,
Expand All @@ -1428,6 +1436,7 @@ int vchiq_mmal_port_parameter_get(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_port_parameter_get);

/* enable a port
*
Expand Down Expand Up @@ -1458,6 +1467,7 @@ int vchiq_mmal_port_enable(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_port_enable);

int vchiq_mmal_port_disable(struct vchiq_mmal_instance *instance,
struct vchiq_mmal_port *port)
Expand All @@ -1478,6 +1488,7 @@ int vchiq_mmal_port_disable(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_port_disable);

/* ports will be connected in a tunneled manner so data buffers
* are not handled by client.
Expand Down Expand Up @@ -1565,6 +1576,7 @@ int vchiq_mmal_port_connect_tunnel(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_port_connect_tunnel);

int vchiq_mmal_submit_buffer(struct vchiq_mmal_instance *instance,
struct vchiq_mmal_port *port,
Expand All @@ -1583,6 +1595,7 @@ int vchiq_mmal_submit_buffer(struct vchiq_mmal_instance *instance,

return 0;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_submit_buffer);

int mmal_vchi_buffer_init(struct vchiq_mmal_instance *instance,
struct mmal_buffer *buf)
Expand All @@ -1595,6 +1608,7 @@ int mmal_vchi_buffer_init(struct vchiq_mmal_instance *instance,
buf->msg_context = msg_context;
return 0;
}
EXPORT_SYMBOL_GPL(mmal_vchi_buffer_init);

int mmal_vchi_buffer_cleanup(struct mmal_buffer *buf)
{
Expand All @@ -1606,6 +1620,7 @@ int mmal_vchi_buffer_cleanup(struct mmal_buffer *buf)

return 0;
}
EXPORT_SYMBOL_GPL(mmal_vchi_buffer_cleanup);

/* Initialise a mmal component and its ports
*
Expand Down Expand Up @@ -1693,6 +1708,7 @@ int vchiq_mmal_component_init(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_component_init);

/*
* cause a mmal component to be destroyed
Expand All @@ -1714,6 +1730,7 @@ int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_component_finalise);

/*
* cause a mmal component to be enabled
Expand All @@ -1739,6 +1756,7 @@ int vchiq_mmal_component_enable(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_component_enable);

/*
* cause a mmal component to be enabled
Expand All @@ -1764,6 +1782,7 @@ int vchiq_mmal_component_disable(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_component_disable);

int vchiq_mmal_version(struct vchiq_mmal_instance *instance,
u32 *major_out, u32 *minor_out)
Expand All @@ -1779,6 +1798,7 @@ int vchiq_mmal_version(struct vchiq_mmal_instance *instance,

return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_version);

int vchiq_mmal_finalise(struct vchiq_mmal_instance *instance)
{
Expand Down Expand Up @@ -1809,6 +1829,7 @@ int vchiq_mmal_finalise(struct vchiq_mmal_instance *instance)

return status;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_finalise);

int vchiq_mmal_init(struct vchiq_mmal_instance **out_instance)
{
Expand Down Expand Up @@ -1889,3 +1910,4 @@ int vchiq_mmal_init(struct vchiq_mmal_instance **out_instance)
kfree(instance);
return -ENODEV;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_init);

0 comments on commit 03e949c

Please sign in to comment.