天天看點

全志T3 Linux顯示驅動分析

1、總體架構

        全志T3處理器的顯示架構是基于标準Linux的幀緩沖架構,其結構如圖 1.1所示。顯示控制器DE的驅動架構如圖 1.2所示,包括屏蔽差異的顯示管理抽象層,以及顯示圖層驅動、顯示裝置驅動、背光驅動、enhance驅動和capture驅動。

全志T3 Linux顯示驅動分析

圖 1.1幀緩沖裝置驅動結構

全志T3 Linux顯示驅動分析

圖 1.2顯示控制器驅動架構

2、關鍵資料結構

    顯示驅動資訊總的結構體disp_drv_info如程式清單 2.1所示,包含顯示驅動所有的相關資訊。

程式清單 2.1

        struct disp_manager是管理抽象層的資料結構體,可以看到包含裝置驅動、smbl驅動、enhance驅動、cptr驅動、圖層驅動以及管理層的相關操作接口,并且disp_drv_info中包含有struct disp_manager類型的成員。

程式清單 2.2

3、顯示驅動初始化流程

        顯示驅動初始化總體流程如圖 3.1是以,驅動注冊為Linux的平台裝置,初始化入口是disp_probe。在disp_probe中首先從dtb中擷取顯示驅動相關的一些參數比如寄存器基位址、中斷号、時鐘等,然後調用disp_init接口。disp_init接口主要進行一些系統相關的參數、接口初始化,顯示控制器DE驅動初始化(bsp_disp_init),LCD裝置初始化,fb緩存初始化,最後通過start_process啟動顯示。

全志T3 Linux顯示驅動分析

圖 3.1 顯示驅動初始化總體流程

全志T3 Linux顯示驅動分析

圖 3.2 顯示控制器驅動初始化

    bsp_disp_init完成顯示控制器DE的驅動初始化,主要的動作如圖 3.2所示:

初始化全局變量gdisp中的init_para參數;

初始化顯示控制器DE的預設參數;

挂接中斷進行中tasklet處理函數;

設定顯示列印等級;

初始化顯示控制器DE的抽象圖層驅動;

初始化顯示控制器DE的lcd裝置抽象驅動;

初始化顯示控制器DE的管理層驅動;

初始化顯示控制器DE的enhance驅動;

初始化顯示控制器DE的背光控制驅動;

初始化顯示控制器DE的capture驅動;

将管理層驅動與抽象圖層、lcd裝置驅動、enhance驅動、背光控制驅動、capture驅動關聯起來。

繼續閱讀