Hi,
We are trying to use the RFBI in omap3. We have a custom made board with AM3715 processor and the kernel version is 3.7 from http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap.git.
We wrote a panel driver based on panel-n8x0.c and we have enabled the RFBI in kernel config. The driver didn't work in the first place. After a lot of digging in omapdss source files we finally succeeded to start the RFBI module and we show activity in the RFBI pads. The modifications we made in the rfbi.c file in order to start the module are the following:
In rfbi_config_lcd_manager function we added
struct dispc_clock_info dispc_cinfo;
mgr_config.clock_info.pck_div=dssdev->clocks.dispc.channel.pck_div;
mgr_config.clock_info.lck_div=dssdev->clocks.dispc.channel.lck_div;
dispc_cinfo.lck_div = dssdev->clocks.dispc.channel.lck_div;
dispc_cinfo.pck_div = dssdev->clocks.dispc.channel.pck_div;
dispc_mgr_set_clock_div(dssdev->output->manager->id, &dispc_cinfo);
and in rfbi_transfer_area function we added
dss_mgr_start_update(mgr);
Is the rfbi broken in omapdss framework? Can anybody confirm if this is the proper way to enable RFBI?
In order for the RFBI to operate, the panel driver must implement an update function that finally calls the rfbi_transfer_area function, which actually sends the data to the rfbi pads. As far as I have understand, this update function is called by the upper layers like the omapfb driver (auto update mode).
Does anybody knows if it is possible to operate RFBI without this update function? Can the RFBI operate continuously like the dpi (bypass mode) without software trigger? I mean that the dispc generates pixel data continuously and these data are fed in to the RFBI with pck speed. Is it related with the stall bit in the RFBI_CONTROL register? If we disable the stall bit we get a lot of vsync lost messages.
Thanks.