Subject: [PATCH v3 00/11] Panfrost: Improve and add MediaTek SoCs support

Changes in v3:
- Changed MT8186 bindings to declare only two power domains
- Added a commit introducing MT8186 specific platform data to
panfrost_drv

Changes in v2:
- Add power-domain-names commit from Chen-Yu to the series
- Kept sram-supply in base schema, overridden for non-MediaTek
- Added Reviewed-by tags from Steven Price to the driver commits
(as released in reply to v1's cover letter - thanks!)

This series adds support for new MediaTek SoCs (MT8186/MT8192/MT8195)
and improves MT8183 support: since the mtk-regulator-coupler driver
was picked, it is now useless for Panfrost to look for, and manage,
two regulators (GPU Vcore and GPU SRAM) on MediaTek;

The aforementioned driver will take care of keeping the voltage
relation (/constraints) of the two regulators on its own when a
voltage change request is sent to the Vcore, solving the old time
issue with not working DVFS on Panfrost+MediaTek (due to devfreq
supporting only single regulator).

In the specific case of MT8183, in order to not break the ABI, it
was necessary to add a new compatible for enabling DVFS.

Alyssa Rosenzweig (3):
drm/panfrost: Increase MAX_PM_DOMAINS to 5
drm/panfrost: Add the MT8192 GPU ID
drm/panfrost: Add mediatek,mt8192-mali compatible

AngeloGioacchino Del Regno (7):
dt-bindings: gpu: mali-bifrost: Split out MediaTek power-domains
variation
dt-bindings: gpu: mali-bifrost: Allow up to 5 power domains for MT8192
dt-bindings: gpu: mali-bifrost: Add compatible for MT8195 SoC
dt-bindings: gpu: mali-bifrost: Add new MT8183 compatible
dt-bindings: gpu: mali-bifrost: Add support for MediaTek MT8186
drm/panfrost: Add new compatible for Mali on the MT8183 SoC
drm/panfrost: Add support for Mali on the MT8186 SoC

Chen-Yu Tsai (1):
dt-bindings: gpu: mali-bifrost: Add power-domain-names to base schema

.../bindings/gpu/arm,mali-bifrost.yaml | 80 ++++++++++++++++++-
drivers/gpu/drm/panfrost/panfrost_device.h | 2 +-
drivers/gpu/drm/panfrost/panfrost_drv.c | 37 +++++++++
drivers/gpu/drm/panfrost/panfrost_gpu.c | 8 ++
4 files changed, 123 insertions(+), 4 deletions(-)

--
2.39.2



Subject: [PATCH v3 02/11] dt-bindings: gpu: mali-bifrost: Split out MediaTek power-domains variation

In preparation for adding new bindings for new MediaTek SoCs, split out
the power-domain-names and power-domainsvariation from the `else` in
the current mediatek,mt8183-mali conditional.

The sram-supply part is left in place to be disallowed for anything
that is not compatible with "mediatek,mt8183-mali" as this regulator
is MediaTek-specific and it is, and will ever be, used only for this
specific string due to the addition of the mediatek-regulator-coupler
driver.

Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
---
.../devicetree/bindings/gpu/arm,mali-bifrost.yaml | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
index 02699d389be1..ac174c17e25f 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -145,6 +145,18 @@ allOf:
- power-domains
- resets
- reset-names
+ - if:
+ not:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - mediatek,mt8183-mali
+ then:
+ properties:
+ power-domains:
+ maxItems: 1
+ power-domain-names: false
- if:
properties:
compatible:
@@ -166,9 +178,6 @@ allOf:
- power-domain-names
else:
properties:
- power-domains:
- maxItems: 1
- power-domain-names: false
sram-supply: false
- if:
properties:
--
2.39.2


Subject: [PATCH v3 04/11] dt-bindings: gpu: mali-bifrost: Add compatible for MT8195 SoC

The MediaTek MT8195 SoC has a Mali G57 MC5 (Valhall-JM) and has the
same number of power domains and requirements as MT8192 in terms of
bindings.

Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
Reviewed-by: Rob Herring <[email protected]>
---
Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
index 65fe139ceb83..4d9ab4702582 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -25,6 +25,11 @@ properties:
- rockchip,px30-mali
- rockchip,rk3568-mali
- const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
+ - items:
+ - enum:
+ - mediatek,mt8195-mali
+ - const: mediatek,mt8192-mali
+ - const: arm,mali-valhall-jm # Mali Valhall GPU model/revision is fully discoverable
- items:
- enum:
- mediatek,mt8192-mali
--
2.39.2


Subject: [PATCH v3 03/11] dt-bindings: gpu: mali-bifrost: Allow up to 5 power domains for MT8192

MediaTek MT8192 (and similar) needs five power domains for the
Mali GPU and no sram-supply: change the binding to allow so.

Fixes: 5d82e74a97c2 ("dt-bindings: Add compatible for Mali Valhall (JM)")
Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
Reviewed-by: Rob Herring <[email protected]>
---
.../bindings/gpu/arm,mali-bifrost.yaml | 22 ++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
index ac174c17e25f..65fe139ceb83 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -63,7 +63,7 @@ properties:

power-domains:
minItems: 1
- maxItems: 3
+ maxItems: 5

power-domain-names: true

@@ -152,6 +152,7 @@ allOf:
contains:
enum:
- mediatek,mt8183-mali
+ - mediatek,mt8192-mali
then:
properties:
power-domains:
@@ -179,6 +180,25 @@ allOf:
else:
properties:
sram-supply: false
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mediatek,mt8192-mali
+ then:
+ properties:
+ power-domains:
+ minItems: 5
+ power-domain-names:
+ items:
+ - const: core0
+ - const: core1
+ - const: core2
+ - const: core3
+ - const: core4
+ required:
+ - power-domains
+ - power-domain-names
- if:
properties:
compatible:
--
2.39.2


Subject: [PATCH v3 05/11] dt-bindings: gpu: mali-bifrost: Add new MT8183 compatible

Since new platform data was required in Panfrost for getting GPU DVFS
finally working on MediaTek SoCs, add a new "mediatek,mt8183b-mali"
compatible.

Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
Reviewed-by: Rob Herring <[email protected]>
---
.../bindings/gpu/arm,mali-bifrost.yaml | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
index 4d9ab4702582..be18b161959b 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -19,6 +19,7 @@ properties:
- enum:
- amlogic,meson-g12a-mali
- mediatek,mt8183-mali
+ - mediatek,mt8183b-mali
- realtek,rtd1619-mali
- renesas,r9a07g044-mali
- renesas,r9a07g054-mali
@@ -157,6 +158,7 @@ allOf:
contains:
enum:
- mediatek,mt8183-mali
+ - mediatek,mt8183b-mali
- mediatek,mt8192-mali
then:
properties:
@@ -185,6 +187,23 @@ allOf:
else:
properties:
sram-supply: false
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mediatek,mt8183b-mali
+ then:
+ properties:
+ power-domains:
+ minItems: 3
+ power-domain-names:
+ items:
+ - const: core0
+ - const: core1
+ - const: core2
+ required:
+ - power-domains
+ - power-domain-names
- if:
properties:
compatible:
--
2.39.2


Subject: [PATCH v3 06/11] dt-bindings: gpu: mali-bifrost: Add support for MediaTek MT8186

MT8186 has a Mali-G52 MC2 2EE GPU (two cores): add a binding with
two power domains (one per core) for it.

Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
---
.../bindings/gpu/arm,mali-bifrost.yaml | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
index be18b161959b..b9424f3ebd5f 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -20,6 +20,7 @@ properties:
- amlogic,meson-g12a-mali
- mediatek,mt8183-mali
- mediatek,mt8183b-mali
+ - mediatek,mt8186-mali
- realtek,rtd1619-mali
- renesas,r9a07g044-mali
- renesas,r9a07g054-mali
@@ -159,6 +160,7 @@ allOf:
enum:
- mediatek,mt8183-mali
- mediatek,mt8183b-mali
+ - mediatek,mt8186-mali
- mediatek,mt8192-mali
then:
properties:
@@ -204,6 +206,22 @@ allOf:
required:
- power-domains
- power-domain-names
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mediatek,mt8186-mali
+ then:
+ properties:
+ power-domains:
+ minItems: 2
+ power-domain-names:
+ items:
+ - const: core0
+ - const: core1
+ required:
+ - power-domains
+ - power-domain-names
- if:
properties:
compatible:
--
2.39.2


Subject: [PATCH v3 07/11] drm/panfrost: Increase MAX_PM_DOMAINS to 5

From: Alyssa Rosenzweig <[email protected]>

Increase the MAX_PM_DOMAINS constant from 3 to 5, to support the
extra power domains required by the Mali-G57 on the MT8192.

Signed-off-by: Alyssa Rosenzweig <[email protected]>
Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
Reviewed-by: Steven Price <[email protected]>
---
drivers/gpu/drm/panfrost/panfrost_device.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_device.h b/drivers/gpu/drm/panfrost/panfrost_device.h
index d9ba68cffb77..b0126b9fbadc 100644
--- a/drivers/gpu/drm/panfrost/panfrost_device.h
+++ b/drivers/gpu/drm/panfrost/panfrost_device.h
@@ -23,7 +23,7 @@ struct panfrost_job;
struct panfrost_perfcnt;

#define NUM_JOB_SLOTS 3
-#define MAX_PM_DOMAINS 3
+#define MAX_PM_DOMAINS 5

struct panfrost_features {
u16 id;
--
2.39.2


Subject: [PATCH v3 09/11] drm/panfrost: Add mediatek,mt8192-mali compatible

From: Alyssa Rosenzweig <[email protected]>

Required for Mali-G57 on the Mediatek MT8192 and MT8195, which
uses even more power domains than the MT8183 before it.

Signed-off-by: Alyssa Rosenzweig <[email protected]>
[Angelo: Removed unneeded "sram" supply, added mt8195 to commit description]
Co-developed-by: AngeloGioacchino Del Regno <[email protected]>
Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
Reviewed-by: Steven Price <[email protected]>
---
drivers/gpu/drm/panfrost/panfrost_drv.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index abb0dadd8f63..5d25e77e1037 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -663,6 +663,16 @@ static const struct panfrost_compatible mediatek_mt8183_data = {
.pm_domain_names = mediatek_mt8183_pm_domains,
};

+static const char * const mediatek_mt8192_supplies[] = { "mali", NULL };
+static const char * const mediatek_mt8192_pm_domains[] = { "core0", "core1", "core2",
+ "core3", "core4" };
+static const struct panfrost_compatible mediatek_mt8192_data = {
+ .num_supplies = ARRAY_SIZE(mediatek_mt8192_supplies) - 1,
+ .supply_names = mediatek_mt8192_supplies,
+ .num_pm_domains = ARRAY_SIZE(mediatek_mt8192_pm_domains),
+ .pm_domain_names = mediatek_mt8192_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 +691,7 @@ static const struct of_device_id dt_match[] = {
{ .compatible = "arm,mali-bifrost", .data = &default_data, },
{ .compatible = "arm,mali-valhall-jm", .data = &default_data, },
{ .compatible = "mediatek,mt8183-mali", .data = &mediatek_mt8183_data },
+ { .compatible = "mediatek,mt8192-mali", .data = &mediatek_mt8192_data },
{}
};
MODULE_DEVICE_TABLE(of, dt_match);
--
2.39.2


Subject: [PATCH v3 10/11] drm/panfrost: Add new compatible for Mali on the MT8183 SoC

The "mediatek,mt8183-mali" compatible uses platform data that calls for
getting (and managing) two regulators ("mali" and "sram") but devfreq
does not support this usecase, resulting in DVFS not working.

Since a lot of MediaTek SoCs need to set the voltages for the GPU SRAM
regulator in a specific relation to the GPU VCORE regulator, a MediaTek
SoC specific driver was introduced to automatically satisfy, through
coupling, these constraints: this means that there is at all no need to
manage both regulators in panfrost but to otherwise just manage the main
"mali" (-> gpu vcore) regulator instead.

Keeping in mind that we cannot break the ABI, the most sensible route
(avoiding hacks and uselessly overcomplicated code) to get a MT8183
node with one power supply was to add a new "mediatek,mt8183b-mali"
compatible, which effectively deprecates the former.

Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
Reviewed-by: Steven Price <[email protected]>
---
drivers/gpu/drm/panfrost/panfrost_drv.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index 5d25e77e1037..14cdeaeeb5c4 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -654,6 +654,14 @@ static const struct panfrost_compatible amlogic_data = {
.vendor_quirk = panfrost_gpu_amlogic_quirk,
};

+/*
+ * The old data with two power supplies for MT8183 is here only to
+ * keep retro-compatibility with older devicetrees, as DVFS will
+ * not work with this one.
+ *
+ * On new devicetrees please use the _b variant with a single and
+ * coupled regulators instead.
+ */
static const char * const mediatek_mt8183_supplies[] = { "mali", "sram", NULL };
static const char * const mediatek_mt8183_pm_domains[] = { "core0", "core1", "core2" };
static const struct panfrost_compatible mediatek_mt8183_data = {
@@ -663,6 +671,14 @@ static const struct panfrost_compatible mediatek_mt8183_data = {
.pm_domain_names = mediatek_mt8183_pm_domains,
};

+static const char * const mediatek_mt8183_b_supplies[] = { "mali", NULL };
+static const struct panfrost_compatible mediatek_mt8183_b_data = {
+ .num_supplies = ARRAY_SIZE(mediatek_mt8183_b_supplies) - 1,
+ .supply_names = mediatek_mt8183_b_supplies,
+ .num_pm_domains = ARRAY_SIZE(mediatek_mt8183_pm_domains),
+ .pm_domain_names = mediatek_mt8183_pm_domains,
+};
+
static const char * const mediatek_mt8192_supplies[] = { "mali", NULL };
static const char * const mediatek_mt8192_pm_domains[] = { "core0", "core1", "core2",
"core3", "core4" };
@@ -691,6 +707,7 @@ static const struct of_device_id dt_match[] = {
{ .compatible = "arm,mali-bifrost", .data = &default_data, },
{ .compatible = "arm,mali-valhall-jm", .data = &default_data, },
{ .compatible = "mediatek,mt8183-mali", .data = &mediatek_mt8183_data },
+ { .compatible = "mediatek,mt8183b-mali", .data = &mediatek_mt8183_b_data },
{ .compatible = "mediatek,mt8192-mali", .data = &mediatek_mt8192_data },
{}
};
--
2.39.2


Subject: [PATCH v3 08/11] drm/panfrost: Add the MT8192 GPU ID

From: Alyssa Rosenzweig <[email protected]>

MediaTek MT8192 has a Mali-G57 with a special GPU ID. Add its GPU ID,
but treat it as otherwise identical to a standard Mali-G57.

We do _not_ fix up the GPU ID here -- userspace needs to be aware of the
special GPU ID, in case we find functional differences between
MediaTek's implementation and the standard Mali-G57 down the line.

Signed-off-by: Alyssa Rosenzweig <[email protected]>
Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
Reviewed-by: Steven Price <[email protected]>
---
drivers/gpu/drm/panfrost/panfrost_gpu.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
index 6452e4e900dd..d28b99732dde 100644
--- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
+++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
@@ -204,6 +204,14 @@ static const struct panfrost_model gpu_models[] = {

GPU_MODEL(g57, 0x9001,
GPU_REV(g57, 0, 0)),
+
+ /* MediaTek MT8192 has a Mali-G57 with a different GPU ID from the
+ * standard. Arm's driver does not appear to handle this model.
+ * ChromeOS has a hack downstream for it. Treat it as equivalent to
+ * standard Mali-G57 for now.
+ */
+ GPU_MODEL(g57, 0x9003,
+ GPU_REV(g57, 0, 0)),
};

static void panfrost_gpu_init_features(struct panfrost_device *pfdev)
--
2.39.2


Subject: [PATCH v3 11/11] drm/panfrost: Add support for Mali on the MT8186 SoC

MediaTek MT8186 has a Mali-G52 MC2 2EE (Bifrost): add a new compatible
and platform data using the same supplies list as "mt8183_b" (only one
regulator), and a new pm_domains list with only two power domains.

Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
---
drivers/gpu/drm/panfrost/panfrost_drv.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index 14cdeaeeb5c4..e4053bf84c62 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -679,6 +679,14 @@ static const struct panfrost_compatible mediatek_mt8183_b_data = {
.pm_domain_names = mediatek_mt8183_pm_domains,
};

+static const char * const mediatek_mt8186_pm_domains[] = { "core0", "core1" };
+static const struct panfrost_compatible mediatek_mt8186_data = {
+ .num_supplies = ARRAY_SIZE(mediatek_mt8183_b_supplies) - 1,
+ .supply_names = mediatek_mt8183_b_supplies,
+ .num_pm_domains = ARRAY_SIZE(mediatek_mt8186_pm_domains),
+ .pm_domain_names = mediatek_mt8186_pm_domains,
+};
+
static const char * const mediatek_mt8192_supplies[] = { "mali", NULL };
static const char * const mediatek_mt8192_pm_domains[] = { "core0", "core1", "core2",
"core3", "core4" };
@@ -708,6 +716,7 @@ static const struct of_device_id dt_match[] = {
{ .compatible = "arm,mali-valhall-jm", .data = &default_data, },
{ .compatible = "mediatek,mt8183-mali", .data = &mediatek_mt8183_data },
{ .compatible = "mediatek,mt8183b-mali", .data = &mediatek_mt8183_b_data },
+ { .compatible = "mediatek,mt8186-mali", .data = &mediatek_mt8186_data },
{ .compatible = "mediatek,mt8192-mali", .data = &mediatek_mt8192_data },
{}
};
--
2.39.2


2023-02-24 08:46:38

by Steven Price

[permalink] [raw]
Subject: Re: [PATCH v3 11/11] drm/panfrost: Add support for Mali on the MT8186 SoC

On 23/02/2023 13:34, AngeloGioacchino Del Regno wrote:
> MediaTek MT8186 has a Mali-G52 MC2 2EE (Bifrost): add a new compatible
> and platform data using the same supplies list as "mt8183_b" (only one
> regulator), and a new pm_domains list with only two power domains.
>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>

Reviewed-by: Steven Price <[email protected]>

> ---
> drivers/gpu/drm/panfrost/panfrost_drv.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
> index 14cdeaeeb5c4..e4053bf84c62 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
> @@ -679,6 +679,14 @@ static const struct panfrost_compatible mediatek_mt8183_b_data = {
> .pm_domain_names = mediatek_mt8183_pm_domains,
> };
>
> +static const char * const mediatek_mt8186_pm_domains[] = { "core0", "core1" };
> +static const struct panfrost_compatible mediatek_mt8186_data = {
> + .num_supplies = ARRAY_SIZE(mediatek_mt8183_b_supplies) - 1,
> + .supply_names = mediatek_mt8183_b_supplies,
> + .num_pm_domains = ARRAY_SIZE(mediatek_mt8186_pm_domains),
> + .pm_domain_names = mediatek_mt8186_pm_domains,
> +};
> +
> static const char * const mediatek_mt8192_supplies[] = { "mali", NULL };
> static const char * const mediatek_mt8192_pm_domains[] = { "core0", "core1", "core2",
> "core3", "core4" };
> @@ -708,6 +716,7 @@ static const struct of_device_id dt_match[] = {
> { .compatible = "arm,mali-valhall-jm", .data = &default_data, },
> { .compatible = "mediatek,mt8183-mali", .data = &mediatek_mt8183_data },
> { .compatible = "mediatek,mt8183b-mali", .data = &mediatek_mt8183_b_data },
> + { .compatible = "mediatek,mt8186-mali", .data = &mediatek_mt8186_data },
> { .compatible = "mediatek,mt8192-mali", .data = &mediatek_mt8192_data },
> {}
> };


2023-02-24 09:43:20

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 00/11] Panfrost: Improve and add MediaTek SoCs support

On Thu, Feb 23, 2023 at 9:34 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> Changes in v3:
> - Changed MT8186 bindings to declare only two power domains
> - Added a commit introducing MT8186 specific platform data to
> panfrost_drv
>
> Changes in v2:
> - Add power-domain-names commit from Chen-Yu to the series
> - Kept sram-supply in base schema, overridden for non-MediaTek
> - Added Reviewed-by tags from Steven Price to the driver commits
> (as released in reply to v1's cover letter - thanks!)
>
> This series adds support for new MediaTek SoCs (MT8186/MT8192/MT8195)
> and improves MT8183 support: since the mtk-regulator-coupler driver
> was picked, it is now useless for Panfrost to look for, and manage,
> two regulators (GPU Vcore and GPU SRAM) on MediaTek;
>
> The aforementioned driver will take care of keeping the voltage
> relation (/constraints) of the two regulators on its own when a
> voltage change request is sent to the Vcore, solving the old time
> issue with not working DVFS on Panfrost+MediaTek (due to devfreq
> supporting only single regulator).
>
> In the specific case of MT8183, in order to not break the ABI, it
> was necessary to add a new compatible for enabling DVFS.
>
> Alyssa Rosenzweig (3):
> drm/panfrost: Increase MAX_PM_DOMAINS to 5
> drm/panfrost: Add the MT8192 GPU ID
> drm/panfrost: Add mediatek,mt8192-mali compatible
>
> AngeloGioacchino Del Regno (7):
> dt-bindings: gpu: mali-bifrost: Split out MediaTek power-domains
> variation
> dt-bindings: gpu: mali-bifrost: Allow up to 5 power domains for MT8192
> dt-bindings: gpu: mali-bifrost: Add compatible for MT8195 SoC
> dt-bindings: gpu: mali-bifrost: Add new MT8183 compatible
> dt-bindings: gpu: mali-bifrost: Add support for MediaTek MT8186
> drm/panfrost: Add new compatible for Mali on the MT8183 SoC
> drm/panfrost: Add support for Mali on the MT8186 SoC
>
> Chen-Yu Tsai (1):
> dt-bindings: gpu: mali-bifrost: Add power-domain-names to base schema

Tested-by: Chen-Yu Tsai <[email protected]>

on MT8183 Juniper, MT8192 Hayato, MT8195 Tomato, MT8186 not-yet-upstreamed
device.

2023-02-24 10:05:18

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 11/11] drm/panfrost: Add support for Mali on the MT8186 SoC

On Fri, Feb 24, 2023 at 4:46 PM Steven Price <[email protected]> wrote:
>
> On 23/02/2023 13:34, AngeloGioacchino Del Regno wrote:
> > MediaTek MT8186 has a Mali-G52 MC2 2EE (Bifrost): add a new compatible
> > and platform data using the same supplies list as "mt8183_b" (only one
> > regulator), and a new pm_domains list with only two power domains.
> >
> > Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
>
> Reviewed-by: Steven Price <[email protected]>

Reviewed-by: Chen-Yu Tsai <[email protected]>

2023-02-24 10:05:56

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 10/11] drm/panfrost: Add new compatible for Mali on the MT8183 SoC

On Thu, Feb 23, 2023 at 9:35 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> The "mediatek,mt8183-mali" compatible uses platform data that calls for
> getting (and managing) two regulators ("mali" and "sram") but devfreq
> does not support this usecase, resulting in DVFS not working.
>
> Since a lot of MediaTek SoCs need to set the voltages for the GPU SRAM
> regulator in a specific relation to the GPU VCORE regulator, a MediaTek
> SoC specific driver was introduced to automatically satisfy, through
> coupling, these constraints: this means that there is at all no need to
> manage both regulators in panfrost but to otherwise just manage the main
> "mali" (-> gpu vcore) regulator instead.
>
> Keeping in mind that we cannot break the ABI, the most sensible route
> (avoiding hacks and uselessly overcomplicated code) to get a MT8183
> node with one power supply was to add a new "mediatek,mt8183b-mali"
> compatible, which effectively deprecates the former.
>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
> Reviewed-by: Steven Price <[email protected]>

Reviewed-by: Chen-Yu Tsai <[email protected]>

2023-02-24 10:06:08

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 09/11] drm/panfrost: Add mediatek,mt8192-mali compatible

On Thu, Feb 23, 2023 at 9:35 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> From: Alyssa Rosenzweig <[email protected]>
>
> Required for Mali-G57 on the Mediatek MT8192 and MT8195, which
> uses even more power domains than the MT8183 before it.
>
> Signed-off-by: Alyssa Rosenzweig <[email protected]>
> [Angelo: Removed unneeded "sram" supply, added mt8195 to commit description]
> Co-developed-by: AngeloGioacchino Del Regno <[email protected]>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
> Reviewed-by: Steven Price <[email protected]>

Reviewed-by: Chen-Yu Tsai <[email protected]>

2023-02-24 10:08:09

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 08/11] drm/panfrost: Add the MT8192 GPU ID

