Изменение параметров кадрового буфера (/ dev / graphics / fb0) с помощью загружаемого модуля ядра

Проблема: Я должен настроить различные ЖК-дисплеи для использования на платформе Android. Почти во всех случаях отсутствуют электрические характеристики для ЖК-мониторов. Но благодаря опыту и реверс-инжинирингу параметры можно угадать достаточно хорошо. Я пытаюсь использовать загружаемые модули ядра для точной настройки параметров дисплея (любые другие предложения приветствуются). Пожалуйста, найдите соответствующую информацию ниже.

HW: Atmel SAMA5D31-EK (процессор ARM 5)

SW: Andriod Linux (Target), 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 ().

Спасибо за вашу помощь заранее.

Ответы на вопрос(0)

Ваш ответ на вопрос