问题:我必须配置Android平台使用的各种LCD显示器。几乎在所有情况下,没有可用于LCD显示器的电气规格。但通过经验和逆向工程,可以很好地猜测参数。我正在尝试使用可加载内核模块来微调显示参数(欢迎任何其他建议)。请在下面找到相关信息。
HW: Atmel 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);
当我执行可加载内核模块时,我没有注意到显示内容有任何变化。我怀疑虽然我正在更改变量(内存)但寄存器没有受到影响。
问题:我错过了什么?我读过有关调用platform_driver_register()和platform_driver_unregister()的内容。
提前感谢您的帮助。