On Thu, Feb 23, 2023 at 9:35 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> From: Alyssa Rosenzweig <[email protected]>
>
> MediaTek MT8192 has a Mali-G57 with a special GPU ID. Add its GPU ID,
> but treat it as otherwise identical to a standard Mali-G57.
>
> We do _not_ fix up the GPU ID here -- userspace needs to be aware of the
> special GPU ID, in case we find functional differences between
> MediaTek's implementation and the standard Mali-G57 down the line.
>
> Signed-off-by: Alyssa Rosenzweig <[email protected]>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
> Reviewed-by: Steven Price <[email protected]>

Reviewed-by: Chen-Yu Tsai <[email protected]>

As previously mentioned, MT8195 Mali G57 has minor revision number 1.
Do we need to handle that?

> ---
> drivers/gpu/drm/panfrost/panfrost_gpu.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> index 6452e4e900dd..d28b99732dde 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> @@ -204,6 +204,14 @@ static const struct panfrost_model gpu_models[] = {
>
> GPU_MODEL(g57, 0x9001,
> GPU_REV(g57, 0, 0)),
> +
> + /* MediaTek MT8192 has a Mali-G57 with a different GPU ID from the
> + * standard. Arm's driver does not appear to handle this model.
> + * ChromeOS has a hack downstream for it. Treat it as equivalent to
> + * standard Mali-G57 for now.
> + */
> + GPU_MODEL(g57, 0x9003,
> + GPU_REV(g57, 0, 0)),
> };
>
> static void panfrost_gpu_init_features(struct panfrost_device *pfdev)
> --
> 2.39.2
>

