Issue with Pi 4, camera v3, and DSI LCD touchscreen

What is the problem?

I had a heck of a time getting my Pi camera v3 to work. I am running the camera-streamer version, and on a whim I disconnected the DSI cable for my touchscreen that I use OctoDash on. Camera worked fine. When the touchscreen is connected, I get a bunch of dmesg messages about i2c conficts and whatnot. Googling brought up that this was a problem in the 6.1 kernel days, but a patch was developed a few years ago to fix it.

This is the kernel log with both connected. It repeats numerous times.

[ 1534.414628] ------------[ cut here ]------------
[ 1534.414642] WARNING: CPU: 1 PID: 5482 at drivers/media/v4l2-core/v4l2-subdev.c:455 call_s_stream+0xf0/0xf8 [videodev]
[ 1534.414821] Modules linked in: xt_DSCP xt_tcpudp nft_compat nf_tables nfnetlink tcp_diag inet_diag cmac algif_hash aes_arm_bs crypto_simd cryptd aes_arm aes_generic algif_skcipher af_alg bnep 8021q garp stp llc brcmfmac_wcc imx708 dw9807_vcm joydev v3d brcmfmac gpu_sched brcmutil vc4 drm_shmem_helper hci_uart btbcm i2c_mux_pinctrl i2c_mux raspberrypi_ts bluetooth cfg80211 bcm2835_v4l2(C) bcm2835_isp(C) bcm2835_codec(C) bcm2835_unicam_legacy snd_soc_hdmi_codec rpi_hevc_dec raspberrypi_hwmon bcm2835_mmal_vchiq(C) drm_display_helper cec v4l2_dv_timings vc_sm_cma(C) ecdh_generic v4l2_fwnode v4l2_mem2mem drm_dma_helper ecc libaes drm_kms_helper v4l2_async videobuf2_vmalloc rfkill videobuf2_dma_contig videobuf2_memops videobuf2_v4l2 snd_soc_core videodev snd_bcm2835(C) videobuf2_common snd_compress i2c_bcm2835 snd_pcm_dmaengine mc snd_pcm raspberrypi_gpiomem snd_timer rpi_backlight snd nvmem_rmem uio_pdrv_genirq uio i2c_dev drm fuse drm_panel_orientation_quirks backlight ip_tables x_tables ipv6
[ 1534.415398] CPU: 1 UID: 62146 PID: 5482 Comm: camera-streamer Tainted: G        WC         6.12.25-v7l+ #1875
[ 1534.415417] Tainted: [W]=WARN, [C]=CRAP
[ 1534.415422] Hardware name: BCM2711
[ 1534.415428] Call trace: 
[ 1534.415437]  unwind_backtrace from show_stack+0x18/0x1c
[ 1534.415475]  show_stack from dump_stack_lvl+0x5c/0x80
[ 1534.415498]  dump_stack_lvl from __warn+0x88/0x124
[ 1534.415518]  __warn from warn_slowpath_fmt+0x184/0x190
[ 1534.415531]  warn_slowpath_fmt from call_s_stream+0xf0/0xf8 [videodev]
[ 1534.415680]  call_s_stream [videodev] from unicam_stop_streaming+0x74/0x168 [bcm2835_unicam_legacy]
[ 1534.415846]  unicam_stop_streaming [bcm2835_unicam_legacy] from __vb2_queue_cancel+0x30/0x328 [videobuf2_common]
[ 1534.415915]  __vb2_queue_cancel [videobuf2_common] from vb2_core_streamoff+0x20/0xb0 [videobuf2_common]
[ 1534.415979]  vb2_core_streamoff [videobuf2_common] from __video_do_ioctl+0x240/0x490 [videodev]
[ 1534.416146]  __video_do_ioctl [videodev] from video_usercopy+0x27c/0x618 [videodev]
[ 1534.416389]  video_usercopy [videodev] from sys_ioctl+0x130/0xbcc
[ 1534.416522]  sys_ioctl from __sys_trace_return+0x0/0x10
[ 1534.416539] Exception stack(0xf0fe1fa8 to 0xf0fe1ff0)
[ 1534.416552] 1fa0:                   00000018 00000000 00000018 40045613 a8c0bac8 00000000
[ 1534.416562] 1fc0: 00000018 00000000 a9573c6c 00000036 00000000 a8c04ec8 b5328fbc a9573c60
[ 1534.416569] 1fe0: a9573c40 a9573c30 00030db4 b4db1da0
[ 1534.416576] ---[ end trace 0000000000000000 ]---
[ 1534.416924] unicam fe801000.csi: Runtime PM usage count underflow!
[ 1545.770889] dw9807 10-000c: I2C read STATUS value fail ret = -110
[ 1545.770919] dw9807 10-000c: dw9807_ramp I2C failure: -110
[ 1547.370855] dw9807 10-000c: I2C write STATUS address fail ret = -110
[ 1547.370874] dw9807 10-000c: dw9807_ramp I2C failure: -110
[ 1548.490882] imx708 10-001a: Failed to write reg 0x3092. error = -5
[ 1548.490909] imx708 10-001a: imx708_start_streaming failed to set common settings
[ 1548.490934] unicam fe801000.csi: stream on failed in subdev
[ 1548.494676] ------------[ cut here ]------------

What did you already try to solve it?

Swapped out the Pi 4 for another. Changed camera cables. Verify that the camera worked on the other Pi 4. Updated kernel to 6.12.25-v7l+. Did a full-upgrade.

Have you tried running in safe mode?

Yes. And on a blank, fresh install. No help.

Did running in safe mode solve the problem?

Nope.

Systeminfo Bundle

You can download this in OctoPrint's System Information dialog ... no bundle, no support!)

octoprint-systeminfo-20250722112659.zip (732.8 KB)

Additional information about your setup

OctoPrint version, OctoPi version, printer, firmware, browser, operating system, ... as much data as possible

BTT PiTFT 5 v1
OctoPrint version : 1.11.2
OctoPi version : 1.0.0
OctoDash
Prusa Core One

I know this is mentioned for a pi 5, but I wonder if it's the same. Try modifying config.txt.

https://github.com/raspberrypi/linux/issues/6341#issuecomment-2334457334

Thanks for the reply. I also ran across that thread and tried it. The touchscreen works, but the camera doesn’t and I still get the messages in the kernel log.

maybe there is something helpful?

I did use rpi-update to bring the kernel to 6.12 in the hopes that it would fix it. I believe it updated the firmware too.

I reluctantly bought another brand 5” DSI LCD, and that works perfectly. My old one must have been the cause of the I2C conflicts.

1 Like