raspberrypi / linux

Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/
Other
11.12k stars 4.98k forks source link

Full KMS does not work with pi4 and official touchscreen on kernel 5.10.1 #4020

Closed maru-sama closed 2 years ago

maru-sama commented 3 years ago

I recently moved from a Pi2 to a Pi4 and started using fake kms for output on the official touchscreen. (kivy console application) Looking at the changes for 5.10 I saw that now full KMS is supported for this combination so I updated the kernel to 5.10.1 via rpi-update and did a quick test.

config.txt

 ignore_lcd=1
 dtoverlay=vc4-kms-v3d  
 dtoverlay=vc4-kms-dsi-7inch

After a reboot the screen stayed blank (no rainbow) and during the boot-up flashed to white only to fade out afterwards. In the dmesg I saw the following entries.

dmesg

[ 7.433705] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 7.433723] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 7.433820] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[ 8.473696] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 8.473713] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 8.473798] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[ 9.513694] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[ 9.513710] vc4_dsi fe700000.dsi: instat: 0x00000000
[ 9.513792] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110

Please note fake KMS is working totally fine on the same hardware.

maru-sama commented 3 years ago

Here a full DMESG output. So apparently the screen is detected but does not reply?

    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.1-v7l+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1383 SMP Fri Dec 18 19:05:58 GMT 2020
