My local bugs. (PART 5) MK808 is connected to DVI-D monitor. Serial console at /dev/ttyUSB0. Boots with 2 pinguins and bootlog scroll. Then display turns off black. Example 1 when vblank wait timed out happens after boot in a program called DRM-dumb-buffer. It also happens during boot. I can't get a pattern in it. When I add a revert patch vblank doesn't seem to crash, but a alert is observed. For example: [ 5.104171] rockchip-vop 1010c000.vop: [drm:vop_crtc_atomic_flush] *ERROR* VOP vblank IRQ stuck for 10 ms ///////////////////////////////////////// There are 3 types of errors in the DRM-dumb-buffer log: -1 vblank wait timed out. -2 rk3066_hdmi_get_power_mode returns 0. In the old source this would lead to a loop hangup/stall, because 0 multiplied is still 0. It never gets into a higher power level. -3 flip_done timed out [ 451.674799] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:30:crtc-0] flip_done timed out [ 461.913900] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:33:HDMI-A-1] flip_done timed out [ 472.154303] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:28:plane-0] flip_done timed out ///////////////////////////////////////// It would be nice if after boot I could use my display and keyboard instead of my serial console. Please advise if more info is needed! Kind regards, Johan Jonker
#include <stdio.h> #include <stdint.h> #include <fcntl.h> #include <sys/mman.h> #include <sys/ioctl.h> #include <drm/drm.h> #include <drm/drm_mode.h> int main() { //------------------------------------------------------------------------------ //Opening the DRI device //------------------------------------------------------------------------------ int dri_fd = open("/dev/dri/card0",O_RDWR | O_CLOEXEC); //------------------------------------------------------------------------------ //Kernel Mode Setting (KMS) //------------------------------------------------------------------------------ uint64_t res_fb_buf[10]={0}, res_crtc_buf[10]={0}, res_conn_buf[10]={0}, res_enc_buf[10]={0}; struct drm_mode_card_res res={0}; //Become the "master" of the DRI device ioctl(dri_fd, DRM_IOCTL_SET_MASTER, 0); //Get resource counts ioctl(dri_fd, DRM_IOCTL_MODE_GETRESOURCES, &res); res.fb_id_ptr=(uint64_t)res_fb_buf; res.crtc_id_ptr=(uint64_t)res_crtc_buf; res.connector_id_ptr=(uint64_t)res_conn_buf; res.encoder_id_ptr=(uint64_t)res_enc_buf; //Get resource IDs ioctl(dri_fd, DRM_IOCTL_MODE_GETRESOURCES, &res); printf("fb: %d, crtc: %d, conn: %d, enc: %d\n",res.count_fbs,res.count_crtcs,res.count_connectors,res.count_encoders); void *fb_base[10]; long fb_w[10]; long fb_h[10]; //Loop though all available connectors int i; for (i=0;i<res.count_connectors;i++) { struct drm_mode_modeinfo conn_mode_buf[20]={0}; uint64_t conn_prop_buf[20]={0}, conn_propval_buf[20]={0}, conn_enc_buf[20]={0}; struct drm_mode_get_connector conn={0}; conn.connector_id=res_conn_buf[i]; ioctl(dri_fd, DRM_IOCTL_MODE_GETCONNECTOR, &conn); //get connector resource counts conn.modes_ptr=(uint64_t)conn_mode_buf; conn.props_ptr=(uint64_t)conn_prop_buf; conn.prop_values_ptr=(uint64_t)conn_propval_buf; conn.encoders_ptr=(uint64_t)conn_enc_buf; ioctl(dri_fd, DRM_IOCTL_MODE_GETCONNECTOR, &conn); //get connector resources //Check if the connector is OK to use (connected to something) if (conn.count_encoders<1 || conn.count_modes<1 || !conn.encoder_id || !conn.connection) { printf("Not connected\n"); continue; } //------------------------------------------------------------------------------ //Creating a dumb buffer //------------------------------------------------------------------------------ struct drm_mode_create_dumb create_dumb={0}; struct drm_mode_map_dumb map_dumb={0}; struct drm_mode_fb_cmd cmd_dumb={0}; //If we create the buffer later, we can get the size of the screen first. //This must be a valid mode, so it's probably best to do this after we find //a valid crtc with modes. create_dumb.width = conn_mode_buf[0].hdisplay; create_dumb.height = conn_mode_buf[0].vdisplay; create_dumb.bpp = 32; create_dumb.flags = 0; create_dumb.pitch = 0; create_dumb.size = 0; create_dumb.handle = 0; ioctl(dri_fd, DRM_IOCTL_MODE_CREATE_DUMB, &create_dumb); cmd_dumb.width=create_dumb.width; cmd_dumb.height=create_dumb.height; cmd_dumb.bpp=create_dumb.bpp; cmd_dumb.pitch=create_dumb.pitch; cmd_dumb.depth=24; cmd_dumb.handle=create_dumb.handle; ioctl(dri_fd,DRM_IOCTL_MODE_ADDFB,&cmd_dumb); map_dumb.handle=create_dumb.handle; ioctl(dri_fd,DRM_IOCTL_MODE_MAP_DUMB,&map_dumb); fb_base[i] = mmap(0, create_dumb.size, PROT_READ | PROT_WRITE, MAP_SHARED, dri_fd, map_dumb.offset); fb_w[i]=create_dumb.width; fb_h[i]=create_dumb.height; //------------------------------------------------------------------------------ //Kernel Mode Setting (KMS) //------------------------------------------------------------------------------ printf("%d : mode: %d, prop: %d, enc: %d\n",conn.connection,conn.count_modes,conn.count_props,conn.count_encoders); printf("modes: %dx%d FB: %d\n",conn_mode_buf[0].hdisplay,conn_mode_buf[0].vdisplay,fb_base[i]); struct drm_mode_get_encoder enc={0}; enc.encoder_id=conn.encoder_id; ioctl(dri_fd, DRM_IOCTL_MODE_GETENCODER, &enc); //get encoder struct drm_mode_crtc crtc={0}; crtc.crtc_id=enc.crtc_id; ioctl(dri_fd, DRM_IOCTL_MODE_GETCRTC, &crtc); crtc.fb_id=cmd_dumb.fb_id; crtc.set_connectors_ptr=(uint64_t)&res_conn_buf[i]; crtc.count_connectors=1; crtc.mode=conn_mode_buf[0]; crtc.mode_valid=1; ioctl(dri_fd, DRM_IOCTL_MODE_SETCRTC, &crtc); } //Stop being the "master" of the DRI device ioctl(dri_fd, DRM_IOCTL_DROP_MASTER, 0); int x,y; for (i=0;i<100;i++) { int j; for (j=0;j<res.count_connectors;j++) { int col=(rand()%0x00ffffff)&0x00ff00ff; for (y=0;y<fb_h[j];y++) for (x=0;x<fb_w[j];x++) { int location=y*(fb_w[j]) + x; *(((uint32_t*)fb_base[j])+location)=col; } } usleep(100000); } return 0; }
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2018.11.28 18:51:39 =~=~=~=~=~=~=~=~=~=~=~= / # dmesg [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.20.0-rc1-g9eb245c5e (xxxx@xxxx) (gcc version 6.3.0 20170516 (Debian 6.3.0-18)) #52 SMP Wed Nov 28 18:45:01 CET 2018 [ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: Rikomagic MK808 [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] cma: Reserved 64 MiB at 0x9c000000 [ 0.000000] On node 0 totalpages: 262144 [ 0.000000] Normal zone: 1536 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 196608 pages, LIFO batch:63 [ 0.000000] HighMem zone: 65536 pages, LIFO batch:15 [ 0.000000] random: get_random_bytes called from start_kernel+0xa0/0x45c with crng_init=0 [ 0.000000] percpu: Embedded 17 pages/cpu @(ptrval) s38540 r8192 d22900 u69632 [ 0.000000] pcpu-alloc: s38540 r8192 d22900 u69632 alloc=17*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 260608 [ 0.000000] Kernel command line: console=tty0 console=ttyUSB0,115200n8 debug drm.debug=0x3f clk_ignore_unused no_console_suspend=1 consoleblank=0 root=LABEL=linuxroot init=/sbin/init rootfstype=ext4 rootwait [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Memory: 962920K/1048576K available (6144K kernel code, 403K rwdata, 1480K rodata, 2048K init, 237K bss, 20120K reserved, 65536K cma-reserved, 196608K highmem) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) [ 0.000000] vmalloc : 0xf0800000 - 0xff800000 ( 240 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf0000000 ( 768 MB) [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) [ 0.000000] .text : 0x(ptrval) - 0x(ptrval) (7136 kB) [ 0.000000] .init : 0x(ptrval) - 0x(ptrval) (2048 kB) [ 0.000000] .data : 0x(ptrval) - 0x(ptrval) ( 404 kB) [ 0.000000] .bss : 0x(ptrval) - 0x(ptrval) ( 238 kB) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] L2C-310 erratum 769419 enabled [ 0.000000] L2C-310 enabling early BRESP for Cortex-A9 [ 0.000000] L2C-310: enabling full line of zeros but not enabled in Cortex-A9 [ 0.000000] L2C-310 ID prefetch enabled, offset 15 lines [ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled [ 0.000000] L2C-310 cache controller enabled, 16 ways, 512 kB [ 0.000000] L2C-310: CACHE_ID 0x4100c0c8, AUX_CTRL 0x76050001 [ 0.000016] sched_clock: 64 bits at 150MHz, resolution 6ns, wraps every 2199023255551ns [ 0.000042] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x2298375bd0, max_idle_ns: 440795208267 ns [ 0.000078] Switching to timer-based delay loop, resolution 6ns [ 0.000674] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns [ 0.000788] Ignoring duplicate/late registration of read_current_timer delay [ 0.001217] Console: colour dummy device 80x30 [ 0.001784] printk: console [tty0] enabled [ 0.001833] Calibrating delay loop (skipped), value calculated using timer frequency.. 300.00 BogoMIPS (lpj=1500000) [ 0.001867] pid_max: default: 32768 minimum: 301 [ 0.002018] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.002047] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.002750] CPU: Testing write buffer coherency: ok [ 0.002819] CPU0: Spectre v2: using BPIALL workaround [ 0.003210] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.003502] rockchip_smp_prepare_cpus: ncores 2 [ 0.004166] Setting up static identity map for 0x60100000 - 0x60100060 [ 0.004353] rcu: Hierarchical SRCU implementation. [ 0.004942] smp: Bringing up secondary CPUs ... [ 0.005834] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.005844] CPU1: Spectre v2: using BPIALL workaround [ 0.006023] smp: Brought up 1 node, 2 CPUs [ 0.006052] SMP: Total of 2 processors activated (600.00 BogoMIPS). [ 0.006071] CPU: All CPU(s) started in SVC mode. [ 0.007357] devtmpfs: initialized [ 0.013188] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 [ 0.013468] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.013527] futex hash table entries: 512 (order: 3, 32768 bytes) [ 0.017149] pinctrl core: initialized pinctrl subsystem [ 0.018056] NET: Registered protocol family 16 [ 0.020872] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.022741] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers. [ 0.022778] hw-breakpoint: maximum watchpoint size is 4 bytes. [ 0.047784] host-pwr: supplied by vcc_io [ 0.160655] vcc_otg: supplied by vcc_io [ 0.280581] sdmmc-regulator GPIO handle specifies active low - ignored [ 0.280656] vcc_sd: supplied by vcc_io [ 0.281111] vcc_wifi: supplied by vcc_io [ 0.281927] SCSI subsystem initialized [ 0.282077] usbcore: registered new interface driver usbfs [ 0.282148] usbcore: registered new interface driver hub [ 0.282247] usbcore: registered new device driver usb [ 0.282686] Advanced Linux Sound Architecture Driver Initialized. [ 0.283495] clocksource: Switched to clocksource arm_global_timer [ 0.333250] NET: Registered protocol family 2 [ 0.333938] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes) [ 0.333996] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.334108] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.334281] TCP: Hash tables configured (established 8192 bind 8192) [ 0.334437] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.334502] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.334731] NET: Registered protocol family 1 [ 0.361784] workingset: timestamp_bits=30 max_order=18 bucket_order=0 [ 0.368909] ntfs: driver 2.1.32 [Flags: R/W]. [ 0.375433] bounce: pool size: 64 pages [ 0.375526] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) [ 0.375555] io scheduler noop registered [ 0.375769] io scheduler cfq registered (default) [ 0.379247] dma-pl330 20018000.dma-controller: Loaded driver for PL330 DMAC-241330 [ 0.379293] dma-pl330 20018000.dma-controller: DBUFF-32x8bytes Num_Chans-6 Num_Peri-12 Num_Events-12 [ 0.380959] dma-pl330 20078000.dma-controller: Loaded driver for PL330 DMAC-241330 [ 0.380999] dma-pl330 20078000.dma-controller: DBUFF-64x8bytes Num_Chans-7 Num_Peri-20 Num_Events-14 [ 0.381417] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 0.382935] [drm:drm_core_init] Initialized [ 0.383863] rockchip-drm display-subsystem: [drm:rockchip_drm_platform_probe] no iommu attached for /vop@1010c000, using non-iommu buffers [ 0.384119] rockchip-drm display-subsystem: Linked as a consumer to 1010c000.vop [ 0.384302] rockchip-drm display-subsystem: Linked as a consumer to 10116000.hdmi [ 0.384829] rockchip-vop 1010c000.vop: [drm:vop_bind] Warning: not support global_regdone_en [ 0.384873] rockchip-vop 1010c000.vop: [drm:vop_bind] Warning: not support channel [ 0.384904] rockchip-vop 1010c000.vop: [drm:vop_bind] Warning: not support gate [ 0.384933] rockchip-vop 1010c000.vop: [drm:vop_bind] Warning: not support channel [ 0.384960] rockchip-vop 1010c000.vop: [drm:vop_bind] Warning: not support gate [ 0.384988] rockchip-vop 1010c000.vop: [drm:vop_bind] Warning: not support channel [ 0.385015] rockchip-vop 1010c000.vop: [drm:vop_bind] Warning: not support gate [ 0.385183] rockchip-drm display-subsystem: bound 1010c000.vop (ops 0xc073f2a8) [ 0.385452] i2c i2c-5: of_i2c: modalias failure on /hdmi@10116000/port [ 0.385483] i2c i2c-5: Failed to create I2C device for /hdmi@10116000/port [ 0.385510] rk3066hdmi-rockchip 10116000.hdmi: registered RK3066 HDMI I2C bus driver [ 0.385538] rk3066hdmi-rockchip 10116000.hdmi: mode :32 [ 0.385559] rk3066hdmi-rockchip 10116000.hdmi: previous_mode:16 [ 0.385581] rk3066hdmi-rockchip 10116000.hdmi: 0: next_mode :32 [ 0.385600] rk3066hdmi-rockchip 10116000.hdmi: set HDMI_SYS_POWER_MODE_A-B-E [ 0.386665] rk3066hdmi-rockchip 10116000.hdmi: mode :16 [ 0.386689] rk3066hdmi-rockchip 10116000.hdmi: previous_mode:32 [ 0.386711] rk3066hdmi-rockchip 10116000.hdmi: 0: next_mode :16 [ 0.386730] rk3066hdmi-rockchip 10116000.hdmi: set HDMI_SYS_POWER_MODE_A-B-E [ 0.386762] rk3066hdmi-rockchip 10116000.hdmi: CRTC found [ 0.387176] rockchip-drm display-subsystem: bound 10116000.hdmi (ops 0xc0741878) [ 0.387209] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 0.387228] [drm] No driver support for vblank timestamp query. [ 0.387270] [drm:drm_mode_object_get] OBJ ID: 33 (2) [ 0.387302] [drm:drm_setup_crtcs] [ 0.387336] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] [ 0.387376] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] status updated from unknown to connected [ 0.387437] rk3066hdmi-rockchip 10116000.hdmi: xfer: num: 1/2, len: 1, flags: 0x0 [ 0.387465] rk3066hdmi-rockchip 10116000.hdmi: xfer: num: 2/2, len: 1, flags: 0x1 [ 0.417954] rk3066hdmi-rockchip 10116000.hdmi: xfer: num: 1/2, len: 1, flags: 0x0 [ 0.417993] rk3066hdmi-rockchip 10116000.hdmi: xfer: num: 2/2, len: 128, flags: 0x1 [ 0.448922] rk3066hdmi-rockchip 10116000.hdmi: monitor type : DVI : 34x27 cm [ 0.448949] rk3066hdmi-rockchip 10116000.hdmi: audio support: no [ 0.448984] [drm:drm_add_display_info] non_desktop set to 0 [ 0.449018] [drm:drm_add_edid_modes] ELD: no CEA Extension found [ 0.449042] [drm:drm_add_display_info] non_desktop set to 0 [ 0.449171] rk3066hdmi-rockchip 10116000.hdmi: no CEA mode found, use preset [ 0.449925] [drm:drm_mode_debug_printmodeline] Modeline 35:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x48 0x5 [ 0.449962] [drm:drm_mode_prune_invalid] Not using 1280x1024 mode: BAD [ 0.449996] [drm:drm_mode_debug_printmodeline] Modeline 36:"1152x864" 0 108000 1152 1216 1344 1600 864 865 868 900 0x40 0x5 [ 0.450026] [drm:drm_mode_prune_invalid] Not using 1152x864 mode: BAD [ 0.450057] [drm:drm_mode_debug_printmodeline] Modeline 37:"800x600" 0 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [ 0.450086] [drm:drm_mode_prune_invalid] Not using 800x600 mode: BAD [ 0.450115] [drm:drm_mode_debug_printmodeline] Modeline 38:"640x480" 0 31500 640 656 720 840 480 481 484 500 0x40 0xa [ 0.450144] [drm:drm_mode_prune_invalid] Not using 640x480 mode: BAD [ 0.450173] [drm:drm_mode_debug_printmodeline] Modeline 39:"640x480" 0 25175 640 656 752 800 480 490 492 525 0x40 0xa [ 0.450202] [drm:drm_mode_prune_invalid] Not using 640x480 mode: BAD [ 0.450231] [drm:drm_mode_debug_printmodeline] Modeline 40:"720x400" 0 28320 720 738 846 900 400 412 414 449 0x40 0x6 [ 0.450260] [drm:drm_mode_prune_invalid] Not using 720x400 mode: BAD [ 0.450289] [drm:drm_mode_debug_printmodeline] Modeline 41:"1280x1024" 0 135000 1280 1296 1440 1688 1024 1025 1028 1066 0x40 0x5 [ 0.450319] [drm:drm_mode_prune_invalid] Not using 1280x1024 mode: BAD [ 0.450348] [drm:drm_mode_debug_printmodeline] Modeline 42:"1024x768" 0 78750 1024 1040 1136 1312 768 769 772 800 0x40 0x5 [ 0.450377] [drm:drm_mode_prune_invalid] Not using 1024x768 mode: BAD [ 0.450407] [drm:drm_mode_debug_printmodeline] Modeline 43:"1024x768" 0 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [ 0.450436] [drm:drm_mode_prune_invalid] Not using 1024x768 mode: BAD [ 0.450465] [drm:drm_mode_debug_printmodeline] Modeline 44:"800x600" 0 49500 800 816 896 1056 600 601 604 625 0x40 0x5 [ 0.450494] [drm:drm_mode_prune_invalid] Not using 800x600 mode: BAD [ 0.450531] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] probed modes : [ 0.450568] [drm:drm_mode_debug_printmodeline] Modeline 45:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x8 0x5 [ 0.450604] [drm:drm_mode_debug_printmodeline] Modeline 46:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5 [ 0.450640] [drm:drm_mode_debug_printmodeline] Modeline 47:"1920x1080" 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5 [ 0.450676] [drm:drm_mode_debug_printmodeline] Modeline 48:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5 [ 0.450711] [drm:drm_mode_debug_printmodeline] Modeline 49:"720x576" 50 27000 720 732 796 864 576 581 586 625 0x40 0xa [ 0.450746] [drm:drm_mode_debug_printmodeline] Modeline 50:"720x480" 60 27000 720 736 798 858 480 489 495 525 0x40 0xa [ 0.450783] [drm:drm_setup_crtcs] connector 33 enabled? yes [ 0.450806] [drm:drm_setup_crtcs] looking for cmdline mode on connector 33 [ 0.450831] [drm:drm_setup_crtcs] looking for preferred mode on connector 33 0 [ 0.450856] [drm:drm_setup_crtcs] found mode 1280x720 [ 0.450878] [drm:drm_setup_crtcs] picking CRTCs for 4096x4096 config [ 0.450906] [drm:drm_setup_crtcs] desired mode 1280x720 set on crtc 30 (0,0) [ 0.450932] [drm:drm_mode_object_get] OBJ ID: 33 (2) [ 0.463800] [drm:rockchip_drm_fbdev_create] FB [1280x720]-24 kvaddr=(ptrval) offset=0 size=3686400 [ 0.464438] [drm:drm_atomic_state_init] Allocated atomic state (ptrval) [ 0.464457] [drm:drm_atomic_get_plane_state] Added [PLANE:28:plane-0] (ptrval) state to (ptrval) [ 0.464470] [drm:drm_atomic_get_plane_state] Added [PLANE:29:plane-1] (ptrval) state to (ptrval) [ 0.464488] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:29:plane-1] state (ptrval) [ 0.464499] [drm:drm_atomic_get_plane_state] Added [PLANE:31:plane-2] (ptrval) state to (ptrval) [ 0.464508] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:31:plane-2] state (ptrval) [ 0.464523] [drm:drm_atomic_get_crtc_state] Added [CRTC:30:crtc-0] (ptrval) state to (ptrval) [ 0.464545] [drm:drm_atomic_set_mode_for_crtc] Set [MODE:1280x720] for [CRTC:30:crtc-0] state (ptrval) [ 0.464557] [drm:drm_atomic_set_crtc_for_plane] Link [PLANE:28:plane-0] state (ptrval) to [CRTC:30:crtc-0] [ 0.464568] [drm:drm_atomic_set_fb_for_plane] Set [FB:36] for [PLANE:28:plane-0] state (ptrval) [ 0.464576] [drm:drm_mode_object_get] OBJ ID: 36 (1) [ 0.464589] [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:30:crtc-0] to (ptrval) [ 0.464603] [drm:drm_mode_object_get] OBJ ID: 33 (3) [ 0.464614] [drm:drm_atomic_get_connector_state] Added [CONNECTOR:33:HDMI-A-1] (ptrval) state to (ptrval) [ 0.464620] [drm:drm_mode_object_get] OBJ ID: 33 (4) [ 0.464632] [drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:33:HDMI-A-1] state (ptrval) to [CRTC:30:crtc-0] [ 0.464640] [drm:drm_atomic_check_only] checking (ptrval) [ 0.464657] [drm:drm_atomic_helper_check_modeset] [CRTC:30:crtc-0] mode changed [ 0.464665] [drm:drm_atomic_helper_check_modeset] [CRTC:30:crtc-0] enable changed [ 0.464672] [drm:drm_atomic_helper_check_modeset] [CRTC:30:crtc-0] active changed [ 0.464683] [drm:drm_atomic_helper_check_modeset] Updating routing for [CONNECTOR:33:HDMI-A-1] [ 0.464695] [drm:drm_atomic_helper_check_modeset] [CONNECTOR:33:HDMI-A-1] using [ENCODER:32:TMDS-32] on [CRTC:30:crtc-0] [ 0.464703] [drm:drm_atomic_helper_check_modeset] [CRTC:30:crtc-0] needs all connectors, enable: y, active: y [ 0.464714] [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:30:crtc-0] to (ptrval) [ 0.464724] [drm:drm_atomic_add_affected_planes] Adding all current planes for [CRTC:30:crtc-0] to (ptrval) [ 0.464833] [drm:drm_atomic_commit] committing (ptrval) [ 0.464864] [drm:drm_calc_timestamping_constants] crtc 30: hwmode: htotal 1650, vtotal 750, vdisplay 720 [ 0.464874] [drm:drm_calc_timestamping_constants] crtc 30: clock 74250 kHz framedur 16666666 linedur 22222 [ 0.464885] [drm:drm_atomic_helper_commit_modeset_disables] modeset on [ENCODER:32:TMDS-32] [ 0.464895] [drm:drm_atomic_helper_commit_modeset_enables] enabling [CRTC:30:crtc-0] [ 0.464970] [drm:drm_crtc_vblank_on] crtc 0, vblank enabled 0, inmodeset 0 [ 0.464994] rockchip-vop 1010c000.vop: [drm:vop_crtc_atomic_enable] Warning: not support hdmi_pin_pol [ 0.465005] rockchip-vop 1010c000.vop: [drm:vop_crtc_atomic_enable] Warning: not support hdmi_en [ 0.465015] rockchip-vop 1010c000.vop: [drm:vop_crtc_atomic_enable] Warning: not support pre_dither_down [ 0.465026] rockchip-vop 1010c000.vop: [drm:vop_crtc_atomic_enable] Warning: not support hpost_st_end [ 0.465036] rockchip-vop 1010c000.vop: [drm:vop_crtc_atomic_enable] Warning: not support vpost_st_end [ 0.465117] [drm:drm_atomic_helper_commit_modeset_enables] enabling [ENCODER:32:TMDS-32] [ 0.465150] rk3066hdmi-rockchip 10116000.hdmi: select hdmi input: vop0 [ 0.475560] rk3066hdmi-rockchip 10116000.hdmi: mode :128 [ 0.475569] rk3066hdmi-rockchip 10116000.hdmi: previous_mode:32 [ 0.475577] rk3066hdmi-rockchip 10116000.hdmi: 0: next_mode :64 [ 0.475583] rk3066hdmi-rockchip 10116000.hdmi: set HDMI_SYS_POWER_MODE_D [ 0.475824] rk3066hdmi-rockchip 10116000.hdmi: 1: next_mode :128 [ 0.475831] rk3066hdmi-rockchip 10116000.hdmi: set HDMI_SYS_POWER_MODE_A-B-E [ 0.475880] rockchip-vop 1010c000.vop: [drm:vop_plane_atomic_update] Warning: not support src_alpha_ctl [ 0.475899] [drm:drm_vblank_enable] enabling vblank on crtc 0, ret: 0 [ 0.475912] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=1, diff=0, hw=0 hw_last=0 [ 0.480987] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=1, diff=1, hw=0 hw_last=0 [ 0.481039] [drm:drm_atomic_state_default_clear] Clearing atomic state (ptrval) [ 0.481057] [drm:drm_mode_object_put] OBJ ID: 33 (5) [ 0.481070] [drm:__drm_atomic_state_free] Freeing atomic state (ptrval) [ 0.481172] [drm:drm_atomic_state_init] Allocated atomic state (ptrval) [ 0.481185] [drm:drm_mode_object_get] OBJ ID: 36 (2) [ 0.481195] [drm:drm_atomic_get_plane_state] Added [PLANE:28:plane-0] (ptrval) state to (ptrval) [ 0.481204] [drm:drm_mode_object_get] OBJ ID: 37 (1) [ 0.481214] [drm:drm_atomic_get_crtc_state] Added [CRTC:30:crtc-0] (ptrval) state to (ptrval) [ 0.481225] [drm:drm_atomic_get_plane_state] Added [PLANE:29:plane-1] (ptrval) state to (ptrval) [ 0.481239] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:29:plane-1] state (ptrval) [ 0.481250] [drm:drm_atomic_get_plane_state] Added [PLANE:31:plane-2] (ptrval) state to (ptrval) [ 0.481259] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:31:plane-2] state (ptrval) [ 0.481271] [drm:drm_mode_object_put] OBJ ID: 37 (2) [ 0.481291] [drm:drm_atomic_set_mode_for_crtc] Set [MODE:1280x720] for [CRTC:30:crtc-0] state (ptrval) [ 0.481303] [drm:drm_atomic_set_fb_for_plane] Set [FB:36] for [PLANE:28:plane-0] state (ptrval) [ 0.481310] [drm:drm_mode_object_get] OBJ ID: 36 (3) [ 0.481318] [drm:drm_mode_object_put] OBJ ID: 36 (4) [ 0.481329] [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:30:crtc-0] to (ptrval) [ 0.481341] [drm:drm_mode_object_get] OBJ ID: 33 (5) [ 0.481347] [drm:drm_mode_object_get] OBJ ID: 33 (6) [ 0.481357] [drm:drm_atomic_get_connector_state] Added [CONNECTOR:33:HDMI-A-1] (ptrval) state to (ptrval) [ 0.481367] [drm:drm_mode_object_put] OBJ ID: 33 (6) [ 0.481378] [drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:33:HDMI-A-1] state (ptrval) to [NOCRTC] [ 0.481384] [drm:drm_mode_object_get] OBJ ID: 33 (5) [ 0.481395] [drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:33:HDMI-A-1] state (ptrval) to [CRTC:30:crtc-0] [ 0.481403] [drm:drm_atomic_check_only] checking (ptrval) [ 0.481421] [drm:drm_atomic_helper_check_modeset] Updating routing for [CONNECTOR:33:HDMI-A-1] [ 0.481432] [drm:drm_atomic_helper_check_modeset] [CONNECTOR:33:HDMI-A-1] keeps [ENCODER:32:TMDS-32], now on [CRTC:30:crtc-0] [ 0.481446] [drm:drm_atomic_commit] committing (ptrval) [ 0.481472] [drm:drm_calc_timestamping_constants] crtc 30: hwmode: htotal 1650, vtotal 750, vdisplay 720 [ 0.481483] [drm:drm_calc_timestamping_constants] crtc 30: clock 74250 kHz framedur 16666666 linedur 22222 [ 0.481505] rockchip-vop 1010c000.vop: [drm:vop_plane_atomic_update] Warning: not support src_alpha_ctl [ 0.497664] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=2, diff=1, hw=0 hw_last=0 [ 0.497712] [drm:drm_atomic_state_default_clear] Clearing atomic state (ptrval) [ 0.497726] [drm:drm_mode_object_put] OBJ ID: 33 (6) [ 0.497737] [drm:drm_mode_object_put] OBJ ID: 33 (5) [ 0.497746] [drm:drm_mode_object_put] OBJ ID: 37 (1) [ 0.497759] [drm:drm_mode_object_put] OBJ ID: 36 (3) [ 0.497770] [drm:__drm_atomic_state_free] Freeing atomic state (ptrval) [ 0.514323] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=3, diff=1, hw=0 hw_last=0 [ 0.521880] Console: switching to colour frame buffer device 160x45 [ 0.521918] [drm:drm_atomic_state_init] Allocated atomic state (ptrval) [ 0.521929] [drm:drm_mode_object_get] OBJ ID: 36 (2) [ 0.521941] [drm:drm_atomic_get_plane_state] Added [PLANE:28:plane-0] (ptrval) state to (ptrval) [ 0.521950] [drm:drm_mode_object_get] OBJ ID: 38 (1) [ 0.521960] [drm:drm_atomic_get_crtc_state] Added [CRTC:30:crtc-0] (ptrval) state to (ptrval) [ 0.521970] [drm:drm_atomic_get_plane_state] Added [PLANE:29:plane-1] (ptrval) state to (ptrval) [ 0.521984] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:29:plane-1] state (ptrval) [ 0.521994] [drm:drm_atomic_get_plane_state] Added [PLANE:31:plane-2] (ptrval) state to (ptrval) [ 0.522003] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:31:plane-2] state (ptrval) [ 0.522015] [drm:drm_mode_object_put] OBJ ID: 38 (2) [ 0.522032] [drm:drm_atomic_set_mode_for_crtc] Set [MODE:1280x720] for [CRTC:30:crtc-0] state (ptrval) [ 0.522043] [drm:drm_atomic_set_fb_for_plane] Set [FB:36] for [PLANE:28:plane-0] state (ptrval) [ 0.522049] [drm:drm_mode_object_get] OBJ ID: 36 (3) [ 0.522058] [drm:drm_mode_object_put] OBJ ID: 36 (4) [ 0.522069] [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:30:crtc-0] to (ptrval) [ 0.522079] [drm:drm_mode_object_get] OBJ ID: 33 (5) [ 0.522085] [drm:drm_mode_object_get] OBJ ID: 33 (6) [ 0.522095] [drm:drm_atomic_get_connector_state] Added [CONNECTOR:33:HDMI-A-1] (ptrval) state to (ptrval) [ 0.522104] [drm:drm_mode_object_put] OBJ ID: 33 (6) [ 0.522115] [drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:33:HDMI-A-1] state (ptrval) to [NOCRTC] [ 0.522121] [drm:drm_mode_object_get] OBJ ID: 33 (5) [ 0.522132] [drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:33:HDMI-A-1] state (ptrval) to [CRTC:30:crtc-0] [ 0.522140] [drm:drm_atomic_check_only] checking (ptrval) [ 0.522158] [drm:drm_atomic_helper_check_modeset] Updating routing for [CONNECTOR:33:HDMI-A-1] [ 0.522169] [drm:drm_atomic_helper_check_modeset] [CONNECTOR:33:HDMI-A-1] keeps [ENCODER:32:TMDS-32], now on [CRTC:30:crtc-0] [ 0.522182] [drm:drm_atomic_commit] committing (ptrval) [ 0.522208] [drm:drm_calc_timestamping_constants] crtc 30: hwmode: htotal 1650, vtotal 750, vdisplay 720 [ 0.522218] [drm:drm_calc_timestamping_constants] crtc 30: clock 74250 kHz framedur 16666666 linedur 22222 [ 0.522240] rockchip-vop 1010c000.vop: [drm:vop_plane_atomic_update] Warning: not support src_alpha_ctl [ 0.530993] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=4, diff=1, hw=0 hw_last=0 [ 0.531043] [drm:drm_atomic_state_default_clear] Clearing atomic state (ptrval) [ 0.531055] [drm:drm_mode_object_put] OBJ ID: 33 (6) [ 0.531066] [drm:drm_mode_object_put] OBJ ID: 33 (5) [ 0.531075] [drm:drm_mode_object_put] OBJ ID: 38 (1) [ 0.531087] [drm:drm_mode_object_put] OBJ ID: 36 (3) [ 0.531098] [drm:__drm_atomic_state_free] Freeing atomic state (ptrval) [ 0.547656] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=5, diff=1, hw=0 hw_last=0 [ 0.565587] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=6, diff=1, hw=0 hw_last=0 [ 0.584319] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=7, diff=1, hw=0 hw_last=0 [ 0.597657] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=8, diff=1, hw=0 hw_last=0 [ 0.603231] rockchip-drm display-subsystem: fb0: frame buffer device [ 0.614324] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=9, diff=1, hw=0 hw_last=0 [ 1.625994] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=10, diff=1, hw=0 hw_last=0 [ 1.626008] [drm:drm_minor_register] [ 1.626020] [drm:drm_minor_register] [ 1.634951] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=11, diff=1, hw=0 hw_last=0 [ 1.635055] [drm:drm_helper_hpd_irq_event] [CONNECTOR:33:HDMI-A-1] status updated from connected to connected [ 1.644115] [drm:drm_minor_register] new minor registered 0 [ 1.652306] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=12, diff=1, hw=0 hw_last=0 [ 1.661342] [drm:drm_sysfs_connector_add] adding "HDMI-A-1" to sysfs [ 1.670108] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=13, diff=1, hw=0 hw_last=0 [ 1.678927] [drm:drm_sysfs_hotplug_event] generating hotplug event [ 1.687971] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=14, diff=1, hw=0 hw_last=0 [ 1.696945] [drm] Initialized rockchip 1.0.0 20140818 for display-subsystem on minor 0 [ 1.706022] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=15, diff=1, hw=0 hw_last=0 [ 1.714334] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=16, diff=1, hw=0 hw_last=0 [ 1.752811] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=17, diff=1, hw=0 hw_last=0 [ 1.764346] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=18, diff=1, hw=0 hw_last=0 [ 1.771678] brd: module loaded [ 1.781015] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=19, diff=1, hw=0 hw_last=0 [ 1.789906] loop: module loaded [ 1.797702] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=20, diff=1, hw=0 hw_last=0 [ 1.801384] usbcore: registered new interface driver dm9601 [ 1.814336] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=21, diff=1, hw=0 hw_last=0 [ 1.819671] dwc2 10180000.usb: 10180000.usb supply vusb_d not found, using dummy regulator [ 1.830998] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=22, diff=1, hw=0 hw_last=0 [ 1.837952] dwc2 10180000.usb: Linked as a consumer to regulator.0 [ 1.847662] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=23, diff=1, hw=0 hw_last=0 [ 1.856516] dwc2 10180000.usb: 10180000.usb supply vusb_a not found, using dummy regulator [ 1.865987] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=24, diff=1, hw=0 hw_last=0 [ 1.875605] dwc2 10180000.usb: Configuration mismatch. dr_mode forced to host [ 1.884907] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=25, diff=1, hw=0 hw_last=0 [ 1.897656] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=26, diff=1, hw=0 hw_last=0 [ 1.914440] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=27, diff=1, hw=0 hw_last=0 [ 1.930989] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=28, diff=1, hw=0 hw_last=0 [ 1.947656] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=29, diff=1, hw=0 hw_last=0 [ 1.964325] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=30, diff=1, hw=0 hw_last=0 [ 1.980988] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=31, diff=1, hw=0 hw_last=0 [ 1.997654] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=32, diff=1, hw=0 hw_last=0 [ 2.005264] dwc2 10180000.usb: dwc2_check_params: Invalid parameter lpm=1 [ 2.014326] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=33, diff=1, hw=0 hw_last=0 [ 2.016651] dwc2 10180000.usb: dwc2_check_params: Invalid parameter lpm_clock_gating=1 [ 2.030987] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=34, diff=1, hw=0 hw_last=0 [ 2.035875] dwc2 10180000.usb: dwc2_check_params: Invalid parameter besl=1 [ 2.047653] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=35, diff=1, hw=0 hw_last=0 [ 2.055685] dwc2 10180000.usb: dwc2_check_params: Invalid parameter hird_threshold_en=1 [ 2.065847] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=36, diff=1, hw=0 hw_last=0 [ 2.076573] dwc2 10180000.usb: DWC OTG Controller [ 2.086291] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=37, diff=1, hw=0 hw_last=0 [ 2.097658] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=38, diff=1, hw=0 hw_last=0 [ 2.106764] dwc2 10180000.usb: new USB bus registered, assigned bus number 1 [ 2.116743] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=39, diff=1, hw=0 hw_last=0 [ 2.130983] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=40, diff=1, hw=0 hw_last=0 [ 2.136881] dwc2 10180000.usb: irq 23, io mem 0x10180000 [ 2.147656] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=41, diff=1, hw=0 hw_last=0 [ 2.156612] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.20 [ 2.166424] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=42, diff=1, hw=0 hw_last=0 [ 2.180985] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=43, diff=1, hw=0 hw_last=0 [ 2.187557] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.197967] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=44, diff=1, hw=0 hw_last=0 [ 2.214318] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=45, diff=1, hw=0 hw_last=0 [ 2.218773] usb usb1: Product: DWC OTG Controller [ 2.230987] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=46, diff=1, hw=0 hw_last=0 [ 2.238858] usb usb1: Manufacturer: Linux 4.20.0-rc1-g9eb245c5e dwc2_hsotg [ 2.248992] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=47, diff=1, hw=0 hw_last=0 [ 2.264318] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=48, diff=1, hw=0 hw_last=0 [ 2.269185] usb usb1: SerialNumber: 10180000.usb [ 2.280985] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=49, diff=1, hw=0 hw_last=0 [ 2.298560] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=50, diff=1, hw=0 hw_last=0 [ 2.308602] hub 1-0:1.0: USB hub found [ 2.314336] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=51, diff=1, hw=0 hw_last=0 [ 2.318039] hub 1-0:1.0: 1 port detected [ 2.330994] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=52, diff=1, hw=0 hw_last=0 [ 2.337870] dwc2 101c0000.usb: 101c0000.usb supply vusb_d not found, using dummy regulator [ 2.347669] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=53, diff=1, hw=0 hw_last=0 [ 2.357837] dwc2 101c0000.usb: Linked as a consumer to regulator.0 [ 2.368488] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=54, diff=1, hw=0 hw_last=0 [ 2.380983] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=55, diff=1, hw=0 hw_last=0 [ 2.390773] dwc2 101c0000.usb: 101c0000.usb supply vusb_a not found, using dummy regulator [ 2.402101] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=56, diff=1, hw=0 hw_last=0 [ 2.424698] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=57, diff=1, hw=0 hw_last=0 [ 2.435726] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=58, diff=1, hw=0 hw_last=0 [ 2.447658] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=59, diff=1, hw=0 hw_last=0 [ 2.464325] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=60, diff=1, hw=0 hw_last=0 [ 2.480988] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=61, diff=1, hw=0 hw_last=0 [ 2.483517] dwc2 101c0000.usb: dwc2_check_params: Invalid parameter lpm=1 [ 2.497660] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=62, diff=1, hw=0 hw_last=0 [ 2.500493] dwc2 101c0000.usb: dwc2_check_params: Invalid parameter lpm_clock_gating=1 [ 2.514326] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=63, diff=1, hw=0 hw_last=0 [ 2.520000] dwc2 101c0000.usb: dwc2_check_params: Invalid parameter besl=1 [ 2.530987] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=64, diff=1, hw=0 hw_last=0 [ 2.540089] dwc2 101c0000.usb: dwc2_check_params: Invalid parameter hird_threshold_en=1 [ 2.550181] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=65, diff=1, hw=0 hw_last=0 [ 2.564319] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=66, diff=1, hw=0 hw_last=0 [ 2.581105] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=67, diff=1, hw=0 hw_last=0 [ 2.591167] dwc2 101c0000.usb: DWC OTG Controller [ 2.600858] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=68, diff=1, hw=0 hw_last=0 [ 2.611041] dwc2 101c0000.usb: new USB bus registered, assigned bus number 2 [ 2.621069] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=69, diff=1, hw=0 hw_last=0 [ 2.631207] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=70, diff=1, hw=0 hw_last=0 [ 2.633515] [drm:drm_sysfs_hotplug_event] generating hotplug event [ 2.641393] dwc2 101c0000.usb: irq 24, io mem 0x101c0000 [ 2.651284] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=71, diff=1, hw=0 hw_last=0 [ 2.651322] [drm:drm_fb_helper_hotplug_event.part.9] [ 2.661413] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.20 [ 2.671038] [drm:drm_setup_crtcs] [ 2.671054] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=72, diff=1, hw=0 hw_last=0 [ 2.671074] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] [ 2.671127] rk3066hdmi-rockchip 10116000.hdmi: xfer: num: 1/2, len: 1, flags: 0x0 [ 2.680825] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.690904] rk3066hdmi-rockchip 10116000.hdmi: xfer: num: 2/2, len: 1, flags: 0x1 [ 2.690920] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=73, diff=1, hw=0 hw_last=0 [ 2.700843] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=74, diff=1, hw=0 hw_last=0 [ 2.721175] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=75, diff=1, hw=0 hw_last=0 [ 2.721262] rk3066hdmi-rockchip 10116000.hdmi: xfer: num: 1/2, len: 1, flags: 0x0 [ 2.731371] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=76, diff=1, hw=0 hw_last=0 [ 2.741422] rk3066hdmi-rockchip 10116000.hdmi: xfer: num: 2/2, len: 128, flags: 0x1 [ 2.751405] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=77, diff=1, hw=0 hw_last=0 [ 2.818922] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=78, diff=1, hw=0 hw_last=0 [ 2.828458] usb usb2: Product: DWC OTG Controller [ 2.828958] rk3066hdmi-rockchip 10116000.hdmi: monitor type : DVI : 34x27 cm [ 2.838073] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=79, diff=1, hw=0 hw_last=0 [ 2.847918] rk3066hdmi-rockchip 10116000.hdmi: audio support: no [ 2.858206] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=80, diff=1, hw=0 hw_last=0 [ 2.868630] [drm:drm_add_display_info] non_desktop set to 0 [ 2.879516] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=81, diff=1, hw=0 hw_last=0 [ 2.890207] [drm:drm_mode_object_put] OBJ ID: 34 (1) [ 2.901011] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=82, diff=1, hw=0 hw_last=0 [ 2.911608] [drm:drm_add_edid_modes] ELD: no CEA Extension found [ 2.922345] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=83, diff=1, hw=0 hw_last=0 [ 2.932886] [drm:drm_add_display_info] non_desktop set to 0 [ 2.943577] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=84, diff=1, hw=0 hw_last=0 [ 2.954141] rk3066hdmi-rockchip 10116000.hdmi: no CEA mode found, use preset [ 2.964662] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=85, diff=1, hw=0 hw_last=0 [ 2.964679] usb usb2: Manufacturer: Linux 4.20.0-rc1-g9eb245c5e dwc2_hsotg [ 2.976232] [drm:drm_mode_debug_printmodeline] Modeline 34:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x48 0x5 [ 2.986750] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=86, diff=1, hw=0 hw_last=0 [ 2.997851] [drm:drm_mode_prune_invalid] Not using 1280x1024 mode: BAD [ 3.009212] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=87, diff=1, hw=0 hw_last=0 [ 3.020520] [drm:drm_mode_debug_printmodeline] Modeline 39:"1152x864" 0 108000 1152 1216 1344 1600 864 865 868 900 0x40 0x5 [ 3.031659] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=88, diff=1, hw=0 hw_last=0 [ 3.043188] [drm:drm_mode_prune_invalid] Not using 1152x864 mode: BAD [ 3.054852] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=89, diff=1, hw=0 hw_last=0 [ 3.066622] [drm:drm_mode_debug_printmodeline] Modeline 40:"800x600" 0 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [ 3.078205] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=90, diff=1, hw=0 hw_last=0 [ 3.089919] [drm:drm_mode_prune_invalid] Not using 800x600 mode: BAD [ 3.101744] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=91, diff=1, hw=0 hw_last=0 [ 3.113586] [drm:drm_mode_debug_printmodeline] Modeline 41:"640x480" 0 31500 640 656 720 840 480 481 484 500 0x40 0xa [ 3.125304] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=92, diff=1, hw=0 hw_last=0 [ 3.137155] [drm:drm_mode_prune_invalid] Not using 640x480 mode: BAD [ 3.149135] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=93, diff=1, hw=0 hw_last=0 [ 3.161182] [drm:drm_mode_debug_printmodeline] Modeline 42:"640x480" 0 25175 640 656 752 800 480 490 492 525 0x40 0xa [ 3.173126] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=94, diff=1, hw=0 hw_last=0 [ 3.185156] [drm:drm_mode_prune_invalid] Not using 640x480 mode: BAD [ 3.197544] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=95, diff=1, hw=0 hw_last=0 [ 3.210215] [drm:drm_mode_debug_printmodeline] Modeline 43:"720x400" 0 28320 720 738 846 900 400 412 414 449 0x40 0x6 [ 3.222691] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=96, diff=1, hw=0 hw_last=0 [ 3.235262] [drm:drm_mode_prune_invalid] Not using 720x400 mode: BAD [ 3.247881] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=97, diff=1, hw=0 hw_last=0 [ 3.260473] [drm:drm_mode_debug_printmodeline] Modeline 44:"1280x1024" 0 135000 1280 1296 1440 1688 1024 1025 1028 1066 0x40 0x5 [ 3.273192] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=98, diff=1, hw=0 hw_last=0 [ 3.286012] [drm:drm_mode_prune_invalid] Not using 1280x1024 mode: BAD [ 3.299061] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=99, diff=1, hw=0 hw_last=0 [ 3.312066] [drm:drm_mode_debug_printmodeline] Modeline 51:"1024x768" 0 78750 1024 1040 1136 1312 768 769 772 800 0x40 0x5 [ 3.324889] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=100, diff=1, hw=0 hw_last=0 [ 3.337791] [drm:drm_mode_prune_invalid] Not using 1024x768 mode: BAD [ 3.350808] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=101, diff=1, hw=0 hw_last=0 [ 3.363829] [drm:drm_mode_debug_printmodeline] Modeline 52:"1024x768" 0 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [ 3.376701] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=102, diff=1, hw=0 hw_last=0 [ 3.389706] [drm:drm_mode_prune_invalid] Not using 1024x768 mode: BAD [ 3.402809] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=103, diff=1, hw=0 hw_last=0 [ 3.415904] [drm:drm_mode_debug_printmodeline] Modeline 53:"800x600" 0 49500 800 816 896 1056 600 601 604 625 0x40 0x5 [ 3.428850] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=104, diff=1, hw=0 hw_last=0 [ 3.441945] [drm:drm_mode_prune_invalid] Not using 800x600 mode: BAD [ 3.455053] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=105, diff=1, hw=0 hw_last=0 [ 3.468143] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] probed modes : [ 3.481054] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=106, diff=1, hw=0 hw_last=0 [ 3.494021] [drm:drm_mode_debug_printmodeline] Modeline 45:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x8 0x5 [ 3.506881] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=107, diff=1, hw=0 hw_last=0 [ 3.519821] [drm:drm_mode_debug_printmodeline] Modeline 46:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5 [ 3.532829] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=108, diff=1, hw=0 hw_last=0 [ 3.545798] [drm:drm_mode_debug_printmodeline] Modeline 47:"1920x1080" 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5 [ 3.558839] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=109, diff=1, hw=0 hw_last=0 [ 3.571876] [drm:drm_mode_debug_printmodeline] Modeline 48:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5 [ 3.585060] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=110, diff=1, hw=0 hw_last=0 [ 3.598200] [drm:drm_mode_debug_printmodeline] Modeline 49:"720x576" 50 27000 720 732 796 864 576 581 586 625 0x40 0xa [ 3.611394] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=111, diff=1, hw=0 hw_last=0 [ 3.624599] [drm:drm_mode_debug_printmodeline] Modeline 50:"720x480" 60 27000 720 736 798 858 480 489 495 525 0x40 0xa [ 3.637877] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=112, diff=1, hw=0 hw_last=0 [ 3.651133] [drm:drm_setup_crtcs] connector 33 enabled? yes [ 3.664410] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=113, diff=1, hw=0 hw_last=0 [ 3.677711] [drm:drm_setup_crtcs] looking for cmdline mode on connector 33 [ 3.690855] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=114, diff=1, hw=0 hw_last=0 [ 3.704141] [drm:drm_setup_crtcs] looking for preferred mode on connector 33 0 [ 3.717280] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=115, diff=1, hw=0 hw_last=0 [ 3.730531] [drm:drm_setup_crtcs] found mode 1280x720 [ 3.743716] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=116, diff=1, hw=0 hw_last=0 [ 3.756963] [drm:drm_setup_crtcs] picking CRTCs for 1280x720 config [ 3.769982] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=117, diff=1, hw=0 hw_last=0 [ 3.783220] [drm:drm_mode_object_put] OBJ ID: 33 (4) [ 3.796311] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=118, diff=1, hw=0 hw_last=0 [ 3.809498] [drm:drm_setup_crtcs] desired mode 1280x720 set on crtc 30 (0,0) [ 3.822423] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=119, diff=1, hw=0 hw_last=0 [ 3.835566] [drm:drm_mode_object_get] OBJ ID: 33 (3) [ 3.848603] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=120, diff=1, hw=0 hw_last=0 [ 3.861719] [drm:drm_atomic_state_init] Allocated atomic state (ptrval) [ 3.874596] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=121, diff=1, hw=0 hw_last=0 [ 3.887666] [drm:drm_mode_object_get] OBJ ID: 36 (2) [ 3.900627] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=122, diff=1, hw=0 hw_last=0 [ 3.913672] [drm:drm_atomic_get_plane_state] Added [PLANE:28:plane-0] (ptrval) state to (ptrval) [ 3.926475] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=123, diff=1, hw=0 hw_last=0 [ 3.939475] [drm:drm_mode_object_get] OBJ ID: 37 (1) [ 3.952462] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=124, diff=1, hw=0 hw_last=0 [ 3.965450] [drm:drm_atomic_get_crtc_state] Added [CRTC:30:crtc-0] (ptrval) state to (ptrval) [ 3.978207] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=125, diff=1, hw=0 hw_last=0 [ 3.991155] [drm:drm_atomic_get_plane_state] Added [PLANE:29:plane-1] (ptrval) state to (ptrval) [ 4.004048] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=126, diff=1, hw=0 hw_last=0 [ 4.016997] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:29:plane-1] state (ptrval) [ 4.029902] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=127, diff=1, hw=0 hw_last=0 [ 4.042817] [drm:drm_atomic_get_plane_state] Added [PLANE:31:plane-2] (ptrval) state to (ptrval) [ 4.055652] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=128, diff=1, hw=0 hw_last=0 [ 4.068493] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:31:plane-2] state (ptrval) [ 4.081226] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=129, diff=1, hw=0 hw_last=0 [ 4.093954] [drm:drm_mode_object_put] OBJ ID: 37 (2) [ 4.106586] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=130, diff=1, hw=0 hw_last=0 [ 4.119224] [drm:drm_atomic_set_mode_for_crtc] Set [MODE:1280x720] for [CRTC:30:crtc-0] state (ptrval) [ 4.131619] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=131, diff=1, hw=0 hw_last=0 [ 4.144194] [drm:drm_atomic_set_fb_for_plane] Set [FB:36] for [PLANE:28:plane-0] state (ptrval) [ 4.156694] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=132, diff=1, hw=0 hw_last=0 [ 4.169190] [drm:drm_mode_object_get] OBJ ID: 36 (3) [ 4.181611] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=133, diff=1, hw=0 hw_last=0 [ 4.194069] [drm:drm_mode_object_put] OBJ ID: 36 (4) [ 4.206332] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=134, diff=1, hw=0 hw_last=0 [ 4.218793] [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:30:crtc-0] to (ptrval) [ 4.231056] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=135, diff=1, hw=0 hw_last=0 [ 4.243501] [drm:drm_mode_object_get] OBJ ID: 33 (5) [ 4.256004] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=136, diff=1, hw=0 hw_last=0 [ 4.268486] [drm:drm_mode_object_get] OBJ ID: 33 (6) [ 4.280802] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=137, diff=1, hw=0 hw_last=0 [ 4.293288] [drm:drm_atomic_get_connector_state] Added [CONNECTOR:33:HDMI-A-1] (ptrval) state to (ptrval) [ 4.305578] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=138, diff=1, hw=0 hw_last=0 [ 4.318053] [drm:drm_mode_object_put] OBJ ID: 33 (6) [ 4.330538] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=139, diff=1, hw=0 hw_last=0 [ 4.343036] [drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:33:HDMI-A-1] state (ptrval) to [NOCRTC] [ 4.355342] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=140, diff=1, hw=0 hw_last=0 [ 4.367841] [drm:drm_mode_object_get] OBJ ID: 33 (5) [ 4.380331] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=141, diff=1, hw=0 hw_last=0 [ 4.392844] [drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:33:HDMI-A-1] state (ptrval) to [CRTC:30:crtc-0] [ 4.405158] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=142, diff=1, hw=0 hw_last=0 [ 4.417655] [drm:drm_atomic_check_only] checking (ptrval) [ 4.430211] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=143, diff=1, hw=0 hw_last=0 [ 4.442787] [drm:drm_atomic_helper_check_modeset] Updating routing for [CONNECTOR:33:HDMI-A-1] [ 4.455145] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=144, diff=1, hw=0 hw_last=0 [ 4.467703] [drm:drm_atomic_helper_check_modeset] [CONNECTOR:33:HDMI-A-1] keeps [ENCODER:32:TMDS-32], now on [CRTC:30:crtc-0] [ 4.480213] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=145, diff=1, hw=0 hw_last=0 [ 4.492771] [drm:drm_atomic_commit] committing (ptrval) [ 4.505429] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=146, diff=1, hw=0 hw_last=0 [ 4.518113] [drm:drm_calc_timestamping_constants] crtc 30: hwmode: htotal 1650, vtotal 750, vdisplay 720 [ 4.530546] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=147, diff=1, hw=0 hw_last=0 [ 4.543187] [drm:drm_calc_timestamping_constants] crtc 30: clock 74250 kHz framedur 16666666 linedur 22222 [ 4.555817] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=148, diff=1, hw=0 hw_last=0 [ 4.568466] rockchip-vop 1010c000.vop: [drm:vop_plane_atomic_update] Warning: not support src_alpha_ctl [ 4.581082] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=149, diff=1, hw=0 hw_last=0 [ 4.619109] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=150, diff=1, hw=0 hw_last=0 [ 4.631614] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=151, diff=1, hw=0 hw_last=0 [ 4.631629] [drm:drm_atomic_state_default_clear] Clearing atomic state (ptrval) [ 4.631646] [drm:drm_mode_object_put] OBJ ID: 33 (6) [ 4.643836] usb usb2: SerialNumber: 101c0000.usb [ 4.644651] hub 2-0:1.0: USB hub found [ 4.655983] [drm:drm_mode_object_put] OBJ ID: 33 (5) [ 4.656002] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=152, diff=1, hw=0 hw_last=0 [ 4.656012] [drm:drm_mode_object_put] OBJ ID: 37 (1) [ 4.656030] [drm:drm_mode_object_put] OBJ ID: 36 (3) [ 4.656044] [drm:__drm_atomic_state_free] Freeing atomic state (ptrval) [ 4.667994] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=153, diff=1, hw=0 hw_last=0 [ 4.691236] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=154, diff=1, hw=0 hw_last=0 [ 4.702663] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=155, diff=1, hw=0 hw_last=0 [ 4.725661] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=156, diff=1, hw=0 hw_last=0 [ 4.736755] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=157, diff=1, hw=0 hw_last=0 [ 4.747774] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=158, diff=1, hw=0 hw_last=0 [ 4.769795] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=159, diff=1, hw=0 hw_last=0 [ 4.790728] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=160, diff=1, hw=0 hw_last=0 [ 4.800782] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=161, diff=1, hw=0 hw_last=0 [ 4.820010] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=162, diff=1, hw=0 hw_last=0 [ 4.838135] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=163, diff=1, hw=0 hw_last=0 [ 4.855136] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=164, diff=1, hw=0 hw_last=0 [ 4.863294] hub 2-0:1.0: 1 port detected [ 4.871181] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=165, diff=1, hw=0 hw_last=0 [ 4.880155] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 4.888209] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=166, diff=1, hw=0 hw_last=0 [ 4.896385] ehci-platform: EHCI generic platform driver [ 4.904388] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=167, diff=1, hw=0 hw_last=0 [ 4.912786] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 4.920862] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=168, diff=1, hw=0 hw_last=0 [ 4.929059] ohci-platform: OHCI generic platform driver [ 4.937077] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=169, diff=1, hw=0 hw_last=0 [ 4.945560] usbcore: registered new interface driver usb-storage [ 4.953690] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=170, diff=1, hw=0 hw_last=0 [ 4.962081] usbcore: registered new interface driver cp210x [ 4.970248] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=171, diff=1, hw=0 hw_last=0 [ 4.978628] usbserial: USB Serial support registered for cp210x [ 4.986789] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=172, diff=1, hw=0 hw_last=0 [ 4.995155] usbcore: registered new interface driver ftdi_sio [ 5.003601] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=173, diff=1, hw=0 hw_last=0 [ 5.012539] usbserial: USB Serial support registered for FTDI USB Serial Device [ 5.021397] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=174, diff=1, hw=0 hw_last=0 [ 5.030639] usbcore: registered new interface driver pl2303 [ 5.039764] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=175, diff=1, hw=0 hw_last=0 [ 5.049254] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=176, diff=1, hw=0 hw_last=0 [ 5.058633] usbserial: USB Serial support registered for pl2303 [ 5.067861] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=177, diff=1, hw=0 hw_last=0 [ 5.077360] i2c /dev entries driver [ 5.086839] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=178, diff=1, hw=0 hw_last=0 [ 5.097672] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=179, diff=1, hw=0 hw_last=0 [ 5.109041] Synopsys Designware Multimedia Card Interface Driver [ 5.118892] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=180, diff=1, hw=0 hw_last=0 [ 5.130169] dwmmc_rockchip 10214000.dwmmc: Using external DMA controller. [ 5.135463] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=181, diff=1, hw=0 hw_last=0 [ 5.140918] dwmmc_rockchip 10214000.dwmmc: Version ID is 240a [ 5.146456] dwmmc_rockchip 10214000.dwmmc: DW MMC controller at irq 25,32 bit host data width,256 deep fifo [ 5.152113] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=182, diff=1, hw=0 hw_last=0 [ 5.158065] dwmmc_rockchip 10214000.dwmmc: Linked as a consumer to regulator.4 [ 5.170490] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=183, diff=1, hw=0 hw_last=0 [ 5.184475] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=184, diff=1, hw=0 hw_last=0 [ 5.195802] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=185, diff=1, hw=0 hw_last=0 [ 5.207138] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=186, diff=1, hw=0 hw_last=0 [ 5.218470] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=187, diff=1, hw=0 hw_last=0 [ 5.229799] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=188, diff=1, hw=0 hw_last=0 [ 5.241133] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=189, diff=1, hw=0 hw_last=0 [ 5.252466] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=190, diff=1, hw=0 hw_last=0 [ 5.263800] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=191, diff=1, hw=0 hw_last=0 [ 5.275133] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=192, diff=1, hw=0 hw_last=0 [ 5.284159] mmc_host mmc0: Bus speed (slot 0) = 49500000Hz (slot req 400000Hz, actual 399193HZ div = 62) [ 5.289200] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=193, diff=1, hw=0 hw_last=0 [ 5.297801] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=194, diff=1, hw=0 hw_last=0 [ 5.306568] dwmmc_rockchip 10218000.dwmmc: Using external DMA controller. [ 5.311462] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=195, diff=1, hw=0 hw_last=0 [ 5.316434] dwmmc_rockchip 10218000.dwmmc: Version ID is 240a [ 5.321282] dwmmc_rockchip 10218000.dwmmc: DW MMC controller at irq 26,32 bit host data width,256 deep fifo [ 5.326140] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=196, diff=1, hw=0 hw_last=0 [ 5.331049] dwmmc_rockchip 10218000.dwmmc: Linked as a consumer to regulator.5 [ 5.335912] mmc_host mmc1: card is non-removable. [ 5.340607] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=197, diff=1, hw=0 hw_last=0 [ 5.353239] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=198, diff=1, hw=0 hw_last=0 [ 5.367233] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=199, diff=1, hw=0 hw_last=0 [ 5.381194] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=200, diff=1, hw=0 hw_last=0 [ 5.395192] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=201, diff=1, hw=0 hw_last=0 [ 5.407327] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=202, diff=1, hw=0 hw_last=0 [ 5.418658] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=203, diff=1, hw=0 hw_last=0 [ 5.423473] usb 2-1: new high-speed USB device number 2 using dwc2 [ 5.429993] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=204, diff=1, hw=0 hw_last=0 [ 5.441324] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=205, diff=1, hw=0 hw_last=0 [ 5.452656] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=206, diff=1, hw=0 hw_last=0 [ 5.463661] random: fast init done [ 5.467405] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=207, diff=1, hw=0 hw_last=0 [ 5.475169] mmc_host mmc1: Bus speed (slot 0) = 6187500Hz (slot req 400000Hz, actual 386718HZ div = 8) [ 5.479038] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=208, diff=1, hw=0 hw_last=0 [ 5.484569] mmc_host mmc0: Bus speed (slot 0) = 49500000Hz (slot req 50000000Hz, actual 49500000HZ div = 0) [ 5.488443] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=209, diff=1, hw=0 hw_last=0 [ 5.492412] mmc0: new high speed SDHC card at address 0007 [ 5.496571] mmcblk0: mmc0:0007 SD8GB 7.42 GiB [ 5.500342] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=210, diff=1, hw=0 hw_last=0 [ 5.504914] usbcore: registered new interface driver usbhid [ 5.508842] usbhid: USB HID core driver [ 5.512797] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=211, diff=1, hw=0 hw_last=0 [ 5.518870] NET: Registered protocol family 10 [ 5.523210] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=212, diff=1, hw=0 hw_last=0 [ 5.528512] mmcblk0: p1 [ 5.528830] Segment Routing with IPv6 [ 5.538012] NET: Registered protocol family 17 [ 5.541823] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=213, diff=1, hw=0 hw_last=0 [ 5.542905] ThumbEE CPU extension supported. [ 5.552554] Registering SWP/SWPB emulation handler [ 5.553677] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) [ 5.562103] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=214, diff=1, hw=0 hw_last=0 [ 5.568396] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 5.573907] clk: Not disabling unused clocks [ 5.574212] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=215, diff=1, hw=0 hw_last=0 [ 5.578865] ALSA device list: [ 5.585000] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 5.588466] No soundcards found. [ 5.588488] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=216, diff=1, hw=0 hw_last=0 [ 5.604601] Freeing unused kernel memory: 2048K [ 5.606067] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) [ 5.627207] mmc_host mmc1: Bus speed (slot 0) = 6187500Hz (slot req 50000000Hz, actual 6187500HZ div = 0) [ 5.635109] mmc1: new SDIO card at address 0001 [ 5.643620] Run /init as init process [ 5.655066] >>> init from rkfs <<< [ 5.683742] usb 2-1: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.11 [ 5.689035] usb 2-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0 [ 5.694213] usb 2-1: Product: USB 2.0 Hub [ 5.699795] hub 2-1:1.0: USB hub found [ 5.705138] hub 2-1:1.0: 4 ports detected [ 5.719619] EXT4-fs (mmcblk0p1): warning: mounting fs with errors, running e2fsck is recommended [ 5.820732] EXT4-fs (mmcblk0p1): recovery complete [ 5.825863] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null) [ 6.026300] usb 2-1.1: new low-speed USB device number 3 using dwc2 [ 6.181888] usb 2-1.1: New USB device found, idVendor=413c, idProduct=2003, bcdDevice= 3.01 [ 6.201689] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 6.221052] usb 2-1.1: Product: Dell USB Keyboard [ 6.240277] usb 2-1.1: Manufacturer: Dell [ 6.266171] input: Dell Dell USB Keyboard as /devices/platform/101c0000.usb/usb2/2-1/2-1.1/2-1.1:1.0/0003:413C:2003.0001/input/input0 [ 6.334120] hid-generic 0003:413C:2003.0001: input: USB HID v1.10 Keyboard [Dell Dell USB Keyboard] on usb-101c0000.usb-1.1/input0 [ 6.446335] usb 2-1.2: new full-speed USB device number 4 using dwc2 [ 6.596152] usb 2-1.2: New USB device found, idVendor=0fe6, idProduct=9700, bcdDevice= 1.01 [ 6.615951] usb 2-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [ 6.635296] usb 2-1.2: Product: USB 2.0 10/100M Ethernet Adaptor [ 6.671202] dm9601 2-1.2:1.0 eth0: register 'dm9601' at usb-101c0000.usb-1.2, Davicom DM96xx USB 10/100 Ethernet, 00:e0:4c:53:44:58 [ 6.773469] usb 2-1.3: new full-speed USB device number 5 using dwc2 [ 6.884885] random: crng init done [ 6.906428] usb 2-1.3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00 [ 6.911458] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 6.916493] usb 2-1.3: Product: CP2102 USB to UART Bridge Controller [ 6.921494] usb 2-1.3: Manufacturer: Silicon Labs [ 6.926405] usb 2-1.3: SerialNumber: 0001 [ 6.932422] cp210x 2-1.3:1.0: cp210x converter detected [ 6.939763] usb 2-1.3: cp210x converter now attached to ttyUSB0 [ 9.689375] [drm:vblank_disable_fn] disabling vblank on crtc 0 [ 9.689392] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=217, diff=0, hw=0 hw_last=0 [ 9.695784] printk: console [ttyUSB0] enabled / #
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2018.11.28 18:56:19 =~=~=~=~=~=~=~=~=~=~=~= / # ./DRM-dumb-buffer [ 430.237367] [drm:drm_stub_open] [ 430.255295] [drm:drm_open] pid = 61, minor = 0 [ 430.259955] [drm:drm_open] [ 430.264784] [drm:drm_ioctl] pid=61, dev=0xe200, auth=1, DRM_IOCTL_SET_MASTER [ 430.269619] [drm:drm_ioctl] pid=61, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETRESOURCES [ 430.274341] [drm:drm_ioctl] pid=61, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETRESOURCES fb: 0, crtc: 1, conn: 1, enc: 1 [ 430.279433] [drm:drm_ioctl] pid=61, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETCONNECTOR [ 430.283965] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] [ 430.288482] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] status updated from connected to disconnected [ 430.293097] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] disconnected [ 430.297607] [drm:drm_mode_object_put] OBJ ID: 38 (1) [ 430.302080] [drm:drm_mode_object_put] OBJ ID: 33 (5) [ 430.306998] [drm:drm_sysfs_hotplug_event] generating hotplug event [ 430.311466] [drm:drm_ioctl] pid=61, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETCONNECTOR [ 430.315911] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] [ 430.320311] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] disconnected [ 430.324641] [drm:drm_mode_object_put] OBJ ID: 33 (5) Not connected [ 430.329054] [drm:drm_ioctl] pid=61, dev=0xe200, auth=1, DRM_IOCTL_DROP_MASTER [ 440.400668] [drm:drm_release] open_count = 1 [ 440.417372] [drm:drm_file_free] pid = 61, device = 0xe200, open_count = 1 [ 440.433970] [drm:drm_lastclose] [ 440.449874] [drm:drm_atomic_state_init] Allocated atomic state cf158fa8 [ 440.466151] [drm:drm_mode_object_get] OBJ ID: 36 (2) [ 440.482147] [drm:drm_atomic_get_plane_state] Added [PLANE:28:plane-0] d7aa5afc state to cf158fa8 [ 440.498314] [drm:drm_mode_object_get] OBJ ID: 35 (1) [ 440.513755] [drm:drm_atomic_get_crtc_state] Added [CRTC:30:crtc-0] fb81865f state to cf158fa8 [ 440.529706] [drm:drm_atomic_get_plane_state] Added [PLANE:29:plane-1] afee3753 state to cf158fa8 [ 440.545566] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:29:plane-1] state afee3753 [ 440.561525] [drm:drm_atomic_get_plane_state] Added [PLANE:31:plane-2] d2593213 state to cf158fa8 [ 440.577610] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:31:plane-2] state d2593213 [ 440.593768] [drm:drm_mode_object_put] OBJ ID: 35 (2) [ 440.609848] [drm:drm_atomic_set_mode_for_crtc] Set [MODE:1280x720] for [CRTC:30:crtc-0] state fb81865f [ 440.626675] [drm:drm_atomic_set_fb_for_plane] Set [FB:36] for [PLANE:28:plane-0] state d7aa5afc [ 440.643560] [drm:drm_mode_object_get] OBJ ID: 36 (3) [ 440.660188] [drm:drm_mode_object_put] OBJ ID: 36 (4) [ 440.676327] [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:30:crtc-0] to cf158fa8 [ 440.692952] [drm:drm_mode_object_get] OBJ ID: 33 (5) [ 440.709183] [drm:drm_mode_object_get] OBJ ID: 33 (6) [ 440.725221] [drm:drm_atomic_get_connector_state] Added [CONNECTOR:33:HDMI-A-1] 6386fdf3 state to cf158fa8 [ 440.741770] [drm:drm_mode_object_put] OBJ ID: 33 (6) [ 440.757751] [drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:33:HDMI-A-1] state 6386fdf3 to [NOCRTC] [ 440.774601] [drm:drm_mode_object_get] OBJ ID: 33 (5) [ 440.791431] [drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:33:HDMI-A-1] state 6386fdf3 to [CRTC:30:crtc-0] [ 440.809045] [drm:drm_atomic_check_only] checking cf158fa8 [ 440.826652] [drm:drm_atomic_helper_check_modeset] Updating routing for [CONNECTOR:33:HDMI-A-1] [ 440.844972] [drm:drm_atomic_helper_check_modeset] [CONNECTOR:33:HDMI-A-1] keeps [ENCODER:32:TMDS-32], now on [CRTC:30:crtc-0] [ 440.863958] [drm:drm_atomic_commit] committing cf158fa8 [ 440.882375] [drm:drm_calc_timestamping_constants] crtc 30: hwmode: htotal 1650, vtotal 750, vdisplay 720 [ 440.901358] [drm:drm_calc_timestamping_constants] crtc 30: clock 74250 kHz framedur 16666666 linedur 22222 [ 440.920420] rockchip-vop 1010c000.vop: [drm:vop_plane_atomic_update] Warning: not support src_alpha_ctl [ 440.939533] [drm:drm_vblank_enable] enabling vblank on crtc 0, ret: 0 [ 440.958901] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=217, diff=0, hw=0 hw_last=0 [ 441.034797] ------------[ cut here ]------------ [ 441.054739] WARNING: CPU: 0 PID: 61 at drivers/gpu/drm/drm_atomic_helper.c:1406 drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0 [ 441.060098] [CRTC:30:crtc-0] vblank wait timed out [ 441.065433] Modules linked in: [ 441.070700] CPU: 0 PID: 61 Comm: DRM-dumb-buffer Not tainted 4.20.0-rc1-g9eb245c5e #52 [ 441.075967] Hardware name: Rockchip (Device Tree) [ 441.081204] [<c01104a0>] (unwind_backtrace) from [<c010c868>] (show_stack+0x10/0x14) [ 441.086534] [<c010c868>] (show_stack) from [<c069e5d8>] (dump_stack+0x88/0x9c) [ 441.091876] [<c069e5d8>] (dump_stack) from [<c0122784>] (__warn+0xf8/0x110) [ 441.097199] [<c0122784>] (__warn) from [<c01227e4>] (warn_slowpath_fmt+0x48/0x6c) [ 441.102550] [<c01227e4>] (warn_slowpath_fmt) from [<c0445b04>] (drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0) [ 441.107991] [<c0445b04>] (drm_atomic_helper_wait_for_vblanks.part.1) from [<c0477fec>] (rockchip_atomic_helper_commit_tail_rpm+0x17c/0x194) [ 441.113542] [<c0477fec>] (rockchip_atomic_helper_commit_tail_rpm) from [<c0447418>] (commit_tail+0x40/0x6c) [ 441.119114] [<c0447418>] (commit_tail) from [<c0447508>] (drm_atomic_helper_commit+0xbc/0x128) [ 441.124709] [<c0447508>] (drm_atomic_helper_commit) from [<c0449b38>] (restore_fbdev_mode_atomic+0x1cc/0x1dc) [ 441.130356] [<c0449b38>] (restore_fbdev_mode_atomic) from [<c044d34c>] (drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xa0) [ 441.136084] [<c044d34c>] (drm_fb_helper_restore_fbdev_mode_unlocked) from [<c0451614>] (drm_lastclose+0x30/0xcc) [ 441.141854] [<c0451614>] (drm_lastclose) from [<c045177c>] (drm_release+0xcc/0xfc) [ 441.147598] [<c045177c>] (drm_release) from [<c024fe44>] (__fput+0x88/0x1c4) [ 441.153288] [<c024fe44>] (__fput) from [<c013fc98>] (task_work_run+0xa4/0xc8) [ 441.158956] [<c013fc98>] (task_work_run) from [<c0125c38>] (do_exit+0x348/0xa60) [ 441.164603] [<c0125c38>] (do_exit) from [<c0127218>] (do_group_exit+0x3c/0xd0) [ 441.170332] [<c0127218>] (do_group_exit) from [<c01272bc>] (__wake_up_parent+0x0/0x18) [ 441.176196] ---[ end trace c3cab8e623731921 ]--- [ 441.181949] [drm:drm_atomic_state_default_clear] Clearing atomic state cf158fa8 [ 441.187750] [drm:drm_mode_object_put] OBJ ID: 33 (6) [ 441.193527] [drm:drm_mode_object_put] OBJ ID: 33 (5) [ 441.199117] [drm:drm_mode_object_put] OBJ ID: 35 (1) [ 441.204595] [drm:drm_mode_object_put] OBJ ID: 36 (3) [ 441.209909] [drm:__drm_atomic_state_free] Freeing atomic state cf158fa8 [ 441.215472] [drm:drm_fb_helper_hotplug_event.part.9] [ 441.220655] [drm:drm_setup_crtcs] [ 441.225766] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] [ 441.230975] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:33:HDMI-A-1] disconnected [ 441.236080] [drm:drm_setup_crtcs] No connectors reported connected with modes [ 441.241066] [drm:drm_setup_crtcs] connector 33 enabled? no [ 441.246036] [drm:drm_setup_crtcs] picking CRTCs for 1280x720 config [ 441.251059] [drm:drm_mode_object_put] OBJ ID: 33 (4) [ 441.255880] [drm:drm_atomic_state_init] Allocated atomic state c39a433a [ 441.260611] [drm:drm_mode_object_get] OBJ ID: 36 (2) [ 441.265292] [drm:drm_atomic_get_plane_state] Added [PLANE:28:plane-0] a75a69ad state to c39a433a [ 441.269907] [drm:drm_mode_object_get] OBJ ID: 37 (1) [ 441.274382] [drm:drm_atomic_get_crtc_state] Added [CRTC:30:crtc-0] 4d69d25f state to c39a433a [ 441.278991] [drm:drm_atomic_get_plane_state] Added [PLANE:29:plane-1] 51b39695 state to c39a433a [ 441.283844] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:29:plane-1] state 51b39695 [ 441.288418] [drm:drm_atomic_get_plane_state] Added [PLANE:31:plane-2] 2459b2ba state to c39a433a [ 441.292993] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:31:plane-2] state 2459b2ba [ 441.297546] [drm:drm_mode_object_put] OBJ ID: 37 (2) [ 441.302073] [drm:drm_atomic_set_mode_for_crtc] Set [NOMODE] for [CRTC:30:crtc-0] state 4d69d25f [ 441.306699] [drm:drm_atomic_set_crtc_for_plane] Link [PLANE:28:plane-0] state a75a69ad to [NOCRTC] [ 441.311274] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for [PLANE:28:plane-0] state a75a69ad [ 441.315762] [drm:drm_mode_object_put] OBJ ID: 36 (3) [ 441.320079] [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:30:crtc-0] to c39a433a [ 441.324535] [drm:drm_mode_object_get] OBJ ID: 33 (4) [ 441.328905] [drm:drm_mode_object_get] OBJ ID: 33 (5) [ 441.333096] [drm:drm_atomic_get_connector_state] Added [CONNECTOR:33:HDMI-A-1] 124fc64d state to c39a433a [ 441.337337] [drm:drm_mode_object_put] OBJ ID: 33 (5) [ 441.341470] [drm:drm_atomic_set_crtc_for_connector] Link [CONNECTOR:33:HDMI-A-1] state 124fc64d to [NOCRTC] [ 441.345748] [drm:drm_atomic_check_only] checking c39a433a [ 441.349991] [drm:drm_atomic_helper_check_modeset] [CRTC:30:crtc-0] mode changed [ 441.354241] [drm:drm_atomic_helper_check_modeset] [CRTC:30:crtc-0] enable changed [ 441.358433] [drm:drm_atomic_helper_check_modeset] [CRTC:30:crtc-0] active changed [ 441.362539] [drm:drm_atomic_helper_check_modeset] Updating routing for [CONNECTOR:33:HDMI-A-1] [ 441.366627] [drm:drm_atomic_helper_check_modeset] Disabling [CONNECTOR:33:HDMI-A-1] [ 441.370649] [drm:drm_atomic_helper_check_modeset] [CRTC:30:crtc-0] needs all connectors, enable: n, active: n [ 441.374720] [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:30:crtc-0] to c39a433a [ 441.378921] [drm:drm_atomic_add_affected_planes] Adding all current planes for [CRTC:30:crtc-0] to c39a433a [ 441.383234] [drm:drm_atomic_commit] committing c39a433a [ 451.674799] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:30:crtc-0] flip_done timed out [ 461.913900] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:33:HDMI-A-1] flip_done timed out [ 472.154303] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:28:plane-0] flip_done timed out [ 472.172531] [drm:drm_atomic_helper_commit_modeset_disables] disabling [ENCODER:32:TMDS-32] [ 472.190350] rk3066hdmi-rockchip 10116000.hdmi: mode :16 [ 472.208821] rk3066hdmi-rockchip 10116000.hdmi: previous_mode:0 [ 472.226471] rk3066hdmi-rockchip 10116000.hdmi: 0: next_mode :16 [ 472.243955] rk3066hdmi-rockchip 10116000.hdmi: set HDMI_SYS_POWER_MODE_A-B-E [ 472.261494] [drm:drm_atomic_helper_commit_modeset_disables] disabling [CRTC:30:crtc-0] [ 472.279305] ------------[ cut here ]------------ [ 472.297033] WARNING: CPU: 0 PID: 61 at drivers/gpu/drm/rockchip/rockchip_drm_vop.c:594 vop_crtc_atomic_disable+0x2e4/0x30c [ 472.315624] Modules linked in: [ 472.333867] CPU: 0 PID: 61 Comm: DRM-dumb-buffer Tainted: G W 4.20.0-rc1-g9eb245c5e #52 [ 472.352496] Hardware name: Rockchip (Device Tree) [ 472.370803] [<c01104a0>] (unwind_backtrace) from [<c010c868>] (show_stack+0x10/0x14) [ 472.389406] [<c010c868>] (show_stack) from [<c069e5d8>] (dump_stack+0x88/0x9c) [ 472.407957] [<c069e5d8>] (dump_stack) from [<c0122784>] (__warn+0xf8/0x110) [ 472.426321] [<c0122784>] (__warn) from [<c01228b4>] (warn_slowpath_null+0x40/0x48) [ 472.444716] [<c01228b4>] (warn_slowpath_null) from [<c0479bf8>] (vop_crtc_atomic_disable+0x2e4/0x30c) [ 472.463295] [<c0479bf8>] (vop_crtc_atomic_disable) from [<c0447058>] (drm_atomic_helper_commit_modeset_disables+0x36c/0x444) [ 472.482190] [<c0447058>] (drm_atomic_helper_commit_modeset_disables) from [<c0477f20>] (rockchip_atomic_helper_commit_tail_rpm+0xb0/0x194) [ 472.501532] [<c0477f20>] (rockchip_atomic_helper_commit_tail_rpm) from [<c0447418>] (commit_tail+0x40/0x6c) [ 472.520996] [<c0447418>] (commit_tail) from [<c0447508>] (drm_atomic_helper_commit+0xbc/0x128) [ 472.540476] [<c0447508>] (drm_atomic_helper_commit) from [<c0449b38>] (restore_fbdev_mode_atomic+0x1cc/0x1dc) [ 472.560016] [<c0449b38>] (restore_fbdev_mode_atomic) from [<c044d34c>] (drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xa0) [ 472.579726] [<c044d34c>] (drm_fb_helper_restore_fbdev_mode_unlocked) from [<c044d3c8>] (drm_fb_helper_set_par+0x30/0x54) [ 472.600060] [<c044d3c8>] (drm_fb_helper_set_par) from [<c044d2b4>] (drm_fb_helper_hotplug_event.part.9+0x90/0xa8) [ 472.620365] [<c044d2b4>] (drm_fb_helper_hotplug_event.part.9) from [<c044d37c>] (drm_fb_helper_restore_fbdev_mode_unlocked+0x84/0xa0) [ 472.640895] [<c044d37c>] (drm_fb_helper_restore_fbdev_mode_unlocked) from [<c0451614>] (drm_lastclose+0x30/0xcc) [ 472.661338] [<c0451614>] (drm_lastclose) from [<c045177c>] (drm_release+0xcc/0xfc) [ 472.681648] [<c045177c>] (drm_release) from [<c024fe44>] (__fput+0x88/0x1c4) [ 472.701942] [<c024fe44>] (__fput) from [<c013fc98>] (task_work_run+0xa4/0xc8) [ 472.722529] [<c013fc98>] (task_work_run) from [<c0125c38>] (do_exit+0x348/0xa60) [ 472.743507] [<c0125c38>] (do_exit) from [<c0127218>] (do_group_exit+0x3c/0xd0) [ 472.764508] [<c0127218>] (do_group_exit) from [<c01272bc>] (__wake_up_parent+0x0/0x18) [ 472.785768] ---[ end trace c3cab8e623731922 ]--- [ 472.806923] [drm:drm_crtc_vblank_off] crtc 0, vblank enabled 1, inmodeset 0 [ 472.828010] [drm:drm_update_vblank_count] updating vblank count on crtc 0: current=217, diff=0, hw=0 hw_last=0
From d223ef33f192a14809182e1413da5b93881b4434 Mon Sep 17 00:00:00 2001 From: Johan Jonker <jbx9999@xxxxxxxxxxx> Date: Sat, 24 Nov 2018 21:10:45 +0100 Subject: [PATCH] revert rockchip_atomic_wait_for_complete This patch reverts the rockchip_atomic_wait_for_complete function. The rk3066 doesn't support a vblank counter. The drm helper for wait for vblank gives a timeout crash in combination with the rk3066 and is not reliable. Signed-off-by: Johan Jonker <jbx9999@xxxxxxxxxxx> --- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 19 ++++++ drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 8 +++ drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 101 +++++++++++++++++++++++++++- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 19 ++++++ 4 files changed, 146 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 4a69e7a4e..d53e3fc81 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -78,6 +78,25 @@ void rockchip_drm_dma_detach_device(struct drm_device *drm_dev, iommu_detach_device(domain, dev); } +int rockchip_register_crtc_funcs(struct drm_crtc *crtc, + const struct rockchip_crtc_funcs *crtc_funcs) +{ + int pipe = drm_crtc_index(crtc); + struct rockchip_drm_private *priv = crtc->dev->dev_private; + if (pipe >= ROCKCHIP_MAX_CRTC) + return -EINVAL; + priv->crtc_funcs[pipe] = crtc_funcs; + return 0; +} +void rockchip_unregister_crtc_funcs(struct drm_crtc *crtc) +{ + int pipe = drm_crtc_index(crtc); + struct rockchip_drm_private *priv = crtc->dev->dev_private; + if (pipe >= ROCKCHIP_MAX_CRTC) + return; + priv->crtc_funcs[pipe] = NULL; +} + static int rockchip_drm_init_iommu(struct drm_device *drm_dev) { struct rockchip_drm_private *private = drm_dev->dev_private; diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.h b/drivers/gpu/drm/rockchip/rockchip_drm_drv.h index d03890314..3f7306325 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.h @@ -32,6 +32,10 @@ struct drm_device; struct drm_connector; struct iommu_domain; +struct rockchip_crtc_funcs { + void (*wait_for_update)(struct drm_crtc *crtc); +}; + struct rockchip_crtc_state { struct drm_crtc_state base; int output_type; @@ -51,6 +55,7 @@ struct rockchip_crtc_state { struct rockchip_drm_private { struct drm_fb_helper fbdev_helper; struct drm_gem_object *fbdev_bo; + const struct rockchip_crtc_funcs *crtc_funcs[ROCKCHIP_MAX_CRTC]; struct iommu_domain *domain; struct mutex mm_lock; struct drm_mm mm; @@ -58,6 +63,9 @@ struct rockchip_drm_private { struct mutex psr_list_lock; }; +int rockchip_register_crtc_funcs(struct drm_crtc *crtc, + const struct rockchip_crtc_funcs *crtc_funcs); +void rockchip_unregister_crtc_funcs(struct drm_crtc *crtc); int rockchip_drm_dma_attach_device(struct drm_device *drm_dev, struct device *dev); void rockchip_drm_dma_detach_device(struct drm_device *drm_dev, diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c index ea18cb2a7..69a2b50af 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c @@ -162,6 +162,105 @@ rockchip_drm_psr_inhibit_put_state(struct drm_atomic_state *state) drm_for_each_encoder_mask(encoder, state->dev, encoder_mask) rockchip_drm_psr_inhibit_put(encoder); } + +static void rockchip_crtc_wait_for_update(struct drm_crtc *crtc) +{ + struct rockchip_drm_private *priv = crtc->dev->dev_private; + int pipe = drm_crtc_index(crtc); + const struct rockchip_crtc_funcs *crtc_funcs = priv->crtc_funcs[pipe]; + + if (crtc_funcs && crtc_funcs->wait_for_update) + crtc_funcs->wait_for_update(crtc); +} + +/* + * We can't use drm_atomic_helper_wait_for_vblanks() because rk3288 and rk3066 + * have hardware counters for neither vblanks nor scanlines, which results in + * a race where: + * | <-- HW vsync irq and reg take effect + * plane_commit --> | + * get_vblank and wait --> | + * | <-- handle_vblank, vblank->count + 1 + * cleanup_fb --> | + * iommu crash --> | + * | <-- HW vsync irq and reg take effect + * + * This function is equivalent but uses rockchip_crtc_wait_for_update() instead + * of waiting for vblank_count to change. + */ + +#define for_each_crtc_in_state(__state, crtc, crtc_state, __i) \ + for ((__i) = 0; \ + (__i) < (__state)->dev->mode_config.num_crtc && \ + ((crtc) = (__state)->crtcs[__i].ptr, \ + (crtc_state) = (__state)->crtcs[__i].state, 1); \ + (__i)++) \ + for_each_if (crtc_state) + +#define for_each_plane_in_state(__state, plane, plane_state, __i) \ + for ((__i) = 0; \ + (__i) < (__state)->dev->mode_config.num_total_plane && \ + ((plane) = (__state)->planes[__i].ptr, \ + (plane_state) = (__state)->planes[__i].state, 1); \ + (__i)++) \ + for_each_if (plane_state) + +bool drm_atomic_helper_framebuffer_changed(struct drm_device *dev, + struct drm_atomic_state *old_state, + struct drm_crtc *crtc) +{ + struct drm_plane *plane; + struct drm_plane_state *old_plane_state; + int i; + + for_each_plane_in_state(old_state, plane, old_plane_state, i) { + if (plane->state->crtc != crtc && + old_plane_state->crtc != crtc) + continue; + + if (plane->state->fb != old_plane_state->fb) + return true; + } + + return false; +} + +static void +rockchip_atomic_wait_for_complete(struct drm_device *dev, struct drm_atomic_state *old_state) +{ + struct drm_crtc_state *old_crtc_state; + struct drm_crtc *crtc; + int i, ret; + + for_each_crtc_in_state(old_state, crtc, old_crtc_state, i) { + /* No one cares about the old state, so abuse it for tracking + * and store whether we hold a vblank reference (and should do a + * vblank wait) in the ->enable boolean. + */ + old_crtc_state->enable = false; + + if (!crtc->state->active) + continue; + + if (!drm_atomic_helper_framebuffer_changed(dev, + old_state, crtc)) + continue; + + ret = drm_crtc_vblank_get(crtc); + if (ret != 0) + continue; + + old_crtc_state->enable = true; + } + + for_each_crtc_in_state(old_state, crtc, old_crtc_state, i) { + if (!old_crtc_state->enable) + continue; + + rockchip_crtc_wait_for_update(crtc); + drm_crtc_vblank_put(crtc); + } +} static void rockchip_atomic_helper_commit_tail_rpm(struct drm_atomic_state *old_state) @@ -181,7 +280,7 @@ rockchip_atomic_helper_commit_tail_rpm(struct drm_atomic_state *old_state) drm_atomic_helper_commit_hw_done(old_state); - drm_atomic_helper_wait_for_vblanks(dev, old_state); + rockchip_atomic_wait_for_complete(dev, old_state); drm_atomic_helper_cleanup_planes(dev, old_state); } diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 0c35a88e3..76bec1bc6 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -102,6 +102,7 @@ struct vop { bool is_enabled; struct completion dsp_hold_completion; + struct completion wait_update_complete; /* protected by dev->event_lock */ struct drm_pending_vblank_event *event; @@ -866,6 +867,18 @@ static void vop_crtc_disable_vblank(struct drm_crtc *crtc) spin_unlock_irqrestore(&vop->irq_lock, flags); } + +static void vop_crtc_wait_for_update(struct drm_crtc *crtc) +{ + struct vop *vop = to_vop(crtc); + + reinit_completion(&vop->wait_update_complete); + WARN_ON(!wait_for_completion_timeout(&vop->wait_update_complete, 100)); +} + +static const struct rockchip_crtc_funcs private_crtc_funcs = { + .wait_for_update = vop_crtc_wait_for_update, +}; static bool vop_crtc_mode_fixup(struct drm_crtc *crtc, const struct drm_display_mode *mode, @@ -1198,6 +1211,9 @@ static void vop_handle_vblank(struct vop *vop) } spin_unlock(&drm->event_lock); + if (!completion_done(&vop->wait_update_complete)) + complete(&vop->wait_update_complete); + if (test_and_clear_bit(VOP_PENDING_FB_UNREF, &vop->pending)) drm_flip_work_commit(&vop->fb_unref_work, system_unbound_wq); } @@ -1357,8 +1373,10 @@ static int vop_create_crtc(struct vop *vop) vop_fb_unref_worker); init_completion(&vop->dsp_hold_completion); + init_completion(&vop->wait_update_complete); init_completion(&vop->line_flag_completion); crtc->port = port; + rockchip_register_crtc_funcs(crtc, &private_crtc_funcs); return 0; @@ -1377,6 +1395,7 @@ static void vop_destroy_crtc(struct vop *vop) struct drm_device *drm_dev = vop->drm_dev; struct drm_plane *plane, *tmp; + rockchip_unregister_crtc_funcs(crtc); of_node_put(crtc->port); /* -- 2.11.0
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel