使用可加载内核模块修改帧缓冲区(/dev/graphics/fb0)参数

2024-06-29

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

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

SW:Android 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);

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

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

提前谢谢你的帮助。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用可加载内核模块修改帧缓冲区(/dev/graphics/fb0)参数 的相关文章

随机推荐