AnsweredAssumed Answered

LVDS 24Bit 1920*1080 kernel階段極化問題

Question asked by Frank Weng on Mar 30, 2015
Latest reply on Jul 21, 2015 by 尚飞 汤
Branched to a new discussion

hi 您好

使用MX6點panel AUO21.5" 1920*1080 遇到在開機過程中極化的問題,但進到OS之後畫面正常

按照iMX6QD How to Add 24-bit LVDS Support in Android 的說明

請問是那裡還需要在作設定,在setenv 中ldb=spl0 就不會有任何輸出,如果是ldb=spl1會有時出現freescale loge,但顏色及解析度都不對,後來show freescale logo就變成極化現象在也看不到logo。

下面是提供的相關資訊,已卡很久請求協助,謝謝

90564.jpg開機過程中(ldb_disp_init 設定spl/dul..)發生極化

 

90563.jpg進到OS的畫面

 

uboot env set:

setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,LDB-XGA,bpp=32,if=RGB24 ldb=spl1 video=mxcfb1:off video=mxcfb2:off fbmem=10M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=FA33 ldo_active=on

 

  • kernel_imx/arch/arm/mach-mx6/board-FA33.c

static struct ipuv3_fb_platform_data sabresd_fb_data[] = {

         { /*fb0*/

 

         .disp_dev = "ldb",

         .interface_pix_fmt = IPU_PIX_FMT_RGB24,

         .mode_str = "LDB-XGA",

         .default_bpp = 24,

         .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,

};

 

 

  • kernel_imx/drivers/video/mxc/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,},

          {//for auo 21.5

           "LDB-XGA",60,1920,1080,13899,

            70,90,

            10,30,

             20,10

             0,

              FB_VMODE_NONINTERLACED,

             0,},

};

 

static int ldb_disp_init(struct mxc_dispdrv_handle *disp,

  struct mxc_dispdrv_setting *setting)

{.................

                    reg = readl(ldb->control_reg);

644                 if ((lvds_channel == 0) && (setting->disp_id == 0))

645                         reg |= LDB_CH0_MODE_EN_TO_DI0;

646                 else if ((lvds_channel == 0) && (setting->disp_id == 1))

647                         reg |= LDB_CH0_MODE_EN_TO_DI1;

648                 else if ((lvds_channel == 1) && (setting->disp_id == 0))

649                         reg |= LDB_CH1_MODE_EN_TO_DI0;

650                 else

651                         reg |= LDB_CH1_MODE_EN_TO_DI1;

652                 ch_mask = lvds_channel ?  LDB_CH1_MODE_MASK :

653                                 LDB_CH0_MODE_MASK;

654                 ch_val = reg & ch_mask;

655

656                 if (bits_per_pixel(setting->if_fmt) == 24) {

657                         if (lvds_channel == 0)

658                                 reg |= LDB_DATA_WIDTH_CH0_24;

659                         else

660                                 reg |= LDB_DATA_WIDTH_CH1_24;

661                 } else {

662                         if (lvds_channel == 0)

663                                 reg |= LDB_DATA_WIDTH_CH0_18;

664                         else

665                                 reg |= LDB_DATA_WIDTH_CH1_18;

666                 }

667                 writel(reg, ldb->control_reg);<----設定完就極化

...............................................

}

Attachments

Outcomes