2023-02-24 10:08:30

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 07/11] drm/panfrost: Increase MAX_PM_DOMAINS to 5

On Thu, Feb 23, 2023 at 9:35 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> From: Alyssa Rosenzweig <[email protected]>
>
> Increase the MAX_PM_DOMAINS constant from 3 to 5, to support the
> extra power domains required by the Mali-G57 on the MT8192.
>
> Signed-off-by: Alyssa Rosenzweig <[email protected]>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
> Reviewed-by: Steven Price <[email protected]>

Reviewed-by: Chen-Yu Tsai <[email protected]>

2023-02-24 10:08:49

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 06/11] dt-bindings: gpu: mali-bifrost: Add support for MediaTek MT8186

On Thu, Feb 23, 2023 at 9:34 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> MT8186 has a Mali-G52 MC2 2EE GPU (two cores): add a binding with
> two power domains (one per core) for it.
>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>

Reviewed-by: Chen-Yu Tsai <[email protected]>

2023-02-24 10:08:57

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 05/11] dt-bindings: gpu: mali-bifrost: Add new MT8183 compatible

On Thu, Feb 23, 2023 at 9:34 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> Since new platform data was required in Panfrost for getting GPU DVFS
> finally working on MediaTek SoCs, add a new "mediatek,mt8183b-mali"
> compatible.
>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
> Reviewed-by: Rob Herring <[email protected]>

