[PATCH] drm: rcar-du: Fix DU3 start/stop on M3-N

Hoan na-hoan at jinso.co.jp
Mon Nov 26 09:46:56 UTC 2018


Dear Laurent-san

Thank you for your comments on my patches! I understand.

With this patch,  the problem has been improved.

CC Simon-san

If you wait a little longer, the error log will look like this:

[    2.825800] [drm] No driver support for vblank timestamp query.
[   13.027591] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* 
[CRTC:55:crtc-2] flip_done timed out
[   23.267575] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* 
[CRTC:55:crtc-2] flip_done timed out
[   33.507572] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* 
[CONNECTOR:57:VGA-1] flip_done timed out
[   43.747572] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* 
[PLANE:30:plane-1] flip_done timed out
[   53.987572] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* 
[CRTC:55:crtc-2] flip_done timed out
[   53.990386] Console: switching to colour frame buffer device 128x48
[   64.227573] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* 
[CRTC:55:crtc-2] flip_done timed out
[   74.467571] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* 
[CONNECTOR:57:VGA-1] flip_done timed out
[   84.707570] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* 
[PLANE:30:plane-1] flip_done timed out
[   94.947573] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* 
[CRTC:55:crtc-2] flip_done timed out
[   95.040503] rcar-du feb00000.display: fb0: DRM emulated frame buffer 
device
[   95.048144] [drm] Initialized rcar-du 1.0.0 20130110 for 
feb00000.display on minor 0
[   95.055907] [drm] Device feb00000.display probed
...

Thank you

Jinso/Hoan


