display:dp/dsi:构建虚拟5kdp/dsi

2023-10-19 04:50
文章标签 构建 dp 虚拟 dsi display 5kdp

本文主要是介绍display:dp/dsi:构建虚拟5kdp/dsi,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

测试mdp的性能,屏幕成本很高

如何构建虚拟dp?

1.kernel打通覆盖dpcd以及edid的节点

2.正确的dpcd以及edid输入

 

对于1,

需要修改源码,简单的思路是创建一个sys节点,暴露dpcp以及edid的节点,顺便需要暴露hot-plug的节点。

这样就可以先改好dpcd以及edid,然后模拟hot-plug,保证在hot-plug执行的时候读取预先写入edid以及dpcd

 

对于2,

正确的dpcd,一般我们修改最多的就是lane的数量以及lane的最大传输速率;修改dpcd主要影响link-training,实际上我遇到最多的就是link-traning的时候,电压增益不匹配;link training的voltage level和pre-emphsis level需要组合尝试。参考dp spec。1.3版本https://download.csdn.net/download/u012839187/12793610

正确的edid,一般我们修改timing为主;如果分辨率小于4096,那么只需要改basic-edid即可,如果分辨率大于4096,那么就需要edid-extension,displayid,也就是以0x70开口的extension数据块。

 

验证,

是否成功的办法是查看/sys节点以及尝试使用modetest工具,查看dmesg去确认。

 

note

edid以及dpcd的生成可以使用工具980 Manager:https://www.quantumdata.com/downloads.html

 

如何构建虚拟dsi?

配置timing;配置对应的phy

qcom某款芯片为例:

1.dts里面qcom,mdss-dsi-display-timings & qcom,mdss-dsi-panel-phy-timings

2.如果有bridge,注意配置bridge

 

DP hot-plug

  • 1.读取dpcd,edid
  • 2.link-traning
  • 3.发送消息给上层 uevent
  • 4.用户层收到消息后,选择对应的perferd mode,通过kms设置mode

 

附一张分辨率图:

https://upload.wikimedia.org/wikipedia/commons/0/0c/Vector_Video_Standards8.svg

这篇关于display:dp/dsi:构建虚拟5kdp/dsi的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/237433

相关文章

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

hdu4826(三维DP)

这是一个百度之星的资格赛第四题 题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1004&cid=500 题意:从左上角的点到右上角的点,每个点只能走一遍,走的方向有三个:向上,向下,向右,求最大值。 咋一看像搜索题,先暴搜,TLE,然后剪枝,还是TLE.然后我就改方法,用DP来做,这题和普通dp相比,多个个向上

hdu1011(背包树形DP)

没有完全理解这题, m个人,攻打一个map,map的入口是1,在攻打某个结点之前要先攻打其他一个结点 dp[i][j]表示m个人攻打以第i个结点为根节点的子树得到的最优解 状态转移dp[i][ j ] = max(dp[i][j], dp[i][k]+dp[t][j-k]),其中t是i结点的子节点 代码如下: #include<iostream>#include<algorithm

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

hdu4865(概率DP)

题意:已知前一天和今天的天气概率,某天的天气概率和叶子的潮湿程度的概率,n天叶子的湿度,求n天最有可能的天气情况。 思路:概率DP,dp[i][j]表示第i天天气为j的概率,状态转移如下:dp[i][j] = max(dp[i][j, dp[i-1][k]*table2[k][j]*table1[j][col] )  代码如下: #include <stdio.h>#include

usaco 1.1 Broken Necklace(DP)

直接上代码 接触的第一道dp ps.大概的思路就是 先从左往右用一个数组在每个点记下蓝或黑的个数 再从右到左算一遍 最后取出最大的即可 核心语句在于: 如果 str[i] = 'r'  ,   rl[i]=rl[i-1]+1, bl[i]=0 如果 str[i] = 'b' ,  bl[i]=bl[i-1]+1, rl[i]=0 如果 str[i] = 'w',  bl[i]=b