[PW_SID:987389] [v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management - #712
[PW_SID:987389] [v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management#712linux-riscv-bot wants to merge 5 commits into
Conversation
Update the Imagination PVR DRM driver to leverage the pwrseq framework
for managing the complex power sequence of the GPU on the T-HEAD TH1520
SoC.
To cleanly separate platform-specific logic from the generic driver,
this patch introduces an `init` callback to the `pwr_power_sequence_ops`
struct. This allows for different power management strategies to be
selected at probe time based on the device's compatible string.
A `pvr_device_data` struct, associated with each compatible in the
of_device_id table, points to the appropriate ops table (manual or
pwrseq).
At probe time, the driver now calls the `->init()` op. For pwrseq-based
platforms, this callback calls `devm_pwrseq_get("gpu-power")`, deferring
probe if the sequencer is not yet available. For other platforms, it
falls back to the existing manual clock and reset handling. The runtime
PM callbacks continue to call the appropriate functions via the ops
table.
Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Rework the PowerVR Rogue GPU binding to use an explicit, per variant style for defining power domain properties. The generic `if` block for `img,img-rogue`, is removed. It is replaced with self-contained `if/then` blocks for each existing GPU variant. Each block now explicitly defines power domain properties and requirements for that specific variant, making the rules easier to read and maintain. This addresses feedback from the maintainer to explicitly list items for each variant [1]. Link: https://lore.kernel.org/all/4d79c8dd-c5fb-442c-ac65-37e7176b0cdd@linaro.org/ [1] Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Update the img,powervr-rogue.yaml to include the T-HEAD TH1520 SoC's specific GPU compatible string. The thead,th1520-gpu compatible, along with its full chain img,img-bxm-4-64, and img,img-rogue, is added to the list of recognized GPU types. While the BXM-4-64 GPU IP is designed with two distinct power domains, the TH1520 SoC integrates it with only a single, unified power gate that is controllable by the kernel. The binding enforces this with a specific if block for the thead,th1520-gpu compatible that requires a single power-domains entry and disallows power-domain-names. The B-series GPU rule is also updated to include img,img-bxm-4-64 and to explicitly exclude the TH1520. Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add a device tree node for the IMG BXM-4-64 GPU present in the T-HEAD TH1520 SoC used by the Lichee Pi 4A board. This node enables support for the GPU using the drm/imagination driver. By adding this node, the kernel can recognize and initialize the GPU, providing graphics acceleration capabilities on the Lichee Pi 4A and other boards based on the TH1520 SoC. Add fixed clock gpu_mem_clk, as the MEM clock on the T-HEAD SoC can't be controlled programatically. Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Drew Fustini <drew@pdp7.com> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Several RISC-V boards feature Imagination GPUs that are compatible with the PowerVR driver. An example is the IMG BXM-4-64 GPU on the Lichee Pi 4A board. This commit adjusts the driver's Kconfig dependencies to allow the PowerVR driver to be compiled on the RISC-V architecture. By enabling compilation on RISC-V, we expand support for these GPUs, providing graphics acceleration capabilities and enhancing hardware compatibility on RISC-V platforms. The RISC-V support is restricted to 64-bit systems (RISCV && 64BIT) as the driver currently has an implicit dependency on a 64-bit platform. Add a dependency on MMU to fix a build warning on RISC-V configurations without an MMU. Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 2: "[v9,2/5] dt-bindings: gpu: img,powervr-rogue: Define power domains per variant" |
|
Patch 3: "[v9,3/5] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU compatible" |
|
Patch 3: "[v9,3/5] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU compatible" |
|
Patch 3: "[v9,3/5] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU compatible" |
|
Patch 3: "[v9,3/5] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU compatible" |
|
Patch 3: "[v9,3/5] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU compatible" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v9,4/5] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 5: "[v9,5/5] drm/imagination: Enable PowerVR driver for RISC-V" |
PR for series 987389 applied to workflow__riscv__fixes
Name: [v9,1/5] drm/imagination: Use pwrseq for TH1520 GPU power management
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=987389
Version: 9