On 2018/11/26 17:21, Simon Horman wrote:
> On Fri, Nov 23, 2018 at 01:48:08PM +0200, Laurent Pinchart wrote:
>> Group start/stop is controlled by the DRES and DEN bits of DSYSR0 for
>> the first group and DSYSR2 for the second group. On most DU instances,
>> this maps to the first CRTC of the group. On M3-N, however, DU2 doesn't
>> exist, but DSYSR2 does. There is no CRTC object there that maps to the
>> correct DSYSR register.
>>
>> Commit 9144adc5e5a9 ("drm: rcar-du: Cache DSYSR value to ensure known
>> initial value") switched group start/stop from using group read/write
>> access to DSYSR to a CRTC-based API to cache the DSYSR value. While
>> doing so, it introduced a regression on M3-N by accessing DSYSR3 instead
>> of DSYSR2 to start/stop the second group.
>>
>> To fix this, access the DSYSR register directly through group read/write
>> if the SoC is missing the first DU channel of the group. Keep using the
>> rcar_du_crtc_dsysr_clr_set() function otherwise, to retain the DSYSR
>> caching feature.
>>
>> Fixes: 9144adc5e5a9 ("drm: rcar-du: Cache DSYSR value to ensure known initial value")
>> Reported-by: Hoan Nguyen An <na-hoan at jinso.co.jp>
>> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
> Thanks Laurent,
>
> I have confirmed that with this patch applied on top of
> renesas-devel-20181123-v4.20-rc3 Salvator-XS / M3-N ES1.0
> boots to user-space when the kernel is compiled using renesas_defconfig.
>
> Tested-by: Simon Horman <horms+renesas at verge.net.au>
>
>
> Without this patch applied the boot log looks this:
>
> Starting kernel ...
>
> [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd073]
> [    0.000000] Linux version 4.20.0-rc3-arm64-renesas
> (horms at reginn.horms.nl) (gcc version 7.3.0 (GCC)) #283 SMP PREEMPT Mon Nov
> 26 09:14:14 CET 2018
> [    0.000000] Machine model: Renesas Salvator-X 2nd version board based on
> r8a77965
> [    0.000000] printk: debug: ignoring loglevel setting.
> [    0.000000] efi: Getting EFI parameters from FDT:
> [    0.000000] efi: UEFI not found.
> [    0.000000] cma: Reserved 128 MiB at 0x00000000b8000000
> [    0.000000] On node 0 totalpages: 491520
> [    0.000000]   DMA32 zone: 7680 pages used for memmap
> [    0.000000]   DMA32 zone: 0 pages reserved
> [    0.000000]   DMA32 zone: 491520 pages, LIFO batch:63
> [    0.000000] psci: probing for conduit method from DT.
> [    0.000000] psci: PSCIv1.0 detected in firmware.
> [    0.000000] psci: Using standard PSCI v0.2 function IDs
> [    0.000000] psci: Trusted OS resident on physical CPU 0x0
> [    0.000000] psci: SMC Calling Convention v1.0
> [    0.000000] random: get_random_bytes called from start_kernel+0xac/0x480
> with crng_init=0
> [    0.000000] percpu: Embedded 23 pages/cpu @(____ptrval____) s64648 r0
> d29560 u94208
> [    0.000000] pcpu-alloc: s64648 r0 d29560 u94208 alloc=23*4096
> [    0.000000] pcpu-alloc: [0] 0 [0] 1
> [    0.000000] Detected PIPT I-cache on CPU0
> [    0.000000] CPU features: enabling workaround for EL2 vector hardening
> [    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
> [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages:
> 483840
> [    0.000000] Kernel command line: ignore_loglevel rw root=/dev/nfs
> nfsroot=10.7.3.162:/srv/nfs/arm64 ip=on
> [    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152
> bytes)
> [    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576
> bytes)
> [    0.000000] Memory: 1771168K/1966080K available (9980K kernel code,
> 1122K rwdata, 3008K rodata, 768K init, 12111K bss, 63840K reserved, 131072K
> cma-reserved)
> [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
> [    0.000000] Running RCU self tests
> [    0.000000] rcu: Preemptible hierarchical RCU implementation.
> [    0.000000] rcu:     RCU lockdep checking is enabled.
> [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=64 to
> nr_cpu_ids=2.
> [    0.000000]  Tasks RCU enabled.
> [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is
> 25 jiffies.
> [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
> [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
> [    0.000000] arch_timer: cp15 timer(s) running at 8.32MHz (virt).
> [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff
> max_cycles: 0x1eb398c07, max_idle_ns: 440795202503 ns
> [    0.000003] sched_clock: 56 bits at 8MHz, resolution 120ns, wraps every
> 2199023255503ns
> [    0.000142] Console: colour dummy device 80x25
> [    0.001298] printk: console [tty0] enabled
> [    0.001326] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc.,
> Ingo Molnar
> [    0.001366] ... MAX_LOCKDEP_SUBCLASSES:  8
> [    0.001391] ... MAX_LOCK_DEPTH:          48
> [    0.001415] ... MAX_LOCKDEP_KEYS:        8191
> [    0.001441] ... CLASSHASH_SIZE:          4096
> [    0.001466] ... MAX_LOCKDEP_ENTRIES:     32768
> [    0.001492] ... MAX_LOCKDEP_CHAINS:      65536
> [    0.001518] ... CHAINHASH_SIZE:          32768
> [    0.001543]  memory used by lock dependency info: 7263 kB
> [    0.001573]  per task-struct memory footprint: 1920 bytes
> [    0.001636] Calibrating delay loop (skipped), value calculated using
> timer frequency.. 16.64 BogoMIPS (lpj=33280)
> [    0.001692] pid_max: default: 32768 minimum: 301
> [    0.001878] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> [    0.001928] Mountpoint-cache hash table entries: 4096 (order: 3, 32768
> bytes)
> [    0.024092] ASID allocator initialised with 32768 entries
> [    0.032076] rcu: Hierarchical SRCU implementation.
> [    0.040670] Detected Renesas R-Car Gen3 r8a77965 ES1.0
> [    0.041374] EFI services will not be available.
> [    0.048148] smp: Bringing up secondary CPUs ...
> [    0.080449] Detected PIPT I-cache on CPU1
> [    0.080499] CPU1: Booted secondary processor 0x0000000001 [0x411fd073]
> [    0.080808] smp: Brought up 1 node, 2 CPUs
> [    0.080895] SMP: Total of 2 processors activated.
> [    0.080928] CPU features: detected: 32-bit EL0 Support
> [    0.080959] CPU features: detected: CRC32 instructions
> [    0.083973] CPU: All CPU(s) started at EL1
> [    0.084025] alternatives: patching kernel code
> [    0.085610] devtmpfs: initialized
> [    0.101022] clocksource: jiffies: mask: 0xffffffff max_cycles:
> 0xffffffff, max_idle_ns: 7645041785100000 ns
> [    0.101100] futex hash table entries: 512 (order: 4, 65536 bytes)
> [    0.102979] pinctrl core: initialized pinctrl subsystem
> [    0.104177] DMI not present or invalid.
> [    0.104879] NET: Registered protocol family 16
> [    0.105422] audit: initializing netlink subsys (disabled)
> [    0.105718] audit: type=2000 audit(0.104:1): state=initialized
> audit_enabled=0 res=1
> [    0.106460] cpuidle: using governor menu
> [    0.106691] vdso: 2 pages (1 code @ (____ptrval____), 1 data @
> (____ptrval____))
> [    0.106749] hw-breakpoint: found 6 breakpoint and 4 watchpoint
> registers.
> [    0.108376] DMA: preallocated 256 KiB pool for atomic allocations
> [    0.112247] sh-pfc e6060000.pin-controller: r8a77965_pfc support
> registered
> [    0.146202] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
> [    0.146965] cryptd: max_cpu_qlen set to 1000
> [    0.153209] vgaarb: loaded
> [    0.153581] SCSI subsystem initialized
> [    0.153927] libata version 3.00 loaded.
> [    0.154165] usbcore: registered new interface driver usbfs
> [    0.154249] usbcore: registered new interface driver hub
> [    0.154374] usbcore: registered new device driver usb
> [    0.156184] i2c-sh_mobile e60b0000.i2c: I2C adapter 7, bus speed 400000
> Hz
> [    0.156730] media: Linux media interface: v0.10
> [    0.156800] videodev: Linux video capture interface: v2.00
> [    0.156924] pps_core: LinuxPPS API ver. 1 registered
> [    0.156956] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo
> Giometti <giometti at linux.it>
> [    0.157020] PTP clock support registered
> [    0.157073] EDAC MC: Ver: 3.0.0
> [    0.158364] Advanced Linux Sound Architecture Driver Initialized.
> [    0.159529] clocksource: Switched to clocksource arch_sys_counter
> [    0.238280] VFS: Disk quotas dquot_6.6.0
> [    0.238398] VFS: Dquot-cache hash table entries: 512 (order 0, 4096
> bytes)
> [    0.249396] NET: Registered protocol family 2
> [    0.250315] tcp_listen_portaddr_hash hash table entries: 1024 (order: 4,
> 73728 bytes)
> [    0.250492] TCP established hash table entries: 16384 (order: 5, 131072
> bytes)
> [    0.250587] TCP bind hash table entries: 16384 (order: 8, 1048576 bytes)
> [    0.252472] TCP: Hash tables configured (established 16384 bind 16384)
> [    0.252824] UDP hash table entries: 1024 (order: 5, 163840 bytes)
> [    0.253116] UDP-Lite hash table entries: 1024 (order: 5, 163840 bytes)
> [    0.253609] NET: Registered protocol family 1
> [    0.254765] RPC: Registered named UNIX socket transport module.
> [    0.254820] RPC: Registered udp transport module.
> [    0.254850] RPC: Registered tcp transport module.
> [    0.254880] RPC: Registered tcp NFSv4.1 backchannel transport module.
> [    0.254923] PCI: CLS 0 bytes, default 64
> [    0.256118] hw perfevents: enabled with armv8_cortex_a57 PMU driver, 7
> counters available
> [    0.256712] kvm [1]: HYP mode not available
> [    0.262582] workingset: timestamp_bits=46 max_order=19 bucket_order=0
> [    0.273506] squashfs: version 4.0 (2009/01/31) Phillip Lougher
> [    0.274481] NFS: Registering the id_resolver key type
> [    0.274599] Key type id_resolver registered
> [    0.274642] Key type id_legacy registered
> [    0.274682] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
> [    0.274733] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver
> Registering...
> [    0.279467] Block layer SCSI generic (bsg) driver version 0.4 loaded
> (major 245)
> [    0.279647] io scheduler noop registered
> [    0.279876] io scheduler cfq registered (default)
> [    0.279911] io scheduler mq-deadline registered
> [    0.279942] io scheduler kyber registered
> [    0.285126] gpio_rcar e6050000.gpio: driving 16 GPIOs
> [    0.285649] gpio_rcar e6051000.gpio: driving 29 GPIOs
> [    0.286129] gpio_rcar e6052000.gpio: driving 15 GPIOs
> [    0.286568] gpio_rcar e6053000.gpio: driving 16 GPIOs
> [    0.287005] gpio_rcar e6054000.gpio: driving 18 GPIOs
> [    0.287438] gpio_rcar e6055000.gpio: driving 26 GPIOs
> [    0.288056] gpio_rcar e6055400.gpio: driving 32 GPIOs
> [    0.288498] gpio_rcar e6055800.gpio: driving 4 GPIOs
> [    0.290158] rcar-pcie fe000000.pcie: host bridge /soc/pcie at fe000000
> ranges:
> [    0.290238] rcar-pcie fe000000.pcie:    IO 0xfe100000..0xfe1fffff ->
> 0x00000000
> [    0.290325] rcar-pcie fe000000.pcie:   MEM 0xfe200000..0xfe3fffff ->
> 0xfe200000
> [    0.290388] rcar-pcie fe000000.pcie:   MEM 0x30000000..0x37ffffff ->
> 0x30000000
> [    0.290442] rcar-pcie fe000000.pcie:   MEM 0x38000000..0x3fffffff ->
> 0x38000000
> [    0.355586] rcar-pcie fe000000.pcie: PCIe link down
> [    0.356211] rcar-pcie ee800000.pcie: host bridge /soc/pcie at ee800000
> ranges:
> [    0.356282] rcar-pcie ee800000.pcie:    IO 0xee900000..0xee9fffff ->
> 0x00000000
> [    0.356348] rcar-pcie ee800000.pcie:   MEM 0xeea00000..0xeebfffff ->
> 0xeea00000
> [    0.356410] rcar-pcie ee800000.pcie:   MEM 0xc0000000..0xc7ffffff ->
> 0xc0000000
> [    0.356464] rcar-pcie ee800000.pcie:   MEM 0xc8000000..0xcfffffff ->
> 0xc8000000
> [    0.423444] rcar-pcie ee800000.pcie: PCIe link down
> [    0.424698] pwm-backlight backlight: Linked as a consumer to regulator.3
> [    0.497733] SuperH (H)SCI(F) driver initialized
> [    0.498836] e6550000.serial: ttySC1 at MMIO 0xe6550000 (irq = 28,
> base_baud = 0) is a hscif
> [    0.500165] e6e88000.serial: ttySC0 at MMIO 0xe6e88000 (irq = 110,
> base_baud = 0) is a scif
> [    1.381522] printk: console [ttySC0] enabled
> [    1.388623] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> [    1.395328] [drm] No driver support for vblank timestamp query.
> [    1.402388] rcar-dw-hdmi fead0000.hdmi: Detected HDMI TX controller
> v2.01a with HDCP (DWC HDMI 2.0 TX PHY)
> [    1.412740] rcar-dw-hdmi fead0000.hdmi: registered DesignWare HDMI I2C
> bus driver
> [    1.435731] loop: module loaded
> [    1.441987] scsi host0: sata_rcar
> [    1.445954] ata1: SATA max UDMA/133 irq 160
> [    1.452142] libphy: Fixed MDIO Bus: probed
> [    1.456656] tun: Universal TUN/TAP device driver, 1.6
> [    1.462124] CAN device driver interface
> [    1.467692] VFIO - User Level meta-driver version: 0.3
> [    1.473231] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> [    1.479822] ehci-pci: EHCI PCI platform driver
> [    1.484335] ehci-platform: EHCI generic platform driver
> [    1.490520] ehci-platform ee0a0100.usb: EHCI Host Controller
> [    1.496334] ehci-platform ee0a0100.usb: new USB bus registered, assigned
> bus number 1
> [    1.504725] ehci-platform ee0a0100.usb: irq 156, io mem 0xee0a0100
> [    1.523548] ehci-platform ee0a0100.usb: USB 2.0 started, EHCI 1.10
> [    1.531082] hub 1-0:1.0: USB hub found
> [    1.534991] hub 1-0:1.0: 1 port detected
> [    1.539907] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
> [    1.546183] ohci-pci: OHCI PCI platform driver
> [    1.550714] ohci-platform: OHCI generic platform driver
> [    1.556697] ohci-platform ee0a0000.usb: Generic Platform OHCI controller
> [    1.563486] ohci-platform ee0a0000.usb: new USB bus registered, assigned
> bus number 2
> [    1.571643] ohci-platform ee0a0000.usb: irq 156, io mem 0xee0a0000
> [    1.666522] hub 2-0:1.0: USB hub found
> [    1.670371] hub 2-0:1.0: 1 port detected
> [    1.675757] xhci-hcd ee000000.usb: xHCI Host Controller
> [    1.681059] xhci-hcd ee000000.usb: new USB bus registered, assigned bus
> number 3
> [    1.688800] xhci-hcd ee000000.usb: Direct firmware load for
> r8a779x_usb3_v3.dlmem failed with error -2
> [    1.698350] xhci-hcd ee000000.usb: can't setup: -2
> [    1.703211] xhci-hcd ee000000.usb: USB bus 3 deregistered
> [    1.708823] xhci-hcd: probe of ee000000.usb failed with error -2
> [    1.715167] usbcore: registered new interface driver usb-storage
> [    1.722160] renesas_usbhs e6590000.usb: host probed
> [    1.727128] renesas_usbhs e6590000.usb: no transceiver found
> [    1.733140] renesas_usbhs e6590000.usb: gadget probed
> [    1.738490] renesas_usbhs e6590000.usb: probed
> [    1.744707] renesas_usb3 ee020000.usb: probed with phy
> [    1.750684] i2c /dev entries driver
> [    1.763154] cs2000-cp 2-004f: revision - C1
> [    1.767553] i2c-rcar e6510000.i2c: probed
> [    1.772529] pca953x 4-0020: 4-0020 supply vcc not found, using dummy
> regulator
> [    1.780030] pca953x 4-0020: Linked as a consumer to regulator.0
> [    1.787205] GPIO line 355 (PCIE/SATA switch) hogged as output/low
> [    1.801115] random: fast init done
> [    1.806749] i2c-rcar e66d8000.i2c: probed
> [    1.811689] adv748x 4-0070: Endpoint
> /soc/i2c at e66d8000/video-receiver at 70/port at 7/endpoint on port 7
> [    1.820728] adv748x 4-0070: Endpoint
> /soc/i2c at e66d8000/video-receiver at 70/port at 8/endpoint on port 8
> [    1.829755] adv748x 4-0070: Endpoint
> /soc/i2c at e66d8000/video-receiver at 70/port at a/endpoint on port 10
> [    1.838868] adv748x 4-0070: Endpoint
> /soc/i2c at e66d8000/video-receiver at 70/port at b/endpoint on port 11
> [    1.848533] adv748x 4-0070: chip found @ 0xe0 revision 2143
> [    1.867574] ata1: link resume succeeded after 1 retries
> [    1.965229] rcar_fdp1 fe940000.fdp1: Device registered as /dev/video0
> [    1.971904] rcar_fdp1 fe940000.fdp1: FDP1 Unidentifiable (0x02010204)
> [    1.979446] ata1: SATA link down (SStatus 0 SControl 300)
> [    1.996718] rcar-csi2 fea80000.csi2: 1 lanes found
> [    2.001841] rcar-csi2 feaa0000.csi2: 4 lanes found
> [    2.010703]
> [    2.012201] ======================================================
> [    2.018379] WARNING: possible circular locking dependency detected
> [    2.024558] 4.20.0-rc3-arm64-renesas #283 Not tainted
> [    2.029607] ------------------------------------------------------
> [    2.035785] swapper/0/1 is trying to acquire lock:
> [    2.040573] (____ptrval____) (&group->lock){+.+.}, at:
> rvin_group_notify_bound+0x30/0xa8
> [    2.048677]
> [    2.048677] but task is already holding lock:
> [    2.054507] (____ptrval____) (list_lock){+.+.}, at:
> __v4l2_async_notifier_register+0x48/0x158
> [    2.063041]
> [    2.063041] which lock already depends on the new lock.
> [    2.063041]
> [    2.071218]
> [    2.071218] the existing dependency chain (in reverse order) is:
> [    2.078699]
> [    2.078699] -> #1 (list_lock){+.+.}:
> [    2.083757]        __mutex_lock+0x70/0x840
> [    2.087851]        mutex_lock_nested+0x1c/0x28
> [    2.092292]        v4l2_async_notifier_init+0x28/0x48
> [    2.097341]        rcar_vin_probe+0x504/0x6a0
> [    2.101700]        platform_drv_probe+0x50/0xa0
> [    2.106228]        really_probe+0x20c/0x2b0
> [    2.110409]        driver_probe_device+0x58/0x108
> [    2.115112]        __driver_attach+0xe4/0xe8
> [    2.119379]        bus_for_each_dev+0x74/0xc8
> [    2.123734]        driver_attach+0x20/0x28
> [    2.127828]        bus_add_driver+0x1b0/0x220
> [    2.132182]        driver_register+0x60/0x110
> [    2.136537]        __platform_driver_register+0x40/0x48
> [    2.141763]        rcar_vin_driver_init+0x18/0x20
> [    2.146467]        do_one_initcall+0x180/0x36c
> [    2.150907]        kernel_init_freeable+0x478/0x51c
> [    2.155784]        kernel_init+0x10/0x100
> [    2.159793]        ret_from_fork+0x10/0x1c
> [    2.163885]
> [    2.163885] -> #0 (&group->lock){+.+.}:
> [    2.169200]        lock_acquire+0xc0/0x230
> [    2.173293]        __mutex_lock+0x70/0x840
> [    2.177386]        mutex_lock_nested+0x1c/0x28
> [    2.181826]        rvin_group_notify_bound+0x30/0xa8
> [    2.186788]        v4l2_async_match_notify+0x54/0x138
> [    2.191838]        v4l2_async_notifier_try_all_subdevs+0x5c/0xc0
> [    2.197843]        __v4l2_async_notifier_register+0xe8/0x158
> [    2.203500]        v4l2_async_notifier_register+0x40/0x68
> [    2.208895]        rcar_vin_probe+0x588/0x6a0
> [    2.213249]        platform_drv_probe+0x50/0xa0
> [    2.217777]        really_probe+0x20c/0x2b0
> [    2.221958]        driver_probe_device+0x58/0x108
> [    2.226659]        __driver_attach+0xe4/0xe8
> [    2.230927]        bus_for_each_dev+0x74/0xc8
> [    2.235281]        driver_attach+0x20/0x28
> [    2.239374]        bus_add_driver+0x1b0/0x220
> [    2.243728]        driver_register+0x60/0x110
> [    2.248082]        __platform_driver_register+0x40/0x48
> [    2.253304]        rcar_vin_driver_init+0x18/0x20
> [    2.258005]        do_one_initcall+0x180/0x36c
> [    2.262446]        kernel_init_freeable+0x478/0x51c
> [    2.267321]        kernel_init+0x10/0x100
> [    2.271327]        ret_from_fork+0x10/0x1c
> [    2.275419]
> [    2.275419] other info that might help us debug this:
> [    2.275419]
> [    2.283423]  Possible unsafe locking scenario:
> [    2.283423]
> [    2.289340]        CPU0                    CPU1
> [    2.293865]        ----                    ----
> [    2.298391]   lock(list_lock);
> [    2.301442]                                lock(&group->lock);
> [    2.307272]                                lock(list_lock);
> [    2.312842]   lock(&group->lock);
> [    2.316153]
> [    2.316153]  *** DEADLOCK ***
> [    2.316153]
> [    2.322073] 2 locks held by swapper/0/1:
> [    2.325991]  #0: (____ptrval____) (&dev->mutex){....}, at:
> __driver_attach+0x5c/0xe8
> [    2.333737]  #1: (____ptrval____) (list_lock){+.+.}, at:
> __v4l2_async_notifier_register+0x48/0x158
> [    2.342699]
> [    2.342699] stack backtrace:
> [    2.347057] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
> 4.20.0-rc3-arm64-renesas #283
> [    2.354712] Hardware name: Renesas Salvator-X 2nd version board based on
> r8a77965 (DT)
> [    2.362628] Call trace:
> [    2.365073]  dump_backtrace+0x0/0x1c0
> [    2.368732]  show_stack+0x14/0x20
> [    2.372046]  dump_stack+0xbc/0xf4
> [    2.375358]  print_circular_bug.isra.19+0x1d4/0x2e8
> [    2.380233]  __lock_acquire+0x12e8/0x1800
> [    2.384239]  lock_acquire+0xc0/0x230
> [    2.387811]  __mutex_lock+0x70/0x840
> [    2.391383]  mutex_lock_nested+0x1c/0x28
> [    2.395302]  rvin_group_notify_bound+0x30/0xa8
> [    2.399743]  v4l2_async_match_notify+0x54/0x138
> [    2.404271]  v4l2_async_notifier_try_all_subdevs+0x5c/0xc0
> [    2.409754]  __v4l2_async_notifier_register+0xe8/0x158
> [    2.414890]  v4l2_async_notifier_register+0x40/0x68
> [    2.419765]  rcar_vin_probe+0x588/0x6a0
> [    2.423598]  platform_drv_probe+0x50/0xa0
> [    2.427605]  really_probe+0x20c/0x2b0
> [    2.431264]  driver_probe_device+0x58/0x108
> [    2.435444]  __driver_attach+0xe4/0xe8
> [    2.439190]  bus_for_each_dev+0x74/0xc8
> [    2.443023]  driver_attach+0x20/0x28
> [    2.446595]  bus_add_driver+0x1b0/0x220
> [    2.450428]  driver_register+0x60/0x110
> [    2.454261]  __platform_driver_register+0x40/0x48
> [    2.458962]  rcar_vin_driver_init+0x18/0x20
> [    2.463142]  do_one_initcall+0x180/0x36c
> [    2.467061]  kernel_init_freeable+0x478/0x51c
> [    2.471415]  kernel_init+0x10/0x100
> [    2.474901]  ret_from_fork+0x10/0x1c
> [    2.479311] rcar-vin e6ef0000.video: Device registered as video11
> [    2.485571] rcar-vin e6ef1000.video: Device registered as video12
> [    2.491808] rcar-vin e6ef2000.video: Device registered as video13
> [    2.498039] rcar-vin e6ef3000.video: Device registered as video14
> [    2.504291] rcar-vin e6ef4000.video: Device registered as video15
> [    2.510527] rcar-vin e6ef5000.video: Device registered as video16
> [    2.516772] rcar-vin e6ef6000.video: Device registered as video17
> [    2.523000] rcar-vin e6ef7000.video: Device registered as video18
> [    2.534628] rcar_gen3_thermal e6198000.thermal: TSC0: Loaded 1 trip
> points
> [    2.545646] rcar_gen3_thermal e6198000.thermal: TSC1: Loaded 1 trip
> points
> [    2.556637] rcar_gen3_thermal e6198000.thermal: TSC2: Loaded 1 trip
> points
> [    2.565665] cpufreq: cpufreq_online: CPU0: Running at unlisted freq:
> 1497600 KHz
> [    2.573145] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency
> changed to: 1500000 KHz
> [    2.582928] renesas_sdhi_internal_dmac ee100000.sd: Got CD GPIO
> [    2.588933] renesas_sdhi_internal_dmac ee100000.sd: Got WP GPIO
> [    2.595712] renesas_sdhi_internal_dmac ee140000.sd: Linked as a consumer
> to regulator.2
> [    2.603846] renesas_sdhi_internal_dmac ee140000.sd: Linked as a consumer
> to regulator.1
> [    2.660495] renesas_sdhi_internal_dmac ee140000.sd: mmc0 base at
> 0xee140000 max clock rate 200 MHz
> [    2.670133] renesas_sdhi_internal_dmac ee160000.sd: Got CD GPIO
> [    2.676212] renesas_sdhi_internal_dmac ee160000.sd: Got WP GPIO
> [    2.683001] ledtrig-cpu: registered to indicate activity on CPUs
> [    2.689793] usbcore: registered new interface driver usbhid
> [    2.695434] usbhid: USB HID core driver
> [    2.720993] rcar_sound ec500000.sound: probed
> [    2.725796] NET: Registered protocol family 17
> [    2.730284] can: controller area network core (rev 20170425 abi 9)
> [    2.736572] NET: Registered protocol family 29
> [    2.741050] can: raw protocol (rev 20170425)
> [    2.745348] can: broadcast manager protocol (rev 20170425 t)
> [    2.751042] can: netlink gateway (rev 20170425) max_hops=1
> [    2.756751] Key type dns_resolver registered
> [    2.761614] registered taskstats version 1
> [    2.773596] mmc0: new HS200 MMC card at address 0001
> [    2.779233] mmcblk0: mmc0:0001 BGSD3R 29.1 GiB
> [    2.783483] renesas_irqc e61c0000.interrupt-controller: driving 6 irqs
> [    2.784162] mmcblk0boot0: mmc0:0001 BGSD3R partition 1 16.0 MiB
> [    2.792685] phy_rcar_gen3_usb2 ee080200.usb-phy: Linked as a consumer to
> regulator.4
> [    2.796641] mmcblk0boot1: mmc0:0001 BGSD3R partition 2 16.0 MiB
> [    2.805663] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> [    2.810272] mmcblk0rpmb: mmc0:0001 BGSD3R partition 3 4.00 MiB, chardev
> (243:0)
> [    2.816755] [drm] No driver support for vblank timestamp query.
> <no more output>
>


More information about the dri-devel mailing list