Цитата(ecos-rtos_in_ua @ Dec 13 2009, 10:53)

За пинок в правильном направлении спасибо
Пожалуйста

Цитата
Как?
Например я вижу это так - инициализировать синтезатор не в момент выполнения board-файла а позднее при загрузке модуля s1d13xxxfb.c, и тут два варианта:
В1 делать динамические модули и явно указывать порядок загрузки
В2 для статически слинкованых модулей - изменить порядок линковки в соответствующем Makefile в дереве исходников ядра.
При этом я бы попробовал так:
1 переместить код инициализации в board-файле в радел драйвера платформы. Например см. board-yl-9200.c
Код
#if defined(CONFIG_FB_S1D135XX) || defined(CONFIG_FB_S1D13XXX_MODULE)
#include <video/s1d13xxxfb.h>
static void __init yl9200_init_video(void)
{
/* здесь инициализируем что нам нужно в том числе синтезатор частоты */
}
......
static struct s1d13xxxfb_pdata yl9200_s1dfb_pdata = {
.initregs = yl9200_s1dfb_initregs,
.initregssize = ARRAY_SIZE(yl9200_s1dfb_initregs),
.platform_init_video = yl9200_init_video,
};
......
#endif
platform_init_video - вызывается в драйвере s1d13xxxfb.c в ф-ции probe, соответственно нужно что бы к этому моменту подсистема i2c должна быть проинициализирована, чего мы и добивались в В1 и В2.
Для В2 правим файл drivers/Makefile чтобы строка
obj-y += i2c/ media/
оказалась перед
obj-y += video/