[    0.000000] CPU: ARMv7 Processor [410fd083] revision 3 (ARMv7), cr=30c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi 4 Model B Rev 1.4
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Reserved memory: created CMA memory pool at 0x000000001ec00000, size 256 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x000000002fffffff]
[    0.000000]   Normal   empty
[    0.000000]   HighMem  [mem 0x0000000030000000-0x00000001ffffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003b3fffff]
[    0.000000]   node   0: [mem 0x0000000040000000-0x00000000fbffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x00000001ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000001ffffffff]
[    0.000000] On node 0 totalpages: 2061312
[    0.000000]   DMA zone: 2304 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 196608 pages, LIFO batch:63
[    0.000000]   HighMem zone: 1864704 pages, LIFO batch:63
[    0.000000] percpu: Embedded 20 pages/cpu s50572 r8192 d23156 u81920
[    0.000000] pcpu-alloc: s50572 r8192 d23156 u81920 alloc=20*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 2059008
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1  smsc95xx.macaddr=DC:A6:32:D5:EA:2B vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait video=DSI-1:800x480@60,rotate=180
[    0.000000] Kernel parameter elevator= does not have any effect anymore.
               Please use sysfs to set IO scheduler for individual devices.
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x0000000014c00000-0x0000000018c00000] (64MB)
[    0.000000] Memory: 7800092K/8245248K available (10240K kernel code, 1353K rwdata, 3152K rodata, 2048K init, 890K bss, 183012K reserved, 262144K cma-reserved, 7458816K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 33808 entries in 67 pages
[    0.000000] ftrace: allocated 67 pages with 3 groups
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU 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] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x3c8/0x59c with crng_init=0
[    0.000009] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 2147483647500ns
[    0.000036] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
[    0.000100] bcm2835: system timer (irq = 25)
[    0.000755] arch_timer: cp15 timer(s) running at 54.00MHz (phys).
[    0.000777] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns
[    0.000800] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns
[    0.000818] Switching to timer-based delay loop, resolution 18ns
[    0.001071] Console: colour dummy device 80x30
[    0.001839] printk: console [tty1] enabled
[    0.001905] Calibrating delay loop (skipped), value calculated using timer frequency.. 108.00 BogoMIPS (lpj=540000)
[    0.001960] pid_max: default: 32768 minimum: 301
[    0.002141] LSM: Security Framework initializing
[    0.002340] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.002387] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.003977] Disabling memory control group subsystem
[    0.004115] CPU: Testing write buffer coherency: ok
[    0.004590] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.005564] Setting up static identity map for 0x200000 - 0x20003c
[    0.005799] rcu: Hierarchical SRCU implementation.
[    0.006733] smp: Bringing up secondary CPUs ...
[    0.007987] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.009385] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.010712] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.010882] smp: Brought up 1 node, 4 CPUs
[    0.010928] SMP: Total of 4 processors activated (432.00 BogoMIPS).
[    0.010958] CPU: All CPU(s) started in HYP mode.
[    0.010985] CPU: Virtualization extensions available.
[    0.011831] devtmpfs: initialized
[    0.025874] VFP support v0.3: implementor 41 architecture 3 part 40 variant 8 rev 0
[    0.026489] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.026544] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.033334] pinctrl core: initialized pinctrl subsystem
[    0.034431] NET: Registered protocol family 16
[    0.038525] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[    0.039304] audit: initializing netlink subsys (disabled)
[    0.039579] audit: type=2000 audit(0.030:1): state=initialized audit_enabled=0 res=1
[    0.040152] thermal_sys: Registered thermal governor 'step_wise'
[    0.040880] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.040935] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.041343] Serial: AMBA PL011 UART driver
[    0.087645] bcm2835-mbox fe00b880.mailbox: mailbox enabled
[    0.100928] raspberrypi-firmware soc:firmware: Attached to firmware from 2020-12-15T18:28:46, variant start
[    0.110942] raspberrypi-firmware soc:firmware: Firmware hash is 4b4aff21f72c5b9ba39d83c7b0f8fa910a6ef99b
[    0.156078] bcm2835-dma fe007000.dma: DMA legacy API manager, dmachans=0x1
[    0.160486] vgaarb: loaded
[    0.161280] SCSI subsystem initialized
[    0.161549] usbcore: registered new interface driver usbfs
[    0.161626] usbcore: registered new interface driver hub
[    0.161762] usbcore: registered new device driver usb
[    0.162220] usb_phy_generic phy: supply vcc not found, using dummy regulator
[    0.164111] clocksource: Switched to clocksource arch_sys_counter
[    1.191666] VFS: Disk quotas dquot_6.6.0
[    1.191794] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.192037] FS-Cache: Loaded
[    1.192224] CacheFiles: Loaded
[    1.193319] simple-framebuffer 3ea83000.framebuffer: framebuffer at 0x3ea83000, 0x177000 bytes, mapped to 0x(ptrval)
[    1.193365] simple-framebuffer 3ea83000.framebuffer: format=a8r8g8b8, mode=800x480x32, linelength=3200
[    1.195723] Console: switching to colour frame buffer device 100x30
[    1.198748] simple-framebuffer 3ea83000.framebuffer: fb0: simplefb registered!
[    1.208477] NET: Registered protocol family 2
[    1.210403] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    1.211581] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    1.212796] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    1.213986] TCP: Hash tables configured (established 8192 bind 8192)
[    1.215291] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    1.216431] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    1.217777] NET: Registered protocol family 1
[    1.219668] RPC: Registered named UNIX socket transport module.
[    1.220780] RPC: Registered udp transport module.
[    1.221869] RPC: Registered tcp transport module.
[    1.222958] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.224078] PCI: CLS 0 bytes, default 64
[    1.228374] Initialise system trusted keyrings
[    1.229709] workingset: timestamp_bits=14 max_order=21 bucket_order=7
[    1.238869] zbud: loaded
[    1.241706] FS-Cache: Netfs 'nfs' registered for caching
[    1.243741] NFS: Registering the id_resolver key type
[    1.244983] Key type id_resolver registered
[    1.246054] Key type id_legacy registered
[    1.247215] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.249278] Key type asymmetric registered
[    1.250303] Asymmetric key parser 'x509' registered
[    1.251484] bounce: pool size: 64 pages
[    1.252505] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[    1.253764] io scheduler mq-deadline registered
[    1.254787] io scheduler kyber registered
[    1.260645] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
[    1.261639] brcm-pcie fd500000.pcie:   No bus range found for /scb/pcie@7d500000, using [bus 00-ff]
[    1.263577] brcm-pcie fd500000.pcie:      MEM 0x0600000000..0x063fffffff -> 0x00c0000000
[    1.264748] brcm-pcie fd500000.pcie:   IB MEM 0x0000000000..0x00bfffffff -> 0x0400000000
[    1.326220] brcm-pcie fd500000.pcie: link up, 5.0 GT/s PCIe x1 (SSC)
[    1.327557] brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00
[    1.328532] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.329522] pci_bus 0000:00: root bus resource [mem 0x600000000-0x63fffffff] (bus address [0xc0000000-0xffffffff])
[    1.331574] pci 0000:00:00.0: [14e4:2711] type 01 class 0x060400
[    1.332855] pci 0000:00:00.0: PME# supported from D0 D3hot
[    1.337429] PCI: bus0: Fast back to back transfers disabled
[    1.338777] pci 0000:01:00.0: [1106:3483] type 00 class 0x0c0330
[    1.339913] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00000fff 64bit]
[    1.341358] pci 0000:01:00.0: PME# supported from D0 D3hot
[    1.345886] PCI: bus1: Fast back to back transfers disabled
[    1.346974] pci 0000:00:00.0: BAR 8: assigned [mem 0x600000000-0x6000fffff]
[    1.348033] pci 0000:01:00.0: BAR 0: assigned [mem 0x600000000-0x600000fff 64bit]
[    1.349125] pci 0000:00:00.0: PCI bridge to [bus 01]
[    1.350144] pci 0000:00:00.0:   bridge window [mem 0x600000000-0x6000fffff]
[    1.351567] pcieport 0000:00:00.0: enabling device (0140 -> 0142)
[    1.352803] pcieport 0000:00:00.0: PME: Signaling with IRQ 71
[    1.364344] iproc-rng200 fe104000.rng: hwrng registered
[    1.365734] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    1.367704] gpiomem-bcm2835 fe200000.gpiomem: Initialised: Registers at 0xfe200000
[    1.381770] brd: module loaded
[    1.395054] loop: module loaded
[    1.397786] Loading iSCSI transport class v2.0-870.
[    1.401222] libphy: Fixed MDIO Bus: probed
[    1.403717] bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000
[    1.424179] libphy: bcmgenet MII bus: probed
[    1.524290] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus
[    1.526455] usbcore: registered new interface driver r8152
[    1.527500] usbcore: registered new interface driver lan78xx
[    1.528489] usbcore: registered new interface driver smsc95xx
[    1.577687] xhci_hcd 0000:01:00.0: xHCI Host Controller
[    1.578636] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 1
[    1.582799] xhci_hcd 0000:01:00.0: hcc params 0x002841eb hci version 0x100 quirks 0x0000018000000890
[    1.586012] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[    1.587031] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.588034] usb usb1: Product: xHCI Host Controller
[    1.589034] usb usb1: Manufacturer: Linux 5.10.1-v7l+ xhci-hcd
[    1.590032] usb usb1: SerialNumber: 0000:01:00.0
[    1.591724] hub 1-0:1.0: USB hub found
[    1.592784] hub 1-0:1.0: 1 port detected
[    1.594436] xhci_hcd 0000:01:00.0: xHCI Host Controller
[    1.595415] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 2
[    1.596385] xhci_hcd 0000:01:00.0: Host supports USB 3.0 SuperSpeed
[    1.597769] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[    1.598729] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.599696] usb usb2: Product: xHCI Host Controller
[    1.600652] usb usb2: Manufacturer: Linux 5.10.1-v7l+ xhci-hcd
[    1.601616] usb usb2: SerialNumber: 0000:01:00.0
[    1.603232] hub 2-0:1.0: USB hub found
[    1.604325] hub 2-0:1.0: 4 ports detected
[    1.607190] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.608531] dwc_otg: FIQ enabled
[    1.608546] dwc_otg: NAK holdoff enabled
[    1.608560] dwc_otg: FIQ split-transaction FSM enabled
[    1.608578] Module dwc_common_port init
[    1.609094] usbcore: registered new interface driver uas
[    1.610147] usbcore: registered new interface driver usb-storage
[    1.611276] mousedev: PS/2 mouse device common for all mice
[    1.614151] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    1.618954] sdhci: Secure Digital Host Controller Interface driver
[    1.619923] sdhci: Copyright(c) Pierre Ossman
[    1.621627] mmc-bcm2835 fe300000.mmcnr: could not get clk, deferring probe
[    1.623224] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.628563] ledtrig-cpu: registered to indicate activity on CPUs
[    1.629819] hid: raw HID events driver (C) Jiri Kosina
[    1.630917] usbcore: registered new interface driver usbhid
[    1.631846] usbhid: USB HID core driver
[    1.638698] Initializing XFRM netlink socket
[    1.639688] NET: Registered protocol family 17
[    1.640741] Key type dns_resolver registered
[    1.642035] Registering SWP/SWPB emulation handler
[    1.643209] registered taskstats version 1
[    1.644168] Loading compiled-in X.509 certificates
[    1.645909] Key type ._fscrypt registered
[    1.646786] Key type .fscrypt registered
[    1.647639] Key type fscrypt-provisioning registered
[    1.660212] uart-pl011 fe201000.serial: there is not valid maps for state default
[    1.661425] uart-pl011 fe201000.serial: cts_event_workaround enabled
[    1.662412] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 37, base_baud = 0) is a PL011 rev2
[    1.670166] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    1.672193] mmc-bcm2835 fe300000.mmcnr: mmc_debug:0 mmc_debug2:0
[    1.673186] mmc-bcm2835 fe300000.mmcnr: DMA channel allocated
[    1.706812] of_cfs_init
[    1.708018] of_cfs_init: OK
[    1.723255] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    1.725877] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.728420] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.732231] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    1.734713] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    1.736949] mmc0: SDHCI controller on fe340000.emmc2 [fe340000.emmc2] using ADMA
[    1.738821] Waiting for root device /dev/mmcblk0p2...
[    1.783183] random: fast init done
[    1.841803] mmc0: new ultra high speed DDR50 SDXC card at address e624
[    1.844969] mmcblk0: mmc0:e624 SF128 119 GiB
[    1.849923]  mmcblk0: p1 p2
[    1.854198] mmc1: new high speed SDIO card at address 0001
[    1.877042] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.878024] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.884175] devtmpfs: mounted
[    1.893979] Freeing unused kernel memory: 2048K
[    1.934454] Run /sbin/init as init process
[    1.935359]   with arguments:
[    1.935374]     /sbin/init
[    1.935388]   with environment:
[    1.935402]     HOME=/
[    1.935416]     TERM=linux
[    1.974182] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    2.156845] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21
[    2.157821] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    2.158739] usb 1-1: Product: USB2.0 Hub
[    2.161853] hub 1-1:1.0: USB hub found
[    2.162958] hub 1-1:1.0: 4 ports detected
[    2.304543] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[    2.336078] usb 2-1: New USB device found, idVendor=0bc2, idProduct=ab26, bcdDevice= 1.08
[    2.337079] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.338153] usb 2-1: Product: BUP Slim SL
[    2.339120] usb 2-1: Manufacturer: Seagate
[    2.340102] usb 2-1: SerialNumber: NA96VA43
[    2.368177] scsi host0: uas
[    2.370716] scsi 0:0:0:0: Direct-Access     Seagate  BUP Slim SL      0108 PQ: 0 ANSI: 6
[    2.419207] systemd[1]: System time before build time, advancing clock.
[    2.493199] sd 0:0:0:0: [sda] 1953525167 512-byte logical blocks: (1.00 TB/932 GiB)
[    2.494293] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    2.495546] sd 0:0:0:0: [sda] Write Protect is off
[    2.496703] sd 0:0:0:0: [sda] Mode Sense: 53 00 00 08
[    2.497200] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.499966] sd 0:0:0:0: [sda] Optimal transfer size 33553920 bytes not a multiple of physical block size (4096 bytes)
[    2.531609] NET: Registered protocol family 10
[    2.534043] Segment Routing with IPv6
[    2.570989]  sda: sda1
[    2.575400] sd 0:0:0:0: [sda] Attached SCSI disk
[    2.602186] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[    2.606751] systemd[1]: Detected architecture arm.
[    2.677691] systemd[1]: Set hostname to <rpi>.
[    3.433901] systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/smbd.pid → /run/samba/smbd.pid; please update the unit file accordingly.
[    3.486827] systemd[1]: /lib/systemd/system/nmbd.service:9: PIDFile= references path below legacy directory /var/run/, updating /var/run/samba/nmbd.pid → /run/samba/nmbd.pid; please update the unit file accordingly.
[    3.512834] systemd[1]: /lib/systemd/system/rpc-statd.service:13: PIDFile= references path below legacy directory /var/run/, updating /var/run/rpc.statd.pid → /run/rpc.statd.pid; please update the unit file accordingly.
[    3.643414] random: systemd: uninitialized urandom read (16 bytes read)
[    3.666623] random: systemd: uninitialized urandom read (16 bytes read)
[    3.667995] systemd[1]: Reached target Swap.
[    3.671891] random: systemd: uninitialized urandom read (16 bytes read)
[    3.673699] systemd[1]: Listening on Journal Audit Socket.
[    3.677937] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    3.687095] systemd[1]: Created slice system-wpa_supplicant.slice.
[    3.999091] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    4.329509] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    4.489221] systemd-journald[136]: Received request to flush runtime journal from PID 1
[    5.060053] rpivid-mem feb00000.hevc-decoder: rpivid-hevcmem initialised: Registers at 0xfeb00000 length 0x00010000
[    5.061038] rpivid-mem feb10000.rpivid-local-intc: rpivid-intcmem initialised: Registers at 0xfeb10000 length 0x00001000
[    5.061644] rpivid-mem feb20000.h264-decoder: rpivid-h264mem initialised: Registers at 0xfeb20000 length 0x00010000
[    5.063151] rpivid-mem feb30000.vp9-decoder: rpivid-vp9mem initialised: Registers at 0xfeb30000 length 0x00010000
[    5.148554] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[    5.150807] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[    5.150833] [vc_sm_connected_init]: start
[    5.165237] mc: Linux media interface: v0.10
[    5.201637] [vc_sm_connected_init]: installed successfully
[    5.206262] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[    5.246240] videodev: Linux video capture interface: v2.00
[    5.264026] bcm2835_audio bcm2835_audio: card created with 8 channels
[    5.304522] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    5.346567] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[    5.348390] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[    5.353179] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[    5.356452] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[    5.357447] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[    5.357963] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[    5.358380] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[    5.358409] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[    5.358434] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[    5.358465] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[    5.358488] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[    5.358697] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp
[    5.363420] i2c i2c-11: Added multiplexed i2c bus 0
[    5.363926] i2c i2c-11: Added multiplexed i2c bus 10
[    5.373762] brcmstb-i2c fef04500.i2c:  @97500hz registered in polling mode
[    5.374559] brcmstb-i2c fef09500.i2c:  @97500hz registered in polling mode
[    5.386151] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    5.397506] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    5.397576] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[    5.403340] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    5.403397] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[    5.415493] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[    5.415541] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[    5.583366] input: raspberrypi-ts as /devices/platform/soc/soc:firmware/soc:firmware:touchscreen/input/input0
[    5.651082] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    5.676283] [drm] Initialized v3d 1.0.0 20180419 for fec00000.v3d on minor 0
[    5.728965] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    5.731471] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.742219] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    5.747561] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.784145] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    5.854441] brcmfmac: F1 signature read @0x18000000=0x15264345
[    5.860848] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    5.872937] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.878440] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    5.879354] usbcore: registered new interface driver brcmfmac
[    5.885361] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    5.887152] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.902144] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt failed with error -2
[    5.917862] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    5.920268] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.927537] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    5.932374] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops [vc4])
[    6.142239] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    6.153471] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Mar 23 2020 02:19:54 version 7.45.206 (r725000 CY) FWID 01-88ee44ea
[    6.407385] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    6.564142] raid6: neonx8   gen()  1376 MB/s
[    6.734195] raid6: neonx8   xor()   890 MB/s
[    6.904111] raid6: neonx4   gen()  1554 MB/s
[    7.074112] raid6: neonx4   xor()  1012 MB/s
[    7.244104] raid6: neonx2   gen()  1504 MB/s
[    7.414101] raid6: neonx2   xor()  1129 MB/s
[    7.584107] raid6: neonx1   gen()  1155 MB/s
[    7.754102] raid6: neonx1   xor()   968 MB/s
[    7.924113] raid6: int32x8  gen()   378 MB/s
[    8.094118] raid6: int32x8  xor()   227 MB/s
[    8.264133] raid6: int32x4  gen()   383 MB/s
[    8.434130] raid6: int32x4  xor()   264 MB/s
[    8.604142] raid6: int32x2  gen()   412 MB/s
[    8.774127] raid6: int32x2  xor()   238 MB/s
[    8.944143] raid6: int32x1  gen()   413 MB/s
[    9.114150] raid6: int32x1  xor()   195 MB/s
[    9.114167] raid6: using algorithm neonx4 gen() 1554 MB/s
[    9.114183] raid6: .... xor() 1012 MB/s, rmw enabled
[    9.114199] raid6: using neon recovery algorithm
[    9.123287] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[    9.125095] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    9.126632] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops [vc4])
[    9.127970] vc4-drm gpu: bound fe700000.dsi (ops vc4_dsi_ops [vc4])
[    9.128265] vc4-drm gpu: bound fe400000.hvs (ops vc4_hvs_ops [vc4])
[    9.128610] vc4-drm gpu: bound fe004000.txp (ops vc4_txp_ops [vc4])
[    9.128915] vc4-drm gpu: bound fe206000.pixelvalve (ops vc4_crtc_ops [vc4])
[    9.129245] vc4-drm gpu: bound fe207000.pixelvalve (ops vc4_crtc_ops [vc4])
[    9.129535] vc4-drm gpu: bound fe20a000.pixelvalve (ops vc4_crtc_ops [vc4])
[    9.129786] vc4-drm gpu: bound fe216000.pixelvalve (ops vc4_crtc_ops [vc4])
[    9.130095] vc4-drm gpu: bound fec12000.pixelvalve (ops vc4_crtc_ops [vc4])
[    9.130940] checking generic (3ea83000 177000) vs hw (0 ffffffffffffffff)
[    9.130957] fb0: switching to vc4drmfb from simple
[    9.131715] Console: switching to colour dummy device 80x30
[    9.142770] xor: measuring software checksum speed
[    9.149436]    arm4regs        :  1522 MB/sec
[    9.155540] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[    9.158007]    8regs           :  1155 MB/sec
[    9.166609]    32regs          :  1148 MB/sec
[    9.170699]    neon            :  2464 MB/sec
[    9.170722] xor: using function: neon (2464 MB/sec)
[    9.194844] [drm] Initialized vc4 0.0.0 20140616 for gpu on minor 1
[    9.355587] Btrfs loaded, crc32c=crc32c-generic
[    9.360001] BTRFS: device fsid fc782a4e-f774-4ce5-a4ad-6f7004756632 devid 1 transid 5902 /dev/sda1 scanned by systemd-udevd (181)
[   10.314153] i2c-bcm2835 fe205000.i2c: i2c transfer timed out
[   11.354142] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   11.354159] vc4_dsi fe700000.dsi: instat: 0x00000000
[   11.354255] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   12.394138] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   12.394154] vc4_dsi fe700000.dsi: instat: 0x00000000
[   12.394240] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   13.434152] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   13.434168] vc4_dsi fe700000.dsi: instat: 0x00000000
[   13.434249] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   14.474141] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   14.474156] vc4_dsi fe700000.dsi: instat: 0x00000000
[   14.474236] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   15.514141] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   15.514156] vc4_dsi fe700000.dsi: instat: 0x00000000
[   15.514232] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   16.554140] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   16.554155] vc4_dsi fe700000.dsi: instat: 0x00000000
[   16.554231] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   17.594141] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   17.594156] vc4_dsi fe700000.dsi: instat: 0x00000000
[   17.594230] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   18.634140] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   18.634155] vc4_dsi fe700000.dsi: instat: 0x00000000
[   18.634229] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   19.674145] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   19.674160] vc4_dsi fe700000.dsi: instat: 0x00000000
[   19.674233] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   20.874140] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   20.874155] vc4_dsi fe700000.dsi: instat: 0x00000000
[   20.874228] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   21.914139] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   21.914154] vc4_dsi fe700000.dsi: instat: 0x00000000
[   21.914226] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   22.035199] Console: switching to colour frame buffer device 100x30
[   22.043870] vc4-drm gpu: [drm] fb0: vc4drmfb frame buffer device
[   22.766193] BTRFS info (device sda1): disk space caching is enabled
[   22.766216] BTRFS info (device sda1): has skinny extents
[   23.188706] random: crng init done
[   23.188727] random: 7 urandom warning(s) missed due to ratelimiting
[   23.220490] uart-pl011 fe201000.serial: no DMA platform data
[   23.604522] Adding 102396k swap on /var/swap.  Priority:-2 extents:1 across:102396k SSFS
[   25.393505] capability: warning: `jsvc' uses 32-bit capabilities (legacy support in use)
[   25.883037] NFSD: Using UMH upcall client tracking operations.
[   25.883059] NFSD: starting 90-second grace period (net f0000089)
[   29.354097] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   30.240228] Bluetooth: Core ver 2.22
[   30.240268] NET: Registered protocol family 31
[   30.240275] Bluetooth: HCI device and connection manager initialized
[   30.240294] Bluetooth: HCI socket layer initialized
[   30.240304] Bluetooth: L2CAP socket layer initialized
[   30.240319] Bluetooth: SCO socket layer initialized
[   30.250763] Bluetooth: HCI UART driver ver 2.3
[   30.250773] Bluetooth: HCI UART protocol H4 registered
[   30.250812] Bluetooth: HCI UART protocol Three-wire (H5) registered
[   30.250975] Bluetooth: HCI UART protocol Broadcom registered
[   30.454274] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   30.454283] Bluetooth: BNEP filters: protocol multicast
[   30.454298] Bluetooth: BNEP socket layer initialized
[   45.520841] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   45.524306] Bridge firewalling registered
[   47.572083] br-be0e9e6485fd: port 1(veth3b99087) entered blocking state
[   47.572095] br-be0e9e6485fd: port 1(veth3b99087) entered disabled state
[   47.572625] device veth3b99087 entered promiscuous mode
[   47.574640] br-be0e9e6485fd: port 1(veth3b99087) entered blocking state
[   47.574650] br-be0e9e6485fd: port 1(veth3b99087) entered forwarding state
[   47.574863] br-be0e9e6485fd: port 1(veth3b99087) entered disabled state
[   48.700241] cgroup: cgroup: disabling cgroup2 socket matching due to net_prio or net_cls activation
[   49.516350] eth0: renamed from veth83b355a
[   49.575831] IPv6: ADDRCONF(NETDEV_CHANGE): veth3b99087: link becomes ready
[   49.575942] br-be0e9e6485fd: port 1(veth3b99087) entered blocking state
[   49.575950] br-be0e9e6485fd: port 1(veth3b99087) entered forwarding state
[   49.576090] IPv6: ADDRCONF(NETDEV_CHANGE): br-be0e9e6485fd: link becomes ready
6by9 commented 3 years ago

Is your firmware up to date? vcgencmd version The main reason behind the timeouts was that the VPU (firmware) had been registering for the interrupts too, and was typically faster at responding to them than the ARM. The ARM therefore timed out. The transactions had actually been sent, but the kernel driver aborted at that point.

I've just had a niggle at the back of my mind as to whether that fix has indeed been merged. I think I may have thought I'd found an issue, but then not gone back to it once I'd convinced myself it was OK. I'll check later.

pelwell commented 3 years ago

@6by9 This might jog your memory:

just found issues getting DISP0 to work on CM4 with the DSI transfer side of this change. WIP tag added for now.

maru-sama commented 3 years ago

Hi,

vcgencmd version
Dec 15 2020 18:28:46
Copyright (c) 2012 Broadcom
version 4b4aff21f72c5b9ba39d83c7b0f8fa910a6ef99b (clean) (release) (start)

Looks recent

6by9 commented 3 years ago

@pelwell Not working today hence I wasn't firing up the VPN etc to check :-) I thought adding ignore_lcd=1 should have worked around that anyway, but maybe not. I'll be checking tomorrow.

@maru-sama Thanks - it was just one that I wanted to check to avoid a wild goose chase.

maru-sama commented 3 years ago

It really looks like a race condition.

Using:

dtoverlay=rpi-ft5406
ignore_lcd=1
dtoverlay=vc4-kms-v3d,nocomposite,noaudio
dtoverlay=vc4-kms-dsi-7inch

Sometimes works from a cold boot. The brightness is not reduced though and the touch does not work. Rebooting always ends up in a non working setup.

6by9 commented 3 years ago

dtoverlay=rpi-ft5406 NO!

It shouldn't result in any harm, but that polls the firmware for the touchscreen data. The firmware is not longer involved in the process as everything is moved to the kernel.

Touch is via the edt-ft5406 overlay as per the README https://github.com/raspberrypi/linux/blob/rpi-5.10.y/arch/arm/boot/dts/overlays/README#L742 There is definitely a race condition there as the panel driver also includes power control to the display and touchscreen with no co-ordination with the touchscreen driver. During probe it tends not to have been enabled, and should the screen power down due to the screensaver etc then it kills the touchscreen power too. The issue with probe can be overcome by blacklisting the edt-ft5x06 module and manually modprobing after the display is up, but you still need to avoid the screen powering down.

There are alternate drivers for the TC358762 as a bridge and the ATTiny regulator to solve these, but I haven't got the overlays fully working for those.

maru-sama commented 3 years ago

Hmm, You are right I forgot to change this when trying it out. Now apparently after a cold boot the display comes up BUT

6by9 commented 3 years ago

Hmm, sounds very odd. I've just tested with my 7" DSI panel on a Pi4 and it's fine. It is the earlier version of the panel, but I don't know if that will make a difference.

That driver doesn't register a backlight driver, so there is no backlight control - it should come on during boot and stay on. (The reworked drivers do register a backlight driver).

maru-sama commented 3 years ago

Interesting that it works for you. In the meantime I had to revert back 5.4.79, since Bluetooth and wlan die after some uptime. The System was working fine otherwise. Could there be a general issue with 5.10 and my issue with the touchscreen just one manifestation of it? Before I forgot on 5,10 also playing videos via the touch froze after around 30 seconds. Works perfectly fine with 5.4.79.

maru-sama commented 3 years ago

Good Morning,

I updated to 5.10.2 and now it seems to work fine. I am still getting the timeouts in the logs, but the screen looks normal and the touchscreen works.

Scratch that. It worked once after a reboot but then I got the same behaviour again. I will wait for the new drivers to test again.

6by9 commented 3 years ago

The only thing I can think of is that mine is a first revision controller board which didn't support backlight dimming (just on/off). In theory the regulator/backlight controller is totally compatible, but it's just possible that there is something funny going on.

maru-sama commented 3 years ago

I still get the interrupt errors though, is this something you see as well?

maru-sama commented 3 years ago

Are you trying this on the console or X? I added a video= to the cmdline to be able to see the output.

mingzhangqun commented 3 years ago

@maru-sama Hi, Have you solved the problem yet? I have the same problem as you with version 5.10.4-v7l+.

[ 8.362692] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled [ 8.620286] bcmgenet fd580000.ethernet: configuring instance for external RGMII (RX delay) [ 8.620752] bcmgenet fd580000.ethernet eth0: Link is Down [ 9.994390] vc4_dsi fe700000.dsi: transfer interrupt wait timeout [ 9.994407] vc4_dsi fe700000.dsi: instat: 0x00000000 [ 9.994506] [drm:vc4_dsi_host_transfer [vc4]] ERROR DSI transfer failed, resetting: -110 [ 11.034356] vc4_dsi fe700000.dsi: transfer interrupt wait timeout [ 11.034373] vc4_dsi fe700000.dsi: instat: 0x00000000 [ 11.034468] [drm:vc4_dsi_host_transfer [vc4]] ERROR DSI transfer failed, resetting: -110 [ 12.234366] vc4_dsi fe700000.dsi: transfer interrupt wait timeout [ 12.234384] vc4_dsi fe700000.dsi: instat: 0x00000000 [ 12.234480] [drm:vc4_dsi_host_transfer [vc4]] ERROR DSI transfer failed, resetting: -110 [ 13.900398] broken atomic modeset userspace detected, disabling atomic

maru-sama commented 3 years ago

No, For the time being I moved back to fkms to be able to use the screen with my rpi4.

vianpl commented 3 years ago

Hi running 5.10.6-v7l+ (32f9280932f948ecd43), RPi4b on a rather old 7" display, with:

ignore_lcd=1
dtoverlay=vc4-kms-v3d-pi4
dtoverlay=vc4-kms-dsi-7inch

I get the following output (only the relevant bits):

[    4.784819] i2c i2c-11: Added multiplexed i2c bus 0
[    4.785688] i2c i2c-11: Added multiplexed i2c bus 10
[    4.988954] [drm] Initialized v3d 1.0.0 20180419 for fec00000.v3d on minor 0
[    5.070882] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    5.072524] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.087282] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    5.089385] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.325124] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    5.333232] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.347156] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    5.349425] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.392014] debugfs: Directory 'fef00700.hdmi' with parent 'vc4-hdmi-0' already present!
[    5.393618] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.399523] debugfs: Directory 'fef05700.hdmi' with parent 'vc4-hdmi-1' already present!
[    5.401735] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops [vc4])
[    5.936155] rpi_touchscreen 10-0045: Atmel I2C read failed: -5

Works fine with fkms. Note that I see something similar using upstream 64-bit Linux plus some patches from rpi's tree.

6by9 commented 3 years ago

Now I've completed a critical piece of work I'm investigating this. It did work when I created the PR adding the overlays and driver tweaks, but it's not working for me now either on our rpi-5.9.y or rpi-5.10.y branches. I know I checked it on probably 5.10.3 or similar when I made my comments earlier in the thread.

Two issues:

rpi_touchscreen 10-0045: Atmel I2C read failed: -5 is the Atmel controller having hung with SDA pulled low. You'll see all addresses reporting if you use sudo i2cdetect -y 10 in this case, and the display needs to be power cycled. Using the kernel drivers seems to get it into this "upset" mode more frequently than the firmware.

vc4_dsi fe700000.dsi: transfer interrupt wait timeout is the stranger one as there should be very little stopping the LP mode transmission of the commands, and the interrupt triggers when that transmission is complete. It's possible if the display isn't powered that it could be holding the DSI data lines in a particular state, but that should be reported as LP-11 or LP-00 contention.

...

Syncing back to afe38f9dbeef7ffffafc9db963602167b5bdbc33 which was what was pushed as PR #3954 and it has just worked fine.

My other realisation is that I have almost always had a camera module connected to the camera connector on the Pi. It shouldn't make a difference, but they do share an I2C bus.

maru-sama commented 3 years ago

Hello,

Is there an update on this issue? I recently set-up a new rpi4 and totally forgot about this issue. Took my some time to figure out why it was not working.

JamesH65 commented 3 years ago

It's all in progress, there has been a lot of churn on this part of the codebase, but its getting there.

tenderlove commented 3 years ago

Hi, I've been running in to this issue too. I'm seeing this in dmesg:

[    5.981293] vc4_dsi fe700000.dsi: instat: 0x00000000
[    5.981348] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[    7.005264] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[    7.005278] vc4_dsi fe700000.dsi: instat: 0x00000000
[    7.005323] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[    8.029262] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[    8.029275] vc4_dsi fe700000.dsi: instat: 0x00000000
[    8.029317] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[    9.053267] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[    9.053281] vc4_dsi fe700000.dsi: instat: 0x00000000
[    9.053324] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110
[   10.173267] vc4_dsi fe700000.dsi: transfer interrupt wait timeout
[   10.173280] vc4_dsi fe700000.dsi: instat: 0x00000000
[   10.173320] [drm:vc4_dsi_host_transfer [vc4]] *ERROR* DSI transfer failed, resetting: -110

From /proc/cpuinfo:

Hardware    : BCM2835
Revision    : d03114
Serial      : 1000000030d2e3e5
Model       : Raspberry Pi 4 Model B Rev 1.4

Also one interesting datapoint is that I'm running with the 64bit OS:

pi@cyberdeck:~ $ uname -a
Linux cyberdeck 5.10.60-v8+ #1449 SMP PREEMPT Wed Aug 25 15:01:33 BST 2021 aarch64 GNU/Linux
pi@cyberdeck:~ $ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

If there's anything I can do to help with this issue, please let me know!

tenderlove commented 3 years ago

I forgot to mention, this is in my config.txt:

ignore_lcd=1
dtoverlay=vc4-kms-v3d,nocomposite,noaudio
dtoverlay=vc4-kms-dsi-7inch
max_framebuffers=2
arm_64bit=1
maru-sama commented 2 years ago

Hi, with bullseye now available I want to know if there has been progress on this since as far as I understood bullseye is switching to the real KMS and not fkms.

JamesH65 commented 2 years ago

This should be working. We have had some reports of issues on Pi3 and earlier, but AFAIK, Pi4 should work OK, although you will need to add the appropriate dtoverlay entry in config.txt to turn on the display. I think it is dtoverlay=vc4-kms-dsi-7inch

pelwell commented 2 years ago

Note that the config,txt file supplied with Bullseye images includes display_auto_detect=1, causing the firmware to check for the official display and, if found, automatically load the vc4-kms-dsi-7inch overlay.

JamesH65 commented 2 years ago

Ahh, thought there would be something I had missed, thanks @pelwell

maru-sama commented 2 years ago

Ok, i tried it after updating to bullseye and while I now have a display I still have the following errors with my setup here.

I cannot rotate the display. With fkms I can do

dtoverlay=rpi-ft5406,touchscreen-inverted-x=1,touchscreen-inverted-y=1

and the touchscreen gets rotated correctly. The second more grave issue for me is that I use the touchscreen with a python kivy app with uses SDL2 for the window WITHOUT X11.

With fkms I see

[INFO ] Window: Provider: sdl2 [INFO ] GL: Using the "OpenGL" graphics system [INFO ] GL: Backend used [INFO ] GL: OpenGL version <b'OpenGL ES 3.1 Mesa 20.3.5'> [INFO ] GL: OpenGL vendor <b'Broadcom'> [INFO ] GL: OpenGL renderer <b'V3D 4.2'> [INFO ] GL: OpenGL parsed version: 3, 1 [INFO ] GL: Shading version <b'OpenGL ES GLSL ES 3.10'> [INFO ] GL: Texture max size <4096> [INFO ] GL: Texture max units <16>

With the kms provider I get an error

[INFO ] Window: Provider: sdl2 [CRITICAL] Window: Unable to find any valuable Window provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes

Both issues stop me from using it in production (installed in the kitchen to control our sonos system :)

maru-sama commented 2 years ago

Hi,

A short update on this one, adding the following entries to config.txt made it work

dtoverlay=vc4-kms-v3d,nocomposite,noaudio dtoverlay=vc4-kms-dsi-7inch,invx=1,invy=1

Before that I tried it with display_auto_detect but it did not work

StefanGubler commented 2 years ago

I've tried this on a CM4 and it's not working. Can you please provide the full config.txt ?

Very strange, that Raspberry Pi does not support his own display

maru-sama commented 2 years ago

Hi, the only settings that are enabled in my config are

dtparm=i2c_arm=on
start_x=0
enable_uart=0
[all]
dtoverlay=vc4-kms-v3d,nocomposite,noaudio
dtoverlay=vc4-kms-dsi-7inch,invx=1,invy=1

Pleaste note it also works without invx and invy. I just have to add this since I have one of the original pimoroni stands for the touchscreen which was build the wrong way around.