![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
子类__Display
文章平均质量分 50
KrisFei
工作记录.
展开
-
[RK3399][Android7.1] 调试笔记 --- 显示画面出现mirror的问题
Platform: RK3399OS: Android 7.1Kernel: v4.4.83现象:添加好LVDS屏幕之后,显示画面mirror.解决方法:diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.cindex 087034...原创 2019-11-13 15:05:23 · 2856 阅读 · 1 评论 -
[RK3288][Android6.0] MIPI DSI显示屏(768*1024)添加
Platform: RK3288OS: Android 6.0Kernel: 3.10.92说明:还是按照老流程调试屏幕:DTS改成DSI 配置配置屏GPIO配置屏的init cmds(这次有150多条,把我写死了)测量GPIO电瓶和输出时钟和数据波形如果还不行就使用BIST模式(屏幕自己显示出场设置的显示画面)验证Mipi cmd有没有写到屏里面去了,rk3288平台的读ds...原创 2019-11-07 15:03:33 · 2992 阅读 · 19 评论 -
[RK3399][Android7.1] Display中的DRM Framebuffer
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55内核驱动提供了两种方法给用户空间完成显示功能。 一种是通过DRM,可以通过ioctl,也可以通过用户空间封装的DRM库libdrm来完成。 还有一种方法是通过以往标准的framebuffer去做,也是通过ioctl完成。通过DRM: 驱动文件:rockchip_drm...原创 2018-01-17 19:11:27 · 6549 阅读 · 32 评论 -
[RK3399][Android7.1] Display中的edp驱动调用流程
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55edp驱动被分成两个文件,一个是rk驱动文件: analogix_dp-rockchip.c, 另一个是drm驱动文件analogix_dp_core.crockchip_dp_bind -> analogix_dp-rockchip.c of_graph_get...原创 2018-01-18 17:52:01 · 8518 阅读 · 39 评论 -
[RK3399][Android7.1] Display中的screen type定义
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55在rk3288平台, screen type是定义在dts中,例如 lcd-LP097Qx1.dtsi 中disp_timings: display-timings { native-mode = <&timing0>; ...原创 2018-01-18 10:52:17 · 2294 阅读 · 4 评论 -
[RK3399][Android7.1] Display中的Component System
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55上一篇文章介绍了DRM的概念,有CRTC, Encoder, Connector等好多个模块,各个模块都作为一个组件添加到组件系统中,通过组件驱动来管理。关于component system,下面是作者的一段话:Subsystems such as ALSA, DRM ...原创 2018-01-16 17:10:52 · 5651 阅读 · 42 评论 -
[RK3399][Android7.1] Display模块配置屏幕时序方法
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55rk3399平台上提供了两种方法来配置屏的时序参数,uboot也一样。时序参数写在源代码中:比如当前用的edp屏, dts只有背光,gpio这些配置。 rk3399-firefly-edp.dts: edp_panel: edp-panel { ...原创 2018-01-17 13:47:05 · 8432 阅读 · 21 评论 -
[RK3399][Android7.1] Display中的DRM模块介绍
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55DRM介绍: DRM全称 Direct Rendering Manager, 是device-independent内核级别驱动,内核提供直接访问硬件的权限, 原本是设计提供给PC使用来支持复杂的图形设备,后来也用于嵌入式系统上。 PC一般都有显卡并且有自己的video mem...原创 2018-01-12 17:21:01 · 15465 阅读 · 39 评论 -
[RK3399][Android7.1] Display中的VOP模块介绍
OS: Android 7.1 Board: Firefly-RK3399 Uboot: v2017.02什么是VOP ? 全称 Visual Output Processor, 是Rockchip系列Soc的Display Controller(显示控制器), 用来将video memory中的image data传送到外部lcd 接口,如edp, dp, hdmi等。RK3...原创 2018-01-11 09:12:10 · 16038 阅读 · 36 评论 -
[RK3399][Android7.1] Uboot display 加载过程小结
OS: Android 7.1 Board: Firefly-RK3399 Uboot: v2017.02显示模块主要分 vop, edp, panel三大模块,另加gpio, 背光的控制,另外还有logo的解析和加载。整个流程基本上就是解析各个模块参数,然后准备,使能各个模块。fdt_path_offset(gd-&gt;fdt_blob, "/display-subsys...原创 2018-01-08 15:58:12 · 6128 阅读 · 35 评论 -
[RK3399][Android7.1] 调试笔记 --- 默认板子无法亮屏
Platform: RK3399 OS: Android 7.1 Board: Firefly-RK3399现象: 官网下载了最新固件,烧写进去后系统虽然起来了,但是屏幕无法点亮。原因: 系统默认编译使用的是 dp版本对应dts是rk3399-firefly.dts, 而我用的是edp屏。注意: rk3399是64位平台,dts的路径是在 kernel/arch/a...原创 2017-12-19 16:31:08 · 4887 阅读 · 13 评论 -
[RK3399][Android7.1] 移植笔记 --- 9.7寸eDP显示屏添加
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83由于此屏在rk3288平台上使用过,原以为接上去就可以点亮,谁知道花了一天多时间折腾,最后还是发现是自己的大意造成的,ORZ…原理图:LCD: 背光: EDP屏硬件直接按照上电时序连接好控制,软件无需干预。 EDP_HPD pin可接可不接。 所以要做的就是配...原创 2018-06-28 14:54:02 · 13384 阅读 · 33 评论 -
[RK3288][Android7.1] 调试笔记 --- 24bit bmp 转成 8bit bmp
Platform: RK3288OS: Android 7.1Kernel: v4.4.83背景:在rk3288平台上uboot logo发现24bit bmp不能正常显示,参考原始logo.bmp是8bit.然后使用命令convert -compress rle -colors 256 src.bmp logo.bmp转出来的却是32bit bmp,不知道是不是我的ubuntu16...原创 2018-11-10 13:50:08 · 1648 阅读 · 2 评论 -
[RK3288][Android7.1] 调试笔记 --- LVDS屏幕使用RGB888格式后花屏
Platform: RK3288OS: Android 7.1Kernel: v4.4.83现象:3288 android 5.1升级到android 7.1, 使用的lvds屏幕不做变化。但是移植到android7.1上,使用RGB666格式可以正常显示,但是屏幕相对android5.1屏幕很暗。使用RGB888格式显示花屏。注:屏的参数有可能不正确,但是android7.1上使用...原创 2018-11-19 14:18:27 · 9431 阅读 · 11 评论 -
[RK3399][Android7.1] 调试笔记 --- HDMI作主屏无法正常显示
Platform: RK3399OS: Android 7.1Kernel: v4.4.83背景:之前有调试好主屏edp+副屏hdmi双屏显示的,现在需要把hdmi当主屏显示,没有副屏。修改后系统能开机,但是无法显示。异常Log:01-01 08:02:41.026 E/hwc-drm-resources( 223): failed to find primary display...原创 2019-09-04 13:22:35 · 4410 阅读 · 3 评论 -
[RK3399][Android7.1] 调试笔记 ---双屏异显副屏显示画面有拉伸
Platform: RK3399OS: Android 7.1Kernel: v4.4.83现象:主屏使用 4:3 edp, 副屏使用 16:9 HDMI.双屏异显时,副屏显示画面会被拉伸.原因:HDMI可以使用和适应不同的分辨率.edp的分辨率是20481536,符合4:3比例,而HDMI显示的分辨率是1024768,不是16:9而是4:3的比例.得到1024768的原因在于...原创 2019-07-25 10:12:23 · 5506 阅读 · 5 评论 -
[RK3399][Android7.1] 调试笔记 --- 调换dsi和dsi1两路通道数据
Platform: RK3399OS: Android 7.1Kernel: v4.4.83背景:此问题是网友Brian遇到的,需求如下:点一个2560*1600的mipi屏,用的dsi和dsi1,这个屏有8 lane,有两个TCON IC,相当于两个屏了,一组DSI对应一个TCON,现在图像左右反了,所以想左右对调下。相当于用的是dual-channel具体配置可参考rk文档。...原创 2019-04-23 16:04:27 · 3651 阅读 · 25 评论 -
[RK3399][Android7.1] HDMI显示屏(副屏)调试记录小结
Platform: RK3399OS: Android 7.1Kernel: v4.4.83驱动文件:dw-hdmi.c: HDMI驱动,包括内部I2C接口实现。drm_edid.c: edid相关。dw_hdmi-rockchip.c: drm框架部分。探测引脚HPD(Hotplug Dectect)用于监测HDMI设备是否存在,为high那么可以通过DDC去读EDID,HDM...原创 2019-04-02 17:48:12 · 10783 阅读 · 0 评论 -
[RK3399][Android7.1] 双屏显示副屏旋转90°patch
Platform: RK3399OS: Android 7.1Kernel: v4.4.83描述:标准的sdk不会默认有旋转副屏为横屏显示为竖屏的功能,添加如下patch即可实现,但是因为是双屏同显,副屏显示会有画面被压缩的现象。Patch:diff --git a/services/core/java/com/android/server/display/LocalDispla...原创 2019-01-22 17:57:51 · 6141 阅读 · 17 评论 -
[RK3399][Android7.1] 调试笔记 --- 显示屏使用VOPL通道后无法显示
Platform: RK3399OS: Android 7.1Kernel: v4.4.83现象:在移植完LVDS屏幕(可参考 DSI转LVDS芯片TC358775添加)之后,把显示通道从VOPB换到VOPL发现开机动画能显示,但是无法正常显示进入桌面了。异常Log:[drm:vop_afbdc_atomic_check] ERROR not support afbdc原因:V...原创 2018-12-25 17:27:20 · 5309 阅读 · 2 评论 -
[RK3399][Android7.1] 调试笔记 --- 开机桌面显示位置偏移问题
Platform: RK3399OS: Android 7.1Kernel: v4.4.83现象:移植好LVDS屏幕之后发现桌面上显示的ICON偏移,并且导航栏也看不到了。正常应该是这些ICON都是底部显示。原因:ppi设置不对,修改ro.sf.lcd_density的值即可。原理说明:关于ppi,网上看到一篇文章介绍非常到位,这里引用记录:在进行适配分析前,必须要了解...原创 2018-12-20 20:16:37 · 1968 阅读 · 4 评论 -
[RK3399][Android7.1] 调试笔记 --- TC358775在uboot中的显示驱动patch
Platform: RK3399OS: Android 7.1Kernel: v4.4.83Patch如下:diff --git a/drivers/video/Makefile b/drivers/video/Makefileindex 432e3ff..934608f 100755--- a/drivers/video/Makefile+++ b/drivers/video/Ma...原创 2018-12-26 16:55:58 · 5063 阅读 · 24 评论 -
[RK3399][Android7.1] 移植笔记 --- DSI转LVDS芯片TC358775添加
Platform: RK3399OS: Android 7.1Kernel: v4.4.83首先我想感谢下Rockchip闭工和Toshiba林工在技术上的大力支持,没有他们帮忙,调试周期将会拉更长。背景:产品需要接一块LVDS屏幕,rk3399并没有带LVDS接口,因此使用东芝的DSI-&amp;amp;amp;gt;LVDS芯片TC358775来输出LVDS信号。因此驱动里配置的就是MIPI DSI了。...原创 2018-12-19 18:23:52 · 11397 阅读 · 23 评论 -
[RK3288][Android6.0] 调试笔记 --- 双屏显示内核Patch
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92根据5.1的双屏显示patch,在android6.0上修改了下,因为没硬件环境,所以未经验证,仅供参考。edp是主屏,lvds是副屏。edp屏: lcd-LM133LFL01-EDP1920x1080_dual.dtsi/* * RockChip. DisplayPort screen LM原创 2017-11-27 17:10:29 · 4756 阅读 · 53 评论 -
[RK3288][Android6.0] 调试笔记 --- edp屏无法点亮问题
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92lcd用的是LP097Qx1异常log:[ 0.563419] rk32-edp rk32-edp: failed to get reset[ 0.563435] rk32-edp rk32-edp: failed to get reset[ 0.586064] rk3288-l原创 2017-10-19 09:03:38 · 5408 阅读 · 3 评论 -
[RK3288][Android6.0] PWM backlight 驱动流程小结
Platform: RK3288OS: Android 6.0Kernel: 3.10.92背光的亮暗通过pwm控制,驱动在文件pwm-rockchip.c中,这里不做描述.dts各个配置参数意义:backlight { /*设备名,会和驱动匹配.*/ compatible = "pwm-backlight"; /*使用哪个pwm channal, pe...原创 2016-09-09 11:39:22 · 12579 阅读 · 32 评论 -
[RK3288][Android6.0] 调试笔记 --- 设置系统默认显示为竖屏
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92kris@:~/rk3288/device/rockchip/rk3288$ g dfdiff --git a/system.prop b/system.propindex f407b0f..2e2aaf5 100644--- a/system.prop+++ b/system.prop原创 2017-07-27 11:10:33 · 6122 阅读 · 8 评论 -
[RK3288][Android6.0] 调试笔记 --- 屏幕显示旋转方法
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92显示模块提供了一个property供修改旋转方向,名为”ro.sf.hwrotation”,有四个值可选Surface.java/** * Rotation constant: 0 degree rotation (natural orientation) */public static f原创 2017-07-27 11:31:02 · 10064 阅读 · 12 评论 -
[RK3288][Android6.0] 调试笔记 --- 强制第三方apk横屏显示
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92有些apk默认打开是竖屏,即使有gsensor,也不会旋转,像这样 需要这样的结果 这个可以在代码里强制设置,改动如下:kris@:~/rk3288/frameworks/base$ g df services/core/java/com/android/server/wm/WindowMan原创 2017-07-27 17:14:00 · 5308 阅读 · 0 评论 -
[RK3288][Android6.0] Apk设置显示旋转过程小结
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92setRequestedOrientation -> Activity.java ActivityManagerNative.getDefault().setRequestedOrientation //client调用AMS setRequestedOrientation ->原创 2017-07-27 17:37:53 · 2427 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 电池电量一直显示100%
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92之前文章[RK3288][Android6.0] 调试笔记 — 伪电池驱动添加 阐述了如何添加一个假的电池驱动, 测试发现Setting里的电池电量一直是100% 跟踪发现Android6.0相比之前的Android4.4会判断Charger是否存在,不存在就认为设备不具备充电能力并且设定当前原创 2017-07-28 17:49:14 · 4829 阅读 · 3 评论 -
[RK3288][Android6.0] 关于uboot中logo相关知识点小结
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92遇到不少网友找不到uboot logo在哪里,其实一开始我也潜意识地去u-boot目录下去找,但是后来发现是在kernel目录下 加载顺序: 1.uboot开机的时候会先去logo分区加载 2.加载失败则尝试从resource分区加载 3.加载失败则尝试从boot分区加载限制...原创 2017-07-30 08:37:30 · 3564 阅读 · 39 评论 -
[RK3288][Android6.0] 设置中通过Sensor旋转显示画面小结
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92Settings -> Display有个选项控制旋转屏幕时内容是否跟着旋转 这个功能是通过获取gsensor的方向来改变内容进行旋转的,选项对应的string在 packages/apps/Settings/res/values/strings.xml:6408: <string na原创 2017-07-31 17:46:37 · 3001 阅读 · 0 评论 -
[RK3288][Android6.0] 不同分辨率的bootanimation.zip下载
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92发现了个有趣的开机动画,觉得不错,分享给大家 感兴趣的可去下面链接下载需要的分辨率对应的包 [BOOTANIMATION][MM] Android Marshmallow bootanimation in multiple resolutions原创 2017-08-02 16:53:17 · 2798 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 读取cmd_type失败
Platform: 未知rk平台log: 0.492592] childnode->name =rockchip,on-cmds5:length=3 [ 0.492604] cmd[1]=15, [ 0.492610] cmd[2]=03,cmd[3]=00, [ 0.492621] dcs_cmd->dcs_cmd.cmd_len=3 [ 0.492630] r原创 2017-08-15 13:38:52 · 863 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 开机动画画面偏移
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92现象:增加开机播放mp4动画方案后,发现动画画面整体会往右偏移。而进入系统之后播放此视频是正常的。调试: 利用系统自带的dumpsys命令查看播放时的分辨率。其中 mCurrentCrop=[0,0,992,600] 表示当前播放的是992*600,而视频的分辨率是1024*600, 说明被裁原创 2017-09-13 14:31:53 · 2139 阅读 · 4 评论 -
[RK3288][Android6.0] 调试笔记 --- display数据帧的dump
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92步骤: 1. 打开dump功能 hardware/rockchip/hwcomposer/rk_hwcomposer.h #define hwcDumpSurface 1 2. 设置property #setprop sys.dump true 这时logcat中就可以看到dum原创 2017-07-18 10:35:24 · 2205 阅读 · 1 评论 -
[RK3288][Android6.0] Display中的2D Rendering机制
Platform: RockchipOS: Android 6.0Kernel: 3.10.922D rending都是通过Surface来实现的,路径如下:也就是说,有两条路径来做rendering:1. 通过hwui: 默认处理方式,也就是我们所说的硬件加速。2. 通过skia: 软件rendering engine.hwui的禁止可以细分到每个view原创 2017-05-19 16:56:30 · 991 阅读 · 0 评论 -
[RK3288][Android6.0] Display驱动初始化流程小结
Platform: RK3288OS: Android 6.0Kernel: 3.10.92以mipi接口的lcd为例.rk_screen.c:读取lcd timing参数。lcd_mipi.c:屏幕mipi配置信息。rk_fb.c:fb驱动。rk3288_lcdc.clcdc controller驱动。rk32_mipi_dsi.c:原创 2016-09-19 13:14:55 · 10310 阅读 · 35 评论 -
[RK3288][Android6.0] 如何配置MIPI DSI Clock和PCLK
Platform: RK3288OS: Android 6.0Kernel: 3.10.92RK针对MIPI DSI的lcd配置时有两个clock, rockchip,dsi_hs_clk 和 clock-frequency.文件中如下:disp_mipi_init: mipi_dsi_init{ compatible = "rockchip,mipi_ds...原创 2016-09-29 13:15:34 · 10516 阅读 · 0 评论