Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Official Raspberry DSI 7" Display not working #4686

Open
mat-l opened this issue Nov 10, 2021 · 74 comments
Open

Official Raspberry DSI 7" Display not working #4686

mat-l opened this issue Nov 10, 2021 · 74 comments

Comments

@mat-l
Copy link

mat-l commented Nov 10, 2021

Describe the bug
After switching on the RPi 3b the rainbow color screen is loading and the Raspberry Pi Logo is shown. Afterwards the display switches off and stays off. Starting with a hdmi cable is working.

To reproduce
I have restartet the system several times, but the display not not staying active.

Expected behaviour
Well, the display should work as in RPiOS Buster

Actual behaviour
DSI Display not working

System
Copy and paste the results of the raspinfo command in to this section. Alternatively, copy and paste a pastebin link, or add answers to the following questions:

raspinfo
System Information

Raspberry Pi 3 Model B Rev 1.2
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"

Raspberry Pi reference 2021-10-30
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 288b21fc27e128ea6b330777aca68e0061ebf4fe, stage4

Linux raspberrypi 5.10.63-v7+ #1459 SMP Wed Oct 6 16:41:10 BST 2021 armv7l GNU/Linux
Revision : a02082
Serial : 0000000072004c0f
Model : Raspberry Pi 3 Model B Rev 1.2
Throttled flag : throttled=0x50005
Camera : supported=0 detected=0

Videocore information

Oct 29 2021 10:49:08
Copyright (c) 2012 Broadcom
version b8a114e5a9877e91ca8f26d1a5ce904b2ad3cf13 (clean) (release) (start)

alloc failures: 0
compactions: 0
legacy block fails: 0

Filesystem information

Dateisystem 1K-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
/dev/root 30357404 3419364 25651824 12% /
devtmpfs 340904 0 340904 0% /dev
tmpfs 472488 0 472488 0% /dev/shm
tmpfs 188996 812 188184 1% /run
tmpfs 5120 4 5116 1% /run/lock
/dev/mmcblk0p1 258095 49240 208856 20% /boot
tmpfs 94496 20 94476 1% /run/user/1000

Filename Type Size Used Priority
/var/swap file 102396 0 -2

Package version information

raspberrypi-ui-mods:
Installiert: 1.20211027
raspberrypi-sys-mods:
Installiert: 20211005+bullseye
openbox:
Installiert: 3.6.1-9+rpt1+deb11u1
lxpanel:
Installiert: 0.10.1-2+rpt8
pcmanfm:
Installiert: 1.3.2-1+rpt5
rpd-plym-splash:
Installiert: 0.29

Networking Information

eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether m.m.m.m txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet x.x.x.x netmask x.x.x.x
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Lokale Schleife)
RX packets 26 bytes 2652 (2.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 26 bytes 2652 (2.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet x.x.x.x netmask x.x.x.x broadcast x.x.x.x
inet6 y.y.y.y.y.y.y.y prefixlen 64 scopeid 0x0
inet6 y::y.y.y.y prefixlen 64 scopeid 0x20
ether m.m.m.m txqueuelen 1000 (Ethernet)
RX packets 841 bytes 59211 (57.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 118 bytes 13556 (13.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

USB Information

/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
|__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 3: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 3: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M

config.txt

aphy_params_current=819
arm_freq=1200
arm_freq_min=600
audio_pwm_mode=514
camera_auto_detect=1
config_hdmi_boost=5
core_freq=400
desired_osc_freq=0x387520
disable_commandline_tags=2
disable_l2cache=1
disable_overscan=1
display_auto_detect=1
display_hdmi_rotate=-1
display_lcd_rotate=-1
dphy_params_current=547
dvfs=3
enable_tvout=1
force_eeprom_read=1
force_pwm_open=1
framebuffer_height=480
framebuffer_ignore_alpha=1
framebuffer_swap=1
framebuffer_width=800
gpu_freq=300
init_uart_clock=0x2dc6c00
lcd_framerate=60
mask_gpu_interrupt0=3072
mask_gpu_interrupt1=26370
max_framebuffers=2
over_voltage_avs=0x1b774
pause_burst_frames=1
program_serial_random=1
sdram_freq=450
total_mem=1024
hdmi_force_cec_address:0=65535
hdmi_force_cec_address:1=65535
hdmi_pixel_freq_limit:0=0x9a7ec80
device_tree=-
overlay_prefix=overlays/
hdmi_cvt:0=
hdmi_cvt:1=
hdmi_edid_filename:0=
hdmi_edid_filename:1=
hdmi_timings:0=
hdmi_timings:1=

cmdline.txt

coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 video=HDMI-A-1:1920x1080M@60 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=7ae14fc7-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

raspi-gpio settings

BANK0 (GPIO 0 to 27):
GPIO 0: level=1 fsel=0 func=INPUT
GPIO 1: level=1 fsel=0 func=INPUT
GPIO 2: level=1 fsel=0 func=INPUT
GPIO 3: level=1 fsel=0 func=INPUT
GPIO 4: level=1 fsel=0 func=INPUT
GPIO 5: level=0 fsel=0 func=INPUT
GPIO 6: level=1 fsel=0 func=INPUT
GPIO 7: level=1 fsel=0 func=INPUT
GPIO 8: level=1 fsel=0 func=INPUT
GPIO 9: level=0 fsel=0 func=INPUT
GPIO 10: level=0 fsel=0 func=INPUT
GPIO 11: level=0 fsel=0 func=INPUT
GPIO 12: level=0 fsel=0 func=INPUT
GPIO 13: level=0 fsel=0 func=INPUT
GPIO 14: level=0 fsel=0 func=INPUT
GPIO 15: level=1 fsel=0 func=INPUT
GPIO 16: level=0 fsel=0 func=INPUT
GPIO 17: level=0 fsel=0 func=INPUT
GPIO 18: level=0 fsel=0 func=INPUT
GPIO 19: level=0 fsel=0 func=INPUT
GPIO 20: level=0 fsel=0 func=INPUT
GPIO 21: level=0 fsel=0 func=INPUT
GPIO 22: level=0 fsel=0 func=INPUT
GPIO 23: level=0 fsel=0 func=INPUT
GPIO 24: level=0 fsel=0 func=INPUT
GPIO 25: level=0 fsel=0 func=INPUT
GPIO 26: level=0 fsel=0 func=INPUT
GPIO 27: level=0 fsel=0 func=INPUT
BANK1 (GPIO 28 to 45):
GPIO 28: level=0 fsel=0 func=INPUT
GPIO 29: level=1 fsel=0 func=INPUT
GPIO 30: level=0 fsel=0 func=INPUT
GPIO 31: level=0 fsel=0 func=INPUT
GPIO 32: level=1 fsel=7 alt=3 func=TXD0
GPIO 33: level=1 fsel=7 alt=3 func=RXD0
GPIO 34: level=1 fsel=7 alt=3 func=SD1_CLK
GPIO 35: level=1 fsel=7 alt=3 func=SD1_CMD
GPIO 36: level=1 fsel=7 alt=3 func=SD1_DAT0
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1
GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2
GPIO 39: level=1 fsel=7 alt=3 func=SD1_DAT3
GPIO 40: level=1 fsel=4 alt=0 func=PWM0
GPIO 41: level=1 fsel=4 alt=0 func=PWM1
GPIO 42: level=0 fsel=4 alt=0 func=GPCLK1
GPIO 43: level=1 fsel=4 alt=0 func=GPCLK2
GPIO 44: level=1 fsel=0 func=INPUT
GPIO 45: level=1 fsel=0 func=INPUT
BANK2 (GPIO 46 to 53):
GPIO 46: level=1 fsel=0 func=INPUT
GPIO 47: level=1 fsel=1 func=OUTPUT
GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK
GPIO 49: level=1 fsel=4 alt=0 func=SD0_CMD
GPIO 50: level=1 fsel=4 alt=0 func=SD0_DAT0
GPIO 51: level=1 fsel=4 alt=0 func=SD0_DAT1
GPIO 52: level=1 fsel=4 alt=0 func=SD0_DAT2
GPIO 53: level=1 fsel=4 alt=0 func=SD0_DAT3

vcdbg log messages

Failed to allocate -201253077 bytes for message buffer

dmesg log

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.10.63-v7+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1459 SMP Wed Oct 6 16:41:10 BST 2021
[ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Raspberry Pi 3 Model B Rev 1.2
[ 0.000000] random: fast init done
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] Reserved memory: created CMA memory pool at 0x1ec00000, 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-0x000000003b3fffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x000000003b3fffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003b3fffff]
[ 0.000000] On node 0 totalpages: 242688
[ 0.000000] DMA zone: 2133 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 242688 pages, LIFO batch:63
[ 0.000000] percpu: Embedded 20 pages/cpu s50828 r8192 d22900 u81920
[ 0.000000] pcpu-alloc: s50828 r8192 d22900 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: 240555
[ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 video=HDMI-A-1:1920x1080M@60 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=7ae14fc7-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
[ 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] Memory: 681812K/970752K available (10240K kernel code, 1312K rwdata, 2948K rodata, 1024K init, 863K bss, 26796K reserved, 262144K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] ftrace: allocating 32054 entries in 63 pages
[ 0.000000] ftrace: allocated 63 pages with 6 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] random: get_random_bytes called from start_kernel+0x3ac/0x580 with crng_init=1
[ 0.000000] arch_timer: cp15 timer(s) running at 19.20MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[ 0.000007] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[ 0.000021] Switching to timer-based delay loop, resolution 52ns
[ 0.000306] Console: colour dummy device 80x30
[ 0.000379] printk: console [tty1] enabled
[ 0.000431] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[ 0.000459] pid_max: default: 32768 minimum: 301
[ 0.000659] LSM: Security Framework initializing
[ 0.000901] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.000924] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.002382] cgroup: Disabling memory control group subsystem
[ 0.002649] CPU: Testing write buffer coherency: ok
[ 0.003153] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.004399] Setting up static identity map for 0x100000 - 0x10pi@raspberrypi:~ $ 003c
[ 0.004586] rcu: Hierarchical SRCU implementation.
[ 0.005512] smp: Bringing up secondary CPUs ...
[ 0.006682] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.007973] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.009193] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.009348] smp: Brought up 1 node, 4 CPUs
[ 0.009371] SMP: Total of 4 processors activated (153.60 BogoMIPS).
[ 0.009384] CPU: All CPU(s) started in HYP mode.
[ 0.009395] CPU: Virtualization extensions available.
[ 0.010504] devtmpfs: initialized
[ 0.028353] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4
[ 0.028613] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.028643] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[ 0.040187] pinctrl core: initialized pinctrl subsystem
[ 0.041392] NET: Registered protocol family 16
[ 0.045679] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[ 0.051404] audit: initializing netlink subsys (disabled)
[ 0.052300] thermal_sys: Registered thermal governor 'step_wise'
[ 0.053225] audit: type=2000 audit(0.050:1): state=initialized audit_enabled=0 res=1
[ 0.053408] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.053422] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.053715] Serial: AMBA PL011 UART driver
[ 0.077433] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[ 0.090162] raspberrypi-firmware soc:firmware: Attached to firmware from 2021-10-29T10:49:08, variant start
[ 0.100173] raspberrypi-firmware soc:firmware: Firmware hash is b8a114e5a9877e91ca8f26d1a5ce904b2ad3cf13
[ 0.144604] Kprobes globally optimized
[ 0.149711] bcm2835-dma 3f007000.dma: DMA legacy API manager, dmachans=0x1
[ 0.152009] SCSI subsystem initialized
[ 0.152283] usbcore: registered new interface driver usbfs
[ 0.152349] usbcore: registered new interface driver hub
[ 0.152421] usbcore: registered new device driver usb
[ 0.154465] clocksource: Switched to clocksource arch_sys_counter
[ 1.927985] VFS: Disk quotas dquot_6.6.0
[ 1.928104] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 1.928307] FS-Cache: Loaded
[ 1.928590] CacheFiles: Loaded
[ 1.929441] simple-framebuffer 3ea83000.framebuffer: framebuffer at 0x3ea83000, 0x177000 bytes, mapped to 0x(ptrval)
[ 1.929461] simple-framebuffer 3ea83000.framebuffer: format=a8r8g8b8, mode=800x480x32, linelength=3200
[ 1.929982] Console: switching to colour frame buffer device 100x30
[ 1.936336] simple-framebuffer 3ea83000.framebuffer: fb0: simplefb registered!
[ 1.947620] NET: Registered protocol family 2
[ 1.947900] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 1.949424] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 1.949569] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 1.949687] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 1.949879] TCP: Hash tables configured (established 8192 bind 8192)
[ 1.950071] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 1.950128] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 1.950477] NET: Registered protocol family 1
[ 1.951421] RPC: Registered named UNIX socket transport module.
[ 1.951435] RPC: Registered udp transport module.
[ 1.951447] RPC: Registered tcp transport module.
[ 1.951459] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 1.953334] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available
[ 1.957326] Initialise system trusted keyrings
[ 1.957626] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[ 1.967199] zbud: loaded
[ 1.969312] FS-Cache: Netfs 'nfs' registered for caching
[ 1.970215] NFS: Registering the id_resolver key type
[ 1.970266] Key type id_resolver registered
[ 1.970278] Key type id_legacy registered
[ 1.970444] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 1.970458] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[ 1.971653] Key type asymmetric registered
[ 1.971668] Asymmetric key parser 'x509' registered
[ 1.971724] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 1.971738] io scheduler mq-deadline registered
[ 1.971751] io scheduler kyber registered
[ 1.983175] bcm2835-rng 3f104000.rng: hwrng registered
[ 1.983759] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[ 1.984701] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[ 1.996928] brd: module loaded
[ 2.009221] loop: module loaded
[ 2.011070] Loading iSCSI transport class v2.0-870.
[ 2.012647] libphy: Fixed MDIO Bus: probed
[ 2.012955] usbcore: registered new interface driver lan78xx
[ 2.013022] usbcore: registered new interface driver smsc95xx
[ 2.013047] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[ 2.741328] Core Release: 2.80a
[ 2.741345] Setting default values for core params
[ 2.741375] Finished setting default values for core params
[ 2.941770] Using Buffer DMA mode
[ 2.941785] Periodic Transfer Interrupt Enhancement - disabled
[ 2.941797] Multiprocessor Interrupt Enhancement - disabled
[ 2.941810] OTG VER PARAM: 0, OTG VER FLAG: 0
[ 2.941838] Dedicated Tx FIFOs mode

[ 2.942254] WARN::dwc_otg_hcd_init:1074: FIQ DMA bounce buffers: virt = 9ed04000 dma = 0xded04000 len=9024
[ 2.942287] FIQ FSM acceleration enabled for :
Non-periodic Split Transactions
Periodic Split Transactions
High-Speed Isochronous Endpoints
Interrupt/Control Split Transaction hack enabled
[ 2.942301] dwc_otg: Microframe scheduler enabled

[ 2.942368] WARN::hcd_init_fiq:457: FIQ on core 1

[ 2.942384] WARN::hcd_init_fiq:458: FIQ ASM at 807c9984 length 36

[ 2.942401] WARN::hcd_init_fiq:497: MPHI regs_base at bb810000
[ 2.942425] dwc_otg 3f980000.usb: DWC OTG Controller
[ 2.942463] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[ 2.942513] dwc_otg 3f980000.usb: irq 89, io mem 0x00000000
[ 2.942566] Init: Port Power? op_state=1
[ 2.942578] Init: Power Port (0)
[ 2.942951] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[ 2.942968] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.942983] usb usb1: Product: DWC OTG Controller
[ 2.942998] usb usb1: Manufacturer: Linux 5.10.63-v7+ dwc_otg_hcd
[ 2.943012] usb usb1: SerialNumber: 3f980000.usb
[ 2.943764] hub 1-0:1.0: USB hub found
[ 2.943843] hub 1-0:1.0: 1 port detected
[ 2.945247] dwc_otg: FIQ enabled
[ 2.945260] dwc_otg: NAK holdoff enabled
[ 2.945272] dwc_otg: FIQ split-transaction FSM enabled
[ 2.945289] Module dwc_common_port init
[ 2.945639] usbcore: registered new interface driver usb-storage
[ 2.945945] mousedev: PS/2 mouse device common for all mice
[ 2.947302] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[ 2.950040] sdhci: Secure Digital Host Controller Interface driver
[ 2.950054] sdhci: Copyright(c) Pierre Ossman
[ 2.950747] mmc-bcm2835 3f300000.mmcnr: could not get clk, deferring probe
[ 2.951435] sdhost-bcm2835 3f202000.mmc: could not get clk, deferring probe
[ 2.951703] sdhci-pltfm: SDHCI platform and OF driver helper
[ 2.953585] ledtrig-cpu: registered to indicate activity on CPUs
[ 2.954016] hid: raw HID events driver (C) Jiri Kosina
[ 2.954175] usbcore: registered new interface driver usbhid
[ 2.954186] usbhid: USB HID core driver
[ 2.959550] Initializing XFRM netlink socket
[ 2.959596] NET: Registered protocol family 17
[ 2.959741] Key type dns_resolver registered
[ 2.960441] Registering SWP/SWPB emulation handler
[ 2.960598] registered taskstats version 1
[ 2.960631] Loading compiled-in X.509 certificates
[ 2.961534] Key type ._fscrypt registered
[ 2.961548] Key type .fscrypt registered
[ 2.961560] Key type fscrypt-provisioning registered
[ 2.973296] uart-pl011 3f201000.serial: cts_event_workaround enabled
[ 2.973402] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 114, base_baud = 0) is a PL011 rev2
[ 2.975862] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[ 2.977565] mmc-bcm2835 3f300000.mmcnr: mmc_debug:0 mmc_debug2:0
[ 2.977581] mmc-bcm2835 3f300000.mmcnr: DMA channel allocated
[ 3.004501] sdhost: log_buf @ (ptrval) (ded07000)
[ 3.042732] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 3.044397] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3.046062] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3.049039] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[ 3.053932] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[ 3.057124] of_cfs_init
[ 3.057409] of_cfs_init: OK
[ 3.058452] Waiting for root device PARTUUID=7ae14fc7-02...
[ 3.064643] Indeed it is in host mode hprt0 = 00021501
[ 3.142594] mmc0: host does not support reading read-only switch, assuming write-enable
[ 3.147174] mmc0: new high speed SDHC card at address aaaa
[ 3.148267] mmcblk0: mmc0:aaaa SD32G 29.7 GiB
[ 3.151058] mmcblk0: p1 p2
[ 3.170584] mmc1: new high speed SDIO card at address 0001
[ 3.184902] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[ 3.184919] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
[ 3.274543] usb 1-1: new high-speed USB device number 2 using dwc_otg
[ 3.274737] Indeed it is in host mode hprt0 = 00001101
[ 3.320340] EXT4-fs (mmcblk0p2): recovery complete
[ 3.322535] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 3.322631] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[ 3.323551] devtmpfs: mounted
[ 3.336714] Freeing unused kernel memory: 1024K
[ 3.337230] Run /sbin/init as init process
[ 3.337242] with arguments:
[ 3.337253] /sbin/init
[ 3.337264] splash
[ 3.337274] with environment:
[ 3.337285] HOME=/
[ 3.337306] TERM=linux
[ 3.514918] usb 1-1: New USB device found, idVendor=0424, idProduct=9514, bcdDevice= 2.00
[ 3.514945] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.515754] hub 1-1:1.0: USB hub found
[ 3.515924] hub 1-1:1.0: 5 ports detected
[ 3.834541] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[ 3.845125] systemd[1]: System time before build time, advancing clock.
[ 3.964912] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00, bcdDevice= 2.00
[ 3.964939] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.967832] smsc95xx v2.0.0
[ 3.997197] NET: Registered protocol family 10
[ 3.998586] Segment Routing with IPv6
[ 4.068209] libphy: smsc95xx-mdiobus: probed
[ 4.069478] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, m.m.m.m
[ 4.097555] systemd[1]: systemd 247.3-6+rpi1 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified)
[ 4.098735] systemd[1]: Detected architecture arm.
[ 4.100993] systemd[1]: Set hostname to .
[ 4.164642] usb 1-1.3: new full-speed USB device number 4 using dwc_otg
[ 4.315026] usb 1-1.3: New USB device found, idVendor=046a, idProduct=010e, bcdDevice= 0.13
[ 4.315054] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 4.315070] usb 1-1.3: Product: USB Wireless Device
[ 4.325559] input: USB Wireless Device as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:046A:010E.0001/input/input0
[ 4.395612] hid-generic 0003:046A:010E.0001: input,hidraw0: USB HID v1.11 Keyboard [USB Wireless Device] on usb-3f980000.usb-1.3/input0
[ 4.401383] input: USB Wireless Device as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.1/0003:046A:010E.0002/input/input1
[ 4.401945] hid-generic 0003:046A:010E.0002: input,hidraw1: USB HID v1.11 Mouse [USB Wireless Device] on usb-3f980000.usb-1.3/input1
[ 4.410357] input: USB Wireless Device Consumer Control as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.2/0003:046A:010E.0003/input/input2
[ 4.475014] hid-generic 0003:046A:010E.0003: input,hidraw2: USB HID v1.11 Device [USB Wireless Device] on usb-3f980000.usb-1.3/input2
[ 4.980640] systemd[1]: /lib/systemd/system/plymouth-start.service:16: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed.
[ 5.235896] systemd[1]: Queued start job for default target Graphical Interface.
[ 5.238324] random: systemd: uninitialized urandom read (16 bytes read)
[ 5.241346] systemd[1]: Created slice system-getty.slice.
[ 5.241792] random: systemd: uninitialized urandom read (16 bytes read)
[ 5.243084] systemd[1]: Created slice system-modprobe.slice.
[ 5.243280] random: systemd: uninitialized urandom read (16 bytes read)
[ 5.244545] systemd[1]: Created slice system-systemd\x2dfsck.slice.
[ 5.245550] systemd[1]: Created slice User and Session Slice.
[ 5.246243] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ 5.247612] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[ 5.248825] systemd[1]: Reached target Slices.
[ 5.249267] systemd[1]: Reached target Swap.
[ 5.250620] systemd[1]: Listening on Syslog Socket.
[ 5.251478] systemd[1]: Listening on fsck to fsckd communication Socket.
[ 5.251988] systemd[1]: Listening on initctl Compatibility Named Pipe.
[ 5.253460] systemd[1]: Listening on Journal Audit Socket.
[ 5.254280] systemd[1]: Listening on Journal Socket (/dev/log).
[ 5.255480] systemd[1]: Listening on Journal Socket.
[ 5.264131] systemd[1]: Listening on udev Control Socket.
[ 5.265221] systemd[1]: Listening on udev Kernel Socket.
[ 5.266543] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[ 5.271375] systemd[1]: Mounting POSIX Message Queue File System...
[ 5.277216] systemd[1]: Mounting RPC Pipe File System...
[ 5.283616] systemd[1]: Mounting Kernel Debug File System...
[ 5.290692] systemd[1]: Mounting Kernel Trace File System...
[ 5.291316] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped.
[ 5.301779] systemd[1]: Starting Restore / save the current clock...
[ 5.315189] systemd[1]: Starting Set the console keyboard layout...
[ 5.321624] systemd[1]: Starting Create list of static device nodes for the current kernel...
[ 5.329095] systemd[1]: Starting Load Kernel Module configfs...
[ 5.337631] systemd[1]: Starting Load Kernel Module drm...
[ 5.345485] systemd[1]: Starting Load Kernel Module fuse...
[ 5.371616] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[ 5.377628] systemd[1]: Starting File System Check on Root Device...
[ 5.394690] systemd[1]: Starting Journal Service...
[ 5.403669] fuse: init (API version 7.32)
[ 5.416429] systemd[1]: Starting Load Kernel Modules...
[ 5.434229] systemd[1]: Starting Coldplug All udev Devices...
[ 5.457712] systemd[1]: Mounted POSIX Message Queue File System.
[ 5.459132] systemd[1]: Mounted RPC Pipe File System.
[ 5.460353] systemd[1]: Mounted Kernel Debug File System.
[ 5.461162] systemd[1]: Mounted Kernel Trace File System.
[ 5.463616] systemd[1]: Finished Restore / save the current clock.
[ 5.467211] systemd[1]: Finished Create list of static device nodes for the current kernel.
[ 5.469448] systemd[1]: modprobe@configfs.service: Succeeded.
[ 5.470940] systemd[1]: Finished Load Kernel Module configfs.
[ 5.473135] systemd[1]: modprobe@fuse.service: Succeeded.
[ 5.474884] systemd[1]: Finished Load Kernel Module fuse.
[ 5.483950] systemd[1]: Mounting FUSE Control File System...
[ 5.503653] systemd[1]: Mounting Kernel Configuration File System...
[ 5.522244] systemd[1]: Started File System Check Daemon to report status.
[ 5.538014] systemd[1]: modprobe@drm.service: Succeeded.
[ 5.539866] i2c /dev entries driver
[ 5.544163] systemd[1]: Finished Load Kernel Module drm.
[ 5.556718] systemd[1]: Finished Load Kernel Modules.
[ 5.558454] systemd[1]: Mounted FUSE Control File System.
[ 5.559711] systemd[1]: Mounted Kernel Configuration File System.
[ 5.566599] systemd[1]: Starting Apply Kernel Variables...
[ 5.665645] systemd[1]: Finished Apply Kernel Variables.
[ 5.785314] systemd[1]: Started Journal Service.
[ 5.977471] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 6.063400] systemd-journald[126]: Received client request to flush runtime journal.
[ 6.105195] systemd-journald[126]: File /var/log/journal/7460273a68084f57a02927d8a779416d/system.journal corrupted or uncleanly shut down, renaming and replacing.
[ 7.310326] mc: Linux media interface: v0.10
[ 7.349386] videodev: Linux video capture interface: v2.00
[ 7.391060] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[ 7.399844] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[ 7.401031] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[ 7.401098] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[ 7.402143] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[ 7.403620] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[ 7.403643] [vc_sm_connected_init]: start
[ 7.414310] bcm2835_audio bcm2835_audio: card created with 8 channels
[ 7.418936] [vc_sm_connected_init]: installed successfully
[ 7.423447] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 7.431166] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[ 7.438693] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[ 7.439344] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[ 7.439769] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[ 7.440151] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[ 7.440185] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[ 7.440210] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[ 7.440359] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[ 7.440385] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[ 7.440603] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp
[ 7.465137] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[ 7.500293] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[ 7.632711] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[ 7.632772] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[ 7.645188] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[ 7.645261] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[ 7.658102] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[ 7.658155] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[ 7.669257] bcm2835-codec bcm2835-codec: Device registered as /dev/video18
[ 7.669312] bcm2835-codec bcm2835-codec: Loaded V4L2 image_fx
[ 8.014562] random: crng init done
[ 8.014610] random: 7 urandom warning(s) missed due to ratelimiting
[ 8.182502] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 8.195818] checking generic (3ea83000 177000) vs hw (0 ffffffff)
[ 8.195854] fb0: switching to vc4drmfb from simple
[ 8.198872] Console: switching to colour dummy device 80x30
[ 8.225105] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4])
[ 8.250934] Registered IR keymap rc-cec
[ 8.251210] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0
[ 8.251513] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input3
[ 8.254977] vc4_hdmi 3f902000.hdmi: Could not register sound card: -517
[ 8.352868] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 8.433235] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid
[ 8.449369] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4])
[ 8.450738] Registered IR keymap rc-cec
[ 8.451009] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0
[ 8.451306] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input4
[ 8.452353] vc4_hdmi 3f902000.hdmi: Could not register sound card: -517
[ 8.461900] brcmfmac: F1 signature read @0x18000000=0x1541a9a6
[ 8.471347] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[ 8.472495] usbcore: registered new interface driver brcmfmac
[ 8.577801] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4])
[ 8.596024] Registered IR keymap rc-cec
[ 8.596303] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0
[ 8.596607] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input5
[ 8.602324] vc4_hdmi 3f902000.hdmi: Could not register sound card: -517
[ 8.802784] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[ 8.802965] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[ 8.803066] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[ 8.803990] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0: Oct 22 2019 01:59:28 version 7.45.98.94 (r723000 CY) FWID 01-3b33decd
[ 9.725780] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4])
[ 9.737427] Registered IR keymap rc-cec
[ 9.737766] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0
[ 9.738101] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input6
[ 9.743639] vc4-drm soc:gpu: bound 3f902000.hdmi (ops vc4_hdmi_ops [vc4])
[ 9.743978] vc4-drm soc:gpu: bound 3f806000.vec (ops vc4_vec_ops [vc4])
[ 9.744382] vc4-drm soc:gpu: bound 3f004000.txp (ops vc4_txp_ops [vc4])
[ 9.754439] vc4-drm soc:gpu: bound 3f206000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 9.754941] vc4-drm soc:gpu: bound 3f207000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 9.755318] vc4-drm soc:gpu: bound 3f807000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 9.755590] vc4-drm soc:gpu: bound 3fc00000.v3d (ops vc4_v3d_ops [vc4])
[ 9.786692] [drm] Initialized vc4 0.0.0 20140616 for soc:gpu on minor 0
[ 9.879830] Console: switching to colour frame buffer device 240x67
[ 9.879911] vc4-drm soc:gpu: [drm] fb0: vc4drmfb frame buffer device
[ 9.915127] Under-voltage detected! (0x00050005)
[ 10.893359] 8021q: 802.1Q VLAN Support v1.8
[ 11.124676] Adding 102396k swap on /var/swap. Priority:-2 extents:1 across:102396k SSFS
[ 11.132631] uart-pl011 3f201000.serial: no DMA platform data
[ 11.532847] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[ 12.208375] SMSC LAN8700 usb-001:003:01: attached PHY driver [SMSC LAN8700] (mii_bus:phy_addr=usb-001:003:01, irq=POLL)
[ 12.209512] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[ 12.234122] smsc95xx 1-1.1:1.0 eth0: Link is Down
[ 14.775709] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 15.865759] Bluetooth: Core ver 2.22
[ 15.865932] NET: Registered protocol family 31
[ 15.865946] Bluetooth: HCI device and connection manager initialized
[ 15.868066] Bluetooth: HCI socket layer initialized
[ 15.868100] Bluetooth: L2CAP socket layer initialized
[ 15.868148] Bluetooth: SCO socket layer initialized
[ 15.900212] Bluetooth: HCI UART driver ver 2.3
[ 15.900242] Bluetooth: HCI UART protocol H4 registered
[ 15.900392] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 15.907780] Bluetooth: HCI UART protocol Broadcom registered
[ 16.095921] ICMPv6: process `dhcpcd' is using deprecated sysctl (syscall) net.ipv6.neigh.wlan0.retrans_time - use net.ipv6.neigh.wlan0.retrans_time_ms instead
[ 16.203039] systemd-journald[126]: File /var/log/journal/7460273a68084f57a02927d8a779416d/user-1000.journal corrupted or uncleanly shut down, renaming and replacing.
[ 16.483867] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 16.483892] Bluetooth: BNEP filters: protocol multicast
[ 16.483927] Bluetooth: BNEP socket layer initialized
[ 16.520295] NET: Registered protocol family 38
[ 16.585067] cryptd: max_cpu_qlen set to 1000
[ 20.377292] Bluetooth: RFCOMM TTY layer initialized
[ 20.377350] Bluetooth: RFCOMM socket layer initialized
[ 20.377405] Bluetooth: RFCOMM ver 1.11
[ 625.592521] Voltage normalised (0x00000000)
[ 627.672633] Under-voltage detected! (0x00050005)
[ 640.152488] Voltage normalised (0x00000000)
[ 642.232547] Under-voltage detected! (0x00050005)
[ 663.032479] Voltage normalised (0x00000000)
[ 665.112487] Under-voltage detected! (0x00050005)

  • Which model of Raspberry Pi? Pi3B+
  • Which OS and version (cat /etc/rpi-issue)?
    Raspberry Pi reference 2021-10-30
    Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 288b21fc27e128ea6b330777aca68e0061ebf4fe, stage4
  • Which firmware version (vcgencmd version)?
    Oct 29 2021 10:49:08
    Copyright (c) 2012 Broadcom
    version b8a114e5a9877e91ca8f26d1a5ce904b2ad3cf13 (clean) (release) (start)
  • Which kernel version (uname -a)?
    Oct 29 2021 10:49:08
    Copyright (c) 2012 Broadcom
    version b8a114e5a9877e91ca8f26d1a5ce904b2ad3cf13 (clean) (release) (start)

Logs
If applicable, add the relevant output from dmesg or similar.

Additional context
Add any other relevant context for the problem.

Please see the behaviour in the video:
https://user-images.githubusercontent.com/5571947/141132340-2fe98038-74c3-4dda-b594-af68abdcfe7d.mp4

@6by9
Copy link
Contributor

6by9 commented Nov 10, 2021

This was reported via the forums too, so I've been looking already.

This appears to be an I2C issue on Pi3 (and possibly earlier, but not Pi4) that causes the touchpanel regulator to lock up.

Adding "dtparam=i2c_vc_baudrate=50000" to /boot/config.txt seems to fix it for now, and I'll look at what's actually going on.

@skipfire
Copy link

@6by9 just to add a bit, it does happen on the Pi 4s as well, though it recovers after a couple seconds. The fade to gray happens at the exact same point as it does with the Pi 3s, right after the "starting file system check" message posts to the screen.

@6by9
Copy link
Contributor

6by9 commented Nov 10, 2021

It blanks on Pi4.

At the point you see "starting file system check" or similar, the Linux kernel resets the ENTIRE display pipeline, including disabling the panel. (It should kill the power to the panel to stop the blanking being visible, but that would appear not to be working either).
On Pi3 the reinitialisation isn't working as the controller locks up, but it is on Pi4. This controller has been the bane of my life for the last 4 months or so.

@jimmyeao
Copy link

jimmyeao commented Nov 11, 2021

Adding "dtparam=i2c_vc_baudrate=50000" to /boot/config.txt fixes the display - I can move the mouse with my finger, but it does not appear to pick up a tap as a mouse click.
Pi 3b

@SpintroniK
Copy link

SpintroniK commented Nov 11, 2021

This was reported via the forums too, so I've been looking already.

This appears to be an I2C issue on Pi3 (and possibly earlier, but not Pi4) that causes the touchpanel regulator to lock up.

Adding "dtparam=i2c_vc_baudrate=50000" to /boot/config.txt seems to fix it for now, and I'll look at what's actually going on.

That kind of solved the problem for me, but not entirely, as the screen still goes gray for a second or two before it becomes normal again.
It seems that adding lcd_rotate=2 at the end of /boot/config.txt works before the screen goes gray, but after the setting is not applied anymore, and the screen displays things upside down.
I experimented a bit, and it seems that running raspi-config and choosing the legacy gl driver fixes the issues I mentioned above.
Here's the content of /boot/config.txt:

 For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
framebuffer_width=1000
framebuffer_height=600

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=85

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
dtparam=spi=on

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

# Enable DRM VC4 V3D driver
#dtoverlay=vc4-kms-v3d
max_framebuffers=2

# Disable compensation for displays with overscan
disable_overscan=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[all]

[pi4]
# Run as fast as firmware / board allows
arm_boost=1

[all]
dtparam=i2c_vc_baudrate=50000
lcd_rotate=2

Note that, if I remove the line dtparam=i2c_vc_baudrate=50000, it works as well, so I'm not sure the problem is only due to the I2C baud rate.

I did a few more tests, here are my conclusions:

  • Full kms driver + dtparam=i2c_vc_baudrate=50000 in /boot/config.txt => works but the screen still goes gray for a couple of the seconds before things get back to normal, and the lcd_rotate=2 has no effect, so everything is upside down.
  • Legacy GL driver with or without dtparam=i2c_vc_baudrate=50000 in /boot/config.txt => everything works as expected.

@JamesH65
Copy link
Contributor

During boot, when KMS takes over, the display will be restarted, which is the grey bit. lcd_rotate does not have any effect in KMS, you need to use xrandr or the screen configuration utility.

The legacy driver would be expected to work - we have not changed that at all.

@SpintroniK
Copy link

Indeed, it works. Just to make sure other people don't get confused: the screen configuration utility doesn't show up in legacy mode, you have to be in KMS to see it.
Another thing is that, although the screen can be inverted using the screen config utility, that only rotates the image, so when I touch somewhere on the screen, it is inverted. Any easy way to solve that?
Unfortunately, I see that the screen resolution is now limited to 800x480. I had changed that to 1000x600 using framebuffer_width and framebuffer_height in config.txt, but this has no effect now. Is it possible to do something similar in KMS?

@tigernero79
Copy link

@ralphrmartin
Copy link

ralphrmartin commented Nov 13, 2021

I have this problem too.
Interestingly, for the 64-bit version of bullseye on the same system, the screen display appears to work normally.
However for both 32-bit (with workaround) and 64-bit there is no response to touch at all (cannot drag cursor etc).

@jkbgbr
Copy link

jkbgbr commented Nov 14, 2021

I have the same problem under Bullseye 32-bit with a Pi 2 Model B v1.1
I tried to solve mostly from hardware side, as the pi wasn't used for a few years now. I'm releived to know that this is probably a software issue and I don't have to throw away the hardware. I'll fire up a Buster to see if this still holds.

update: the screen works under Buster. Here is a video of the screen under Bullseye.

@6by9
Copy link
Contributor

6by9 commented Nov 14, 2021

I've already posted the workaround at #4686 (comment)
"Me too" posts add nothing.

Add dtparam=i2c_vc_baudrate=50000 to config.txt for the time being. The full reasons are being investigated.

vc4-kms-v3d TOTALLY replaces the firmware display stack, so nothing that the firmware sets up is applicable.

@jimmyeao
Copy link

jimmyeao commented Nov 14, 2021 via email

@UliPrantz
Copy link

If the display driver turns out to be the problem, then it would be worth to also fix #3777 and probably have a look at the already fixed touchscreen driver provided by @ardera in this repo. Unfortunately the driver needs some fixes for the current Raspbian version since it doesn't seem to work out of the box anymore (at least not for me) but maybe @ardera knows a fix?

I also can confirm the issue with the mouse just moving around and that "left click" isn't working on the Raspberry Pi Model B+ as mentioned by @jimmyeao before.

@jkbgbr
Copy link

jkbgbr commented Nov 15, 2021

I've already posted the workaround at #4686 (comment) "Me too" posts add nothing.

Add dtparam=i2c_vc_baudrate=50000 to config.txt for the time being. The full reasons are being investigated.

vc4-kms-v3d TOTALLY replaces the firmware display stack, so nothing that the firmware sets up is applicable.

neither does providing a workarund not mentioning my version of the hardware. I was just trying to provide you with additional information to help resolve the issue. you are welcome.

@noisysoil
Copy link

noisysoil commented Nov 15, 2021

Pitching in with some more info:
Pi hardware

Hardware        : BCM2835
Revision        : a02082
Serial          : 00000000a42ea780
Model           : Raspberry Pi 3 Model B Rev 1.2

Display
Official Touchscreen display.

config.txt

arm_64bit=1
dtparam=i2c_arm=on
dtparam=spi=on
dtoverlay=vc4-kms-v3d
hdmi_blanking=2
...etc with default clean Bullseye install values ...

Kernel

5.10.63-v8+ #1459 SMP PREEMPT Wed Oct 6 16:42:49 BST 2021 aarch64 GNU/Linux

Adding dtparam=i2c_vc_baudrate=50000 did not work for me; there is the initial boot text, but then I had the grey screen with dim vertical stripes as observed by others.

However, I noticed that my kernel log (with dmesg) was spammed with these messages:

[  162.797207] Registered IR keymap rc-cec
[  162.797397] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0
[  162.797566] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input1359
[  162.808109] vc4-drm soc:gpu: bound 3f902000.hdmi (ops vc4_hdmi_ops [vc4])
[  162.808327] vc4-drm soc:gpu: bound 3f806000.vec (ops vc4_vec_ops [vc4])
[  162.852993] hdmi-audio-codec hdmi-audio-codec.1359.auto: ASoC: error at snd_soc_component_set_jack on hdmi-audio-codec.1359.auto: -95
[  162.905250] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4])
[  162.906285] Registered IR keymap rc-cec
[  162.906487] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0
[  162.906663] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input1360
[  162.913289] vc4-drm soc:gpu: bound 3f902000.hdmi (ops vc4_hdmi_ops [vc4])
[  162.913687] vc4-drm soc:gpu: bound 3f806000.vec (ops vc4_vec_ops [vc4])
[  162.965036] hdmi-audio-codec hdmi-audio-codec.1360.auto: ASoC: error at snd_soc_component_set_jack on hdmi-audio-codec.1360.auto: -95
[  163.057891] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4])
[  163.058928] Registered IR keymap rc-cec
[  163.059119] rc rc0: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0
[  163.059293] input: vc4 as /devices/platform/soc/3f902000.hdmi/rc/rc0/input1361
[  163.073126] vc4-drm soc:gpu: bound 3f902000.hdmi (ops vc4_hdmi_ops [vc4])
[  163.073408] vc4-drm soc:gpu: bound 3f806000.vec (ops vc4_vec_ops [vc4])
[  163.108716] hdmi-audio-codec hdmi-audio-codec.1361.auto: ASoC: error at snd_soc_component_set_jack on hdmi-audio-codec.1361.auto: -95

After a headscratch. I tried this change; then the display started working (regardless of hdmi_blanking=2 enabled or not):

dtparam=audio=off
dtparam=i2c_vc_baudrate=50000

The strange this is that I then re-enabled dtparam=audio=on and the display continued to work after reboots / power-off-cycles (unplugged for >10 seconds).

@6by9
Copy link
Contributor

6by9 commented Nov 15, 2021

You do need to power cycle the screen after adding dtparam=i2c_vc_baudrate=50000. A simple reboot is not sufficient.
The issue is that the controller on the panel totally locks up for reasons only partially understood, and can only be recovered by a power cycle.

@noisysoil
Copy link

You do need to power cycle the screen after adding dtparam=i2c_vc_baudrate=50000. A simple reboot is not sufficient. The issue is that the controller on the panel totally locks up for reasons only partially understood, and can only be recovered by a power cycle.

Thanks, that's good to know - I did notice that reboots didn't work (in fact, my device locked up when I tried).

@ralphrmartin
Copy link

Just to make it clear, power cycling does not solve the "no touch" issue.

@6by9
Copy link
Contributor

6by9 commented Nov 15, 2021

Have you run sudo apt update sudo apt dist-upgrade since install, or allowed updates to be applied as part of the initial wizard if you've just done a fresh install?

Having flashed a clean image I did find that the touch wasn't being actioned by the desktop on a Pi3. Updated, and with the workaround almost all seems good - the one niggle is that with my screen configured to be inverted, the touch isn't. xinput --map-to-device "generic ft5x06 (79)" DSI-1 deals with that, but it should have been done automatically.

@jimmyeao
Copy link

jimmyeao commented Nov 15, 2021 via email

@tigernero79
Copy link

Have you run sudo apt update sudo apt dist-upgrade since install, or allowed updates to be applied as part of the initial wizard if you've just done a fresh install?

Having flashed a clean image I did find that the touch wasn't being actioned by the desktop on a Pi3. Updated, and with the workaround almost all seems good - the one niggle is that with my screen configured to be inverted, the touch isn't. xinput --map-to-device "generic ft5x06 (79)" DSI-1 deals with that, but it should have been done automatically.

with the parameters "dtparam=i2c_vc_baudrate=50000" and option lcd_rotate = 2
to me everything seems to work even touch...

i could not find more setting from gui to rotate it and i put LCD rotate item back

@UliPrantz
Copy link

Could somebody provide a hash from the Hexxeh/rpi-firmware repo which could be used for sudo rpi-update hash.

A version where the OpenGL (Full KMS) driver works and the touchscreen for RPi 3. This version could be used as a workaround as long as this issue isn't fixed. Since for some application the OpenGL (Full KMS) driver is mandatory.

@tigernero79
Copy link

I don't know if this is what you are looking for.

i got hash by typing: "cat /boot/.firmware_revision" on my pi3A tell me if it's ok.

value = "f2b42c69f3568a8446b0fa39a0437cbd09adc60d"

@ralphrmartin
Copy link

ralphrmartin commented Nov 16, 2021

Have you run sudo apt update sudo apt dist-upgrade since install, or allowed updates to be applied as part of the initial wizard if you've just done a fresh install?

How? Without touch, there is no way to open a terminal window for keyboard input.

@noisysoil
Copy link

Have you run sudo apt update sudo apt dist-upgrade since install, or allowed updates to be applied as part of the initial wizard if you've just done a fresh install?

How? Without touch, there is no way to open a terminal window for keyboard input.

How about enabling ssh and log in from there with a known device / host name (e.g. mypi.local); if installing from fresh, the official Raspberry Pi Imager has a handy menu (CTRL + SHIFT + X) that allows you to pre-set hostname and ssh.

@sergkonn
Copy link
Contributor

In my case (RPi 3b 1.2 + DSI 7" + RPi Camera2) even switching off KMS doesn't fully fix the problem. With the old graphic stack everything works fine for 2-3 hours, but then the touchscreen randomly stops to work while the X server itself continues to work normally (i.e. it is fully functional if external USB keyboard and mouse are connected). And restart of the X server leads to that the new xorg process is stuck in D state and an kernel warning/oops is generated (please see attached raspberry-display-warning.txt). Also after that in dmesg there are messages like:

[67411.663550] cpu cpu0: dev_pm_opp_set_rate: failed to find current OPP for freq 4294967186 (-34)                                                                                                
[67412.703008] hwmon hwmon1: Failed to get throttled (-110)
[67413.742542] graphics fb0: Set display number call failed. Old GPU firmware?
[67414.782024] raspberrypi-clk soc:firmware:clocks: Failed to change fw-clk-arm frequency: -110
[67416.861339] bcm2708_fb soc:fb: Failed to allocate GPU framebuffer (-110)
[67416.861349] bcm2708_fb_pan_display(0,0) returns=-110

and only full power cycle helps to recover the system.

If the X server is restarted before the touchscreen stopped to work then the restart works completely fine.

dtparam=i2c_vc_baudrate=50000 doesn't help to prevent this issue.

In dmesg I also see from time to time random messages like i2c-bcm2835 3f205000.i2c: Got unexpected interrupt (from firmware?), but the touchscreen doesn't stop to work immediately after them, so they could be unrelated (that system has also bme680 sensor connected vi GPIO I2C).

@ralphrmartin
Copy link

Have you run sudo apt update sudo apt dist-upgrade since install, or allowed updates to be applied as part of the initial wizard if you've just done a fresh install?

How? Without touch, there is no way to open a terminal window for keyboard input.

How about enabling ssh and log in from there with a known device / host name (e.g. mypi.local); if installing from fresh, the official Raspberry Pi Imager has a handy menu (CTRL + SHIFT + X) that allows you to pre-set hostname and ssh.

Thanks.

@sergkonn
Copy link
Contributor

BTW, dtparam=i2c_vc_baudrate=50000 doesn't help me to start the system in KMS mode, the screen remains grey and dmesg is full of the messages related to hdmi-audio-codec like @noisysoil mentioned above, pulseaudio using > 50% cpu, etc. Powercycled the system multiple times, have all the latest bullseye updates.

@noisysoil
Copy link

dtparam=i2c_vc_baudrate=50000 doesn't help to prevent this issue.

In dmesg I also see from time to time random messages like i2c-bcm2835 3f205000.i2c: Got unexpected interrupt (from firmware?), but the touchscreen doesn't stop to work immediately after them, so they could be unrelated (that system has also bme680 sensor connected vi GPIO I2C).

Interesting - have you tried with the following and then power-cycling Pi after the first reboot attempt:

dtparam=audio=off
dtparam=i2c_vc_baudrate=50000

@ralphrmartin
Copy link

Have you run sudo apt update sudo apt dist-upgrade since install?

Having done that, the touchscreen is responding erratically: sometimes the touch responds, and sometimes it does not.

asheplyakov pushed a commit to asheplyakov/linux that referenced this issue May 24, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
@trecords
Copy link

trecords commented Jun 6, 2022

Yet another 7 inch display issue with Raspberry PI 3B
DSI screen to 50KHZ not helped, actually it worked for 2-3 starts then stoped and hanged on boot loading.

it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Jun 11, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Jun 11, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Jul 22, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Jul 23, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Aug 12, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Aug 12, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Aug 18, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Aug 18, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
@m0w1337
Copy link

m0w1337 commented Aug 23, 2022

Hello, is there any progress here, as it really seems the 50kHz i2c does not adress the issue completely. I see vertical lines on my display for several seconds when waking up from a long display sleep period. I guess the display fades back to the gray vertical line pattern (just like it was before the 50kHz i2c) during sleep and this pattern burns in the LCD by time.

@jeremymarshall1
Copy link

I wouldn't expect there to be much progress on this issue as there is a workaround AND the kind of person who may have the knowledge to work on this would be very hard to find.

I'm bummed but I understand that this is gonna be a very low priority issue.

I think the best thing to do right now is find a better display than the Official RPi Display and recommend that for use now.

@SpudGunMan
Copy link

I do appreciate it's documented with a reasonable work around.

it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Sep 30, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Dec 17, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Dec 17, 2022
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
@Paradoxum
Copy link

Paradoxum commented Jan 2, 2023

That baudrate line did not fix it for me. I had this screen working perfectly when I bought it years ago.. is there anywhere I can just get a super old raspbian release somewhere? I've been trying for DAYS to get it working. The most I have been able to do is get the backlight to turn on and see the splash screen. Tried everything posted in this thread and elsewhere on the first 20 pages of google looking for help with this.

It does seem to be something to do with the drivers, but I can't reliably get it working if I drop back to the old ones and disable the GL ones.

Somebody please for the love of god help me.

@tigernero79
Copy link

You didn't write what raspberry you have, you didn't write what version of Raspberry PiOS you have, you didn't tell us what you put in the /boot/config.txt file

just write help me how you were about to be shot and want answers? if you have a pi3 and you have the latest 32-bit or 64-bit version of Pios, simply put a # in front of the entry:

sudo nano /boot/config.txt

dtoverlay=vc4-kms-v3d

and test

@tmittelstaedt
Copy link

I can confirm that this bug still exists in the September 2022 release version of Bullseye on a RP 2 Rev B. Putting the following into boot/config.txt fixes it:

#dtoverlay=vc4-kms-v3d
dtoverlay=vc4-fkms-v3d
ignore_lcd=0

it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Apr 20, 2023
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue May 19, 2023
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
@mhtmhn
Copy link

mhtmhn commented Jun 15, 2023

On the SAM9X75, I can see the SDA line is sometimes held low if I reset the SoC.
I'm not sure if it's the touch controller or the attiny regulator.

Only way to get SDA back high is to inject 9 clock cycles into SCL manually.
After this it works fine on next reboot without a power cycle.

image_40

Note that I'm using baremetal, not linux..

Pseudo code:

//right after reset, before any peripherals configure the SDA/SCL gpios
configure_sda_pin_as_input();
if ( read_sda_pin() != 1 )
{
    configure_scl_pin_as_opendrain_output();
    for( int i = 0;  i < 9;  i++ )
    {
        clear_scl_output();
        delay(n); //n adjusted to get 10 kHz
        set_scl_output();
        delay(n);
        if( read_sda_pin() == 1 ) 
            break; // supplying clock after pin rises can lock it up again (based on tests)
    }
}

@6by9
Copy link
Contributor

6by9 commented Jun 15, 2023

@mhtmhn Can you elaborate what it is that you believe is relevant to this issue?
SAM9X75 appears to be a Microchip MCU, so how is that relevant to the Pi?

Sending 9 pulses on SCL is a standard I2C technique for unlocking the I2C bus if a read operation got interrupted part way through, as it completes the byte read from the peripheral.

There is a known condition in the microcontroller firmware that it can lock up with SDA pulled low, generally related to an I2C read. Unfortunately it's a case of working around it, as there are too many devices in the field to investigate reworking the MCU.

@mhtmhn
Copy link

mhtmhn commented Jun 15, 2023

@6by9

I was just documenting how I solved the issue on my hw platform while trying to interface an official Raspberry Pi Touch Display.

I know my method is the standard procedure to clear the bus and just wanted to confirm that it reliably recovers the display without needing a power cycle.

To elaborate, this issue occurred intermittently on my hw platform where the display wouldn't start if I reset the board with the hardware nRST signal (reset button).

On investigating further I found the SDA line was being held low, preventing the SoC I2C peripheral from working as intended.

I assume the reset sometimes truncates an ongoing I2C read transaction and the touch controller on the display ends up holding the data line low. I know it's the touch controller, since disconnecting the touch flex cable releases the SDA line.

I think the users facing this issue should probe the I2C header and see if the SDA signal is held low.
If yes, try removing the touch flex connector to see if it pulls high once removed.

Once this is confirmed, my fix should work for you as well.
I'm not exactly a Linux expert, so I'll leave you with the how.

Edit:
For reference, I captured what happens to the I2C lines on reset (on my HW , not Pi).
Address matches the touch controller as well.
image

@6by9
Copy link
Contributor

6by9 commented Jun 15, 2023

Unfortunately that is all largely irrelevant on the Pi.

The I2C bus used by the display is shared with the camera, and the Pi firmware will have tried probing for cameras as well as display well before Linux starts up. That will have wiggled SCL numerous times.
As per the original report, the firmware has started the display and displayed the rainbow screen, but it's the handover to Linux that fails.

it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Jun 20, 2023
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
wanghao75 pushed a commit to gitee2github/raspberrypi-kernel that referenced this issue Jul 13, 2023
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
it-is-a-robot pushed a commit to openeuler-mirror/raspberrypi-kernel that referenced this issue Nov 29, 2023
Whilst investigations continue as to why the 7" DSI screen doesn't
work on Pi3 with KMS, drop the I2C baudrate to 50kHz as that seems
to be a reliable workaround.
This will be reverted once the full issue is understood.

raspberrypi/linux#4686

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests