项目:
2023年11月。客户有个板子更换mipi屏幕,之前已经调试好了,可以正常显示。后面发现屏幕有点暗,需要改动初始化参数。为啥之前不用写也可以做正常显示:因为出厂时候屏幕厂商已经写好一次。但是有一个问题,只能写一次,后面不能再写。所以现在需要初始化屏幕时候,写入屏幕初始化参数。
问题描述
屏幕初始化参数

验证时候 屏幕是可以正常显示的。但是没有看到想要的变化,这组参数在别的板子(非rk)上是正常的。怀疑是没有正常写入。
原因分析:
出现了问题 我先看看代码。我分析这个函数static int panel_simple_prepare(struct drm_panel *panel) 因为这个函数是下发屏幕初始化参数开始。
查看代码
ssize_t mipi_dsi_dcs_write_buffer(struct mipi_dsi_device *dsi,
const void *data, size_t len)
{
struct mipi_dsi_msg msg = {
.channel = dsi->channel,
.tx_buf = data,
.tx_len = len
};
switch (len) {
case 0:

文章讲述了在更换Mipi屏幕后,由于屏幕厂商预设参数限制,必须正确设置初始化参数。问题在于代码中缺少了初始化延迟,通过添加DTS文件中的init-delay-ms配置解决了屏幕亮度问题。
最低0.47元/天 解锁文章
562





