Message ID | 20200207052627.130118-2-drinkcat@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add dts for mt8183 GPU (and misc panfrost patches) | expand |
On Fri, Feb 07, 2020 at 01:26:21PM +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> > --- > > v4: > - Add power-domain-names description > (kept Alyssa's reviewed-by as the change is minor) > 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 4ea6a8789699709..0d93b3981445977 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 > @@ -62,6 +63,30 @@ allOf: > minItems: 2 > 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: 2d AFAIK, there's no '2d' block in bifrost GPUs. A power domain for each core group is correct though. Rob
+Nick Fan +Sj Huang @ MTK On Wed, Feb 26, 2020 at 1:16 AM Rob Herring <robh@kernel.org> wrote: > > On Fri, Feb 07, 2020 at 01:26:21PM +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> > > --- > > > > v4: > > - Add power-domain-names description > > (kept Alyssa's reviewed-by as the change is minor) > > 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 4ea6a8789699709..0d93b3981445977 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 > > @@ -62,6 +63,30 @@ allOf: > > minItems: 2 > > 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: 2d > > AFAIK, there's no '2d' block in bifrost GPUs. A power domain for each > core group is correct though. Good question... Hopefully Nick/SJ@MTK can comment, the non-upstream DTS has: gpu: mali@13040000 { compatible = "mediatek,mt8183-mali", "arm,mali-bifrost"; power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_CORE0>; ... } gpu_core1: mali_gpu_core1 { compatible = "mediatek,gpu_core1"; power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_CORE1>; }; gpu_core2: mali_gpu_core2 { compatible = "mediatek,gpu_core2"; power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_2D>; }; So I picked core0/core1/2d as names, but looking at this, it's likely core2 is more appropriate (and MT8183_POWER_DOMAIN_MFG_2D might just be a internal/legacy name, if there is no real 2d domain). Thanks. > Rob
Sorry for my late reply. I have checked internally. The MT8183_POWER_DOMAIN_MFG_2D is just a legacy name, not really 2D domain. If the naming too confusing, we can change this name to MT8183_POWER_DOMAIN_MFG_CORE2 for consistency. Thanks Nick Fan On Wed, 2020-02-26 at 08:55 +0800, Nicolas Boichat wrote: > +Nick Fan +Sj Huang @ MTK > > On Wed, Feb 26, 2020 at 1:16 AM Rob Herring <robh@kernel.org> wrote: > > > > On Fri, Feb 07, 2020 at 01:26:21PM +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> > > > --- > > > > > > v4: > > > - Add power-domain-names description > > > (kept Alyssa's reviewed-by as the change is minor) > > > 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 4ea6a8789699709..0d93b3981445977 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 > > > @@ -62,6 +63,30 @@ allOf: > > > minItems: 2 > > > 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: 2d > > > > AFAIK, there's no '2d' block in bifrost GPUs. A power domain for each > > core group is correct though. > > Good question... Hopefully Nick/SJ@MTK can comment, the non-upstream DTS has: > gpu: mali@13040000 { > compatible = "mediatek,mt8183-mali", "arm,mali-bifrost"; > power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_CORE0>; > ... > } > > gpu_core1: mali_gpu_core1 { > compatible = "mediatek,gpu_core1"; > power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_CORE1>; > }; > > gpu_core2: mali_gpu_core2 { > compatible = "mediatek,gpu_core2"; > power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_2D>; > }; > > So I picked core0/core1/2d as names, but looking at this, it's likely > core2 is more appropriate (and MT8183_POWER_DOMAIN_MFG_2D might just > be a internal/legacy name, if there is no real 2d domain). > > Thanks. > > > Rob
On Fri, Mar 6, 2020 at 10:34 AM Nick Fan <nick.fan@mediatek.com> wrote: > > Sorry for my late reply. > I have checked internally. > The MT8183_POWER_DOMAIN_MFG_2D is just a legacy name, not really 2D > domain. > > If the naming too confusing, we can change this name to > MT8183_POWER_DOMAIN_MFG_CORE2 for consistency. Thanks! I think I'll keep MT8183_POWER_DOMAIN_MFG_2D (that's fine if that's the domain name you use internally in your HW design), but I'll modify power-domain-names to core0/1/2 in the binding. > Thanks > > Nick Fan > > On Wed, 2020-02-26 at 08:55 +0800, Nicolas Boichat wrote: > > > +Nick Fan +Sj Huang @ MTK > > > > On Wed, Feb 26, 2020 at 1:16 AM Rob Herring <robh@kernel.org> wrote: > > > > > > On Fri, Feb 07, 2020 at 01:26:21PM +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> > > > > --- > > > > > > > > v4: > > > > - Add power-domain-names description > > > > (kept Alyssa's reviewed-by as the change is minor) > > > > 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 4ea6a8789699709..0d93b3981445977 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 > > > > @@ -62,6 +63,30 @@ allOf: > > > > minItems: 2 > > > > 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: 2d > > > > > > AFAIK, there's no '2d' block in bifrost GPUs. A power domain for each > > > core group is correct though. > > > > Good question... Hopefully Nick/SJ@MTK can comment, the non-upstream DTS has: > > gpu: mali@13040000 { > > compatible = "mediatek,mt8183-mali", "arm,mali-bifrost"; > > power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_CORE0>; > > ... > > } > > > > gpu_core1: mali_gpu_core1 { > > compatible = "mediatek,gpu_core1"; > > power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_CORE1>; > > }; > > > > gpu_core2: mali_gpu_core2 { > > compatible = "mediatek,gpu_core2"; > > power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_2D>; > > }; > > > > So I picked core0/core1/2d as names, but looking at this, it's likely > > core2 is more appropriate (and MT8183_POWER_DOMAIN_MFG_2D might just > > be a internal/legacy name, if there is no real 2d domain). > > > > Thanks. > > > > > Rob >
On Thu, Mar 5, 2020 at 8:34 PM Nick Fan <nick.fan@mediatek.com> wrote: > > Sorry for my late reply. > I have checked internally. > The MT8183_POWER_DOMAIN_MFG_2D is just a legacy name, not really 2D > domain. > > If the naming too confusing, we can change this name to > MT8183_POWER_DOMAIN_MFG_CORE2 for consistency. Can you clarify what's in each domain? Are there actually 3 shader cores (IIRC, that should be discoverable)? Rob
On Fri, Mar 06, 2020 at 02:13:08PM +0000, Rob Herring wrote: > On Thu, Mar 5, 2020 at 8:34 PM Nick Fan <nick.fan@mediatek.com> wrote: > > > > Sorry for my late reply. > > I have checked internally. > > The MT8183_POWER_DOMAIN_MFG_2D is just a legacy name, not really 2D > > domain. > > > > If the naming too confusing, we can change this name to > > MT8183_POWER_DOMAIN_MFG_CORE2 for consistency. > > Can you clarify what's in each domain? Are there actually 3 shader > cores (IIRC, that should be discoverable)? The cover letter from Nicolas includes: > [ 501.321752] panfrost 13040000.gpu: shader_present=0x7 l2_present=0x1 0x7 is three bits set, so it certainly looks like there are 3 shader cores. Of course I wouldn't guarantee that it is as simple as each power domain has a shader core in. The job manager and tiler also need to be powered somehow, so they are either sharing with a shader core or there's something more complex going on. Steve
On Fri, 2020-03-06 at 14:43 +0000, Steven Price wrote: > On Fri, Mar 06, 2020 at 02:13:08PM +0000, Rob Herring wrote: > > On Thu, Mar 5, 2020 at 8:34 PM Nick Fan <nick.fan@mediatek.com> wrote: > > > > > > Sorry for my late reply. > > > I have checked internally. > > > The MT8183_POWER_DOMAIN_MFG_2D is just a legacy name, not really 2D > > > domain. > > > > > > If the naming too confusing, we can change this name to > > > MT8183_POWER_DOMAIN_MFG_CORE2 for consistency. > > > > Can you clarify what's in each domain? Are there actually 3 shader > > cores (IIRC, that should be discoverable)? > > The cover letter from Nicolas includes: > > > [ 501.321752] panfrost 13040000.gpu: shader_present=0x7 l2_present=0x1 > > 0x7 is three bits set, so it certainly looks like there are 3 shader > cores. Of course I wouldn't guarantee that it is as simple as each power > domain has a shader core in. The job manager and tiler also need to be > powered somehow, so they are either sharing with a shader core or > there's something more complex going on. > > Steve > There are actually five power domains in total for MT8183 GPU. There are 3 shader cores in MT8183. They can be listed as following for each power domain: 1.MT8183_POWER_DOMAIN_MFG_ASYNC : SOC bus logic 2.MT8183_POWER_DOMAIN_MFG : GPU job manager & tiler 3.MT8183_POWER_DOMAIN_MFG_CORE0 : GPU shader core 0 4.MT8183_POWER_DOMAIN_MFG_CORE1 : GPU shader core 1 5.MT8183_POWER_DOMAIN_MFG_2D : GPU shader core 2 There are other power domain dependency can be reference in the following link. https://lkml.org/lkml/2019/2/1/166 You can check the power domain dependencies as following ========================================================== +static const struct scp_subdomain scp_subdomain_mt8183[] = { + {MT8183_POWER_DOMAIN_MFG_ASYNC, MT8183_POWER_DOMAIN_MFG}, + {MT8183_POWER_DOMAIN_MFG, MT8183_POWER_DOMAIN_MFG_2D}, + {MT8183_POWER_DOMAIN_MFG, MT8183_POWER_DOMAIN_MFG_CORE0}, + {MT8183_POWER_DOMAIN_MFG, MT8183_POWER_DOMAIN_MFG_CORE1}, ========================================================== Thanks Nick Fan
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml index 4ea6a8789699709..0d93b3981445977 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 @@ -62,6 +63,30 @@ allOf: minItems: 2 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: 2d + + required: + - sram-supply + - power-domains + - power-domains-names examples: - |