Prechádzať zdrojové kódy

securemsm-kernel : Resolve external dependancy for hdcp module

Resolve external dependancy for hdcp symbols.

Change-Id: If4bad51a7aabdbb334f9e7efaa45f40f0988c857
Sheik Anwar Shabic Y 3 rokov pred
rodič
commit
177899dde3
5 zmenil súbory, kde vykonal 44 pridanie a 170 odobranie
  1. 30 12
      Android.mk
  2. 2 3
      Kbuild
  3. 11 0
      config/sec-kernel_defconfig.h
  4. 1 1
      hdcp/hdcp_qseecom.c
  5. 0 154
      linux/hdcp_qseecom.h

+ 30 - 12
Android.mk

@@ -3,12 +3,29 @@
 LOCAL_PATH := $(call my-dir)
 DLKM_DIR := $(TOP)/device/qcom/common/dlkm
 
+SEC_KERNEL_DIR := $(TOP)/vendor/qcom/opensource/securemsm-kernel
+
 SSG_SRC_FILES := \
 	$(wildcard $(LOCAL_PATH)/*) \
  	$(wildcard $(LOCAL_PATH)/*/*) \
  	$(wildcard $(LOCAL_PATH)/*/*/*) \
  	$(wildcard $(LOCAL_PATH)/*/*/*/*)
 
+# This is set once per LOCAL_PATH, not per (kernel) module
+KBUILD_OPTIONS := SSG_ROOT=$(SEC_KERNEL_DIR)
+KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM)
+
+###################################################
+include $(CLEAR_VARS)
+# For incremental compilation
+LOCAL_SRC_FILES           := $(SSG_SRC_FILES)
+LOCAL_MODULE              := sec-module-symvers
+LOCAL_MODULE_STEM         := Module.symvers
+LOCAL_MODULE_KBUILD_NAME  := Module.symvers
+LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
+include $(DLKM_DIR)/Build_external_kernelmodule.mk
+###################################################
+###################################################
 #$(error $(SSG_SRC_FILES))
 include $(CLEAR_VARS)
 #LOCAL_SRC_FILES           := $(SSG_SRC_FILES)
@@ -19,7 +36,8 @@ LOCAL_MODULE_DEBUG_ENABLE := true
 LOCAL_HEADER_LIBRARIES    := smcinvoke_kernel_headers
 LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
-##################################################
+###################################################
+###################################################
 include $(CLEAR_VARS)
 LOCAL_SRC_FILES           := $(SSG_SRC_FILES)
 LOCAL_MODULE              := tz_log_dlkm.ko
@@ -28,8 +46,8 @@ LOCAL_MODULE_TAGS         := optional
 LOCAL_MODULE_DEBUG_ENABLE := true
 LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
-#################################################
-##################################################
+###################################################
+###################################################
 include $(CLEAR_VARS)
 LOCAL_SRC_FILES           := $(SSG_SRC_FILES)
 LOCAL_MODULE              := qce50_dlkm.ko
@@ -38,8 +56,8 @@ LOCAL_MODULE_TAGS         := optional
 LOCAL_MODULE_DEBUG_ENABLE := true
 LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
-#################################################
-##################################################
+###################################################
+###################################################
 include $(CLEAR_VARS)
 LOCAL_SRC_FILES           := $(SSG_SRC_FILES)
 LOCAL_MODULE              := qcedev-mod_dlkm.ko
@@ -48,8 +66,8 @@ LOCAL_MODULE_TAGS         := optional
 LOCAL_MODULE_DEBUG_ENABLE := true
 LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
-#################################################
-##################################################
+###################################################
+###################################################
 include $(CLEAR_VARS)
 LOCAL_SRC_FILES           := $(SSG_SRC_FILES)
 LOCAL_MODULE              := qcrypto-msm_dlkm.ko
@@ -58,8 +76,8 @@ LOCAL_MODULE_TAGS         := optional
 LOCAL_MODULE_DEBUG_ENABLE := true
 LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
-#################################################
-#################################################
+###################################################
+###################################################
 include $(CLEAR_VARS)
 LOCAL_SRC_FILES           := $(SSG_SRC_FILES)
 LOCAL_MODULE              := hdcp_qseecom_dlkm.ko
@@ -68,8 +86,8 @@ LOCAL_MODULE_TAGS         := optional
 LOCAL_MODULE_DEBUG_ENABLE := true
 LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
-#################################################
-#################################################
+###################################################
+###################################################
 include $(CLEAR_VARS)
 LOCAL_SRC_FILES           := $(SSG_SRC_FILES)
 LOCAL_MODULE              := qrng_dlkm.ko
@@ -78,4 +96,4 @@ LOCAL_MODULE_TAGS         := optional
 LOCAL_MODULE_DEBUG_ENABLE := true
 LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
-#################################################
+###################################################

+ 2 - 3
Kbuild

@@ -5,9 +5,8 @@ include $(SSG_MODULE_ROOT)/config/sec-kernel_defconfig.conf
 endif
 
 LINUXINCLUDE += -I$(SSG_MODULE_ROOT)/ \
-                -I$(SSG_MODULE_ROOT)/linux/
-
-KBUILD_CPPFLAGS += -DCONFIG_HDCP_QSEECOM
+                -I$(SSG_MODULE_ROOT)/linux/ \
+                -include $(SSG_MODULE_ROOT)/config/sec-kernel_defconfig.h
 
 obj-$(CONFIG_QCOM_SMCINVOKE) += smcinvoke_dlkm.o
 smcinvoke_dlkm-objs := smcinvoke/smcinvoke_kernel.o smcinvoke/smcinvoke.o

+ 11 - 0
config/sec-kernel_defconfig.h

@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved..
+ */
+
+#define  CONFIG_QCOM_SMCINVOKE 1
+#define  CONFIG_QTI_TZ_LOG 1
+#define  CONFIG_CRYPTO_DEV_QCEDEV 1
+#define  CONFIG_CRYPTO_DEV_QCRYPTO 1
+#define  CONFIG_HDCP_QSEECOM 1
+#define  CONFIG_HW_RANDOM_MSM_LEGACY 1

+ 1 - 1
hdcp/hdcp_qseecom.c

@@ -22,7 +22,7 @@
 #include <linux/completion.h>
 #include <linux/errno.h>
 #include <linux/kthread.h>
-#include "linux/hdcp_qseecom.h"
+#include <linux/hdcp_qseecom.h>
 #include "misc/qseecom_kernel.h"
 
 #define HDCP2P2_APP_NAME      "hdcp2p2"

+ 0 - 154
linux/hdcp_qseecom.h

@@ -1,154 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright (c) 2015-2022, The Linux Foundation. All rights reserved.
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
- */
-
-#ifndef __HDCP_QSEECOM_H
-#define __HDCP_QSEECOM_H
-#include <linux/types.h>
-
-#define HDCP_QSEECOM_ENUM_STR(x)	#x
-
-enum hdcp2_app_cmd {
-	HDCP2_CMD_START,
-	HDCP2_CMD_START_AUTH,
-	HDCP2_CMD_STOP,
-	HDCP2_CMD_PROCESS_MSG,
-	HDCP2_CMD_TIMEOUT,
-	HDCP2_CMD_EN_ENCRYPTION,
-	HDCP2_CMD_QUERY_STREAM,
-};
-
-struct hdcp2_buffer {
-	unsigned char *data;
-	u32 length;
-};
-
-struct hdcp2_app_data {
-	u32 timeout;
-	bool repeater_flag;
-	struct hdcp2_buffer request;	// requests to TA, sent from sink
-	struct hdcp2_buffer response;	// responses from TA, sent to sink
-};
-
-struct hdcp1_topology {
-	uint32_t depth;
-	uint32_t device_count;
-	uint32_t max_devices_exceeded;
-	uint32_t max_cascade_exceeded;
-	uint32_t hdcp2LegacyDeviceDownstream;
-	uint32_t hdcp1DeviceDownstream;
-};
-
-static inline const char *hdcp2_app_cmd_str(enum hdcp2_app_cmd cmd)
-{
-	switch (cmd) {
-	case HDCP2_CMD_START:
-		return HDCP_QSEECOM_ENUM_STR(HDCP2_CMD_START);
-	case HDCP2_CMD_START_AUTH:
-		return HDCP_QSEECOM_ENUM_STR(HDCP2_CMD_START_AUTH);
-	case HDCP2_CMD_STOP:
-		return HDCP_QSEECOM_ENUM_STR(HDCP2_CMD_STOP);
-	case HDCP2_CMD_PROCESS_MSG:
-		return HDCP_QSEECOM_ENUM_STR(HDCP2_CMD_PROCESS_MSG);
-	case HDCP2_CMD_TIMEOUT:
-		return HDCP_QSEECOM_ENUM_STR(HDCP2_CMD_TIMEOUT);
-	case HDCP2_CMD_EN_ENCRYPTION:
-		return HDCP_QSEECOM_ENUM_STR(HDCP2_CMD_EN_ENCRYPTION);
-	case HDCP2_CMD_QUERY_STREAM:
-		return HDCP_QSEECOM_ENUM_STR(HDCP2_CMD_QUERY_STREAM);
-	default:			return "???";
-	}
-}
-
-#if IS_ENABLED(CONFIG_HDCP_QSEECOM)
-void *hdcp1_init(void);
-void hdcp1_deinit(void *data);
-bool hdcp1_feature_supported(void *data);
-int hdcp1_start(void *data, u32 *aksv_msb, u32 *aksv_lsb);
-int hdcp1_set_enc(void *data, bool enable);
-int hdcp1_ops_notify(void *data, void *topology, bool is_authenticated);
-void hdcp1_stop(void *data);
-
-void *hdcp2_init(u32 device_type);
-void hdcp2_deinit(void *ctx);
-bool hdcp2_feature_supported(void *ctx);
-int hdcp2_app_comm(void *ctx, enum hdcp2_app_cmd cmd,
-		struct hdcp2_app_data *app_data);
-int hdcp2_open_stream(void *ctx, uint8_t vc_payload_id,
-		uint8_t stream_number, uint32_t *stream_id);
-int hdcp2_close_stream(void *ctx, uint32_t stream_id);
-int hdcp2_force_encryption(void *ctx, uint32_t enable);
-#else
-static inline void *hdcp1_init(void)
-{
-	return NULL;
-}
-
-static inline void hdcp1_deinit(void *data)
-{
-}
-
-static inline bool hdcp1_feature_supported(void *data)
-{
-	return false;
-}
-
-static inline int hdcp1_start(void *data, u32 *aksv_msb, u32 *aksv_lsb)
-{
-	return 0;
-}
-
-static inline int hdcp1_ops_notify(void *data, void *topology, bool is_authenticated)
-{
-	return 0;
-}
-
-static inline int hdcp1_set_enc(void *data, bool enable)
-{
-	return 0;
-}
-
-static inline void hdcp1_stop(void *data)
-{
-}
-
-static inline void *hdcp2_init(u32 device_type)
-{
-	return NULL;
-}
-
-static inline void hdcp2_deinit(void *ctx)
-{
-}
-
-static inline bool hdcp2_feature_supported(void *ctx)
-{
-	return false;
-}
-
-static inline int hdcp2_app_comm(void *ctx, enum hdcp2_app_cmd cmd,
-		struct hdcp2_app_data *app_data)
-{
-	return 0;
-}
-
-static inline int hdcp2_open_stream(void *ctx, uint8_t vc_payload_id,
-		uint8_t stream_number, uint32_t *stream_id)
-{
-	return 0;
-}
-
-static inline int hdcp2_close_stream(void *ctx, uint32_t stream_id)
-{
-	return 0;
-}
-
-static inline int hdcp2_force_encryption(void *ctx, uint32_t enable)
-{
-	return 0;
-}
-#endif /* CONFIG_HDCP_QSEECOM */
-
-#endif /* __HDCP_QSEECOM_H */