[PATCH v6 0/2] Add optional reset for the drm/imagination driver

From: Michal Wilczynski
Date: Fri Apr 18 2025 - 07:23:31 EST


This patch series introduces and documents optional reset support for
the drm/imagination driver. While developed as part of a larger effort
to enable the Imagination BXM-4-64 GPU upstream, these patches can merge
independently.

During the upstreaming process, we discovered that the T-HEAD TH1520 SoC
requires custom code to manage resets and clocks from the power-domain
driver [1]. Nevertheless, adding this reset capability is necessary, as
the GPU Device Tree node would own the reset control and would manage it
for boards like BPI-F3 that don't have custom requirements for handling
clocks and resets during their startup sequence.

For more context, please see the cover letter for the larger series [2].

[1] - https://lore.kernel.org/all/20250414-apr_14_for_sending-v2-0-70c5af2af96c@xxxxxxxxxxx/
[2] - https://lore.kernel.org/all/20250219140239.1378758-1-m.wilczynski@xxxxxxxxxxx/

This series is versioned to maintain continuity with the bigger patchset
it is a subseries of. Please find below changelog for the
drm/imagination reset part:

v6:
- no changes, just a re-send, bumping version to avoid confusion

v5:
- moved the recommended 1 microsecond delay after de-asserting GPU
reset to the Imagination driver itself

v4:
- reverted reset-cells configuration to single cell as in v2
- addressed minor implementation issues in the DRM/Imagination reset driver

v3:
- refactored reset driver to use zero cells

v2:
- updated the drm/imagination driver to act as a reset controller
consumer. While this patchset is focused on the LPI4A board, the
reset controller is designed to be useful for other boards, such as the
BPI-3F, which also require a reset sequence after power-up.

---
Michal Wilczynski (2):
dt-bindings: gpu: Add 'resets' property for GPU initialization
drm/imagination: Add reset controller support for GPU initialization

.../devicetree/bindings/gpu/img,powervr-rogue.yaml | 3 +++
drivers/gpu/drm/imagination/pvr_device.c | 21 +++++++++++++++++++++
drivers/gpu/drm/imagination/pvr_device.h | 9 +++++++++
drivers/gpu/drm/imagination/pvr_power.c | 22 +++++++++++++++++++++-
4 files changed, 54 insertions(+), 1 deletion(-)
---
base-commit: fc96b232f8e7c0a6c282f47726b2ff6a5fb341d2
change-id: 20250418-apr_18_reset_img-b102988052de

Best regards,
--
Michal Wilczynski <m.wilczynski@xxxxxxxxxxx>