使用可加载的内核模块修改framebuffer(/ dev / graphics / fb0)参数

问题:我必须configurationAndroid平台使用的各种LCD显示器。 几乎在所有情况下都没有关于液晶显示器的免费电气规格。 但是通过经验和逆向工程,参数可以被合理地猜测出来。 我正在尝试使用可加载的内核模块来微调显示参数(任何其他build议也欢迎)。 请在下面find相关信息。

硬件:爱特梅尔SAMA5D31-EK(ARM 5处理器)

SW: Andriod Linux(目标),Ubuntu(主机系统),Sourcery CodeBench(交叉编译器)代码片段,从board-dt.c文件

static struct fb_videomode at91_tft_vga_modes[] = { ..... .xres =435; .yres =235; .... } static struct fb_monspecs at91fb_default_monspecs = { ......... .modedb = at91_tft_vga_modes, ...... } static struct atmel_lcd_fb_info __initdata ek_lcdc_data = { .......... .default_monspecs = & at91fb_default_monspecs; ......... } 

我添加了这个代码,所以可加载的内核模块可以访问lcdc_data结构

 extern void set_fb_video(struct fb_videomode *mg_set_tft_vga_modes) { ek_lcdc_data.default_monspecs->modedb->xres = mg_set_tft_vga_modes->xres; } EXPORT_SYMBOL(set_fb_video); 

当我执行可加载的内核模块时,我没有注意到显示器的任何改变。 我怀疑,虽然我正在改变variables(内存),但寄存器没有受到影响。

问题 :我错过了什么? 我已经读了关于调用platform_driver_register()和platform_driver_unregister()。

提前谢谢你的帮助。