Reviewed-by: Chen-Yu Tsai <[email protected]>

2023-02-24 10:10:15

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 03/11] dt-bindings: gpu: mali-bifrost: Allow up to 5 power domains for MT8192

On Thu, Feb 23, 2023 at 9:34 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> MediaTek MT8192 (and similar) needs five power domains for the
> Mali GPU and no sram-supply: change the binding to allow so.
>
> Fixes: 5d82e74a97c2 ("dt-bindings: Add compatible for Mali Valhall (JM)")
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
> Reviewed-by: Rob Herring <[email protected]>

Reviewed-by: Chen-Yu Tsai <[email protected]>

2023-02-24 10:10:18

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 04/11] dt-bindings: gpu: mali-bifrost: Add compatible for MT8195 SoC

On Thu, Feb 23, 2023 at 9:34 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> The MediaTek MT8195 SoC has a Mali G57 MC5 (Valhall-JM) and has the
> same number of power domains and requirements as MT8192 in terms of
> bindings.
>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
> Reviewed-by: Rob Herring <[email protected]>
> ---
> Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> index 65fe139ceb83..4d9ab4702582 100644
> --- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> +++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> @@ -25,6 +25,11 @@ properties:
> - rockchip,px30-mali
> - rockchip,rk3568-mali
> - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
> + - items:
> + - enum:
> + - mediatek,mt8195-mali

