AnsweredAssumed Answered

imx6 solo lvds display issue

Question asked by zha zha on Jun 22, 2018
Latest reply on Jun 25, 2018 by zha zha

Hi,all

     I have a display issue,information is as follows:

    Linux: L3.0.35

   U-boot:2009.08

    CPU:imx6 solo

   LCD panel: 1920*720  KYOCERA display

dual lvds(channel 0 and channel 1)

1) u-boot parameters:

setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk0p1 rootwait rw video=mxcfb0:dev=ldb,LDB-KY720P,if=RGB24,bpp=32 ldb=spl0 quiet'

==> 'ldb=spl1'  is also used,but the result is the same.

2) I add  the following code to struct fb_videomode ldb_modedb[]  of ldb.c :

 

    {
     "LDB-KY720P", 60, 1920, 720, 8230,  /* KYOCERA display */
     60, 60,
     70, 70,
     45, 40,
     0,
     FB_VMODE_NONINTERLACED,
     FB_MODE_IS_DETAILED,},

 3) fbset is as follows:

root@(none) /$ fbset

 

mode "1920x720-65"
        # D: 121.507 MHz, H: 58.277 kHz, V: 64.752 Hz
        geometry 1920 720 1920 720 32
        timings 8230 60 60 70 70 45 40
        accel false
        rgba 8/16,8/8,8/0,8/24
endmode

==>also,use fbset to set different parameter,the result is : the following 3 display ISSUEs  changes,but still abnormal.

 

4) the display's COMS TCON mode AC Electrical Characteristics is as follows:

it follows VESA bit mapping.

 

5) dmesg is as follows:

