官术网_书友最值得收藏!

6.4 OMAP的主要設備驅動

6.4.1 顯示的驅動程序

OMAP處理器顯示方面的驅動程序,就是OMAP處理器SOC的DSS(Display Sub System,顯示子系統)的驅動程序。其顯示子系統包含一個主顯示層,兩個視頻疊加的顯示層。

顯示子系統的庫在drivers/video/omap2/omapfb/dss目錄中,主要包含了core.c, manager.c,display.c,overlay.c,dss.c,omapdss.c,dpi.c,dispc.c和venc.c等文件,這些內容構成了顯示驅動程序公用的“庫程序”。

其中core.c中定義了platform_driver的名稱為omapdss,在sys文件系統/sys/bus/platform/drivers/中包含了同名目錄。它和arch/arm/mach-omap中的board-zoom2.c中定義的platform_device相匹配。

主要的文件系統的信息包含在以下目錄中:

    # ls -l /sys/devices/platform/omapdss/

其中overlay0目錄中為基本顯示層(圖形層)的信息,overlay1和overlay2目錄中分別是兩個疊加顯示層的信息。manager0和manager1中則提供了管理方面的功能。

執行以下的內容,查看sys文件系統:

    / # cat /sys/devices/platform/omapdss/overlay0/name
    gfx

gfx為graphics的含義,表示overlay0的名稱為圖形層。除了name以外enabled,manager, screen_width,global_alpha,input_size,output_size,position等文件都可以提供相關的信息。

文件enabled是一個可以控制的內容,可以通過如下命令分別進行關閉顯示和打開顯示的功能。

    # echo "0" > /sys/devices/platform/omapdss/overlay0/enabled
    # echo "1" > /sys/devices/platform/omapdss/overlay0/enabled

顯示部分的frambuffer驅動程序部分主要頭文件為:include/linux/omapfb.h。其中定義額外的ioctl命令號,以及在驅動程序中使用的結構體等內容。

主顯示驅動的frambuffer驅動程序的內容是drivers/video/omap2/omapfb中的omapfb-main.c,omapfb-ioctl.c,omapfb-sysfs.c等文件。編譯將被連接在一起生成omapfb.o目標文件。這構成了標準的framebuffer驅動程序,在Android系統中其設備節點是/dev/graphics/fb0。

omapfb-main.c定義了platform_driver的名稱為omapfb,在sys文件系統/sys/bus/platform/drivers/中包含了同名目錄。這個名稱和platform_driver、arch/arm/plat-omap中的fb.c定義的platform_device相匹配。

主站蜘蛛池模板: 嘉黎县| 昂仁县| 桃园市| 绍兴市| 朝阳区| 土默特左旗| 塔城市| 武汉市| 静宁县| 平罗县| 东明县| 深泽县| 内乡县| 泸西县| 深泽县| 海晏县| 贵港市| 洞口县| 扎鲁特旗| 贵南县| 同仁县| 溧水县| 冀州市| 南靖县| 蒙阴县| 松潘县| 大连市| 广饶县| 互助| 天水市| 饶阳县| 郧西县| 临漳县| 定州市| 弥勒县| 汪清县| 衡东县| 宾阳县| 英吉沙县| 安阳市| 桃源县|