From: Nicolas Boichat <hidden> Date: 2021-01-13 06:08:29
Hi!
Follow-up on the v5 [1], things have gotten significantly
better in the last 9 months, thanks to the efforts on Bifrost
support by the Collabora team (and probably others I'm not
aware of).
I've been testing this series on a MT8183/kukui device, with a
chromeos-5.10 kernel [2], and got basic Chromium OS UI up with
mesa 20.3.2 (lots of artifacts though).
devfreq is currently not supported, as we'll need:
- Clock core support for switching the GPU core clock (see 2/4).
- Platform-specific handling of the 2-regulator (see 3/4).
Since the latter is easy to detect, patch 3/4 just disables
devfreq if the more than one regulator is specified in the
compatible matching table.
[1] https://patchwork.kernel.org/project/linux-mediatek/cover/20200306041345.259332-1-drinkcat@chromium.org/
[2] https://crrev.com/c/2608070
Changes in v10:
- Fix the binding to make sure sram-supply property can be provided.
Changes in v9:
- Explain why devfreq needs to be disabled for GPUs with >1
regulators.
Changes in v8:
- Use DRM_DEV_INFO instead of ERROR
Changes in v7:
- Fix GPU ID in commit message
- Fix GPU ID in commit message
Changes in v6:
- Rebased, actually tested with recent mesa driver.
Nicolas Boichat (4):
dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183
arm64: dts: mt8183: Add node for the Mali GPU
drm/panfrost: devfreq: Disable devfreq when num_supplies > 1
drm/panfrost: Add mt8183-mali compatible string
.../bindings/gpu/arm,mali-bifrost.yaml | 28 +++++
arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 6 +
.../arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 6 +
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 105 ++++++++++++++++++
drivers/gpu/drm/panfrost/panfrost_devfreq.c | 9 ++
drivers/gpu/drm/panfrost/panfrost_drv.c | 10 ++
6 files changed, 164 insertions(+)
--
2.30.0.284.gd98b1dd5eaa7-goog
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
From: Nicolas Boichat <hidden> Date: 2021-01-13 06:08:29
Define a compatible string for the Mali Bifrost GPU found in
Mediatek's MT8183 SoCs.
Signed-off-by: Nicolas Boichat <redacted>
---
Changes in v10:
- Fix the binding to make sure sram-supply property can be provided.
Changes in v6:
- Rebased, actually tested with recent mesa driver.
- No change
Changes in v5:
- Rename "2d" power domain to "core2"
Changes in v4:
- Add power-domain-names description
(kept Alyssa's reviewed-by as the change is minor)
Changes in v3:
- No change
.../bindings/gpu/arm,mali-bifrost.yaml | 28 +++++++++++++++++++
1 file changed, 28 insertions(+)
@@ -87,6 +90,31 @@ allOf:then:required:-resets+-if:+properties:+compatible:+contains:+const:mediatek,mt8183-mali+then:+properties:+power-domains:+description:+List of phandle and PM domain specifier as documented in+Documentation/devicetree/bindings/power/power_domain.txt+minItems:3+maxItems:3+power-domain-names:+items:+-const:core0+-const:core1+-const:core2+required:+-sram-supply+-power-domains+-power-domains-names+else:+properties:+sram-supply:falseexamples:-|
--
2.30.0.284.gd98b1dd5eaa7-goog
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
From: Nicolas Boichat <hidden> Date: 2021-01-13 06:08:29
Add a basic GPU node for mt8183.
Signed-off-by: Nicolas Boichat <redacted>
---
The binding we use with out-of-tree Mali drivers includes more
clocks, this is used for devfreq: the out-of-tree driver switches
clk_mux to clk_sub_parent (26Mhz), adjusts clk_main_parent, then
switches clk_mux back to clk_main_parent:
(see https://chromium.googlesource.com/chromiumos/third_party/kernel/+/chromeos-4.19/drivers/gpu/arm/midgard/platform/mediatek/mali_kbase_runtime_pm.c#423)
clocks =
<&topckgen CLK_TOP_MFGPLL_CK>,
<&topckgen CLK_TOP_MUX_MFG>,
<&clk26m>,
<&mfgcfg CLK_MFG_BG3D>;
clock-names =
"clk_main_parent",
"clk_mux",
"clk_sub_parent",
"subsys_mfg_cg";
(based on discussions, this probably belongs in the clock core)
This only matters for devfreq, that is disabled anyway as we don't
have platform-specific code to handle >1 supplies.
(no changes since v6)
Changes in v6:
- Add gpu regulators to kukui dtsi as well.
- Power domains are now attached to spm, not scpsys
- Drop R-B.
Changes in v5:
- Rename "2d" power domain to "core2" (keep R-B again).
Changes in v4:
- Add power-domain-names to describe the 3 domains.
(kept Alyssa's reviewed-by as the change is minor)
Changes in v3:
- No changes
Changes in v2:
- Use sram instead of mali_sram as SRAM supply name.
- Rename mali@ to gpu@.
arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 6 +
.../arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 6 +
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 105 ++++++++++++++++++
3 files changed, 117 insertions(+)
From: Nicolas Boichat <hidden> Date: 2021-01-13 06:09:15
Add support for MT8183's G72 Bifrost.
Signed-off-by: Nicolas Boichat <redacted>
Reviewed-by: Tomeu Vizoso <redacted>
---
(no changes since v7)
Changes in v7:
- Fix GPU ID in commit message
Changes in v6:
- Context conflicts, reflow the code.
- Use ARRAY_SIZE for power domains too.
Changes in v5:
- Change power domain name from 2d to core2.
Changes in v4:
- Add power domain names.
Changes in v3:
- Match mt8183-mali instead of bifrost, as we require special
handling for the 2 regulators and 3 power domains.
drivers/gpu/drm/panfrost/panfrost_drv.c | 10 ++++++++++
1 file changed, 10 insertions(+)
@@ -665,6 +665,15 @@ static const struct panfrost_compatible amlogic_data = {.vendor_quirk=panfrost_gpu_amlogic_quirk,};+constchar*constmediatek_mt8183_supplies[]={"mali","sram"};+constchar*constmediatek_mt8183_pm_domains[]={"core0","core1","core2"};+staticconststructpanfrost_compatiblemediatek_mt8183_data={+.num_supplies=ARRAY_SIZE(mediatek_mt8183_supplies),+.supply_names=mediatek_mt8183_supplies,+.num_pm_domains=ARRAY_SIZE(mediatek_mt8183_pm_domains),+.pm_domain_names=mediatek_mt8183_pm_domains,+};+staticconststructof_device_iddt_match[]={/* Set first to probe before the generic compatibles */{.compatible="amlogic,meson-gxm-mali",
Hi!
Follow-up on the v5 [1], things have gotten significantly
better in the last 9 months, thanks to the efforts on Bifrost
support by the Collabora team (and probably others I'm not
aware of).
I've been testing this series on a MT8183/kukui device, with a
chromeos-5.10 kernel [2], and got basic Chromium OS UI up with
mesa 20.3.2 (lots of artifacts though).
Btw, don't know if you plan to retest with a newer Mesa, but a recent
master should have pretty good ES 3.0 compliance on the Duet.
Cheers,
Tomeu
devfreq is currently not supported, as we'll need:
- Clock core support for switching the GPU core clock (see 2/4).
- Platform-specific handling of the 2-regulator (see 3/4).
Since the latter is easy to detect, patch 3/4 just disables
devfreq if the more than one regulator is specified in the
compatible matching table.
[1] https://patchwork.kernel.org/project/linux-mediatek/cover/20200306041345.259332-1-drinkcat@chromium.org/
[2] https://crrev.com/c/2608070
Changes in v10:
- Fix the binding to make sure sram-supply property can be provided.
Changes in v9:
- Explain why devfreq needs to be disabled for GPUs with >1
regulators.
Changes in v8:
- Use DRM_DEV_INFO instead of ERROR
Changes in v7:
- Fix GPU ID in commit message
- Fix GPU ID in commit message
Changes in v6:
- Rebased, actually tested with recent mesa driver.
Nicolas Boichat (4):
dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183
arm64: dts: mt8183: Add node for the Mali GPU
drm/panfrost: devfreq: Disable devfreq when num_supplies > 1
drm/panfrost: Add mt8183-mali compatible string
.../bindings/gpu/arm,mali-bifrost.yaml | 28 +++++
arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 6 +
.../arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 6 +
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 105 ++++++++++++++++++
drivers/gpu/drm/panfrost/panfrost_devfreq.c | 9 ++
drivers/gpu/drm/panfrost/panfrost_drv.c | 10 ++
6 files changed, 164 insertions(+)
From: Steven Price <steven.price@arm.com> Date: 2021-01-14 15:11:38
On 13/01/2021 06:07, Nicolas Boichat wrote:
Add support for MT8183's G72 Bifrost.
Signed-off-by: Nicolas Boichat <redacted>
Reviewed-by: Tomeu Vizoso <redacted>
LGTM
Reviewed-by: Steven Price <steven.price@arm.com>
quoted hunk
---
(no changes since v7)
Changes in v7:
- Fix GPU ID in commit message
Changes in v6:
- Context conflicts, reflow the code.
- Use ARRAY_SIZE for power domains too.
Changes in v5:
- Change power domain name from 2d to core2.
Changes in v4:
- Add power domain names.
Changes in v3:
- Match mt8183-mali instead of bifrost, as we require special
handling for the 2 regulators and 3 power domains.
drivers/gpu/drm/panfrost/panfrost_drv.c | 10 ++++++++++
1 file changed, 10 insertions(+)
@@ -665,6 +665,15 @@ static const struct panfrost_compatible amlogic_data = {.vendor_quirk=panfrost_gpu_amlogic_quirk,};+constchar*constmediatek_mt8183_supplies[]={"mali","sram"};+constchar*constmediatek_mt8183_pm_domains[]={"core0","core1","core2"};+staticconststructpanfrost_compatiblemediatek_mt8183_data={+.num_supplies=ARRAY_SIZE(mediatek_mt8183_supplies),+.supply_names=mediatek_mt8183_supplies,+.num_pm_domains=ARRAY_SIZE(mediatek_mt8183_pm_domains),+.pm_domain_names=mediatek_mt8183_pm_domains,+};+staticconststructof_device_iddt_match[]={/* Set first to probe before the generic compatibles */{.compatible="amlogic,meson-gxm-mali",
From: Rob Herring <robh@kernel.org> Date: 2021-01-26 10:15:54
On Wed, Jan 13, 2021 at 02:07:01PM +0800, Nicolas Boichat wrote:
quoted hunk
Add a basic GPU node for mt8183.
Signed-off-by: Nicolas Boichat <redacted>
---
The binding we use with out-of-tree Mali drivers includes more
clocks, this is used for devfreq: the out-of-tree driver switches
clk_mux to clk_sub_parent (26Mhz), adjusts clk_main_parent, then
switches clk_mux back to clk_main_parent:
(see https://chromium.googlesource.com/chromiumos/third_party/kernel/+/chromeos-4.19/drivers/gpu/arm/midgard/platform/mediatek/mali_kbase_runtime_pm.c#423)
clocks =
<&topckgen CLK_TOP_MFGPLL_CK>,
<&topckgen CLK_TOP_MUX_MFG>,
<&clk26m>,
<&mfgcfg CLK_MFG_BG3D>;
clock-names =
"clk_main_parent",
"clk_mux",
"clk_sub_parent",
"subsys_mfg_cg";
(based on discussions, this probably belongs in the clock core)
This only matters for devfreq, that is disabled anyway as we don't
have platform-specific code to handle >1 supplies.
(no changes since v6)
Changes in v6:
- Add gpu regulators to kukui dtsi as well.
- Power domains are now attached to spm, not scpsys
- Drop R-B.
Changes in v5:
- Rename "2d" power domain to "core2" (keep R-B again).
Changes in v4:
- Add power-domain-names to describe the 3 domains.
(kept Alyssa's reviewed-by as the change is minor)
Changes in v3:
- No changes
Changes in v2:
- Use sram instead of mali_sram as SRAM supply name.
- Rename mali@ to gpu@.
arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 6 +
.../arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 6 +
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 105 ++++++++++++++++++
3 files changed, 117 insertions(+)
From: Rob Herring <robh@kernel.org> Date: 2021-01-26 10:16:04
On Wed, 13 Jan 2021 14:07:00 +0800, Nicolas Boichat wrote:
Define a compatible string for the Mali Bifrost GPU found in
Mediatek's MT8183 SoCs.
Signed-off-by: Nicolas Boichat <redacted>
---
Changes in v10:
- Fix the binding to make sure sram-supply property can be provided.
Changes in v6:
- Rebased, actually tested with recent mesa driver.
- No change
Changes in v5:
- Rename "2d" power domain to "core2"
Changes in v4:
- Add power-domain-names description
(kept Alyssa's reviewed-by as the change is minor)
Changes in v3:
- No change
.../bindings/gpu/arm,mali-bifrost.yaml | 28 +++++++++++++++++++
1 file changed, 28 insertions(+)
From: Nicolas Boichat <hidden> Date: 2021-01-26 10:35:31
On Tue, Jan 26, 2021 at 3:27 AM Rob Herring [off-list ref] wrote:
[...]
quoted
+&gpu {
+ supply-names = "mali", "sram";
Not a documented property, nor should it be.
Did you run this against dtbs_check with your schema changes?
I did not, for some reasons I hit a strange issue (kernel build system
wouldn't pick up dt-* tools from ~/.local/bin... solved with a bunch
of symlinks to ~/bin). Gave up too quickly ,-(
Anyway, v11 coming with clean make dtbs_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml.