summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Menon <avmenon@codeaurora.org>2016-08-04 11:31:00 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-08-04 11:41:57 -0700
commit23b51055632a060e9bd4dd9155c18a76566c736c (patch)
tree51c4d4d692280b3972fcf83ce4aa55298eda442c
parent1ecb9eaec78fbaa3187574c347165bb70e54fef3 (diff)
msm: vidc: Compile vidc driver as LKM
Add support to compile vidc driver as a Loadable Kernel Module on msmcortex. CRs-Fixed: 1043199 Change-Id: I6aaa1c2a277b5ccde25bbae6e0f452ea7bf578ab Signed-off-by: Arun Menon <avmenon@codeaurora.org>
-rw-r--r--drivers/iommu/msm_dma_iommu_mapping.c4
-rw-r--r--drivers/media/platform/msm/vidc/Kconfig2
-rw-r--r--drivers/media/platform/msm/vidc/Makefile32
-rw-r--r--drivers/media/platform/msm/vidc/governors/Kconfig2
-rw-r--r--drivers/media/platform/msm/vidc/governors/Makefile10
-rw-r--r--drivers/media/platform/msm/vidc/msm_v4l2_vidc.c2
-rw-r--r--drivers/media/platform/msm/vidc/msm_vidc_debug.c4
-rw-r--r--drivers/media/platform/msm/vidc/msm_vidc_res_parse.c1
-rw-r--r--drivers/media/platform/msm/vidc/venus_hfi.c1
-rw-r--r--drivers/media/platform/msm/vidc/vmem/Kconfig2
-rw-r--r--drivers/media/platform/msm/vidc/vmem/Makefile9
-rw-r--r--drivers/media/platform/msm/vidc/vmem/vmem.c6
-rw-r--r--drivers/media/platform/msm/vidc/vmem/vmem.h4
13 files changed, 53 insertions, 26 deletions
diff --git a/drivers/iommu/msm_dma_iommu_mapping.c b/drivers/iommu/msm_dma_iommu_mapping.c
index b91c7785df0b..e26b79959b13 100644
--- a/drivers/iommu/msm_dma_iommu_mapping.c
+++ b/drivers/iommu/msm_dma_iommu_mapping.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -267,6 +267,7 @@ int msm_dma_map_sg_attrs(struct device *dev, struct scatterlist *sg, int nents,
return ret;
}
+EXPORT_SYMBOL(msm_dma_map_sg_attrs);
static void msm_iommu_meta_destroy(struct kref *kref)
{
@@ -343,6 +344,7 @@ void msm_dma_unmap_sg(struct device *dev, struct scatterlist *sgl, int nents,
out:
return;
}
+EXPORT_SYMBOL(msm_dma_unmap_sg);
/*
* Only to be called by ION code when a buffer is freed
diff --git a/drivers/media/platform/msm/vidc/Kconfig b/drivers/media/platform/msm/vidc/Kconfig
index c9773555165e..ae451ff60c54 100644
--- a/drivers/media/platform/msm/vidc/Kconfig
+++ b/drivers/media/platform/msm/vidc/Kconfig
@@ -3,7 +3,7 @@
#
menuconfig MSM_VIDC_V4L2
- bool "Qualcomm MSM V4L2 based video driver"
+ tristate "Qualcomm MSM V4L2 based video driver"
depends on ARCH_QCOM && VIDEO_V4L2
select VIDEOBUF2_CORE
diff --git a/drivers/media/platform/msm/vidc/Makefile b/drivers/media/platform/msm/vidc/Makefile
index ff355611c0d0..55c2d2e8d30b 100644
--- a/drivers/media/platform/msm/vidc/Makefile
+++ b/drivers/media/platform/msm/vidc/Makefile
@@ -1,17 +1,21 @@
-obj-$(CONFIG_MSM_VIDC_V4L2) := msm_v4l2_vidc.o \
- msm_vidc_common.o \
- msm_vidc.o \
- msm_vdec.o \
- msm_venc.o \
- msm_smem.o \
- msm_vidc_debug.o \
- msm_vidc_res_parse.o \
- venus_hfi.o \
- hfi_response_handler.o \
- hfi_packetization.o \
- vidc_hfi.o \
- venus_boot.o \
- msm_vidc_dcvs.o
+ccflags-y += -I$(srctree)/drivers/media/platform/msm/vidc/
+
+msm-vidc-objs := msm_v4l2_vidc.o \
+ msm_vidc_common.o \
+ msm_vidc.o \
+ msm_vdec.o \
+ msm_venc.o \
+ msm_smem.o \
+ msm_vidc_debug.o \
+ msm_vidc_res_parse.o \
+ venus_hfi.o \
+ hfi_response_handler.o \
+ hfi_packetization.o \
+ vidc_hfi.o \
+ venus_boot.o \
+ msm_vidc_dcvs.o
+
+obj-$(CONFIG_MSM_VIDC_V4L2) := msm-vidc.o
obj-$(CONFIG_MSM_VIDC_V4L2) += governors/
diff --git a/drivers/media/platform/msm/vidc/governors/Kconfig b/drivers/media/platform/msm/vidc/governors/Kconfig
index 32362217e0b9..d667d65d5338 100644
--- a/drivers/media/platform/msm/vidc/governors/Kconfig
+++ b/drivers/media/platform/msm/vidc/governors/Kconfig
@@ -1,5 +1,5 @@
menuconfig MSM_VIDC_GOVERNORS
- bool "Clock and bandwidth governors for QTI MSM V4L2 based video driver"
+ tristate "Clock and bandwidth governors for QTI MSM V4L2 based video driver"
depends on MSM_VIDC_V4L2 && PM_DEVFREQ
help
Chooses a set of devfreq governors aimed at providing accurate bandwidth
diff --git a/drivers/media/platform/msm/vidc/governors/Makefile b/drivers/media/platform/msm/vidc/governors/Makefile
index e5b2f9d7a049..06a4d3452f14 100644
--- a/drivers/media/platform/msm/vidc/governors/Makefile
+++ b/drivers/media/platform/msm/vidc/governors/Makefile
@@ -1,5 +1,9 @@
ccflags-y := -I$(srctree)/drivers/devfreq/ \
- -I$(srctree)/drivers/media/platform/msm/vidc/
+ -I$(srctree)/drivers/media/platform/msm/vidc/ \
+ -I$(srctree)/drivers/media/platform/msm/vidc/governors/
-obj-$(CONFIG_MSM_VIDC_GOVERNORS) := msm_vidc_dyn_gov.o \
- msm_vidc_table_gov.o
+msm-vidc-dyn-gov-objs := msm_vidc_dyn_gov.o
+
+msm-vidc-table-gov-objs := msm_vidc_table_gov.o
+
+obj-$(CONFIG_MSM_VIDC_GOVERNORS) := msm-vidc-dyn-gov.o msm-vidc-table-gov.o
diff --git a/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c b/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c
index 0d6a0caa86c8..58a7d0d0577a 100644
--- a/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c
+++ b/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c
@@ -781,3 +781,5 @@ static void __exit msm_vidc_exit(void)
module_init(msm_vidc_init);
module_exit(msm_vidc_exit);
+
+MODULE_LICENSE("GPL");
diff --git a/drivers/media/platform/msm/vidc/msm_vidc_debug.c b/drivers/media/platform/msm/vidc/msm_vidc_debug.c
index fb79661dd2d7..cd984be714fd 100644
--- a/drivers/media/platform/msm/vidc/msm_vidc_debug.c
+++ b/drivers/media/platform/msm/vidc/msm_vidc_debug.c
@@ -16,7 +16,11 @@
#include "vidc_hfi_api.h"
int msm_vidc_debug = VIDC_ERR | VIDC_WARN;
+EXPORT_SYMBOL(msm_vidc_debug);
+
int msm_vidc_debug_out = VIDC_OUT_PRINTK;
+EXPORT_SYMBOL(msm_vidc_debug_out);
+
int msm_vidc_fw_debug = 0x18;
int msm_vidc_fw_debug_mode = 1;
int msm_vidc_fw_low_power_mode = 1;
diff --git a/drivers/media/platform/msm/vidc/msm_vidc_res_parse.c b/drivers/media/platform/msm/vidc/msm_vidc_res_parse.c
index 2bb91ccc6c26..5efa49e38816 100644
--- a/drivers/media/platform/msm/vidc/msm_vidc_res_parse.c
+++ b/drivers/media/platform/msm/vidc/msm_vidc_res_parse.c
@@ -364,6 +364,7 @@ int msm_vidc_load_u32_table(struct platform_device *pdev,
return rc;
}
+EXPORT_SYMBOL(msm_vidc_load_u32_table);
static int msm_vidc_load_platform_version_table(
struct msm_vidc_platform_resources *res)
diff --git a/drivers/media/platform/msm/vidc/venus_hfi.c b/drivers/media/platform/msm/vidc/venus_hfi.c
index 20e217cc0445..951930eb370c 100644
--- a/drivers/media/platform/msm/vidc/venus_hfi.c
+++ b/drivers/media/platform/msm/vidc/venus_hfi.c
@@ -738,6 +738,7 @@ bool venus_hfi_is_session_supported(unsigned long sessions_supported,
{
return __is_session_supported(sessions_supported, session_type);
}
+EXPORT_SYMBOL(venus_hfi_is_session_supported);
static int __devfreq_target(struct device *devfreq_dev,
unsigned long *freq, u32 flags)
diff --git a/drivers/media/platform/msm/vidc/vmem/Kconfig b/drivers/media/platform/msm/vidc/vmem/Kconfig
index e602e52da383..6f54120e2d04 100644
--- a/drivers/media/platform/msm/vidc/vmem/Kconfig
+++ b/drivers/media/platform/msm/vidc/vmem/Kconfig
@@ -1,3 +1,3 @@
menuconfig MSM_VIDC_VMEM
- bool "Qualcomm Technologies Inc MSM VMEM driver"
+ tristate "Qualcomm Technologies Inc MSM VMEM driver"
depends on ARCH_QCOM && MSM_VIDC_V4L2
diff --git a/drivers/media/platform/msm/vidc/vmem/Makefile b/drivers/media/platform/msm/vidc/vmem/Makefile
index 713b92e64544..a56ad95f8b71 100644
--- a/drivers/media/platform/msm/vidc/vmem/Makefile
+++ b/drivers/media/platform/msm/vidc/vmem/Makefile
@@ -1,2 +1,7 @@
-obj-$(CONFIG_MSM_VIDC_VMEM) := vmem.o \
- vmem_debugfs.o
+ccflags-y += -I$(srctree)/drivers/media/platform/msm/vidc/
+ccflags-y += -I$(srctree)/drivers/media/platform/msm/vidc/vmem/
+
+msm-vidc-vmem-objs := vmem.o \
+ vmem_debugfs.o
+
+obj-$(CONFIG_MSM_VIDC_VMEM) := msm-vidc-vmem.o
diff --git a/drivers/media/platform/msm/vidc/vmem/vmem.c b/drivers/media/platform/msm/vidc/vmem/vmem.c
index 3a2ac31c6450..4bf07575c403 100644
--- a/drivers/media/platform/msm/vidc/vmem/vmem.c
+++ b/drivers/media/platform/msm/vidc/vmem/vmem.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -355,6 +355,7 @@ int vmem_allocate(size_t size, phys_addr_t *addr)
exit:
return rc;
}
+EXPORT_SYMBOL(vmem_allocate);
/**
* vmem_free: - Frees the memory allocated via vmem_allocate. Undefined
@@ -384,6 +385,7 @@ void vmem_free(phys_addr_t to_free)
__power_off(vmem);
atomic_dec(&vmem->alloc_count);
}
+EXPORT_SYMBOL(vmem_free);
struct vmem_interrupt_cookie {
struct vmem *vmem;
@@ -699,3 +701,5 @@ static void __exit vmem_exit(void)
module_init(vmem_init);
module_exit(vmem_exit);
+
+MODULE_LICENSE("GPL");
diff --git a/drivers/media/platform/msm/vidc/vmem/vmem.h b/drivers/media/platform/msm/vidc/vmem/vmem.h
index 751904e00755..2f3a26db086b 100644
--- a/drivers/media/platform/msm/vidc/vmem/vmem.h
+++ b/drivers/media/platform/msm/vidc/vmem/vmem.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -14,7 +14,7 @@
#ifndef __VMEM_H__
#define __VMEM_H__
-#ifdef CONFIG_MSM_VIDC_VMEM
+#if (defined CONFIG_MSM_VIDC_VMEM) || (defined CONFIG_MSM_VIDC_VMEM_MODULE)
int vmem_allocate(size_t size, phys_addr_t *addr);
void vmem_free(phys_addr_t to_free);