rk3566 HDMI 热插拔HDMI显示无信号
环境:
rk3566 android11
kernel 内核版本,4.19.172
问题描述:
hdmi热插拔相关的问题,当插入HDMI 系统开机启动,并正常运行,HDMI有显示且显示正常,进行热插拔也是没有问题的,当不插入HDMI接口系统启动后,再将HDMI显示接口插入HDMI显示无信号,也无法进行热插拔,无法正常显示画面。当系统启动一端时间后,再插入HDMI插入HDMI能够正常显示,且能够进行热插拔。
问题分析:
首先可以保证我们的HDMI显示驱动是没有问题的,因为我们HDMI是可以正常显示的,那么再来考虑热插拔的问题,以及HDMI中断插入脚是否检测有变化,是否能够检测到我们的HDMI插入变化,再来考虑硬件电路的问题。其逐个排查以上的猜想。
问题解决思路:
由上面的判断,可确认HDMI驱动显示部分是没有问题的,通过与硬件沟通,以及利用示波器量中断脚,当HDMI插入拔出时其HDMI的中断脚有电平的变化,HDMI插入时为高电平,拔出为低电平。分析插入HDMI启动系统与启动时不插入HDMI的kernel完全一样,HDMI的相关LOG完全相同,没有报错,且HDMI初始化正常。。。。。。,说实话到这感觉有点无语,无从下手解决该问题,但是没有办法继续干等着发货,思绪一波,突然发现:(重点)该项目外部显示接口比较多,有edp、hdmi、mipi、lvds显示接口,而rk3566只有一个显示控制器,即VOP,RK356X 平台只有一 VOP,但是分出不同的 PORT,RK3566 有 2 个 PORT 分别为 VP0、VP1。而我的项目上使用的是edp 与HDMI显示是通过VP0,而MIPI 与LVDS 使用的是VP1。而这就是设计到了多屏抢占与热插拔的问题了。而我们本文就是该问题引起的,我发现我的edp屏不管插入或是拔出其状态一直是处于连接状态,而在多屏抢占时,又将EDP设置的优先级设置的最高,这就导致了即使我们插入了HDMI无信号输出,而上面的问题也得以解释了,而上电初始化时,插入HDMI时,系统会优先加载HDMI显示模块,所以的HDMI就会有显示,且处于连接状态。
多屏抢占与热插拔分析:
display_subsystem: display-subsystem {compatible = "rockchip,display-subsystem";memory-region = <&drm_logo>, <&drm_cubic_lut>;memory-region-names = "drm-logo", "drm-cubic-lut";ports = <&vop_out>;devfreq = <&dmc>;route {route_dsi0: route-dsi0 {status = "disabled";logo,uboot = "logo.bmp";logo,kernel = "logo_kernel.bmp";logo,mode = "center";charge_logo,mode = "center";connect = <&vp0_out_dsi0>;};route_dsi1: route-dsi1 {status = "disabled";logo,uboot = "logo.bmp";logo,kernel = "logo_kernel.bmp";logo,mode = "center";charge_logo,mode = "center";connect = <&vp0_out_dsi1>;};route_hdmi: route-hdmi {status = "disabled";logo,uboot = "logo.bmp";logo,kernel = "logo_kernel.bmp";logo,mode = "center";charge_logo,mode = "center";connect = <&vp1_out_hdmi>;};route_lvds: route-lvds {status = "disabled";logo,uboot = "logo.bmp";logo,kernel = "logo_kernel.bmp";logo,mode = "center";charge_logo,mode = "center";connect = <&vp1_out_lvds>;};route_edp: route-edp {status = "disabled";logo,uboot = "logo.bmp";logo,kernel = "logo_kernel.bmp";logo,mode = "center";charge_logo,mode = "center";connect = <&vp0_out_edp>;};route_rgb: route-rgb {status = "disabled";logo,uboot = "logo.bmp";logo,kernel = "logo_kernel.bmp";logo,mode = "center";charge_logo,mode = "center";connect = <&vp2_out_rgb>;};};};
抢占:
route的节点是有顺序优先关系的, 如上, route_hdmi在route_mipi之前, 且它们都使用vopb做为显示输出, 当hdmi和mipi同接入时, hdmi会先将vopb抢走, 这样mipi就分配不到vop了, 现象为: hdmi显示, mipi不显示。
热拔插:
如上抢占内容可知, 当hdmi插入时, 现象为hdmi显示, mipi不显示.但当hdmi处于拔出状态时, route_hdmi这一路将不会工作, 也即可以实现;hdmi不显示, mipi显示.由此实现同一配置, 插入hdmi和拔出hdmi启动过程通路状态不同,这里我们将hdmi的抢占优先级设置为最高。
还有个重要的配置口,就是edp (hpd-gpios) 该gpio 属性。
hpd-gpios 对于 Box-to-box Connection,一般需要 HPD功能,需要配置该属性。
&edp {status = "okay";//force-hpd;hpd-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;ports {port@1 {reg = <1>;edp_out_edp: endpoint {remote-endpoint = <&panel_in_edp>;};};};
};
编译下载,问题得以解决!!
IBOX66:/d/dri/0 # cat summary //该目录下可查看显示连接状态
Video Port0: DISABLED
Video Port1: ACTIVEConnector: LVDS-1bus_format[1011]: RGB888_1X7X4_SPWGoverlay_mode[0] output_mode[0] color_space[0]Display mode: 1280x800p60clk[71100] real_clk[71100] type[48] flag[a]H: 1280 1390 1400 1440V: 800 810 813 823Cluster0-win0: ACTIVEwin_id: 0format: AB24 little-endian (0x34324241)[AFBC] SDR[0] color_space[0] glb_alpha[0xff]rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0csc: y2r[0] r2y[0] csc mode[0]zpos: 0src: pos[0, 0] rect[1280 x 800]dst: pos[0, 0] rect[1280 x 800]buf[0]: addr: 0x00000000017fc000 pitch: 5120 offset: 0Esmart0-win0: ACTIVEwin_id: 4format: AB24 little-endian (0x34324241) SDR[0] color_space[0] glb_alpha[0xff]rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0csc: y2r[0] r2y[0] csc mode[0]zpos: 1src: pos[0, 0] rect[1280 x 48]dst: pos[0, 0] rect[1280 x 48]buf[0]: addr: 0x0000000000bd8000 pitch: 5120 offset: 0
Video Port2: DISABLED
rk3566 HDMI 热插拔HDMI显示无信号相关推荐
- 电脑显卡html接口无信号,笔记本电脑HDMI连接电视机显示无信号的解决方法
记本HDMI连接电视机显示无信号,怎么处理?现在的液晶电视,HDMI(高清晰度多媒体接口)是标配,通常是用PC或是平板电脑输出影像,通过电视屏幕来显示,当遇到笔记本HDMI连接电视机显示无信号该怎么解 ...
- Dell服务器HDMI转接没显示,戴尔电脑为什么用hdmi线连接电视,却显示无信号
戴尔电脑为什么用hdmi线连接电视,却显示无信号以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 戴尔电脑为什么用hdmi ...
- 笔记本通过扩展坞扩展显示器,显示器显示无信号
mark一下困扰自己2个星期的问题 现象描述 2台轻薄笔记本,都是金属外壳,2空插座,通过金属扩展坞连接显示器后一直显示无信号.期间反复确认扩展坞和显示器有无问题,折腾了好久.最后的原因为笔记本静电. ...
- 电视打开显示本网络无电视服务器,当贝市场教你网络机顶盒显示无信号怎么办?...
原标题:当贝市场教你网络机顶盒显示无信号怎么办? 最近发现很多网友反映家里的机顶盒在使用的时候突然提示没信号,现在楼主来告诉大家,网络机顶盒在使用的时候显示无信号怎么办? 网络机顶盒无信号一般是网络机 ...
- 计算机投影仪显示无信号如何解决,投影仪无信号输入的解决办法是什么?
Lin_4987 2015-11-05 13:27 笔记本电脑连接投影仪无信号: 1.检查投影机与电脑连接使用的是VGA线还是HDMI线: 2.如果是VGA连接,请检查投影机是否选择到VGA或者电脑模 ...
- 树莓派连接电视显示器或电脑显示器,显示无信号
树莓派连接电视显示器或电脑显示器,显示无信号 *1.*将sd卡通过读卡器接入电脑打开盘符里的config.txt文件 *2.*将 # uncomment if you get no picture o ...
- aoc显示器开机显示计算机,_求各路大神帮忙解决,配置如下 电脑开机AOC显示器显示无信号,每次都要重新拔了再插才有画面_...
网友求助:_求各路大神帮忙解决,配置如下 电脑开机AOC显示器显示无信号,每次都要重新拔了再插才有画面_ 问题求各路大神帮忙解决,配置如下 电脑开机AOC显示器显示无信号,每次都要重新拔了再插才有画面 ...
- 计算机键盘指示灯不亮也不启动不了机,电脑开机时滴滴响 开不了机,显示器显示无信号,键盘灯不亮...
电脑开机时滴滴响 开不了机,显示器显示无信号,键盘灯不亮以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 电脑开机时滴滴响 ...
- 计算机网络无法显示信号,电脑显示器无信号原因 电脑显示无信号的解决步骤...
朋友们在使用电脑时有没有遇到过电脑显示无信号的情况呢,遇到此类情况我们一定会想办法去解决它.那么电脑显示无信号的原因是什么呢,它有什么解决办法呢,下面小编就来给大家介绍下吧. 电脑显示无信号原因 1. ...
最新文章
- 当老板说要把公司当家时,他在说...
- PHP 4.4.7 中用 PEAR 类库操作 ZIP 压缩文件
- qt中label画圆代表指示灯_【Qt编程】基于QWT的曲线绘制及图例显示操作——有样点的实现功能...
- SQL逻辑查询语句执行顺序
- SpringBoot中通过自定义缓存注解(AOP切面拦截)实现数据库数据缓存到Redis
- Tornado入门三
- 人类染色质开放状态数据库,ATACdb使用介绍
- Could not find a suitable table factory for ‘org.apache.flink.table.factories.TableSourceFactory‘
- 使Jackson和Mybatis支持JSR310标准
- 基础知识—数据类型-第一个C++程序
- linux rdma服务,容器网络启用RDMA高速通讯-Freeflow
- FlexSPI driver用法
- [BZOJ4811][YNOI2017]由乃的OJ(树链剖分+线段树)
- python创建矩阵_python中Numpy的属性与创建矩阵
- Luyten 启动报错 This Application requires a Java Runtime Environment 1.7.0-1.8.0问题
- jQuery获取表单数据
- 必备技能10:管理学类重要期刊名录 -- UTD24 和 FT50
- hikaricp mysql_HikariCP
- matlab一维插值extrap,MSC Patran中基于Matlab插值函数的多场创建
- 移动设备管理与OMA DM 协议 V5(3)
热门文章
- 移动开发者如何获取免费流量
- PC端如何使用ITunes无线连接ios手机
- 苏宁回应股权质押给淘宝;日本政府用 AI 帮民众找对象;魅族回应 “暗中给手机植入木马” | EA周报...
- 没错,我真的拒了蚂蚁金服的Offer
- 弱电机房工程搬迁工作内容(方案)
- 程序设计思维与实践 Week14 限时大模拟A - 猫睡觉问题
- Android侧滑返回分析和实现(不高仿微信),flutter项目实战
- 苹果IOS企业开发者账号怎么申请——苹果账号申请记录(未完待续)
- ubuntu 下使用 Python 和 SL4A 的 Android 应用程序构建您自己的android开发环境
- Ubuntu20.04配置velodyne激光雷达环境