HDMI set auto 流程

底层流程:

[display-sys.c] 
mode节点建立
 
写响应函数mode_store()   
----->
[rockchip-hdmi-sysfs.c] hdmi_set_mode()
 
 
 
 
其中hdmi_find_best_mode 会返回最佳分辨率    注意参数二为0
 
 
然后调用hdmi_submit_work()  注意参数HDMI_SET_VIDEO
 
--------->
 [rockchip-hdmi-core.c] hdmi_submit_work()
 
 核心是调用hdmi_work_queue 函数
 
------->
[rockchip-hdmi-core.c] hdmi_work_queue()
 这里event  == HDMI_SET_VIDEO  上面有提到
 
 
继续跟踪hdmi_wq_set_video()
 
------>
[rockchip-hdmi-core.c] hdmi_wq_set_video()
 
 hdmi_wq_set_video 最后会调用hdmi_set_lcdc()
 
 
------>
跟踪hdmi_set_info()
这个函数比较复杂挑重点:
首先 hdmi->vic !=0 的 这里是在hdmi_find_best_mode 中 若失败会返回0  正常会返回最佳的vic 值
 
 
其中hdmi_mode[]数组就是预置支持的分辨率:
 
 
 
 
匹配到之后调用合适时序参数!
 
 
所以重点其实就在于:vic的取值!如下:
 
前面提到过 这个值来自于:hdmi_find_best_mode()函数
 
详细看这个函数:
 
会到开头:
这个函数参数vic 为0
 
所以看第二个if语句:
核心就是,list_entry()
 
 
 
 
所以最终是在找HDMI支持的edid列表,返回列表中第一个元素的vic
 
 
那么现在重点现在就是 hdmi->edid.modelist 何时获得的????
 
 
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值