ditsi 配置
lagvm/LINUX/android/vendor/qcom/proprietary/devicetree/qcom
direwolf-g9ph.dts #include "direwolf-vm-la.dtsi"
direwolf-vm-la.dtsi #include "display/quin-vm-display-la.dtsi"
quin-vm-display-la.dtsi
//对应/sys/class/drm/card0/device/driver的节点
//dtsi节点层级
//soc:
//qcom,sde-cfg:
//qcom,sde-sub-cfg@0:
//qcom,sde_kms_hyp@ae00000
&soc {
sde_cfg: qcom,sde-cfg {
compatible = "qcom,sde-cfg";
qcom,sde-sub-cfg@0 {
reg = <0>;
wfd_kms: qcom,wfd_kms@0 {
compatible = "qcom,wfd-kms";
qcom,client-id = "7815";
};
qcom,sde_kms_hyp@ae00000 {
compatible = "qcom,sde-kms-hyp";
qcom,kms = <&wfd_kms>;
};
};
qcom,sde-sub-cfg@1 {
reg = <1>;
qcom,sde_kms_hyp@ae00000 {
compatible = "qcom,sde-kms-hyp-legacy";
qcom,client-id = "7815";
};
};
};
};
Makfile 配置
# SPDX-License-Identifier: GPL-2.0-only
//单LA
# auto-detect subdirs
ifeq (y, $(findstring y, $(CONFIG_ARCH_SA8155) $(CONFIG_ARCH_SA6155) $(CONFIG_ARCH_SA8195)))
include $(srctree)/techpack/display/config/augen3disp.conf
LINUXINCLUDE += -include $(srctree)/techpack/display/config/augen3dispconf.h
LINUXINCLUDE += -I$(srctree)/techpack/display/include \
-I$(srctree)/techpack/display/include/uapi/display
USERINCLUDE = -I$(srctree)/techpack/display/include/uapi/display
endif
//Q+A 这个CONFIG_QTI_QUIN_GVM宏enable
ifeq (y, $(findstring y, $(CONFIG_QTI_QUIN_GVM)))
include $(srctree)/techpack/display/config/gvmgen3disp.conf
LINUXINCLUDE += -include $(srctree)/techpack/display/config/gvmgen3dispconf.h
endif
//根据config 配置msm-hyp msm-hyp-legacy msm-cfg参与编译
obj-$(CONFIG_DRM_MSM) += msm/
obj-$(CONFIG_DRM_MSM_HYP) += msm-hyp/
obj-$(CONFIG_DRM_MSM_HYP_LEGACY) += msm-hyp-legacy/
obj-$(CONFIG_MSM_SDE_ROTATOR) += rotator/
obj-$(CONFIG_DRM_MSM_CFG) += msm-cfg/
/techpack/display/config/gvmgen3dispconf.h
* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
*/
#define CONFIG_DRM_MSM_HYP 1
#define CONFIG_DRM_MSM_HYP_WFD 1
#define CONFIG_SYNC_FILE 1
#define CONFIG_DRM_MSM_LEASE 1
gvmgen3disp.conf
export CONFIG_DRM_MSM_LEASE=y
export CONFIG_SYNC_FILE=y
export CONFIG_DRM_MSM_HYP_WFD=y
ifeq ($(CONFIG_QGKI), y)
export CONFIG_DRM_MSM_HYP=y
export CONFIG_DRM_MSM_HYP_LEGACY=y
export CONFIG_DRM_MSM_CFG=y
endif

drm设备创建card0 和renderD128
1,前面提到的需要分析的代码中,其实只有红框部分代码有用(msm-cfg&msm-hyp-legacy),绿框中的代码在内核驱动加载的时候只会运行register,而根本不会执行probe函数。
2,绿框中的代码完全不编译也不影响系统运行,这些代码感觉像是历史遗留代码

文章详细描述了在Android平台中,QCOM设备树配置文件(如direwolf-g9ph.dtsi和quin-vm-display-la.dtsi)的结构,以及Makfile中针对不同配置(如单LA和QUIN_GVM)的编译设置。重点讨论了如何通过msm-cfg和msm-hyp-legacy模块创建card0和renderD128DRM设备,以及驱动加载和初始化过程中的关键步骤。
最低0.47元/天 解锁文章
2031

被折叠的 条评论
为什么被折叠?