This could be squashed into "- const: mediatek,mt8195-mali" like the
following lines?

Otherwise,

Reviewed-by: Chen-Yu Tsai <[email protected]>

> + - const: mediatek,mt8192-mali
> + - const: arm,mali-valhall-jm # Mali Valhall GPU model/revision is fully discoverable
> - items:
> - enum:
> - mediatek,mt8192-mali
> --
> 2.39.2
>

2023-02-24 10:10:37

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 02/11] dt-bindings: gpu: mali-bifrost: Split out MediaTek power-domains variation

On Thu, Feb 23, 2023 at 9:34 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> In preparation for adding new bindings for new MediaTek SoCs, split out
> the power-domain-names and power-domainsvariation from the `else` in
> the current mediatek,mt8183-mali conditional.
>
> The sram-supply part is left in place to be disallowed for anything
> that is not compatible with "mediatek,mt8183-mali" as this regulator
> is MediaTek-specific and it is, and will ever be, used only for this
> specific string due to the addition of the mediatek-regulator-coupler
> driver.
>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>

Reviewed-by: Chen-Yu Tsai <[email protected]>

2023-02-24 10:11:13

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3 02/11] dt-bindings: gpu: mali-bifrost: Split out MediaTek power-domains variation

On Fri, Feb 24, 2023 at 6:08 PM Chen-Yu Tsai <[email protected]> wrote:
>
> On Thu, Feb 23, 2023 at 9:34 PM AngeloGioacchino Del Regno
> <[email protected]> wrote:
> >
> > In preparation for adding new bindings for new MediaTek SoCs, split out
> > the power-domain-names and power-domainsvariation from the `else` in

^ missing space

Once fixed,

Reviewed-by: Chen-Yu Tsai <[email protected]>

> > the current mediatek,mt8183-mali conditional.
> >
> > The sram-supply part is left in place to be disallowed for anything
> > that is not compatible with "mediatek,mt8183-mali" as this regulator
> > is MediaTek-specific and it is, and will ever be, used only for this
> > specific string due to the addition of the mediatek-regulator-coupler
> > driver.
> >
> > Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
>
> Reviewed-by: Chen-Yu Tsai <[email protected]>

2023-02-24 10:58:21

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 02/11] dt-bindings: gpu: mali-bifrost: Split out MediaTek power-domains variation

On 23/02/2023 14:34, AngeloGioacchino Del Regno wrote:
> In preparation for adding new bindings for new MediaTek SoCs, split out
> the power-domain-names and power-domainsvariation from the `else` in
> the current mediatek,mt8183-mali conditional.
>
> The sram-supply part is left in place to be disallowed for anything
> that is not compatible with "mediatek,mt8183-mali" as this regulator
> is MediaTek-specific and it is, and will ever be, used only for this
> specific string due to the addition of the mediatek-regulator-coupler
> driver.
>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
> ---
> .../devicetree/bindings/gpu/arm,mali-bifrost.yaml | 15 ++++++++++++---
> 1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> index 02699d389be1..ac174c17e25f 100644
> --- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> +++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> @@ -145,6 +145,18 @@ allOf:
> - power-domains
> - resets
> - reset-names
> + - if:
> + not:

I think this makes the binding difficult to maintain. You have:
1. if - amlogic - then - some properties
2. if - renesas - then - some properties
3. if - not mediatek - then - something else
4. if - mediatek - then - some properties

Instead just disallow power domains in each of other variants.

Best regards,
Krzysztof


2023-02-24 10:58:50

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 06/11] dt-bindings: gpu: mali-bifrost: Add support for MediaTek MT8186

