msm-vidc: Enable standalone compilation for video
Added support for compiling video as kernel loadable module. Change-Id: I5b9183d56d14e5e413b786b9ac2b449c6f8ab8ba Signed-off-by: Karthikeyan Periasamy <kperiasa@codeaurora.org>
This commit is contained in:
32
Android.mk
Normal file
32
Android.mk
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
|
VIDEO_BLD_DIR := $(shell pwd)/vendor/qcom/opensource/video-driver
|
||||||
|
VIDEO_SELECT := CONFIG_MSM_VIDC_V4L2=m
|
||||||
|
|
||||||
|
# Build msm_video.ko
|
||||||
|
###########################################################
|
||||||
|
# This is set once per LOCAL_PATH, not per (kernel) module
|
||||||
|
KBUILD_OPTIONS := VIDEO_ROOT=$(VIDEO_BLD_DIR)
|
||||||
|
|
||||||
|
KBUILD_OPTIONS += MODNAME=msm_video
|
||||||
|
KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM)
|
||||||
|
KBUILD_OPTIONS += $(VIDEO_SELECT)
|
||||||
|
|
||||||
|
###########################################################
|
||||||
|
|
||||||
|
DLKM_DIR := device/qcom/common/dlkm
|
||||||
|
|
||||||
|
LOCAL_PATH := $(call my-dir)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
# For incremental compilation
|
||||||
|
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
|
||||||
|
LOCAL_MODULE := msm_video.ko
|
||||||
|
LOCAL_MODULE_KBUILD_NAME := msm_video.ko
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_DEBUG_ENABLE := true
|
||||||
|
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
||||||
|
|
||||||
|
# Include kp_module.ko in the /vendor/lib/modules (vendor.img)
|
||||||
|
# BOARD_VENDOR_KERNEL_MODULES += $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)
|
||||||
|
include $(DLKM_DIR)/Build_external_kernelmodule.mk
|
35
Kbuild
Normal file
35
Kbuild
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
|
include $(VIDEO_ROOT)/config/waipio_video.conf
|
||||||
|
|
||||||
|
LINUXINCLUDE += -include $(VIDEO_ROOT)/config/waipio_video.h
|
||||||
|
|
||||||
|
LINUXINCLUDE += -I$(VIDEO_ROOT)/driver/vidc/inc \
|
||||||
|
-I$(VIDEO_ROOT)/include/uapi/vidc \
|
||||||
|
-I$(VIDEO_ROOT)/driver/platform/waipio/inc \
|
||||||
|
-I$(VIDEO_ROOT)/driver/variant/iris2/inc
|
||||||
|
|
||||||
|
USERINCLUDE += -I$(VIDEO_ROOT)/include/uapi/vidc/media \
|
||||||
|
-I$(VIDEO_ROOT)/include/uapi/vidc
|
||||||
|
|
||||||
|
obj-m += msm_video.o
|
||||||
|
|
||||||
|
msm_video-objs += driver/vidc/src/msm_vidc_v4l2.o \
|
||||||
|
driver/vidc/src/msm_vidc_vb2.o \
|
||||||
|
driver/vidc/src/msm_vidc.o \
|
||||||
|
driver/vidc/src/msm_vdec.o \
|
||||||
|
driver/vidc/src/msm_venc.o \
|
||||||
|
driver/vidc/src/msm_vidc_driver.o \
|
||||||
|
driver/vidc/src/msm_vidc_control.o \
|
||||||
|
driver/vidc/src/msm_vidc_buffer.o \
|
||||||
|
driver/vidc/src/msm_vidc_probe.o \
|
||||||
|
driver/vidc/src/msm_vidc_dt.o \
|
||||||
|
driver/vidc/src/msm_vidc_platform.o \
|
||||||
|
driver/vidc/src/msm_vidc_debug.o \
|
||||||
|
driver/vidc/src/msm_vidc_memory.o \
|
||||||
|
driver/vidc/src/venus_hfi.o \
|
||||||
|
driver/vidc/src/hfi_packet.o \
|
||||||
|
driver/vidc/src/venus_hfi_response.o \
|
||||||
|
driver/variant/iris2/src/msm_vidc_buffer_iris2.o \
|
||||||
|
driver/variant/iris2/src/msm_vidc_iris2.o \
|
||||||
|
driver/platform/waipio/src/msm_vidc_waipio.o
|
52
Makefile
52
Makefile
@@ -1,48 +1,16 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
# auto-detect subdirs
|
KBUILD_OPTIONS+= VIDEO_ROOT=$(KERNEL_SRC)/$(M)
|
||||||
|
|
||||||
LINUXINCLUDE += -I$(srctree)/techpack/video/include \
|
all:
|
||||||
-I$(srctree)/techpack/video/include/uapi \
|
$(MAKE) -C $(KERNEL_SRC) M=$(M) modules $(KBUILD_OPTIONS)
|
||||||
-I$(srctree)/techpack/video/include/uapi/vidc \
|
|
||||||
-I$(srctree)/techpack/video/driver/vidc/inc \
|
|
||||||
-I$(srctree)/techpack/video/driver/platform/waipio/inc \
|
|
||||||
-I$(srctree)/techpack/video/driver/variant/iris2/inc
|
|
||||||
|
|
||||||
USERINCLUDE += -I$(srctree)/techpack/video/include/uapi
|
modules_install:
|
||||||
|
$(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(M) modules_install
|
||||||
|
|
||||||
ccflags-y += -I$(srctree)/techpack/video/driver/vidc/src/ \
|
%:
|
||||||
-I$(srctree)/techpack/video/driver/platform/waipio/src/ \
|
$(MAKE) -C $(KERNEL_SRC) M=$(M) $@ $(KBUILD_OPTIONS)
|
||||||
-I$(srctree)/techpack/video/driver/variant/iris2/src
|
|
||||||
|
|
||||||
msm-vidc-objs := driver/vidc/src/msm_vidc_v4l2.o \
|
|
||||||
driver/vidc/src/msm_vidc_vb2.o \
|
|
||||||
driver/vidc/src/msm_vidc.o \
|
|
||||||
driver/vidc/src/msm_vdec.o \
|
|
||||||
driver/vidc/src/msm_venc.o \
|
|
||||||
driver/vidc/src/msm_vidc_driver.o \
|
|
||||||
driver/vidc/src/msm_vidc_control.o \
|
|
||||||
driver/vidc/src/msm_vidc_buffer.o \
|
|
||||||
driver/vidc/src/msm_vidc_probe.o \
|
|
||||||
driver/vidc/src/msm_vidc_dt.o \
|
|
||||||
driver/vidc/src/msm_vidc_platform.o \
|
|
||||||
driver/vidc/src/msm_vidc_debug.o \
|
|
||||||
driver/vidc/src/msm_vidc_memory.o \
|
|
||||||
driver/vidc/src/venus_hfi.o \
|
|
||||||
driver/vidc/src/hfi_packet.o \
|
|
||||||
driver/vidc/src/venus_hfi_response.o
|
|
||||||
|
|
||||||
ifneq ($(CONFIG_ARCH_QTI_VM), y)
|
|
||||||
ifeq ($(CONFIG_ARCH_LAHAINA), y)
|
|
||||||
|
|
||||||
include $(srctree)/techpack/video/config/waipio_video.conf
|
|
||||||
LINUXINCLUDE += -include $(srctree)/techpack/video/config/waipio_video.h
|
|
||||||
|
|
||||||
msm-vidc-objs += driver/platform/waipio/src/msm_vidc_waipio.o \
|
|
||||||
driver/variant/iris2/src/msm_vidc_iris2.o \
|
|
||||||
driver/variant/iris2/src/msm_vidc_buffer_iris2.o
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
obj-$(CONFIG_MSM_VIDC_V4L2) := msm-vidc.o
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.o *.ko *.mod.c *.mod.o *~ .*.cmd Module.symvers
|
||||||
|
rm -rf .tmp_versions
|
||||||
|
@@ -53,7 +53,7 @@ static int msm_vidc_init_irq(struct msm_vidc_core *core)
|
|||||||
}
|
}
|
||||||
dt = core->dt;
|
dt = core->dt;
|
||||||
|
|
||||||
core->register_base_addr = devm_ioremap_nocache(&core->pdev->dev,
|
core->register_base_addr = devm_ioremap(&core->pdev->dev,
|
||||||
dt->register_base, dt->register_size);
|
dt->register_base, dt->register_size);
|
||||||
if (!core->register_base_addr) {
|
if (!core->register_base_addr) {
|
||||||
d_vpr_e("could not map reg addr %pa of size %d\n",
|
d_vpr_e("could not map reg addr %pa of size %d\n",
|
||||||
@@ -91,6 +91,7 @@ static struct attribute_group msm_vidc_core_attr_group = {
|
|||||||
static const struct of_device_id msm_vidc_dt_match[] = {
|
static const struct of_device_id msm_vidc_dt_match[] = {
|
||||||
{.compatible = "qcom,msm-vidc"},
|
{.compatible = "qcom,msm-vidc"},
|
||||||
{.compatible = "qcom,msm-vidc,context-bank"},
|
{.compatible = "qcom,msm-vidc,context-bank"},
|
||||||
|
{},
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, msm_vidc_dt_match);
|
MODULE_DEVICE_TABLE(of, msm_vidc_dt_match);
|
||||||
|
|
||||||
@@ -148,7 +149,7 @@ static int msm_vidc_register_video_device(struct msm_vidc_core *core,
|
|||||||
V4L2_CAP_META_OUTPUT |
|
V4L2_CAP_META_OUTPUT |
|
||||||
V4L2_CAP_STREAMING;
|
V4L2_CAP_STREAMING;
|
||||||
rc = video_register_device(&core->vdev[index].vdev,
|
rc = video_register_device(&core->vdev[index].vdev,
|
||||||
VFL_TYPE_GRABBER, nr);
|
VFL_TYPE_VIDEO, nr);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
d_vpr_e("Failed to register the video device\n");
|
d_vpr_e("Failed to register the video device\n");
|
||||||
return rc;
|
return rc;
|
||||||
|
Reference in New Issue
Block a user