diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000000..529f50ee2b --- /dev/null +++ b/Android.mk @@ -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 diff --git a/Kbuild b/Kbuild new file mode 100644 index 0000000000..158a09d315 --- /dev/null +++ b/Kbuild @@ -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 diff --git a/Makefile b/Makefile index 76bfd1b513..aec5948a70 100644 --- a/Makefile +++ b/Makefile @@ -1,48 +1,16 @@ # SPDX-License-Identifier: GPL-2.0-only -# auto-detect subdirs +KBUILD_OPTIONS+= VIDEO_ROOT=$(KERNEL_SRC)/$(M) -LINUXINCLUDE += -I$(srctree)/techpack/video/include \ - -I$(srctree)/techpack/video/include/uapi \ - -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 +all: + $(MAKE) -C $(KERNEL_SRC) M=$(M) modules $(KBUILD_OPTIONS) -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/ \ - -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 +%: + $(MAKE) -C $(KERNEL_SRC) M=$(M) $@ $(KBUILD_OPTIONS) +clean: + rm -f *.o *.ko *.mod.c *.mod.o *~ .*.cmd Module.symvers + rm -rf .tmp_versions diff --git a/driver/vidc/src/msm_vidc_probe.c b/driver/vidc/src/msm_vidc_probe.c index 497063ae25..6e15844c79 100644 --- a/driver/vidc/src/msm_vidc_probe.c +++ b/driver/vidc/src/msm_vidc_probe.c @@ -53,7 +53,7 @@ static int msm_vidc_init_irq(struct msm_vidc_core *core) } 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); if (!core->register_base_addr) { 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[] = { {.compatible = "qcom,msm-vidc"}, {.compatible = "qcom,msm-vidc,context-bank"}, + {}, }; 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_STREAMING; rc = video_register_device(&core->vdev[index].vdev, - VFL_TYPE_GRABBER, nr); + VFL_TYPE_VIDEO, nr); if (rc) { d_vpr_e("Failed to register the video device\n"); return rc;