自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

董能能的专栏

技术驱动美好生活

  • 博客(22)
  • 收藏
  • 关注

原创 修改userdata分区为实际大小

android partition

2022-10-09 11:31:26 1756 1

原创 增加persist分区到500M

Android partition

2022-10-09 10:28:46 371 1

原创 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 2304

原创 高通SXR平台用logcat打印libdrm.o静态库里的日志

今天写程序的时候有一个步骤是把一串字符串数组用fputs()函数写到.txt文件中,结果出现了乱码。找了一上午没找到乱码的原因,

2021-07-18 17:26:59 289

原创 高通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 4639 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 2102 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 5612 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 1554

原创 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 4133 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 427

原创 一线脉冲的背光方式

目前我们调过的一线脉冲的背光方式均是16个亮度等级的,所以以此为例。先解释一下,一线脉冲的背光调节方式简单的讲就是,来一个脉冲,亮度发生一次变化。当第一个脉冲发生后,此时会有最大电流,也就是背光亮度的最大等级;此后,每来一个脉冲,亮度就降一级,这个过程是循环出现的,解释见下图:正是因为这个过程是可循环的,所以计算当前亮度调节需要的脉冲个数时,还要考虑当前所在的亮度等级,具体代码...

2019-08-27 15:25:02 873

原创 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 1931

原创 安卓调节背光变化慢的问题

高通默认调节背光的时候,为了满足人眼的适应性,所以调节是一个渐变的过程。比如从最亮调到最暗,背光是慢慢变暗的;或者从最暗调到最亮,背光也是慢慢变亮的。但是这种特性有时候会让人感觉不舒服,所以现在讨论如何关掉这个特性。路径:android\frameworks\base\services\java\com\android\server\power\DisplayPowerController

2017-02-27 18:37:32 1612

原创 忽明忽暗的闪屏问题

之前在调试某个型号的智能机时,发现屏幕有忽明忽暗闪屏的现象。具体表现为当前画面颜色较暗时,屏幕会闪亮一下,而当前画面颜色较亮时,屏幕会变暗一下,效果非常明显。后来找到原因。 这是高通的一个feature,叫做CABL(根据内容调节背光),意思就是当此前的显示内容是暗色系时,背光会自动调亮,当此前的显示内容是亮色系时,背光会自动调暗。这样自动调节的目的是为了增强人眼的适应性,即使各种亮暗界...

2016-10-26 10:09:16 2414

原创 MSM8909平台 LED背光的控制

之前齐师兄问我,是不是应该有一个文件记录背光灯的亮度,我说理论上有,但是在哪里我真的还没有见过。只知道在调LCD驱动的时候会调用一个背光控制的函数,传进来一个亮度值就可以配置亮度了,至于这个函数是谁调用的,以及和上层是怎么联系的,自己一直没想过,最近系统的看了一下,特作此总结。路径:root/andriod/kernel/drivers/video/在Mdss_dsi_panel.c文件里

2015-10-20 18:05:13 1210

原创 android驱动中的休眠

在Linux内核驱动中常常会存在这种情况:进程A若想继续执行需要满足某个条件condition的限制,若条件不满足则进程会被挂到等待队列进行等待。在Linux中,一个等待队列由一个“等待队列头”来管理,看一下这个队列头的初始化:DECLARE_WAIT_QUEUE_HEAD(name) 或动态的定义初始化:wait_queue_head_t my_queue_head;i

2015-06-04 17:47:02 760

原创 android 驱动中的并发和竞争——completion

很多时候在linux系统中,某些进程的运行需要确定某进程A完成之后才能继续,因此通常在进程A中定义一个结构体completion用来标识该进程是否完成,或者是存储等待该进程的其余进程队列。2、Completion先来看一下关于completion的定义;struct completion { unsigned int done; //判断该进程是否完成的标示符 w

2015-05-27 15:34:17 578

原创 android 驱动中的并发和竞争——semaphore(信号量)

在现代的Linux系统中,有非常多的并发源,因此而带来竞争情况,竞争来源于不同的进程对同一共享资源的同时存取。而Linux系统提供了一系列的处理并发和资源竞争的方法,下面介绍几个:1、semaphore(信号量)信号量的使用类似于一对P、V函数,通常一个想进入临界区的进程会调用P函数,返回值是可用的资源数,如果这个数大于0,负责记录资源数的变量减1进程继续,相反则进程需要等待资源被释放。而

2015-05-27 10:08:45 2442

原创 gpio_tlmm_config()

先来看一下这个函数的原型:

2014-11-25 17:09:48 5927 1

原创 Msm8974的cont_splash_screen问题

大家都知道,在手机进入系统之前会有一个aboot流程

2014-11-03 15:12:32 2135

原创 MSM8974 TP驱动流程

刚学习安卓驱动的时候,我师父就说流程最重要,现在来fen'xi'yi'tia

2014-11-03 15:03:25 2243 2

原创 MSM8974 TP 多点触控 B协议

记录一些关于多点触控的信息:在TP模块的

2014-10-31 15:30:44 1859

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除