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

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

SpringBoot实现虚拟线程的方案

《SpringBoot实现虚拟线程的方案》Java19引入虚拟线程,本文就来介绍一下SpringBoot实现虚拟线程的方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录什么是虚拟线程虚拟线程和普通线程的区别SpringBoot使用虚拟线程配置@Async性能对比H

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3