Re: [BUG] drm_rockchip: rk3066_hdmi: No driver support for vblank timestamp query.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux