#1035878 rpi400: visual speckling on 'faulty' HDMI port during mouse movement

Package:
src:linux
Source:
src:linux
Submitter:
James Addison
Date:
2025-08-27 10:05:01 UTC
Severity:
normal
Tags:
#1035878#5
Date:
2023-05-10 13:36:19 UTC
From:
To:
Dear Maintainer,

I've installed a RPi 400 system using a regular build of Debian Installer
(bookworm RC2), and have begun using the official RPi firmware (as distributed
in the 'raspi-firmware' bookworm package - including bootcode.bin) to start the
the kernel.

During an X-based LXDE session, I see visual 'speckling' (static-like noise
that blits across the lower half-or-so of the display, mostly with dark
greenish and dark bluish pixels) when moving the mouse pointer.


NOTE: There are _two_ micro-HDMI ports on the RPi 400.  This problem only
occurs when the HDMI cable is connected to the port closest to the keyboard
indicator lights (capslock, numlock).  The problem _does not_ occur when the
HDMI cable is connected to the port closest to the USB-C power supply port.


Repro details:

Moving the pointer through particular areas of the display seem to cause the
flickering/speckling more repeatably.  The lower 40-or-so pixels of the screen
in particular (where the LXDE menubar appears by defaul) seems to be a boundary
that causes the problem fairly reliably.

Note that when pointer/cursor movement _stops_, the visual corruption also
stops occurring.  In other words: the condition appears on-screen temporarily
during the mouse pointer movement.


Additional details:

  * The system is running Debian kernel 6.1.0-8 from linux-image-arm64
    6.1.25-1

  * The problem is also replicable using the latest '*.{elf,dat,bin}' files
    from the upstream raspberrypi/firmware version 1.20230405 release.

  * The devicetree 'compatible' entry for the gpu is:

  $ cat /proc/device-tree/gpu/compatible
  brcm,bcm2711-vc5

  * The vc4 video driver appears to initialize fine according to dmesg (I don't
    see any errors).

  * The vc4 driver is in use as a framebuffer device, I think.

  $ dmesg --notime | grep -i vc4 | tail -n 2
  [drm] Initialized vc4 0.0.0 20140616 for gpu on minor 1
  vc4-drm gpu: [drm] fb0: vc4drmfb frame buffer device

  * I've attempted to use the 'config_hdmi_boost'[1] setting from the upstream
    firmware to resolve the problem, since it mentions speckling (in fact, it's
    where I learned the term 'speckling') specifically, but this has not had
    any effect.  The documentation there does mention that the option is
    ignored on RPi4, and it seems possible that that may also apply to RPi400.

  * Reducing the resolution of the desktop does not reduce or eliminate the
    speckling.


Thank you for any help / suggestions,
James

[1] - https://www.raspberrypi.com/documentation/computers/config_txt.html#config_hdmi_boost

#1035878#10
Date:
2023-05-10 14:03:21 UTC
From:
To:

#1035878#17
Date:
2023-05-10 17:04:55 UTC
From:
To:
The RPi team suggested that this is likely to be a Linux kernel issue, and I've
tested an updated v6.1.21 kernel build of theirs (including the likely fix[1])
that does resolve the problem.

[1] - https://github.com/raspberrypi/linux/commit/013f247b89b6fa55724cb73a820cadcae745d1ee

#1035878#24
Date:
2023-05-10 17:20:45 UTC
From:
To:
Control: reassign -1 src:linux 6.1.25-1
Control: tag -1 upstream
Control: forwarded -1 https://lore.kernel.org/all/20230127-rpi-cursor-corruption-v2-1-1f97bd00df01@cerno.tech/

It seems it was proposed upstream, but hasn't had any response thus far.

#1035878#37
Date:
2025-04-29 10:40:46 UTC
From:
To:
Hi Diederik, Maxime,
minor adjustments to rebase against Debian's 6.12.22-1 kernel -- on an
rpi400 machine locally.

From testing two side-by-side kernel builds, one with the patch
applied, and one without it, I can attest that the patch does indeed
resolve the reported cursor/video speckling problem when using the
mini-HDMI port most-distant from the USB-C power port.

Note: the only modification required to rebase the patch was to
replace a conditional check for 'vc4->is_vc5' with 'vc4->gen ==
VC4_GEN_5' in a couple of the lines modified by the patch.  I've also
updated the line numbers to (hopefully) allow the patch to apply
cleanly without any fuzziness.

Thank you very much Maxime for providing the patch; please also find
my rebased version of it attached to this message.

Regards,
James

#1035878#44
Date:
2025-07-12 16:32:53 UTC
From:
To:
Hi all,
[...]

Looking at the previous posting of this patch upstream, it was not clear
to me why the patch wasn't applied.  Maxime, do you know what happened?

Would it be worth submitting James's updated patch as a v3?

Ben.

#1035878#49
Date:
2025-07-28 09:47:11 UTC
From:
To:
Hi,

If I remember well, my series was considered a workaround to a bug
triggered by an obsolete mechanism in the kernel.

So it was advocated that we should get rid of that mechanism instead,
and thus this series would be made irrelevant. However, removing that
mechanism triggered a few regressions in some drivers, so it never went
through, and my series was forgotten about.

It's been in limbo ever since.

Maxime

#1035878#54
Date:
2025-08-25 17:11:24 UTC
From:
To:
Thanks, Maxime.

Is that potential cleanup related to the legacy cursor update
mechanism?  The reason I ask: I found a LKML thread from Feb 2023
about that, and it mentions some MSM (Adreno?) regressions.

(I'm not hyperlinking to it yet though, in case I'm on the wrong track)

James

#1035878#59
Date:
2025-08-27 09:57:06 UTC
From:
To:
Yes, it is
https://lore.kernel.org/dri-devel/20220331152021.2671937-1-daniel.vetter@ffwll.ch/#t

I've ping'd the msm maintainers after sending that mail, I'll try again
once the holiday season is over.

Maxime