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

相关文章

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

使用Python和python-pptx构建Markdown到PowerPoint转换器

《使用Python和python-pptx构建Markdown到PowerPoint转换器》在这篇博客中,我们将深入分析一个使用Python开发的应用程序,该程序可以将Markdown文件转换为Pow... 目录引言应用概述代码结构与分析1. 类定义与初始化2. 事件处理3. Markdown 处理4. 转

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization