高通平台lcm型号通过cmdline向驱动传递参数的过程-module_param_string
来源:互联网 发布:tensorflow支持显卡 编辑:程序博客网 时间:2024/05/01 03:04
高通平台在lk里识别的屏之后,会通过cmdline向内核传递参数
1 cat /proc/cmdline
mdss_mdp.panel=1:dsi:0:qcom,mdss_dsi_nt35532_fhd_video:1:none:cfg:single_dsi
2 drivers\video\msm\mdss\Mdss_mdp.c
在这个函数中用module_param_string来注册参数
module_param_string(panel, mdss_mdp_panel, MDSS_MAX_PANEL_LEN, 0);
展开这个宏定义
#define module_param_string(name, string, len, perm)\static const struct kparam_string __param_string_##name\= { len, string };\__module_param_call(MODULE_PARAM_PREFIX, name,\ ¶m_ops_string,\ .str = &__param_string_##name, perm, -1, 0);\__MODULE_PARM_TYPE(name, "string")
__module_param_call的宏定义为
#define __module_param_call(prefix, name, ops, arg, perm, level, flags)\/* Default value instead of permissions? */\static const char __param_str_##name[] = prefix #name; \static struct kernel_param __moduleparam_const __param_##name\__used\ __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) \= { __param_str_##name, ops, VERIFY_OCTAL_PERMISSIONS(perm),\ level, flags, { arg } }根据这些宏,最终展开的为
static const char __param_str_panel[] = MODULE_PARAM_PREFIX panel; \static struct kernel_param __moduleparam_const __param_panel\__used__attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) = {.name = __param_str_panel, .ops = ¶m_ops_string, .perm = VERIFY_OCTAL_PERMISSIONS(0),.level = -1, .flags = 0,.str = &__param_string_panel }kernel连接时会将param放到_param段中
MODULE_PARAM_PREFIX的宏定义为
#ifdef MODULE#define MODULE_PARAM_PREFIX /* empty */#else#define MODULE_PARAM_PREFIX KBUILD_MODNAME "."#endif是模块编译的为空,不是模块编译的话为 "模块名."
查看Makefile
obj-$(CONFIG_FB_MSM_MDSS) += mdss-mdp.o
可知模块名为mdss-mdp
所以kernel传参数的时候,参数名为 mdss-mdp.panel
3 kernel对cmdline的解析
请参考http://blog.csdn.net/skyflying2012/article/details/41142801阅读全文
0 0
- 高通平台lcm型号通过cmdline向驱动传递参数的过程-module_param_string
- UVM::通过cmdline传递参数
- Uboot 向cmdline添加更多的参数
- MTK cmdline传递过程
- 如何通过cmdline获取panel型号的dtsi文件节点(qcom,lcd,id)
- 高通平台LCD驱动参数说明
- 通过注册的URL Scheme向目标APP传递参数
- cmdline传递
- 通过URL向报表传递参数
- 高通平台LK传递参数给kernel参考serialno的方式实现
- EXTJS通过Button按钮向弹出的IFRAM窗口传递参数与获取参数
- kernel cmdline的几种传递方式
- 基于MTK65xx平台lcm和背光驱动的编写
- 基于MTK65xx平台lcm和背光驱动的编写
- 对MTK安卓平台LCM驱动的理解
- [lcm] Qualcomm平台的显示屏lcd驱动移植步骤
- 基于MTK65xx平台lcm和背光驱动的编写
- android 利用cmdline,将参数从preloader传递到kernel
- 安卓之RecyclerView只点击RecyclerView不点击Item
- 使用ajax从后台向前台返回数据
- golang实现基于redis和consul的可水平扩展的排行榜服务范例
- java并发编程—优秀博文推荐
- 笔记
- 高通平台lcm型号通过cmdline向驱动传递参数的过程-module_param_string
- ajax传送表单中的文件之前后端实现
- tiny6410的yaffs2文件系统的制作及其安装(2)
- 干货分享:让你分分钟学会JS闭包
- CSU-1592 石子归并(区间dp)
- 新人报道
- intellij IDEA 搭建基于 Gradle 的 Spring 项目
- 希尔排序
- java Http