Linux 2.6.22 於 2007 年 7 月 8 日正式釋出,這個版本的 kernel 有一個令我感興趣的新功能。Linux 2.6.22 新增一個 class driver,稱為「display class」。顧名思義,這個新的 class driver 是用來管理與 "display" 有關 device driver。以下引用自 [include/linux/display.h]:
28 struct display_device; 29 30 /* This structure defines all the properties of a Display. */ 31 struct display_driver { 32 int (*set_contrast)(struct display_device *, unsigned int); 33 int (*get_contrast)(struct display_device *); 34 void (*suspend)(struct display_device *, pm_message_t state); 35 void (*resume)(struct display_device *); 36 int (*probe)(struct display_device *, void *); 37 int (*remove)(struct display_device *); 38 int max_contrast; 39 }; 40 41 struct display_device { 42 struct module *owner; /* Owner module */ 43 struct display_driver *driver; 44 struct device *parent; /* This is the parent */ 45 struct device *dev; /* This is this display device */ 46 struct mutex lock; 47 void *priv_data; 48 char type[16]; 49 char *name; 50 int idx; 51 }; 52 53 extern struct display_device *display_device_register(struct display_driver *driver, 54 struct device *dev, void *devdata); 55 extern void display_device_unregister(struct display_device *dev);
在 Kconfig 選單中,可以找到一個 "Display device support" 的項目。根據 display class 的規劃,這個新的驅動程式界面除了支援 LCD 外,也會支援 CRT、TVout 以及其它的顯示界面。
2007 年下半年度因為工作特別忙碌,或者說,工作項目比較繁雜,無法將時間有效利用,便堆積了許多未讀的資料。正好利用 2007 結束前的幾個放假日,將這半年來累積的資料一次消化完畢,並將一些紀錄和大家分享。
延伸閱讀
2007.08.29: Linux frame buffer 驅動程式開發簡報下載
Jollen's Blog 使用 Github issues 與讀者交流討論。請點擊上方的文章專屬 issue,或 open a new issue
您可透過電子郵件 jollen@jollen.org,或是 Linkedin 與我連絡。更歡迎使用微信,請搜尋 WeChat ID:jollentw