summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dang <sebastiandang@codeaurora.org>2020-12-03 12:24:18 -0800
committerSebastian Dang <sebastiandang@codeaurora.org>2020-12-09 17:18:12 -0800
commit53cf3e9ecb6cb49d7860278cda95a6259402eb4b (patch)
tree6d15bb3082127b19637d9a853b92a07f1236f4b9
parent7657a22ccfc4304aec3ce29279ddb4e9fd1605e3 (diff)
downloadmmrm-53cf3e9ecb6cb49d7860278cda95a6259402eb4b.tar.gz
mmrm: Enable mmrm driver dlkm compilation
Add makefile, kbuild, and android.mk to compile mmrm driver as an external kernel module. Modify debugfs with new return type. Change-Id: I370fac4d985bbe491be7fdab846eb3b60d6a3c4d
-rw-r--r--Android.mk36
-rw-r--r--Kbuild5
-rw-r--r--Makefile22
-rw-r--r--driver/Kbuild (renamed from driver/Makefile)7
-rw-r--r--driver/src/mmrm_debug.c21
5 files changed, 60 insertions, 31 deletions
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..59ad11d
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,36 @@
+MMRM_BLD_DIR := $(shell pwd)/vendor/qcom/opensource/mmrm
+
+# Build msm-mmrm.ko
+###########################################################
+# This is set once per LOCAL_PATH, not per (kernel) module
+KBUILD_OPTIONS := MMRM_ROOT=$(MMRM_BLD_DIR)
+KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM)
+###########################################################
+
+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-mmrm.ko
+LOCAL_MODULE_KBUILD_NAME := driver/msm-mmrm.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
+
+include $(CLEAR_VARS)
+# For incremental compilation
+LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
+LOCAL_MODULE := mmrm_test_module.ko
+LOCAL_MODULE_KBUILD_NAME := test/mmrm_test_module.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 0000000..1e0a14b
--- /dev/null
+++ b/Kbuild
@@ -0,0 +1,5 @@
+include $(MMRM_ROOT)/config/waipiommrm.conf
+LINUXINCLUDE += -include $(MMRM_ROOT)/config/waipiommrmconf.h
+
+obj-m += driver/
+obj-m += test/
diff --git a/Makefile b/Makefile
index 443360b..771036c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,16 @@
-# auto-detect subdirs
-ifeq ($(CONFIG_ARCH_WAIPIO), y)
-include $(srctree)/techpack/mmrm/config/waipiommrm.conf
-endif
+KBUILD_OPTIONS+= MMRM_ROOT=$(KERNEL_SRC)/$(M)
-ifeq ($(CONFIG_ARCH_WAIPIO), y)
-LINUXINCLUDE += -include $(srctree)/techpack/mmrm/config/waipiommrmconf.h
-endif
+all: modules
-obj-y +=driver/
+modules:
+ $(MAKE) -C $(KERNEL_SRC) M=$(M) modules $(KBUILD_OPTIONS)
+
+modules_install:
+ $(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(M) modules_install
+
+%:
+ $(MAKE) -C $(KERNEL_SRC) M=$(M) $@ $(KBUILD_OPTIONS)
+
+clean:
+ rm -f *.o *.ko *.mod.c *.mod.o *~ .*.cmd Module.symvers
+ rm -rf .tmp_versions \ No newline at end of file
diff --git a/driver/Makefile b/driver/Kbuild
index 89e9fba..3ca216a 100644
--- a/driver/Makefile
+++ b/driver/Kbuild
@@ -1,10 +1,11 @@
-ccflags-y += -I$(srctree)/techpack/mmrm/driver/src/
+ifdef CONFIG_MSM_MMRM
+LINUXINCLUDE += -I$(MMRM_ROOT)/driver/src
+obj-m += msm-mmrm.o
msm-mmrm-objs := src/msm_mmrm.o \
src/mmrm_internal.o \
src/mmrm_res_parse.o \
src/mmrm_debug.o \
src/mmrm_clk_rsrc_mgr_sw.o \
src/mmrm_clk_rsrc_mgr.o
-
-obj-$(CONFIG_MSM_MMRM) := msm-mmrm.o
+endif
diff --git a/driver/src/mmrm_debug.c b/driver/src/mmrm_debug.c
index 6e5f938..e9549df 100644
--- a/driver/src/mmrm_debug.c
+++ b/driver/src/mmrm_debug.c
@@ -41,7 +41,6 @@ struct dentry *msm_mmrm_debugfs_init(void)
{
struct dentry *dir;
int file_val;
- bool ok = false;
d_mpr_h("%s: entering\n", __func__);
@@ -58,26 +57,8 @@ struct dentry *msm_mmrm_debugfs_init(void)
goto failed_create_dir;
}
-#define __debugfs_create(__type, __name, __value) \
- ({ \
- struct dentry *f = debugfs_create_##__type(__name, 0644, dir, __value); \
- if (IS_ERR_OR_NULL(f)) { \
- d_mpr_e("%s: Failed creating debugfs file '%pd/%s'\n", \
- __func__, \
- dir, \
- __name); \
- f = NULL; \
- } \
- f; \
- })
-
/* add other params here */
- ok = __debugfs_create(u32, "debug_level", &msm_mmrm_debug);
-
-#undef __debugfs_create
-
- if (!ok)
- goto failed_create_dir;
+ debugfs_create_u32("debug_level", 0644, dir, &msm_mmrm_debug);
d_mpr_h("%s: exiting\n", __func__);
return dir;