* [PATCH v9 0/4] drm/panfrost: Add support for mt8183 GPU
@ 2021-01-08 1:10 Nicolas Boichat
2021-01-08 1:10 ` [PATCH v9 1/4] dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 Nicolas Boichat
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Nicolas Boichat @ 2021-01-08 1:10 UTC (permalink / raw)
To: Rob Herring, Steven Price, Alyssa Rosenzweig
Cc: devicetree, Nicolas Boichat, Tomeu Vizoso, fshao, David Airlie,
linux-kernel, Rob Herring, boris.brezillon, linux-mediatek,
dri-devel, hsinyi, Matthias Brugger, hoegsberg, linux-arm-kernel
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 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 | 25 +++++
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, 161 insertions(+)
--
2.29.2.729.g45daf8777d-goog
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v9 1/4] dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183
2021-01-08 1:10 [PATCH v9 0/4] drm/panfrost: Add support for mt8183 GPU Nicolas Boichat
@ 2021-01-08 1:10 ` Nicolas Boichat
2021-01-12 15:07 ` Rob Herring
2021-01-08 1:10 ` [PATCH v9 3/4] drm/panfrost: devfreq: Disable devfreq when num_supplies > 1 Nicolas Boichat
2021-01-08 1:10 ` [PATCH v9 4/4] drm/panfrost: Add mt8183-mali compatible string Nicolas Boichat
2 siblings, 1 reply; 6+ messages in thread
From: Nicolas Boichat @ 2021-01-08 1:10 UTC (permalink / raw)
To: Rob Herring, Steven Price, Alyssa Rosenzweig
Cc: devicetree, Nicolas Boichat, Tomeu Vizoso, fshao, David Airlie,
linux-kernel, Rob Herring, boris.brezillon, linux-mediatek,
dri-devel, hsinyi, Matthias Brugger, hoegsberg, linux-arm-kernel
Define a compatible string for the Mali Bifrost GPU found in
Mediatek's MT8183 SoCs.
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
---
(no changes since v6)
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 | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
index 184492162e7e..71b613ee5bd7 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -17,6 +17,7 @@ properties:
items:
- enum:
- amlogic,meson-g12a-mali
+ - mediatek,mt8183-mali
- realtek,rtd1619-mali
- rockchip,px30-mali
- const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
@@ -87,6 +88,30 @@ allOf:
then:
required:
- resets
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mediatek,mt8183-mali
+ then:
+ properties:
+ sram-supply: true
+ 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
examples:
- |
--
2.29.2.729.g45daf8777d-goog
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v9 3/4] drm/panfrost: devfreq: Disable devfreq when num_supplies > 1
2021-01-08 1:10 [PATCH v9 0/4] drm/panfrost: Add support for mt8183 GPU Nicolas Boichat
2021-01-08 1:10 ` [PATCH v9 1/4] dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 Nicolas Boichat
@ 2021-01-08 1:10 ` Nicolas Boichat
2021-01-08 1:10 ` [PATCH v9 4/4] drm/panfrost: Add mt8183-mali compatible string Nicolas Boichat
2 siblings, 0 replies; 6+ messages in thread
From: Nicolas Boichat @ 2021-01-08 1:10 UTC (permalink / raw)
To: Rob Herring, Steven Price, Alyssa Rosenzweig
Cc: Nicolas Boichat, Tomeu Vizoso, fshao, David Airlie, linux-kernel,
dri-devel, boris.brezillon, hsinyi, hoegsberg
GPUs with more than a single regulator (e.g. G72 on MT8183) will
require platform-specific handling for devfreq, for 2 reasons:
1. The opp core (drivers/opp/core.c:_generic_set_opp_regulator)
does not support multiple regulators, so we'll need custom
handlers.
2. Generally, platforms with 2 regulators have platform-specific
constraints on how the voltages should be set (e.g.
minimum/maximum voltage difference between them), so we
should not just create generic handlers that simply
change the voltages without taking care of those constraints.
Disable devfreq for now on those GPUs.
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
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
Changes in v6:
- New change
drivers/gpu/drm/panfrost/panfrost_devfreq.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/gpu/drm/panfrost/panfrost_devfreq.c b/drivers/gpu/drm/panfrost/panfrost_devfreq.c
index f44d28fad085..812cfecdee3b 100644
--- a/drivers/gpu/drm/panfrost/panfrost_devfreq.c
+++ b/drivers/gpu/drm/panfrost/panfrost_devfreq.c
@@ -92,6 +92,15 @@ int panfrost_devfreq_init(struct panfrost_device *pfdev)
struct thermal_cooling_device *cooling;
struct panfrost_devfreq *pfdevfreq = &pfdev->pfdevfreq;
+ if (pfdev->comp->num_supplies > 1) {
+ /*
+ * GPUs with more than 1 supply require platform-specific handling:
+ * continue without devfreq
+ */
+ DRM_DEV_INFO(dev, "More than 1 supply is not supported yet\n");
+ return 0;
+ }
+
opp_table = dev_pm_opp_set_regulators(dev, pfdev->comp->supply_names,
pfdev->comp->num_supplies);
if (IS_ERR(opp_table)) {
--
2.29.2.729.g45daf8777d-goog
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v9 4/4] drm/panfrost: Add mt8183-mali compatible string
2021-01-08 1:10 [PATCH v9 0/4] drm/panfrost: Add support for mt8183 GPU Nicolas Boichat
2021-01-08 1:10 ` [PATCH v9 1/4] dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 Nicolas Boichat
2021-01-08 1:10 ` [PATCH v9 3/4] drm/panfrost: devfreq: Disable devfreq when num_supplies > 1 Nicolas Boichat
@ 2021-01-08 1:10 ` Nicolas Boichat
2 siblings, 0 replies; 6+ messages in thread
From: Nicolas Boichat @ 2021-01-08 1:10 UTC (permalink / raw)
To: Rob Herring, Steven Price, Alyssa Rosenzweig
Cc: Nicolas Boichat, Tomeu Vizoso, fshao, David Airlie, linux-kernel,
dri-devel, boris.brezillon, linux-mediatek, hsinyi,
Matthias Brugger, hoegsberg, linux-arm-kernel
Add support for MT8183's G72 Bifrost.
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
(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(+)
diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index 83a461bdeea8..ca07098a6141 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -665,6 +665,15 @@ static const struct panfrost_compatible amlogic_data = {
.vendor_quirk = panfrost_gpu_amlogic_quirk,
};
+const char * const mediatek_mt8183_supplies[] = { "mali", "sram" };
+const char * const mediatek_mt8183_pm_domains[] = { "core0", "core1", "core2" };
+static const struct panfrost_compatible mediatek_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,
+};
+
static const struct of_device_id dt_match[] = {
/* Set first to probe before the generic compatibles */
{ .compatible = "amlogic,meson-gxm-mali",
@@ -681,6 +690,7 @@ static const struct of_device_id dt_match[] = {
{ .compatible = "arm,mali-t860", .data = &default_data, },
{ .compatible = "arm,mali-t880", .data = &default_data, },
{ .compatible = "arm,mali-bifrost", .data = &default_data, },
+ { .compatible = "mediatek,mt8183-mali", .data = &mediatek_mt8183_data },
{}
};
MODULE_DEVICE_TABLE(of, dt_match);
--
2.29.2.729.g45daf8777d-goog
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v9 1/4] dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183
2021-01-08 1:10 ` [PATCH v9 1/4] dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 Nicolas Boichat
@ 2021-01-12 15:07 ` Rob Herring
2021-01-13 5:59 ` Nicolas Boichat
0 siblings, 1 reply; 6+ messages in thread
From: Rob Herring @ 2021-01-12 15:07 UTC (permalink / raw)
To: Nicolas Boichat
Cc: devicetree, Tomeu Vizoso, fshao, David Airlie, linux-kernel,
dri-devel, Steven Price, boris.brezillon, linux-mediatek,
Alyssa Rosenzweig, hsinyi, Matthias Brugger, hoegsberg,
linux-arm-kernel
On Fri, Jan 08, 2021 at 09:10:08AM +0800, Nicolas Boichat wrote:
> Define a compatible string for the Mali Bifrost GPU found in
> Mediatek's MT8183 SoCs.
>
> Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
> ---
>
> (no changes since v6)
>
> 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 | 25 +++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> index 184492162e7e..71b613ee5bd7 100644
> --- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> +++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> @@ -17,6 +17,7 @@ properties:
> items:
> - enum:
> - amlogic,meson-g12a-mali
> + - mediatek,mt8183-mali
> - realtek,rtd1619-mali
> - rockchip,px30-mali
> - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
> @@ -87,6 +88,30 @@ allOf:
> then:
> required:
> - resets
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: mediatek,mt8183-mali
> + then:
> + properties:
> + sram-supply: true
This has to be defined at the top-level or there will be an error when
it is present (due to additionalProperties).
In this if/then you can do:
else:
sram-supply: false
to disallow it if not 'mediatek,mt8183-mali'
> + 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
>
> examples:
> - |
> --
> 2.29.2.729.g45daf8777d-goog
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v9 1/4] dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183
2021-01-12 15:07 ` Rob Herring
@ 2021-01-13 5:59 ` Nicolas Boichat
0 siblings, 0 replies; 6+ messages in thread
From: Nicolas Boichat @ 2021-01-13 5:59 UTC (permalink / raw)
To: Rob Herring
Cc: Devicetree List, Tomeu Vizoso, Fei Shao, David Airlie, lkml,
dri-devel, Steven Price, Boris Brezillon,
moderated list:ARM/Mediatek SoC support, Alyssa Rosenzweig,
Hsin-Yi Wang, Matthias Brugger, Kristian Kristensen,
linux-arm Mailing List
On Tue, Jan 12, 2021 at 11:07 PM Rob Herring <robh@kernel.org> wrote:
>
> On Fri, Jan 08, 2021 at 09:10:08AM +0800, Nicolas Boichat wrote:
> > Define a compatible string for the Mali Bifrost GPU found in
> > Mediatek's MT8183 SoCs.
> >
> > Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
> > Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
> > ---
> >
> > (no changes since v6)
> >
> > 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 | 25 +++++++++++++++++++
> > 1 file changed, 25 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> > index 184492162e7e..71b613ee5bd7 100644
> > --- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> > +++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> > @@ -17,6 +17,7 @@ properties:
> > items:
> > - enum:
> > - amlogic,meson-g12a-mali
> > + - mediatek,mt8183-mali
> > - realtek,rtd1619-mali
> > - rockchip,px30-mali
> > - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
> > @@ -87,6 +88,30 @@ allOf:
> > then:
> > required:
> > - resets
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: mediatek,mt8183-mali
> > + then:
> > + properties:
> > + sram-supply: true
>
> This has to be defined at the top-level or there will be an error when
> it is present (due to additionalProperties).
>
> In this if/then you can do:
>
> else:
> sram-supply: false
>
> to disallow it if not 'mediatek,mt8183-mali'
I see. Thanks Rob, will send a v10.
>
> > + 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
> >
> > examples:
> > - |
> > --
> > 2.29.2.729.g45daf8777d-goog
> >
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-01-13 5:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-08 1:10 [PATCH v9 0/4] drm/panfrost: Add support for mt8183 GPU Nicolas Boichat
2021-01-08 1:10 ` [PATCH v9 1/4] dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 Nicolas Boichat
2021-01-12 15:07 ` Rob Herring
2021-01-13 5:59 ` Nicolas Boichat
2021-01-08 1:10 ` [PATCH v9 3/4] drm/panfrost: devfreq: Disable devfreq when num_supplies > 1 Nicolas Boichat
2021-01-08 1:10 ` [PATCH v9 4/4] drm/panfrost: Add mt8183-mali compatible string Nicolas Boichat
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).