Devicetree
 help / color / mirror / Atom feed
From: "Maíra Canal" <mcanal@igalia.com>
To: Maxime Ripard <mripard@kernel.org>,
	Dave Stevenson <dave.stevenson@raspberrypi.com>,
	Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>,
	Stefan Wahren <wahrenst@gmx.net>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Florian Fainelli <florian.fainelli@broadcom.com>,
	Ray Jui <rjui@broadcom.com>,
	Scott Branden <sbranden@broadcom.com>,
	Broadcom internal kernel review list
	<bcm-kernel-feedback-list@broadcom.com>
Cc: kernel-dev@igalia.com, dri-devel@lists.freedesktop.org,
	devicetree@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 0/4] drm/vc4: Reset the V3D block through the reset controller
Date: Thu, 3 Sep 2026 10:39:05 -0300	[thread overview]
Message-ID: <a096712c-8bc6-4cb5-94ca-6a82525f1bad@igalia.com> (raw)
In-Reply-To: <20260816-vc4-reset-control-v1-0-896444373716@igalia.com>

Hi,

Florian, Stefan and other Broadcom engineers, any thoughts about this
series?

Best regards,
- Maíra

On 16/08/26 11:05, Maíra Canal wrote:
> 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.
> 
> PATCH 1 is an independent cleanup. "brcm,vc4-v3d" was never documented
> and was never used by any in-tree device tree, so it is a candidate for
> removal on its own. It can be dropped from the series if it turns out
> to be contentious.
> 
> This series was tested on the Raspberry Pi 3B and 3B+.
> 
> Best regards,
> - Maíra
> 
> ---
> Maíra Canal (4):
>        drm/vc4: Drop the undocumented brcm,vc4-v3d compatible
>        dt-bindings: display: bcm2835-v3d: Add an optional reset line
>        drm/vc4: Use the reset controller to recover from a GPU hang
>        ARM: dts: bcm2835: Add the V3D reset line
> 
>   .../bindings/display/brcm,bcm2835-v3d.yaml         |  3 ++
>   arch/arm/boot/dts/broadcom/bcm2835-common.dtsi     |  1 +
>   drivers/gpu/drm/vc4/vc4_drv.c                      |  1 -
>   drivers/gpu/drm/vc4/vc4_drv.h                      | 13 ++++---
>   drivers/gpu/drm/vc4/vc4_gem.c                      | 40 +++++++++++++---------
>   drivers/gpu/drm/vc4/vc4_irq.c                      |  7 ++--
>   drivers/gpu/drm/vc4/vc4_v3d.c                      | 37 +++++++-------------
>   7 files changed, 51 insertions(+), 51 deletions(-)
> ---
> base-commit: 09b47186a4164f3aaa3591313f80794443117342
> change-id: 20260812-vc4-reset-control-cddf3eb8a9e9
> 


  parent reply	other threads:[~2026-09-03 13:39 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-16 14:05 [PATCH 0/4] drm/vc4: Reset the V3D block through the reset controller Maíra Canal
2026-08-16 14:05 ` [PATCH 1/4] drm/vc4: Drop the undocumented brcm,vc4-v3d compatible Maíra Canal
2026-08-16 14:13   ` sashiko-bot
2026-08-18  9:07   ` Krzysztof Kozlowski
2026-09-03 19:36   ` Florian Fainelli
2026-08-16 14:05 ` [PATCH 2/4] dt-bindings: display: bcm2835-v3d: Add an optional reset line Maíra Canal
2026-08-16 20:20   ` Stefan Wahren
2026-08-18  9:05   ` Krzysztof Kozlowski
2026-08-18 10:35     ` Maíra Canal
2026-09-03 19:38       ` Florian Fainelli
2026-08-16 14:05 ` [PATCH 3/4] drm/vc4: Use the reset controller to recover from a GPU hang Maíra Canal
2026-08-16 14:22   ` sashiko-bot
2026-09-03 19:40   ` Florian Fainelli
2026-08-16 14:05 ` [PATCH 4/4] ARM: dts: bcm2835: Add the V3D reset line Maíra Canal
2026-08-16 14:15   ` sashiko-bot
2026-08-16 20:35   ` Stefan Wahren
2026-09-03 19:39   ` Florian Fainelli
2026-09-03 13:39 ` Maíra Canal [this message]
2026-09-03 14:37   ` [PATCH 0/4] drm/vc4: Reset the V3D block through the reset controller Stefan Wahren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a096712c-8bc6-4cb5-94ca-6a82525f1bad@igalia.com \
    --to=mcanal@igalia.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=conor+dt@kernel.org \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=florian.fainelli@broadcom.com \
    --cc=kernel-dev@igalia.com \
    --cc=kernel-list@raspberrypi.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=mripard@kernel.org \
    --cc=rjui@broadcom.com \
    --cc=robh@kernel.org \
    --cc=sbranden@broadcom.com \
    --cc=wahrenst@gmx.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox