AnsweredAssumed Answered

imx6q双lvds屏显示问题

Question asked by xiaojun ye on Dec 27, 2017
Latest reply on Dec 28, 2017 by Wigros Sun

Dear all,

我的板子是imx6q,运行的android4.4.2,内核版本是3.0.35. 

我们的屏是12.3寸,分辨率是1920*720,由imx6q双路lvds来驱动。

现在遇到这种现象:

kernel启动logo正常,android动画显示不正常,见附件1.png

我的配置如下:

   board-mx6q_sabresd.c:

   static struct ipuv3_fb_platform_data sabresd_fb_data[] = {
{ /*fb0*/
.disp_dev = "ldb",
.interface_pix_fmt = IPU_PIX_FMT_RGB24,
.mode_str = "1920x720M@60",
.default_bpp = 32,
.int_clk = false,
.late_init = false,
},
};

static struct fsl_mxc_ldb_platform_data ldb_data = {
.ipu_id = 0,
.disp_id = 1,
.ext_ref = 1,
.mode = LDB_SPL_DI1,
.sec_ipu_id = 0,
.sec_disp_id = 0,
};

 

ldb.c中

static struct fb_videomode ldb_modedb[] = {
{
"LDB-WXGA", 60, 1280, 800, 14065,
40, 40,
10, 3,
80, 10,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,},
{
"LDB-XGA", 60, 1024, 768, 15385,
220, 40,
21, 7,
60, 10,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,},
{
"LDB-1080P60", 60, 1920, 1080, 7692,
100, 40,
30, 3,
10, 2,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,},
 {
"1920x720M@60", 60, 1920, 720, 11306,
16, 32,
5, 16,
16, 2,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,},
};

 

BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb, 1920x720M@60,ldb=spl1,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=128M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale bluetooth

 

现在我发现在ldb.c中的屏参不管怎么修改,都不起作用。

后来我在drivers/video/modedb.c中直接写入屏参,android开机动画正常显示,但是kernel logo一分为四,见附件2.png

static int fb_try_mode(struct fb_var_screeninfo *var, struct fb_info *info,
const struct fb_videomode *mode, unsigned int bpp)
{
int err = 0;

DPRINTK("Trying mode %s %dx%d-%d@%d\n", mode->name ? mode->name : "noname",
mode->xres, mode->yres, bpp, mode->refresh);
#if 0
var->xres = mode->xres;
var->yres = mode->yres;
var->xres_virtual = mode->xres;
var->yres_virtual = mode->yres;
var->xoffset = 0;
var->yoffset = 0;
var->bits_per_pixel = bpp;
var->activate |= FB_ACTIVATE_TEST;
var->pixclock = mode->pixclock;
var->left_margin = mode->left_margin;
var->right_margin = mode->right_margin;
var->upper_margin = mode->upper_margin;
var->lower_margin = mode->lower_margin;
var->hsync_len = mode->hsync_len;
var->vsync_len = mode->vsync_len;
var->sync = mode->sync;
var->vmode = mode->vmode;
if (info->fbops->fb_check_var)
err = info->fbops->fb_check_var(var, info);
var->activate &= ~FB_ACTIVATE_TEST;
#else
var->xres = 1920;
var->yres = 720;
var->xres_virtual = 1920;
var->yres_virtual = 720;
var->xoffset = 0;
var->yoffset = 0;
var->bits_per_pixel = 24;
var->activate |= FB_ACTIVATE_TEST;
var->pixclock = 11306;
var->left_margin = 16;
var->right_margin = 32;
var->upper_margin = 5;
var->lower_margin = 16;
var->hsync_len = 16;
var->vsync_len = 2;
var->sync = mode->sync;
var->vmode = mode->vmode;
#endif

}

 

请问有遇到这样问题?

Attachments

Outcomes