- 博客(22)
- 收藏
- 关注
原创 SXR1130 dual dsi 配置双屏同步异显
双屏的模式有很多种,本篇文章介绍的是用于AR/VR场景的双目同步异显。我们使用的是两个规格完全一样的显示屏,分辨率为640*480,RGB565(bpp16),刷新率为60fps。这种方式在显示内容上具有很强的相关性。从上层的角度看只创建了一个buffer(1280*480),硬件上连接了两路mipi dsi,且每路都使用了两lane数据线。SOC上对buffer数据采用的是左右切割的模式,就是说同一张图,左半边用一路mipi dsi传输,同时右半边用另一路mipi dsi传输,如下图:.
2021-12-07 14:41:13
2380
原创 高通SXR平台用logcat打印libdrm.o静态库里的日志
今天写程序的时候有一个步骤是把一串字符串数组用fputs()函数写到.txt文件中,结果出现了乱码。找了一上午没找到乱码的原因,
2021-07-18 17:26:59
296
原创 高通mipi dsi 在帧之间和行之间切换LP模式
一、帧切换LP在帧之间切换LP模式很简单,只需要两个feature就可以。+qcom,mdss-dsi-bllp-power-mode; 打开blank low power 模式+qcom,mdss-dsi-bllp-eof-power-mode; 在 end of frame 打开 blank low power模式以上配置是将mipi线在两帧之间切换成了low power模式,用示波器测量可以...
2021-07-18 16:54:22
4814
1
原创 SDM660平台使能I2C或者UART口开不起机
当使能一个I2C或者UART功能导致系统开不起机的情况,一般有两点原因:1、Pin脚被占用2、在TZ那边,Pin脚给的权限不够以SDM660平台的I2C_3为例:我在sdm660-mtp.dtsi文件中使能了i2_3:&i2c_3 { status = "ok";};结果原本能开机的系统开不起来了……i2c的配置在sdm660-blsp.dtsi文件中,我...
2019-09-04 16:17:06
2121
3
原创 如何在UEFI中添加LCD驱动
在UEFI中添加LCD驱动比在BOOTLOADER中要简单很多,UEFI中LCD的配置文件为:BOOT.XF.1.4\boot_images\QcomPkg\Sdm660Pkg\Library\MDPPlatformLib\MDPPlatformLib.c中如下图,我们可以看到,该c文件中高通已经给了几个LCD的范例,这其中的JD9366就是我新加的LCD来看具体内容:con...
2019-09-04 15:15:25
5680
11
原创 如何在kernel中配置uart口
1、在电路图中找到要配置的uart口的口号:如下图,我们这次要调的是MSM8953芯片上的GPIO4和GPIO52、在高通的gpio config文档里找到改口的配置,如:MSM8953_GPIO_Configuration_Spreadsheet.xlsm从下图可知,我们配置的是UART2系列3、从高通的BLSP文档中找到MSM8953平台,UART2系列的配置,...
2019-09-03 16:39:38
1567
原创 UEFI中的I2C的方式读取TP的id
老规矩,先说要实现的功能:用I2C的方式读取TP的ID,然后通过TP的ID不同来做LCD兼容。文件路径:BOOT.XF.1.4/boot_images/QcomPkg/Sdm660Pkg/Library/MDPPlatformLib/MDPPlatformLib.c1、定义要用到的pin脚#define CDP_TP_INT_GPIO 67 //T...
2019-08-27 16:57:45
4232
8
原创 bootloader里配置mpp2为adc口
要靠ADC不同的电压值来区分不同的版本信息,并且要求这个数值在进入kernel之前就要获取到,那么就在bootloader里来吧。bootloader中adc的接口在bootloader/lk/dev/pmic/pm8x41/pm8x41_adc.c文件里。在LK的某个模块里使用adc,只有简单的三句话:+#include <pm8x41_adc.h>//包含头文件{…...
2019-08-27 15:55:08
434
原创 一线脉冲的背光方式
目前我们调过的一线脉冲的背光方式均是16个亮度等级的,所以以此为例。先解释一下,一线脉冲的背光调节方式简单的讲就是,来一个脉冲,亮度发生一次变化。当第一个脉冲发生后,此时会有最大电流,也就是背光亮度的最大等级;此后,每来一个脉冲,亮度就降一级,这个过程是循环出现的,解释见下图:正是因为这个过程是可循环的,所以计算当前亮度调节需要的脉冲个数时,还要考虑当前所在的亮度等级,具体代码...
2019-08-27 15:25:02
918
原创 UEFI中的adc配置 && UEFI往kernel传值
写这篇文章的原因很简单,我们要在sdm660平台的项目上,靠ADC口的电压状态来区分同一个项目的不同版本。因为不同版本的PCB对应到我们项目中某个模块的驱动可能用的也不相同,因此这个ADC要求在系统进到kernel之前就要识别到,并且讲当前版本的值传到kernel里。1、在BOOT.XF.1.4/boot_images/QcomPkg/Include/AdcInputs.h文件中,定义...
2019-08-27 14:31:37
1959
原创 安卓调节背光变化慢的问题
高通默认调节背光的时候,为了满足人眼的适应性,所以调节是一个渐变的过程。比如从最亮调到最暗,背光是慢慢变暗的;或者从最暗调到最亮,背光也是慢慢变亮的。但是这种特性有时候会让人感觉不舒服,所以现在讨论如何关掉这个特性。路径:android\frameworks\base\services\java\com\android\server\power\DisplayPowerController
2017-02-27 18:37:32
1626
原创 忽明忽暗的闪屏问题
之前在调试某个型号的智能机时,发现屏幕有忽明忽暗闪屏的现象。具体表现为当前画面颜色较暗时,屏幕会闪亮一下,而当前画面颜色较亮时,屏幕会变暗一下,效果非常明显。后来找到原因。 这是高通的一个feature,叫做CABL(根据内容调节背光),意思就是当此前的显示内容是暗色系时,背光会自动调亮,当此前的显示内容是亮色系时,背光会自动调暗。这样自动调节的目的是为了增强人眼的适应性,即使各种亮暗界...
2016-10-26 10:09:16
2431
原创 MSM8909平台 LED背光的控制
之前齐师兄问我,是不是应该有一个文件记录背光灯的亮度,我说理论上有,但是在哪里我真的还没有见过。只知道在调LCD驱动的时候会调用一个背光控制的函数,传进来一个亮度值就可以配置亮度了,至于这个函数是谁调用的,以及和上层是怎么联系的,自己一直没想过,最近系统的看了一下,特作此总结。路径:root/andriod/kernel/drivers/video/在Mdss_dsi_panel.c文件里
2015-10-20 18:05:13
1215
原创 android驱动中的休眠
在Linux内核驱动中常常会存在这种情况:进程A若想继续执行需要满足某个条件condition的限制,若条件不满足则进程会被挂到等待队列进行等待。在Linux中,一个等待队列由一个“等待队列头”来管理,看一下这个队列头的初始化:DECLARE_WAIT_QUEUE_HEAD(name) 或动态的定义初始化:wait_queue_head_t my_queue_head;i
2015-06-04 17:47:02
773
原创 android 驱动中的并发和竞争——completion
很多时候在linux系统中,某些进程的运行需要确定某进程A完成之后才能继续,因此通常在进程A中定义一个结构体completion用来标识该进程是否完成,或者是存储等待该进程的其余进程队列。2、Completion先来看一下关于completion的定义;struct completion { unsigned int done; //判断该进程是否完成的标示符 w
2015-05-27 15:34:17
587
原创 android 驱动中的并发和竞争——semaphore(信号量)
在现代的Linux系统中,有非常多的并发源,因此而带来竞争情况,竞争来源于不同的进程对同一共享资源的同时存取。而Linux系统提供了一系列的处理并发和资源竞争的方法,下面介绍几个:1、semaphore(信号量)信号量的使用类似于一对P、V函数,通常一个想进入临界区的进程会调用P函数,返回值是可用的资源数,如果这个数大于0,负责记录资源数的变量减1进程继续,相反则进程需要等待资源被释放。而
2015-05-27 10:08:45
2450
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人