[PW_SID:987650] [v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management - #718
[PW_SID:987650] [v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management#718linux-riscv-bot wants to merge 4 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 and add support for the T-HEAD TH1520 SoC's GPU. To improve clarity and precision, the binding is refactored so that power domain items are listed explicitly for each variant [1]. The previous method relied on an implicit, positional mapping between the `power-domains` and `power-domain-names` properties. This change replaces the generic rules with self contained if/then blocks for each GPU variant, making the relationship between power domains and their names explicit and unambiguous. The generic if block for img,img-rogue, which previously required power-domains and power-domain-names for all variants, is removed. Instead, each specific GPU variant now defines its own power domain requirements within a self-contained if/then block, making the schema more explicit. This new structure is then used to add support for the `thead,th1520-gpu`. While its BXM-4-64 IP has two conceptual power domains, the TH1520 SoC integrates them behind a single power gate. The new binding models this with a specific rule that enforces a single `power-domains` entry and disallows the `power-domain-names` property. 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>
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: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 1: "[v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 2: "[v10,2/4] dt-bindings: gpu: img,powervr-rogue: Add TH1520 GPU support" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 3: "[v10,3/4] riscv: dts: thead: th1520: Add IMG BXM-4-64 GPU node" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
|
Patch 4: "[v10,4/4] drm/imagination: Enable PowerVR driver for RISC-V" |
PR for series 987650 applied to workflow__riscv__fixes
Name: [v10,1/4] drm/imagination: Use pwrseq for TH1520 GPU power management
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=987650
Version: 10