In addition to this week's DRM-Misc-Next pull request introducing some new HDMI 2.0 helpers for the DRM drivers, the pull request also introduced improved GPU reset support for the Broadcom V3D GPU with the VC4 kernel driver. Maíra Canal of consulting firm Igalia worked on the improved GPU reset support for the V3D hardware block by making proper use of its reset controller. Canal explained with the patch series cover letter: "vc4_reset() recovers a hung GPU by dropping the runtime PM usage count to zero so that the V3D power domain goes down, and then taking it again. Forcing the count to zero only works if the driver knows exactly how many references it holds, which is why vc4 unconventionaly wraps every pm_runtime_get_sync() call in a private refcount and mutex, making the code cumbersome. The BCM2835 PM block has exposed a reset line for the V3D block since commit 670c672608a1 ("soc: bcm: bcm2835-pm: Add support for power domains under a new binding."), added for exactly this reason, but vc4 never picked it up. This series switches vc4 over to it and drops the private refcount, leaving vc4_v3d_pm_get/put() as plain runtime PM wrappers. The reset line is optional, so device trees that do not describe one keep working: they get the driver-side recovery in vc4_irq_reset() while the hardware is left untouched. Of the two in-tree platforms, 1. BCM2835 gains the property in PATCH 4. 2. Cygnus has no V3D power domain to begin with, so the power-cycle only ever gated its clock there." This work allows the GPU on the Raspberry Pi boards and other relevant Broadcom based hardware to now be reset without power-cycling its domain. Ultimately it should lead to a better and more reliable GPU hang recovery experience. The code is part of this pull request to land as part of the Linux 7.4 merge window in October. Linux 7.4 stable in turn should hopefully be out before year's end.
Improved GPU Reset Coming For Raspberry Pi Boards With Linux 7.4
Full Article
Original Source
Read the full article at Phoronix →KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.