On 23/02/2023 14:34, AngeloGioacchino Del Regno wrote:
> MT8186 has a Mali-G52 MC2 2EE GPU (two cores): add a binding with
> two power domains (one per core) for it.
>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
> ---
> .../bindings/gpu/arm,mali-bifrost.yaml | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> index be18b161959b..b9424f3ebd5f 100644
> --- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> +++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> @@ -20,6 +20,7 @@ properties:
> - amlogic,meson-g12a-mali
> - mediatek,mt8183-mali
> - mediatek,mt8183b-mali
> + - mediatek,mt8186-mali
> - realtek,rtd1619-mali
> - renesas,r9a07g044-mali
> - renesas,r9a07g054-mali
> @@ -159,6 +160,7 @@ allOf:
> enum:
> - mediatek,mt8183-mali
> - mediatek,mt8183b-mali
> + - mediatek,mt8186-mali
> - mediatek,mt8192-mali
> then:
> properties:
> @@ -204,6 +206,22 @@ allOf:
> required:
> - power-domains
> - power-domain-names
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: mediatek,mt8186-mali
> + then:
> + properties:
> + power-domains:
> + minItems: 2

as well:
maxItems: 2



Best regards,
Krzysztof


2023-02-24 10:59:09

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 05/11] dt-bindings: gpu: mali-bifrost: Add new MT8183 compatible

On 23/02/2023 14:34, AngeloGioacchino Del Regno wrote:
> Since new platform data was required in Panfrost for getting GPU DVFS
> finally working on MediaTek SoCs, add a new "mediatek,mt8183b-mali"
> compatible.
>
> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
> Reviewed-by: Rob Herring <[email protected]>
> ---
> .../bindings/gpu/arm,mali-bifrost.yaml | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> index 4d9ab4702582..be18b161959b 100644
> --- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> +++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> @@ -19,6 +19,7 @@ properties:
> - enum:
> - amlogic,meson-g12a-mali
> - mediatek,mt8183-mali
> + - mediatek,mt8183b-mali
> - realtek,rtd1619-mali
> - renesas,r9a07g044-mali
> - renesas,r9a07g054-mali
> @@ -157,6 +158,7 @@ allOf:
> contains:
> enum:
> - mediatek,mt8183-mali
> + - mediatek,mt8183b-mali
> - mediatek,mt8192-mali
> then:
> properties:
> @@ -185,6 +187,23 @@ allOf:
> else:
> properties:
> sram-supply: false
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: mediatek,mt8183b-mali
> + then:
> + properties:
> + power-domains:
> + minItems: 3

also: maxItems

Best regards,
Krzysztof


Subject: Re: [PATCH v3 08/11] drm/panfrost: Add the MT8192 GPU ID

Il 24/02/23 11:06, Chen-Yu Tsai ha scritto:
> On Thu, Feb 23, 2023 at 9:35 PM AngeloGioacchino Del Regno
> <[email protected]> wrote:
>>
>> From: Alyssa Rosenzweig <[email protected]>
>>
>> MediaTek MT8192 has a Mali-G57 with a special GPU ID. Add its GPU ID,
>> but treat it as otherwise identical to a standard Mali-G57.
>>
>> We do _not_ fix up the GPU ID here -- userspace needs to be aware of the
>> special GPU ID, in case we find functional differences between
>> MediaTek's implementation and the standard Mali-G57 down the line.
>>
>> Signed-off-by: Alyssa Rosenzweig <[email protected]>
>> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
>> Reviewed-by: Steven Price <[email protected]>
>
> Reviewed-by: Chen-Yu Tsai <[email protected]>
>
> As previously mentioned, MT8195 Mali G57 has minor revision number 1.
> Do we need to handle that?
>

Maybe something went wrong while sending the reply to the same question on v2?

Anyway, from what I can see on my MT8195 machine, it works fine without adding
any particular handling...

Alyssa, Steven,
are you aware of anything that we should consider?

Regards,
Angelo

>> ---
>> drivers/gpu/drm/panfrost/panfrost_gpu.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
>> index 6452e4e900dd..d28b99732dde 100644
>> --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
>> +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
>> @@ -204,6 +204,14 @@ static const struct panfrost_model gpu_models[] = {
>>
>> GPU_MODEL(g57, 0x9001,
>> GPU_REV(g57, 0, 0)),
>> +
>> + /* MediaTek MT8192 has a Mali-G57 with a different GPU ID from the
>> + * standard. Arm's driver does not appear to handle this model.
>> + * ChromeOS has a hack downstream for it. Treat it as equivalent to
>> + * standard Mali-G57 for now.
>> + */
>> + GPU_MODEL(g57, 0x9003,
>> + GPU_REV(g57, 0, 0)),
>> };
>>
>> static void panfrost_gpu_init_features(struct panfrost_device *pfdev)
>> --
>> 2.39.2
>>



Subject: Re: [PATCH v3 02/11] dt-bindings: gpu: mali-bifrost: Split out MediaTek power-domains variation

Il 24/02/23 11:09, Chen-Yu Tsai ha scritto:
> On Fri, Feb 24, 2023 at 6:08 PM Chen-Yu Tsai <[email protected]> wrote:
>>
>> On Thu, Feb 23, 2023 at 9:34 PM AngeloGioacchino Del Regno
>> <[email protected]> wrote:
>>>
>>> In preparation for adding new bindings for new MediaTek SoCs, split out
>>> the power-domain-names and power-domainsvariation from the `else` in
>
> ^ missing space
>
> Once fixed,

I think you even mentioned that already, ugh. Will fix.

>
> Reviewed-by: Chen-Yu Tsai <[email protected]>
>
>>> the current mediatek,mt8183-mali conditional.
>>>
>>> The sram-supply part is left in place to be disallowed for anything
>>> that is not compatible with "mediatek,mt8183-mali" as this regulator
>>> is MediaTek-specific and it is, and will ever be, used only for this
>>> specific string due to the addition of the mediatek-regulator-coupler
>>> driver.
>>>
>>> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
>>
>> Reviewed-by: Chen-Yu Tsai <[email protected]>


2023-02-24 13:53:11

by Steven Price

[permalink] [raw]
Subject: Re: [PATCH v3 08/11] drm/panfrost: Add the MT8192 GPU ID

On 24/02/2023 13:08, AngeloGioacchino Del Regno wrote:
> Il 24/02/23 11:06, Chen-Yu Tsai ha scritto:
>> On Thu, Feb 23, 2023 at 9:35 PM AngeloGioacchino Del Regno
>> <[email protected]> wrote:
>>>
>>> From: Alyssa Rosenzweig <[email protected]>
>>>
>>> MediaTek MT8192 has a Mali-G57 with a special GPU ID. Add its GPU ID,
>>> but treat it as otherwise identical to a standard Mali-G57.
>>>
>>> We do _not_ fix up the GPU ID here -- userspace needs to be aware of the
>>> special GPU ID, in case we find functional differences between
>>> MediaTek's implementation and the standard Mali-G57 down the line.
>>>
>>> Signed-off-by: Alyssa Rosenzweig <[email protected]>
>>> Signed-off-by: AngeloGioacchino Del Regno
>>> <[email protected]>
>>> Reviewed-by: Steven Price <[email protected]>
>>
>> Reviewed-by: Chen-Yu Tsai <[email protected]>
>>
>> As previously mentioned, MT8195 Mali G57 has minor revision number 1.
>> Do we need to handle that?
>>
>
> Maybe something went wrong while sending the reply to the same question
> on v2?
>
> Anyway, from what I can see on my MT8195 machine, it works fine without
> adding
> any particular handling...
>
> Alyssa, Steven,
> are you aware of anything that we should consider?

The minor revision means that the set of HW workarounds might be
different. Specifically it appears that "BASE_HW_ISSUE_TTRX_3485"
applies to G57 ('Natt') r0p0 but not r0p1.

That particular workaround is a horrendous "dummy job" in kbase and we
don't have an implementation in Panfrost. However Panfrost also doesn't
(yet[1]) proactively SOFT_STOP jobs so is also unlikely to be affected.

TLDR; Minor revision 1 has a HW bug fixed, Panfrost isn't affected by
the bug anyway.

Steve

[1] It's been on my todo list for a while to look at improving job
scheduling, but to be honest I doubt I'm going to get round to it with
Panfrost, and PanCSF obviously changes the job scheduling anyway.

> Regards,
> Angelo
>
>>> ---
>>>   drivers/gpu/drm/panfrost/panfrost_gpu.c | 8 ++++++++
>>>   1 file changed, 8 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c
>>> b/drivers/gpu/drm/panfrost/panfrost_gpu.c
>>> index 6452e4e900dd..d28b99732dde 100644
>>> --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
>>> +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
>>> @@ -204,6 +204,14 @@ static const struct panfrost_model gpu_models[] = {
>>>
>>>          GPU_MODEL(g57, 0x9001,
>>>                  GPU_REV(g57, 0, 0)),
>>> +
>>> +       /* MediaTek MT8192 has a Mali-G57 with a different GPU ID
>>> from the
>>> +        * standard. Arm's driver does not appear to handle this model.
>>> +        * ChromeOS has a hack downstream for it. Treat it as
>>> equivalent to
>>> +        * standard Mali-G57 for now.
>>> +        */
>>> +       GPU_MODEL(g57, 0x9003,
>>> +               GPU_REV(g57, 0, 0)),
>>>   };
>>>
>>>   static void panfrost_gpu_init_features(struct panfrost_device *pfdev)
>>> --
>>> 2.39.2
>>>
>
>


Subject: Re: [PATCH v3 04/11] dt-bindings: gpu: mali-bifrost: Add compatible for MT8195 SoC

Il 24/02/23 11:08, Chen-Yu Tsai ha scritto:
> On Thu, Feb 23, 2023 at 9:34 PM AngeloGioacchino Del Regno
> <[email protected]> wrote:
>>
>> The MediaTek MT8195 SoC has a Mali G57 MC5 (Valhall-JM) and has the
>> same number of power domains and requirements as MT8192 in terms of
>> bindings.
>>
>> Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
>> Reviewed-by: Rob Herring <[email protected]>
>> ---
>> Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
>> index 65fe139ceb83..4d9ab4702582 100644
>> --- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
>> +++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
>> @@ -25,6 +25,11 @@ properties:
>> - rockchip,px30-mali
>> - rockchip,rk3568-mali
>> - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
>> + - items:
>> + - enum:
>> + - mediatek,mt8195-mali
>
> This could be squashed into "- const: mediatek,mt8195-mali" like the
> following lines?
>

Could be, but I expect more compatibles on this list, that's why I've modeled
that as enum. I prefer keeping this an enum.

> Otherwise,
>
> Reviewed-by: Chen-Yu Tsai <[email protected]>
>
>> + - const: mediatek,mt8192-mali
>> + - const: arm,mali-valhall-jm # Mali Valhall GPU model/revision is fully discoverable
>> - items:
>> - enum:
>> - mediatek,mt8192-mali
>> --
>> 2.39.2
>>