使用可装入内核模块修改framebuffer(/ dev / graphics / fb0)参数

问题:我必须配置Android平台使用的各种LCD显示器。 几乎在所有情况下,没有可用于LCD显示器的电气规格。 但通过经验和逆向工程,可以很好地猜测参数。 我正在尝试使用可加载内核模块来微调显示参数(欢迎任何其他建议)。 请在下面找到相关信息。

HW: Atmel SAMA5D31-EK(ARM 5处理器)

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

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); 

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

问题 :我错过了什么? 我读过有关调用platform_driver_register()和platform_driver_unregister()的内容。

提前谢谢你的帮助。