root@(none) /$ dmesg
[    0.000000] Linux version 3.0.35-2666-gbdde708 (chad@chad-laptop) (gcc version 4.6.2 20110630 (prerelease) (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) ) #40 PREEMPT Fri Jun 22 14:49:49 CST 2018
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: Freescale i.MX 6Quad/DualLite/Solo Sabre-SD Board
[    0.000000] Ignoring unrecognised tag 0x54410008
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] CPU identified as i.MX6DL/SOLO, silicon rev 1.2
[    0.000000] On node 0 totalpages: 65536
[    0.000000] free_area_init_node: node 0, pgdat c029ecf8, node_mem_map cb800000
[    0.000000]   DMA zone: 368 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 46736 pages, LIFO batch:15
[    0.000000]   Normal zone: 656 pages used for memmap
[    0.000000]   Normal zone: 17776 pages, LIFO batch:3
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64512
[    0.000000] Kernel command line: console=ttymxc0,115200 nosmp root=/dev/mmcblk0p1 rootwait rw video=mxcfb0:dev=ldb,LDB-KY720P,if=RGB24,bpp=32 ldb=spl0 quiet
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 256MB = 256MB total
[    0.000000] Memory: 255052k/255052k available, 269236k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xf4600000 - 0xffe00000   ( 184 MB)
[    0.000000]     vmalloc : 0xe0800000 - 0xf2000000   ( 280 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .init : 0xc0008000 - 0xc0023000   ( 108 kB)
[    0.000000]       .text : 0xc0023000 - 0xc0270000   (2356 kB)
[    0.000000]       .data : 0xc0270000 - 0xc029f760   ( 190 kB)
[    0.000000]        .bss : 0xc029f784 - 0xc02af864   (  65 kB)
[    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:624
[    0.000000] MXC GPIO hardware
[    0.000000] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
[    0.000000] Set periph_clk's parent to pll2_pfd_400M!
[    0.000000] arm_max_freq=800MHz
[    0.000000] MXC_Early serial console at MMIO 0x21f0000 (options '115200')
[    0.000000] bootconsole [ttymxc0] enabled
[    0.000000] Console: colour dummy device 80x30
[    0.000373] Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
[    0.090125] pid_max: default: 32768 minimum: 301
[    0.090422] Mount-cache hash table entries: 512
[    0.090815] CPU: Testing write buffer coherency: ok
[    0.098004] print_constraints: dummy:
[    0.098634] print_constraints: vddpu: 725 <--> 1300 mV at 700 mV fast normal
[    0.098783] print_constraints: vddcore: 725 <--> 1300 mV at 1150 mV fast normal
[    0.098912] print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal
[    0.099045] print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal
[    0.099195] print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal
[    0.099351] print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal
[    0.101970] L310 cache controller enabled
[    0.101985] l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x02050000, Cache size: 524288 B
[    0.104178] bio: create slab <bio-0> at 0
[    0.104786] SCSI subsystem initialized
[    0.120201] imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
[    0.120480] mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 driver probed
[    0.120496] mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 dphy version is 0x3130302a
[    0.120529] MIPI CSI2 driver module loaded
[    0.120551] Switching to clocksource mxc_timer1
[    0.125314] Static Power Management for Freescale i.MX6
[    0.125325] wait mode is enabled for i.MX6
[    0.125400] cpaddr = e0820000 suspend_iram_base=e087c000
[    0.125489] PM driver module loaded
[    0.125498] cpu regulator mode:ldo_enable
[    0.125609] i.MXC CPU frequency driver
[    0.134121] msgmni has been set to 498
[    0.134185] io scheduler noop registered
[    0.134195] io scheduler deadline registered
[    0.134253] io scheduler cfq registered (default)
[    0.134659] mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver ldb
[    0.134693] _regulator_get: get() with no identifier
[    0.134744] lvds data width 24 111111
[    0.144278] pixel clk = 121506000
[    0.144309] use special clk parent
[    0.160659] imx-ipuv3 imx-ipuv3.0: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
[    0.162325] Serial: IMX driver
[    0.162429] imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
[    0.162460] console [ttymxc0] enabled, bootconsole disabled
[    0.163099] fpga-pci.c:v1.00 2013-11-08 D. Becker/P. Gortmaker
[    0.163111] i2c /dev entries driver
[    0.163218] Linux video capture interface: v2.00
[    0.163357]    Video device registered: Mxc Camera #0
[    0.163485]    Video device registered: Mxc Camera #1
[    0.163695] mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video16
[    0.163777] mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video17
[    0.163914] sdhci: Secure Digital Host Controller Interface driver
[    0.163926] sdhci: Copyright(c) Pierre Ossman
[    0.164023] mmc0: no vmmc regulator found
[    0.164203] mmc0: SDHCI controller on platform [sdhci-esdhc-imx.3] using ADMA
[    0.165293] mmc1: no vmmc regulator found
[    0.167410] mmc1: SDHCI controller on platform [sdhci-esdhc-imx.1] using ADMA
[    0.168494] mmc2: no vmmc regulator found
[    0.170681] mmc2: SDHCI controller on platform [sdhci-esdhc-imx.2] using ADMA
[    0.170795] mxc_vdoa mxc_vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
[    0.170905] Galcore version 4.6.9.6622
[    0.187837] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.187892] Bus freq driver module loaded
[    0.187900] Bus freq driver Enabled
[    0.189451] mxc_dvfs_core_probe
[    0.189549] DVFS driver module loaded
[    0.190117] Waiting for root device /dev/mmcblk0p1...
[    0.342039] mmc0: new high speed DDR MMC card at address 0001
[    0.342300] mmcblk0: mmc0:0001 DG4008 7.28 GiB
[    0.342385] mmcblk0boot0: mmc0:0001 DG4008 partition 1 4.00 MiB
[    0.342463] mmcblk0boot1: mmc0:0001 DG4008 partition 2 4.00 MiB
[    0.343312]  mmcblk0: p1
[    0.346123]  mmcblk0boot1: unknown partition table
[    0.348763]  mmcblk0boot0: unknown partition table
[    0.410078] EXT4-fs (mmcblk0p1): mounting ext3 file system using the ext4 subsystem
[    0.487679] EXT4-fs (mmcblk0p1): recovery complete
[    0.488595] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
[    0.488637] VFS: Mounted root (ext3 filesystem) on device 179:1.
[    0.488700] Freeing init memory: 108K
[    1.087002] pixel clk = 121506000
[    1.087034] use special clk parent

 

 

 

ISSUE:

    1: when the kernel boot logo appears, the background color is blue(should be black) and the logo seems abnormal.the picture is as the follows:

 

 2: when application run,such as color bars,the white field picture has  snowflake(雪花状) 。 

 

and the color bars picture as follows,the top is black bar(but only blue color),the bottom is white bar(with snowflake).

 

3: other application also abnormal:

the left part should be as follow:

 

can you help me for some guide? thanks!

Outcomes