[PATCH] drm/tilcdc: Use standard drm_atomic_helper_commit

Jyri Sarha jsarha at ti.com
Wed Jul 8 10:21:15 UTC 2020


On 08/07/2020 12:44, Daniel Vetter wrote:
> Gives us proper nonblocking support for free, and a pile of other
> things. The tilcdc code is simply old enough that it was never
> converted over, but was stuck forever with the copypasta from when it
> was initially merged.
> 
> The riskiest thing with this conversion is maybe that there's an issue
> with the vblank handling or vblank event handling, which will upset
> the modern commit support in atomic helpers. But from a cursory review
> drm_crtc_vblank_on/off is called in the right places, and the event
> handling also seems to exist (albeit with much hand-rolling and
> probably some races, could perhaps be converted over to
> drm_crtc_arm_vblank_event without any real loss).
> 
> Motivated by me not having to hand-roll the dma-fence annotations for
> this.
> 
> v2: Clear out crtc_state->event when we're handling the event, to
> avoid upsetting the helpers (reported by Jyri).
> 

Reverted the old and applied this new. It works a bit better as the
fbconsole comes up without any warnings, but after that it is almost as
bad. The kmstest is able to make the commit but it does not finish and
nothing comes visible on the screen until couple of "flip_done timed outs".

A new kernel log is attached.

Best regards,
Jyri

> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
> Cc: Jyri Sarha <jsarha at ti.com>
> Cc: Tomi Valkeinen <tomi.valkeinen at ti.com>
> --
> I'm not really sure whether the event handling is correct for when a
> crtc gets disabled. dpms off or similar would be a good test, assuming
> this patch here fixes the first issue.
> -Daniel
> ---
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c   | 47 +--------------------------
>  drivers/gpu/drm/tilcdc/tilcdc_plane.c |  8 +++--
>  2 files changed, 6 insertions(+), 49 deletions(-)
> 
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> index 0d74a6443263..4f5fc3e87383 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> @@ -87,55 +87,10 @@ static int tilcdc_atomic_check(struct drm_device *dev,
>  	return ret;
>  }
>  
> -static int tilcdc_commit(struct drm_device *dev,
> -		  struct drm_atomic_state *state,
> -		  bool async)
> -{
> -	int ret;
> -
> -	ret = drm_atomic_helper_prepare_planes(dev, state);
> -	if (ret)
> -		return ret;
> -
> -	ret = drm_atomic_helper_swap_state(state, true);
> -	if (ret) {
> -		drm_atomic_helper_cleanup_planes(dev, state);
> -		return ret;
> -	}
> -
> -	/*
> -	 * Everything below can be run asynchronously without the need to grab
> -	 * any modeset locks at all under one condition: It must be guaranteed
> -	 * that the asynchronous work has either been cancelled (if the driver
> -	 * supports it, which at least requires that the framebuffers get
> -	 * cleaned up with drm_atomic_helper_cleanup_planes()) or completed
> -	 * before the new state gets committed on the software side with
> -	 * drm_atomic_helper_swap_state().
> -	 *
> -	 * This scheme allows new atomic state updates to be prepared and
> -	 * checked in parallel to the asynchronous completion of the previous
> -	 * update. Which is important since compositors need to figure out the
> -	 * composition of the next frame right after having submitted the
> -	 * current layout.
> -	 */
> -
> -	drm_atomic_helper_commit_modeset_disables(dev, state);
> -
> -	drm_atomic_helper_commit_planes(dev, state, 0);
> -
> -	drm_atomic_helper_commit_modeset_enables(dev, state);
> -
> -	drm_atomic_helper_wait_for_vblanks(dev, state);
> -
> -	drm_atomic_helper_cleanup_planes(dev, state);
> -
> -	return 0;
> -}
> -
>  static const struct drm_mode_config_funcs mode_config_funcs = {
>  	.fb_create = drm_gem_fb_create,
>  	.atomic_check = tilcdc_atomic_check,
> -	.atomic_commit = tilcdc_commit,
> +	.atomic_commit = drm_atomic_helper_commit,
>  };
>  
>  static void modeset_init(struct drm_device *dev)
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_plane.c b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> index 0d09b31ae759..2f681a713815 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_plane.c
> @@ -83,9 +83,11 @@ static void tilcdc_plane_atomic_update(struct drm_plane *plane,
>  	if (WARN_ON(!state->fb || !state->crtc->state))
>  		return;
>  
> -	tilcdc_crtc_update_fb(state->crtc,
> -			      state->fb,
> -			      state->crtc->state->event);
> +	if (tilcdc_crtc_update_fb(state->crtc,
> +				  state->fb,
> +				  state->crtc->state->event) == 0) {
> +		state->crtc->state->event = NULL;
> +	}
>  }
>  
>  static const struct drm_plane_helper_funcs plane_helper_funcs = {
> 


-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
-------------- next part --------------
Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.8.0-rc2-00070-g50cc2c6a0b0e (oku at jadmar) (arm-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0, GNU ld (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 2.32.0.20190321) #20 SMP Wed Jul 8 13:17:18 EEST 2020
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: TI AM335x BeagleBone Black
[    0.000000] Memory policy: Data cache writeback
[    0.000000] cma: Reserved 64 MiB at 0x9b800000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x000000009fdfffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000009fdfffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000009fdfffff]
[    0.000000] On node 0 totalpages: 130560
[    0.000000]   Normal zone: 1148 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 130560 pages, LIFO batch:31
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.0 (sgx neon)
[    0.000000] percpu: Embedded 19 pages/cpu s49036 r8192 d20596 u77824
[    0.000000] pcpu-alloc: s49036 r8192 d20596 u77824 alloc=19*4096
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129412
[    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/nfs rw nfsroot=10.1.1.15:/nfs/jessie-armhf,v3,tcp rootwait ip=10.1.1.24:10.1.1.15:10.1.1.1:255.255.255.0:epos::off init=/sbin/init debug loglevel=8 video=HDMI-A-1:1280x720 cma=64M
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 436884K/522240K available (9216K kernel code, 797K rwdata, 2152K rodata, 1024K init, 255K bss, 19820K reserved, 65536K cma-reserved, 0K highmem)
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] IRQ: Found an INTC at 0x(ptrval) (revision 5.0) with 128 interrupts
[    0.000000] random: get_random_bytes called from start_kernel+0x2f0/0x530 with crng_init=0
[    0.000000] TI gptimer clocksource: always-on /ocp/interconnect at 44c00000/segment at 200000/target-module at 31000
[    0.000010] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000027] clocksource: dmtimer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000420] TI gptimer clockevent: 24000000 Hz at /ocp/interconnect at 48000000/segment at 0/target-module at 40000
[    0.001823] Console: colour dummy device 80x30
[    0.001852] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[    0.001859] This ensures that you still see kernel messages. Please
[    0.001865] update your kernel commandline.
[    0.001901] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
[    0.090502] pid_max: default: 32768 minimum: 301
[    0.090675] LSM: Security Framework initializing
[    0.090786] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.090800] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.091906] CPU: Testing write buffer coherency: ok
[    0.091974] CPU0: Spectre v2: using BPIALL workaround
[    0.092330] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[    0.093130] Setting up static identity map for 0x80100000 - 0x80100078
[    0.093323] rcu: Hierarchical SRCU implementation.
[    0.093743] smp: Bringing up secondary CPUs ...
[    0.093759] smp: Brought up 1 node, 1 CPU
[    0.093768] SMP: Total of 1 processors activated (996.14 BogoMIPS).
[    0.093776] CPU: All CPU(s) started in SVC mode.
[    0.094436] devtmpfs: initialized
[    0.106457] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.106768] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.106795] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.111545] pinctrl core: initialized pinctrl subsystem
[    0.112390] thermal_sys: Registered thermal governor 'fair_share'
[    0.112398] thermal_sys: Registered thermal governor 'step_wise'
[    0.112411] thermal_sys: Registered thermal governor 'user_space'
[    0.113578] NET: Registered protocol family 16
[    0.116325] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.136523] l3-aon-clkctrl:0000:0: failed to disable
[    0.137513] audit: initializing netlink subsys (disabled)
[    0.138671] cpuidle: using governor menu
[    0.769433] audit: type=2000 audit(0.130:1): state=initialized audit_enabled=0 res=1
[    0.844501] No ATAGs?
[    0.844522] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.864239] reg-fixed-voltage fixedregulator0: GPIO lookup for consumer (null)
[    0.864261] reg-fixed-voltage fixedregulator0: using device tree for GPIO lookup
[    0.864298] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/fixedregulator0[0]'
[    0.864316] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator0[0]'
[    0.864329] reg-fixed-voltage fixedregulator0: using lookup tables for GPIO lookup
[    0.864341] reg-fixed-voltage fixedregulator0: No GPIO consumer (null) found
[    0.867069] iommu: Default domain type: Translated 
[    0.868804] vgaarb: loaded
[    0.869390] SCSI subsystem initialized
[    0.869749] libata version 3.00 loaded.
[    0.870281] pps_core: LinuxPPS API ver. 1 registered
[    0.870293] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti at linux.it>
[    0.870318] PTP clock support registered
[    0.871650] clocksource: Switched to clocksource dmtimer
[    1.487105] VFS: Disk quotas dquot_6.6.0
[    1.487223] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.497327] NET: Registered protocol family 2
[    1.498166] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    1.498201] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    1.498243] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    1.498302] TCP: Hash tables configured (established 4096 bind 4096)
[    1.498420] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    1.498444] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    1.498612] NET: Registered protocol family 1
[    1.499449] RPC: Registered named UNIX socket transport module.
[    1.499466] RPC: Registered udp transport module.
[    1.499473] RPC: Registered tcp transport module.
[    1.499480] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.499495] PCI: CLS 0 bytes, default 64
[    1.501040] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    1.502840] Initialise system trusted keyrings
[    1.503295] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    1.504581] NFS: Registering the id_resolver key type
[    1.504625] Key type id_resolver registered
[    1.504633] Key type id_legacy registered
[    1.504677] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    1.505026] Key type asymmetric registered
[    1.505039] Asymmetric key parser 'x509' registered
[    1.505058] io scheduler mq-deadline registered
[    1.505067] io scheduler kyber registered
[    1.587408] gpio gpiochip0: (gpio-0-31): added GPIO chardev (254:0)
[    1.587518] gpio gpiochip0: registered GPIOs 0 to 31 on gpio-0-31
[    1.587592] OMAP GPIO hardware version 0.1
[    1.732349] gpio gpiochip1: (gpio-32-63): added GPIO chardev (254:1)
[    1.732477] gpio gpiochip1: registered GPIOs 32 to 63 on gpio-32-63
[    1.767986] gpio gpiochip2: (gpio-64-95): added GPIO chardev (254:2)
[    1.768107] gpio gpiochip2: registered GPIOs 64 to 95 on gpio-64-95
[    1.775630] gpio gpiochip3: (gpio-96-127): added GPIO chardev (254:3)
[    1.775738] gpio gpiochip3: registered GPIOs 96 to 127 on gpio-96-127
[    1.814480] debugfs: Directory '49000000.dma' with parent 'dmaengine' already present!
[    1.814518] edma 49000000.dma: TI EDMA DMA engine driver
[    1.826940] pinctrl-single 44e10800.pinmux: 142 pins, size 568
[    1.829566] gpio-clk clk_mcasp0: GPIO lookup for consumer enable
[    1.829585] gpio-clk clk_mcasp0: using device tree for GPIO lookup
[    1.829633] of_get_named_gpiod_flags: parsed 'enable-gpios' property of node '/clk_mcasp0[0]' - status (0)
[    1.829711] gpio gpiochip1: Persistence not supported for GPIO 27
[    1.833561] Serial: 8250/16550 driver, 6 ports, IRQ sharing enabled
[    1.837186] omap8250 44e09000.serial: GPIO lookup for consumer rs485-term
[    1.837206] omap8250 44e09000.serial: using device tree for GPIO lookup
[    1.837252] of_get_named_gpiod_flags: can't parse 'rs485-term-gpios' property of node '/ocp/interconnect at 44c00000/segment at 200000/target-module at 9000/serial at 0[0]'
[    1.837279] of_get_named_gpiod_flags: can't parse 'rs485-term-gpio' property of node '/ocp/interconnect at 44c00000/segment at 200000/target-module at 9000/serial at 0[0]'
[    1.837295] omap8250 44e09000.serial: using lookup tables for GPIO lookup
[    1.837306] omap8250 44e09000.serial: No GPIO consumer rs485-term found
[    1.837358] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 20, base_baud = 3000000) is a 8250
[    2.472723] random: fast init done
[    2.725759] printk: console [ttyS0] enabled
[    2.743004] brd: module loaded
[    2.754996] loop: module loaded
[    2.760231] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.769296] mdio_bus fixed-0: GPIO lookup for consumer reset
[    2.775079] mdio_bus fixed-0: using lookup tables for GPIO lookup
[    2.781203] mdio_bus fixed-0: No GPIO consumer reset found
[    2.786769] libphy: Fixed MDIO Bus: probed
[    2.794838] mdio_bus 4a101000.mdio: GPIO lookup for consumer reset
[    2.801060] mdio_bus 4a101000.mdio: using device tree for GPIO lookup
[    2.807663] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/interconnect at 4a000000/segment at 0/target-module at 100000/ethernet at 0/mdio at 1000[0]'
[    2.822463] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/interconnect at 4a000000/segment at 0/target-module at 100000/ethernet at 0/mdio at 1000[0]'
[    2.837155] mdio_bus 4a101000.mdio: using lookup tables for GPIO lookup
[    2.843818] mdio_bus 4a101000.mdio: No GPIO consumer reset found
[    2.901643] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    2.909345] libphy: 4a101000.mdio: probed
[    2.914617] mdio_bus 4a101000.mdio:00: GPIO lookup for consumer reset
[    2.921098] mdio_bus 4a101000.mdio:00: using device tree for GPIO lookup
[    2.927951] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/interconnect at 4a000000/segment at 0/target-module at 100000/ethernet at 0/mdio at 1000/ethernet-phy at 0[0]'
[    2.944078] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/interconnect at 4a000000/segment at 0/target-module at 100000/ethernet at 0/mdio at 1000/ethernet-phy at 0[0]'
[    2.960081] mdio_bus 4a101000.mdio:00: using lookup tables for GPIO lookup
[    2.967006] mdio_bus 4a101000.mdio:00: No GPIO consumer reset found
[    2.973958] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[    2.983346] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[    2.989731] cpsw 4a100000.ethernet: ALE Table size 1024
[    2.995166] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[    3.002500] cpsw 4a100000.ethernet: Detected MACID = 00:1e:ac:3f:09:fb
[    3.011057] i2c /dev entries driver
[    3.016511] cpuidle: enable-method property 'ti,am3352' found operations
[    3.024200] sdhci: Secure Digital Host Controller Interface driver
[    3.030412] sdhci: Copyright(c) Pierre Ossman
[    3.035872] omap_hsmmc 48060000.mmc: GPIO lookup for consumer cd
[    3.041988] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[    3.048591] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp/interconnect at 48000000/segment at 0/target-module at 60000/mmc at 0[0]' - status (0)
[    3.062466] gpio gpiochip0: Persistence not supported for GPIO 6
[    3.068509] omap_gpio 44e07000.gpio: Could not set line 6 debounce to 200000 microseconds (-22)
[    3.077268] omap_hsmmc 48060000.mmc: Got CD GPIO
[    3.081925] omap_hsmmc 48060000.mmc: GPIO lookup for consumer wp
[    3.087956] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[    3.094588] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/interconnect at 48000000/segment at 0/target-module at 60000/mmc at 0[0]'
[    3.107725] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/interconnect at 48000000/segment at 0/target-module at 60000/mmc at 0[0]'
[    3.120757] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup
[    3.127515] omap_hsmmc 48060000.mmc: No GPIO consumer wp found
[    3.160624] omap_hsmmc 481d8000.mmc: GPIO lookup for consumer cd
[    3.166788] omap_hsmmc 481d8000.mmc: using device tree for GPIO lookup
[    3.173417] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at d8000/mmc at 0[0]'
[    3.186992] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at d8000/mmc at 0[0]'
[    3.200464] omap_hsmmc 481d8000.mmc: using lookup tables for GPIO lookup
[    3.207216] omap_hsmmc 481d8000.mmc: No GPIO consumer cd found
[    3.213095] omap_hsmmc 481d8000.mmc: GPIO lookup for consumer wp
[    3.219125] omap_hsmmc 481d8000.mmc: using device tree for GPIO lookup
[    3.225712] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at d8000/mmc at 0[0]'
[    3.239280] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at d8000/mmc at 0[0]'
[    3.252746] omap_hsmmc 481d8000.mmc: using lookup tables for GPIO lookup
[    3.259476] omap_hsmmc 481d8000.mmc: No GPIO consumer wp found
[    3.290521] omap_hsmmc 47810000.mmc: GPIO lookup for consumer cd
[    3.296622] omap_hsmmc 47810000.mmc: using device tree for GPIO lookup
[    3.303228] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/ocp/target-module at 47810000/mmc at 0[0]'
[    3.313830] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/ocp/target-module at 47810000/mmc at 0[0]'
[    3.324334] omap_hsmmc 47810000.mmc: using lookup tables for GPIO lookup
[    3.331067] omap_hsmmc 47810000.mmc: No GPIO consumer cd found
[    3.336944] omap_hsmmc 47810000.mmc: GPIO lookup for consumer wp
[    3.342994] omap_hsmmc 47810000.mmc: using device tree for GPIO lookup
[    3.349562] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/target-module at 47810000/mmc at 0[0]'
[    3.360157] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/target-module at 47810000/mmc at 0[0]'
[    3.370658] omap_hsmmc 47810000.mmc: using lookup tables for GPIO lookup
[    3.377405] omap_hsmmc 47810000.mmc: No GPIO consumer wp found
[    3.383581] omap_hsmmc 47810000.mmc: RX DMA channel request failed
[    3.390584] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.397260] ledtrig-cpu: registered to indicate activity on CPUs
[    3.405370] drop_monitor: Initializing network drop monitor service
[    3.412058] Initializing XFRM netlink socket
[    3.416556] NET: Registered protocol family 10
[    3.422715] Segment Routing with IPv6
[    3.426510] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    3.433291] NET: Registered protocol family 17
[    3.437783] NET: Registered protocol family 15
[    3.442417] Key type dns_resolver registered
[    3.447304] oprofile: using arm/armv7
[    3.451162] ThumbEE CPU extension supported.
[    3.455546] Registering SWP/SWPB emulation handler
[    3.460761] omap_voltage_late_init: Voltage driver support not added
[    3.467213] sr_dev_init: Unknown instance smartreflex0
[    3.472672] SmartReflex Class3 initialized
[    3.477483] Loading compiled-in X.509 certificates
[    3.502610] mmc0: host does not support reading read-only switch, assuming write-enable
[    3.512792] mmc0: new high speed SDHC card at address 1234
[    3.519233] mmcblk0: mmc0:1234 SA08G 7.29 GiB 
[    3.526937]  mmcblk0: p1 p2
[    3.543779] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[    3.549605] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    3.557567] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[    3.567060] cpsw 4a100000.ethernet: initializing cpsw version 1.12 (0)
[    3.589478] mmc1: new high speed MMC card at address 0001
[    3.596065] mmcblk1: mmc1:0001 MMC02G 1.79 GiB 
[    3.600933] mmcblk1boot0: mmc1:0001 MMC02G partition 1 1.00 MiB
[    3.607278] mmcblk1boot1: mmc1:0001 MMC02G partition 2 1.00 MiB
[    3.613620] mmcblk1rpmb: mmc1:0001 MMC02G partition 3 128 KiB, chardev (249:0)
[    3.652573] SMSC LAN8710/LAN8720 4a101000.mdio:00: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=4a101000.mdio:00, irq=POLL)
[    5.762358] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
[    5.791677] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    5.821747] IP-Config: Complete:
[    5.825009]      device=eth0, hwaddr=00:1e:ac:3f:09:fb, ipaddr=10.1.1.24, mask=255.255.255.0, gw=10.1.1.1
[    5.834657]      host=epos, domain=, nis-domain=(none)
[    5.839818]      bootserver=10.1.1.15, rootserver=10.1.1.15, rootpath=
[    5.857799] VFS: Mounted root (nfs filesystem) on device 0:16.
[    5.864719] devtmpfs: mounted
[    5.869052] Freeing unused kernel memory: 1024K
[    5.892117] Run /sbin/init as init process
[    5.896235]   with arguments:
[    5.899210]     /sbin/init
[    5.901971]   with environment:
[    5.905122]     HOME=/
[    5.907486]     TERM=linux
Mount failed for selinuxfs on /sys/fs/selinux:  No such file or directory
INIT: version 2.88 booting
[info] Using makefile-style concurrent boot in runlevel S.
calling: info
[....] Starting the hotplug events dispatcher: udevd[    7.408169] systemd-udevd[178]: starting version 215
[    7.505265] random: udevd: uninitialized urandom read (16 bytes read)
[    7.533656] random: udevd: uninitialized urandom read (16 bytes read)
. ok 
[....] Synthesizing the initial hotplug events...calling: trigger
[    8.203650] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led2[0]' - status (0)
[    8.212861] gpio gpiochip1: Persistence not supported for GPIO 21
[    8.218982] gpio-53 (?): no flags found for gpios
[    8.223985] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led3[0]' - status (0)
[    8.233040] gpio gpiochip1: Persistence not supported for GPIO 22
[    8.239157] gpio-54 (?): no flags found for gpios
[    8.244067] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led4[0]' - status (0)
[    8.253104] gpio gpiochip1: Persistence not supported for GPIO 23
[    8.259220] gpio-55 (?): no flags found for gpios
[    8.264105] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led5[0]' - status (0)
[    8.273137] gpio gpiochip1: Persistence not supported for GPIO 24
[    8.279254] gpio-56 (?): no flags found for gpios
[    8.417900] remoteproc remoteproc0: wkup_m3 is available
[    8.750103] am335x-phy-driver 47401300.usb-phy: GPIO lookup for consumer reset
[    8.757585] am335x-phy-driver 47401300.usb-phy: using device tree for GPIO lookup
[    8.765179] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/target-module at 47400000/usb-phy at 1300[0]'
[    8.776658] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/target-module at 47400000/usb-phy at 1300[0]'
[    8.788038] am335x-phy-driver 47401300.usb-phy: using lookup tables for GPIO lookup
[    8.795749] am335x-phy-driver 47401300.usb-phy: No GPIO consumer reset found
[    8.802848] am335x-phy-driver 47401300.usb-phy: GPIO lookup for consumer vbus-detect
[    8.810623] am335x-phy-driver 47401300.usb-phy: using device tree for GPIO lookup
[    8.818169] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/ocp/target-module at 47400000/usb-phy at 1300[0]'
[    8.830161] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/ocp/target-module at 47400000/usb-phy at 1300[0]'
[    8.842058] am335x-phy-driver 47401300.usb-phy: using lookup tables for GPIO lookup
[    8.849748] am335x-phy-driver 47401300.usb-phy: No GPIO consumer vbus-detect found
[    8.857485] am335x-phy-driver 47401300.usb-phy: supply vcc not found, using dummy regulator
[    8.978163] usbcore: registered new interface driver usbfs
[    8.983905] usbcore: registered new interface driver hub
[    8.989361] usbcore: registered new device driver usb
[    9.031787] at24 0-0050: supply vcc not found, using dummy regulator
[    9.038341] at24 0-0050: GPIO lookup for consumer wp
[    9.043388] at24 0-0050: using device tree for GPIO lookup
[    9.049050] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/interconnect at 44c00000/segment at 200000/target-module at b000/i2c at 0/baseboard_eeprom at 50[0]'
[    9.064315] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/interconnect at 44c00000/segment at 200000/target-module at b000/i2c at 0/baseboard_eeprom at 50[0]'
[    9.079454] at24 0-0050: using lookup tables for GPIO lookup
[    9.085161] at24 0-0050: No GPIO consumer wp found
[    9.361978] tps6521x_pwrbutton tps65217-pwrbutton: DMA mask not set
[    9.482337] wkup_m3_ipc 44e11324.wkup_m3_ipc: IPC Request for A8->M3 Channel failed! -517
[    9.630003] omap_rtc 44e3e000.rtc: registered as rtc0
[    9.635234] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01T00:00:00 UTC (946684800)
[    9.643919] omap_rtc 44e3e000.rtc: GPIO lookup for consumer wp
[    9.649778] omap_rtc 44e3e000.rtc: using device tree for GPIO lookup
[    9.656225] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/interconnect at 44c00000/segment at 200000/target-module at 3e000/rtc at 0[0]'
[    9.669799] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/interconnect at 44c00000/segment at 200000/target-module at 3e000/rtc at 0[0]'
[    9.683275] omap_rtc 44e3e000.rtc: using lookup tables for GPIO lookup
[    9.689832] omap_rtc 44e3e000.rtc: No GPIO consumer wp found
[    9.714308] wkup_m3_ipc 44e11324.wkup_m3_ipc: IPC Request for A8->M3 Channel failed! -517
[ ok [    9.763626] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[    9.770991] at24 2-0054: supply vcc not found, using dummy regulator
[    9.777707] at24 2-0054: GPIO lookup for consumer wp
[    9.782743] at24 2-0054: using device tree for GPIO lookup
[    9.788287] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at 9c000/i2c at 0/cape_eeprom0 at 54[0]'
[    9.803264] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at 9c000/i2c at 0/cape_eeprom0 at 54[0]'
[    9.818130] at24 2-0054: using lookup tables for GPIO lookup
[    9.823832] at24 2-0054: No GPIO consumer wp found
[    9.832315] input: tps65217_pwrbutton as /devices/platform/ocp/44c00000.interconnect/44c00000.interconnect:segment at 200000/44e0b000.target-module/44e0b000.i2c/i2c-0/0-0024/tps65217-pwrbutton/input/input0
done.
[    9.946186] wkup_m3_ipc 44e11324.wkup_m3_ipc: IPC Request for A8->M3 Channel failed! -517
[    9.955186] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[   10.112852] am335x-phy-driver 47401b00.usb-phy: GPIO lookup for consumer reset
[   10.120128] am335x-phy-driver 47401b00.usb-phy: using device tree for GPIO lookup
[   10.127832] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/target-module at 47400000/usb-phy at 1b00[0]'
[   10.139331] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/target-module at 47400000/usb-phy at 1b00[0]'
[   10.150715] am335x-phy-driver 47401b00.usb-phy: using lookup tables for GPIO lookup
[   10.158428] am335x-phy-driver 47401b00.usb-phy: No GPIO consumer reset found
[   10.165528] am335x-phy-driver 47401b00.usb-phy: GPIO lookup for consumer vbus-detect
[   10.173322] am335x-phy-driver 47401b00.usb-phy: using device tree for GPIO lookup
[   10.180851] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/ocp/target-module at 47400000/usb-phy at 1b00[0]'
[   10.192848] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/ocp/target-module at 47400000/usb-phy at 1b00[0]'
[   10.204747] am335x-phy-driver 47401b00.usb-phy: using lookup tables for GPIO lookup
[   10.212454] am335x-phy-driver 47401b00.usb-phy: No GPIO consumer vbus-detect found
[   10.220175] am335x-phy-driver 47401b00.usb-phy: supply vcc not found, using dummy regulator
[   10.250739] wkup_m3_ipc 44e11324.wkup_m3_ipc: IPC Request for A8->M3 Channel failed! -517
[   10.264677] wkup_m3_ipc 44e11324.wkup_m3_ipc: IPC Request for A8->M3 Channel failed! -517
[   10.335937] at24 2-0055: supply vcc not found, using dummy regulator
[   10.342624] at24 2-0055: GPIO lookup for consumer wp
[   10.347614] at24 2-0055: using device tree for GPIO lookup
[   10.353204] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at 9c000/i2c at 0/cape_eeprom1 at 55[0]'
[   10.368174] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at 9c000/i2c at 0/cape_eeprom1 at 55[0]'
[   10.383054] at24 2-0055: using lookup tables for GPIO lookup
[   10.388740] at24 2-0055: No GPIO consumer wp found
[   10.550499] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[....] Waiting for /dev to be fully populated...[   10.665916] remoteproc remoteproc0: powering up wkup_m3
[   10.862483] random: crng init done
[   10.895407] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 216220
[   10.903990] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   10.904008] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x191
calling: settle
[   11.031533] at24 2-0056: supply vcc not found, using dummy regulator
[   11.038729] at24 2-0056: GPIO lookup for consumer wp
[   11.043777] at24 2-0056: using device tree for GPIO lookup
[   11.049330] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at 9c000/i2c at 0/cape_eeprom2 at 56[0]'
[   11.064315] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at 9c000/i2c at 0/cape_eeprom2 at 56[0]'
[   11.079183] at24 2-0056: using lookup tables for GPIO lookup
[   11.084891] at24 2-0056: No GPIO consumer wp found
[   11.376166] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[   11.381548] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[   11.425128] tda998x 0-0070: found TDA19988
[   11.521986] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.08
[   11.530306] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.537626] usb usb1: Product: MUSB HDRC host driver
[   11.542636] usb usb1: Manufacturer: Linux 5.8.0-rc2-00070-g50cc2c6a0b0e musb-hcd
[   11.550064] usb usb1: SerialNumber: musb-hdrc.1
[   11.577082] at24 2-0057: supply vcc not found, using dummy regulator
[   11.583766] at24 2-0057: GPIO lookup for consumer wp
[   11.588757] at24 2-0057: using device tree for GPIO lookup
[   11.594374] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at 9c000/i2c at 0/cape_eeprom3 at 57[0]'
[   11.609352] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/interconnect at 48000000/segment at 100000/target-module at 9c000/i2c at 0/cape_eeprom3 at 57[0]'
[   11.624222] at24 2-0057: using lookup tables for GPIO lookup
[   11.629907] at24 2-0057: No GPIO consumer wp found
[   11.733597] davinci-mcasp 48038000.mcasp: IRQ common not found
[   11.748672] tilcdc 4830e000.lcdc: bound 0-0070 (ops tda998x_driver_exit [tda998x])
[   11.828445] omap_rng 48310000.rng: Random Number Generator ver. 20
[   11.846406] [drm] Initialized tilcdc 1.0.0 20121205 for 4830e000.lcdc on minor 0
[   11.887100] hub 1-0:1.0: USB hub found
[   11.899432] hub 1-0:1.0: 1 port detected
[   11.987740] Console: switching to colour frame buffer device 160x45
[   12.067460] tilcdc 4830e000.lcdc: fb0: tilcdcdrmfb frame buffer device
[   12.219437] PM: bootloader does not support rtc-only!
[   12.283689] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[   12.657390] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[   12.725546] omap-aes 53500000.aes: will run requests pump with realtime priority
[   13.527289] of_get_named_gpiod_flags: can't parse 'simple-audio-card,hp-det-gpio' property of node '/sound[0]'
[   13.537611] of_get_named_gpiod_flags: can't parse 'simple-audio-card,mic-det-gpio' property of node '/sound[0]'
[   13.721138] asoc-simple-card sound: i2s-hifi <-> 48038000.mcasp mapping ok
done.
[ ok ] Activating swap...done.
[ ok ] Activating lvm and md swap...done.
[....] Checking file systems...fsck from util-linux 2.25.2
done.
[ ok ] Cleaning up temporary files... /tmp.
[ ok ] Mounting local filesystems...done.
[ ok ] Activating swapfile swap...done.
[ ok ] Cleaning up temporary files....
[ ok ] Setting kernel variables ...done.
[ ok ] Configuring network interfaces...done.
[ ok ] Starting rpcbind daemon....
[ ok ] Starting NFS common utilities: statd idmapd.
[ ok ] Cleaning up temporary files....
[ ok ] Setting up ALSA...done.
[ ok ] Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix.
INIT: Entering runlevel: 2
[info] Using makefile-style concurrent boot in runlevel 2.
[ ok ] Starting enhanced syslogd: rsyslogd.
[....] Starting cgroup management daemon: cgmanager[....] Starting periodic comm[ ok cheduler: cron.
[....] Starting system message bus: dbusUnknown username "colord" in message bus configuration file
. ok 
[ ok ] Starting cgroup management proxy daemon: cgproxy.
[ ok ] Starting NTP server: ntpd.
[ ok ] saned disabled; edit /etc/default/saned.
[ ok ] Starting OpenBSD Secure Shell server: sshd.
Forcing mount of all filesystems

Debian GNU/Linux 8 moonglum ttyS0

moonglum login: [   32.520958] ------------[ cut here ]------------
[   32.525868] WARNING: CPU: 0 PID: 1314 at drivers/gpu/drm/drm_atomic_helper.c:2329 drm_atomic_helper_commit_hw_done+0x144/0x168 [drm_kms_helper]
[   32.538853] Modules linked in: snd_soc_hdmi_codec evdev omap_aes_driver snd_soc_simple_card crypto_engine snd_soc_simple_card_utils omap_crypto libaes omap_sham pm33xx ti_emif_sram omap_rng rng_core snd_soc_davinci_mcasp tilcdc snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma snd_soc_core tda998x snd_pcm_dmaengine snd_pcm drm_kms_helper snd_timer cfbfillrect syscopyarea snd cfbimgblt omap_mailbox sysfillrect sysimgblt soundcore fb_sys_fops musb_dsps omap_wdt cfbcopyarea musb_hdrc watchdog rtc_omap drm wkup_m3_ipc udc_core tps65218_pwrbutton drm_panel_orientation_quirks at24 usbcore phy_am335x phy_am335x_control phy_generic cppi41 usb_common wkup_m3_rproc leds_gpio led_class cpufreq_dt
[   32.599815] CPU: 0 PID: 1314 Comm: kmstest Not tainted 5.8.0-rc2-00070-g50cc2c6a0b0e #20
[   32.607939] Hardware name: Generic AM33XX (Flattened Device Tree)
[   32.614090] [<c0111adc>] (unwind_backtrace) from [<c010b9dc>] (show_stack+0x10/0x14)
[   32.621873] [<c010b9dc>] (show_stack) from [<c054f49c>] (dump_stack+0xc4/0xe4)
[   32.629138] [<c054f49c>] (dump_stack) from [<c01389e4>] (__warn+0xc0/0xf4)
[   32.636046] [<c01389e4>] (__warn) from [<c0138d74>] (warn_slowpath_fmt+0x58/0xb8)
[   32.643615] [<c0138d74>] (warn_slowpath_fmt) from [<bf1b46b4>] (drm_atomic_helper_commit_hw_done+0x144/0x168 [drm_kms_helper])
[   32.655145] [<bf1b46b4>] (drm_atomic_helper_commit_hw_done [drm_kms_helper]) from [<bf1b471c>] (drm_atomic_helper_commit_tail+0x44/0x6c [drm_kms_helper])
[   32.669007] [<bf1b471c>] (drm_atomic_helper_commit_tail [drm_kms_helper]) from [<bf1b4de8>] (commit_tail+0x168/0x1a8 [drm_kms_helper])
[   32.681211] [<bf1b4de8>] (commit_tail [drm_kms_helper]) from [<bf1b5a28>] (drm_atomic_helper_commit+0x12c/0x158 [drm_kms_helper])
[   32.693186] [<bf1b5a28>] (drm_atomic_helper_commit [drm_kms_helper]) from [<bf0c6090>] (drm_mode_atomic_ioctl+0x82c/0xafc [drm])
[   32.704970] [<bf0c6090>] (drm_mode_atomic_ioctl [drm]) from [<bf09ce60>] (drm_ioctl_kernel+0xa4/0xe8 [drm])
[   32.714905] [<bf09ce60>] (drm_ioctl_kernel [drm]) from [<bf09d084>] (drm_ioctl+0x1e0/0x3c8 [drm])
[   32.723901] [<bf09d084>] (drm_ioctl [drm]) from [<c02dcc6c>] (ksys_ioctl+0x19c/0xa6c)
[   32.731771] [<c02dcc6c>] (ksys_ioctl) from [<c0100080>] (ret_fast_syscall+0x0/0x54)
[   32.739459] Exception stack(0xda54dfa8 to 0xda54dff0)
[   32.744534] dfa0:                   000555c8 bea93020 00000003 c03864bc bea93020 00000000
[   32.752747] dfc0: 000555c8 bea93020 c03864bc 00000036 00057750 00057760 00057a30 00000020
[   32.760959] dfe0: b6ef11a0 bea92ff4 b6edbdd3 b6ce0106
[   32.766143] ---[ end trace 809bb0cd40f0fb5f ]---
[   43.363369] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CRTC:32:tilcdc crtc] flip_done timed out
[   53.603981] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CONNECTOR:34:HDMI-A-1] flip_done timed out
[   63.844634] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [PLANE:31:plane-0] flip_done timed out


More information about the dri-devel mailing list