[px3][Android7.1]调试笔记RK LCD显示驱动分析(fb和screen 部分程序)

平台 内核版本 安卓版本
px3 Linux3.0 Android7.1

查看设备:

ls /sys/devices/platform
[px3][Android7.1]调试笔记RK LCD显示驱动分析(fb和screen 部分程序)_第1张图片

display驱动分析:

RK LCD这块首先分为四大块相互依赖

fb lcdc screen screen_type

1、fb驱动分析

fb驱动目录:kernel/drivers/video/rockchip/rk_fb.c
[px3][Android7.1]调试笔记RK LCD显示驱动分析(fb和screen 部分程序)_第2张图片

当板设文件:kernel/arch/arm/mach-rkpx3/board-rkpx3-sdk.c
信息匹配的时候:
在这里插入图片描述

rk_fb_probe将会被调用:
[px3][Android7.1]调试笔记RK LCD显示驱动分析(fb和screen 部分程序)_第3张图片

其中:fb_inf->ion_client = rockchip_ion_client_create("rk_fb");
创建了ion client

ION与PMEM类似,管理一或多个内存池,其中有一些会在boot time的时候预先分配,以备给特殊的硬件使用(GPU,显示控制器等)。它通过ION heaps来管理这些pool。它可以被userspace的process之间或者内核中的模块之间进行内存共享。

我们再看一下rk_fb_inf结构体

目录:kernel/include/linux/rk_fb.h
[px3][Android7.1]调试笔记RK LCD显示驱动分析(fb和screen 部分程序)_第4张图片


2、screnn驱动分析

LCD配置、屏电源控制配置、屏初始化序列是在 kernel/drivers/video/rockchip/screen中解析

2.1、Makefile分析:

代码部分:kernel/drivers/video/rockchip/screen/Makefile
[px3][Android7.1]调试笔记RK LCD显示驱动分析(fb和screen 部分程序)_第5张图片

2.2、rk_screen.c分析:

目录:kernel/drivers/video/rockchip/screen/rk_screen.c中:
void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info )
[px3][Android7.1]调试笔记RK LCD显示驱动分析(fb和screen 部分程序)_第6张图片

你可能感兴趣的:(子类__Display)