Hello,
I'm running Freescale's BSP for Linux kernel v3.14 (branch imx_3.14.28_1.0.0_ga) and wanted to have two LVDS channels in separate mode:
IPU1:DI0 --> LVDS0
IPU1:DI1 --> LVDS1
I have my LVDS display working if I only enable one channel, either LVDS0 or LVDS1.
I also have dual display working if I enable both channels and use the property dual-mode, thus having cloned image on LVDS0 and LVDS1.
However, if I enable both LVDS channels in separate mode (without either property dual-mode or split-mode the kernel hangs.
My device tree (omitting some data) looks like:
&ldb {
lvds-channel@0 {
crtc = "ipu1-di0";
status = "okay";
primary;
};
lvds-channel@1 {
crtc = "ipu1-di1";
status = "okay";
};
};
The kernel hangs around the fb_set_var() call in this piece of code in the function mxcfb_register() of mxc_ipuv3_fb.c driver:
if (!mxcfbi->late_init) {
fbi->var.activate |= FB_ACTIVATE_FORCE;
console_lock();
fbi->flags |= FBINFO_MISC_USEREVENT;
ret = fb_set_var(fbi, &fbi->var);
fbi->flags &= ~FBINFO_MISC_USEREVENT;
console_unlock();
if (ret < 0) {
dev_err(fbi->device, "Error fb_set_var ret:%d\n", ret);
goto err3;
}
...
Has anybody tested LVDS0 and LVDS1 in separate mode?