[PATCH 2/2] drm/panfrost: add h616 compatible string

Philippe Simons posted 2 patches 11 months ago
[PATCH 2/2] drm/panfrost: add h616 compatible string
Posted by Philippe Simons 11 months ago
Tie the Allwinner compatible string to the two features bits that will
toggle the clocks and the reset line whenever the power domain is changing
state.

Signed-off-by: Philippe Simons <simons.philippe@gmail.com>
---
 drivers/gpu/drm/panfrost/panfrost_drv.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index 0f3935556ac7..f13743fe6bad 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -776,6 +776,13 @@ static const struct panfrost_compatible default_data = {
 	.pm_domain_names = NULL,
 };
 
+static const struct panfrost_compatible allwinner_h616_data = {
+	.num_supplies = ARRAY_SIZE(default_supplies) - 1,
+	.supply_names = default_supplies,
+	.num_pm_domains = 1,
+	.pm_features = BIT(GPU_PM_RT_CLK_DIS) | BIT(GPU_PM_RT_RST_ASRT),
+};
+
 static const struct panfrost_compatible amlogic_data = {
 	.num_supplies = ARRAY_SIZE(default_supplies) - 1,
 	.supply_names = default_supplies,
@@ -859,6 +866,7 @@ static const struct of_device_id dt_match[] = {
 	{ .compatible = "mediatek,mt8186-mali", .data = &mediatek_mt8186_data },
 	{ .compatible = "mediatek,mt8188-mali", .data = &mediatek_mt8188_data },
 	{ .compatible = "mediatek,mt8192-mali", .data = &mediatek_mt8192_data },
+	{ .compatible = "allwinner,sun50i-h616-mali", .data = &allwinner_h616_data },
 	{}
 };
 MODULE_DEVICE_TABLE(of, dt_match);
-- 
2.48.1
Re: [PATCH 2/2] drm/panfrost: add h616 compatible string
Posted by Steven Price 10 months, 1 week ago
On 12/03/2025 23:23, Philippe Simons wrote:
> Tie the Allwinner compatible string to the two features bits that will
> toggle the clocks and the reset line whenever the power domain is changing
> state.

This looks fine, but we need the new compatible string to be documented
in the bindings:

Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml

I'm not sure what the situation is for the device tree for this
platform, but it would be good to get that all sorted before we merge
the compatible into panfrost.

Thanks,
Steve

> Signed-off-by: Philippe Simons <simons.philippe@gmail.com>
> ---
>  drivers/gpu/drm/panfrost/panfrost_drv.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
> index 0f3935556ac7..f13743fe6bad 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
> @@ -776,6 +776,13 @@ static const struct panfrost_compatible default_data = {
>  	.pm_domain_names = NULL,
>  };
>  
> +static const struct panfrost_compatible allwinner_h616_data = {
> +	.num_supplies = ARRAY_SIZE(default_supplies) - 1,
> +	.supply_names = default_supplies,
> +	.num_pm_domains = 1,
> +	.pm_features = BIT(GPU_PM_RT_CLK_DIS) | BIT(GPU_PM_RT_RST_ASRT),
> +};
> +
>  static const struct panfrost_compatible amlogic_data = {
>  	.num_supplies = ARRAY_SIZE(default_supplies) - 1,
>  	.supply_names = default_supplies,
> @@ -859,6 +866,7 @@ static const struct of_device_id dt_match[] = {
>  	{ .compatible = "mediatek,mt8186-mali", .data = &mediatek_mt8186_data },
>  	{ .compatible = "mediatek,mt8188-mali", .data = &mediatek_mt8188_data },
>  	{ .compatible = "mediatek,mt8192-mali", .data = &mediatek_mt8192_data },
> +	{ .compatible = "allwinner,sun50i-h616-mali", .data = &allwinner_h616_data },
>  	{}
>  };
>  MODULE_DEVICE_TABLE(of, dt_match);
Re: [PATCH 2/2] drm/panfrost: add h616 compatible string
Posted by Andre Przywara 10 months, 1 week ago
On Mon, 31 Mar 2025 11:32:58 +0100
Steven Price <steven.price@arm.com> wrote:

Hi Steven,

thanks for having a look!

> On 12/03/2025 23:23, Philippe Simons wrote:
> > Tie the Allwinner compatible string to the two features bits that will
> > toggle the clocks and the reset line whenever the power domain is changing
> > state.  
> 
> This looks fine, but we need the new compatible string to be documented
> in the bindings:
> 
> Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
> 
> I'm not sure what the situation is for the device tree for this
> platform, but it would be good to get that all sorted before we merge
> the compatible into panfrost.

The binding addition was sent earlier, as part of my power-domain driver
series:
https://lore.kernel.org/linux-sunxi/20250221005802.11001-1-andre.przywara@arm.com/T/#m083df99cf34ddfd06a6a4b8fbb49636a51b05112

Rob took that one already, and it landed in Linus' tree last week, so
that would be covered.

Cheers,
Andre

> 
> Thanks,
> Steve
> 
> > Signed-off-by: Philippe Simons <simons.philippe@gmail.com>
> > ---
> >  drivers/gpu/drm/panfrost/panfrost_drv.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
> > index 0f3935556ac7..f13743fe6bad 100644
> > --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
> > +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
> > @@ -776,6 +776,13 @@ static const struct panfrost_compatible default_data = {
> >  	.pm_domain_names = NULL,
> >  };
> >  
> > +static const struct panfrost_compatible allwinner_h616_data = {
> > +	.num_supplies = ARRAY_SIZE(default_supplies) - 1,
> > +	.supply_names = default_supplies,
> > +	.num_pm_domains = 1,
> > +	.pm_features = BIT(GPU_PM_RT_CLK_DIS) | BIT(GPU_PM_RT_RST_ASRT),
> > +};
> > +
> >  static const struct panfrost_compatible amlogic_data = {
> >  	.num_supplies = ARRAY_SIZE(default_supplies) - 1,
> >  	.supply_names = default_supplies,
> > @@ -859,6 +866,7 @@ static const struct of_device_id dt_match[] = {
> >  	{ .compatible = "mediatek,mt8186-mali", .data = &mediatek_mt8186_data },
> >  	{ .compatible = "mediatek,mt8188-mali", .data = &mediatek_mt8188_data },
> >  	{ .compatible = "mediatek,mt8192-mali", .data = &mediatek_mt8192_data },
> > +	{ .compatible = "allwinner,sun50i-h616-mali", .data = &allwinner_h616_data },
> >  	{}
> >  };
> >  MODULE_DEVICE_TABLE(of, dt_match);  
>
Re: [PATCH 2/2] drm/panfrost: add h616 compatible string
Posted by Steven Price 10 months, 1 week ago
On 31/03/2025 11:57, Andre Przywara wrote:
> On Mon, 31 Mar 2025 11:32:58 +0100
> Steven Price <steven.price@arm.com> wrote:
> 
> Hi Steven,
> 
> thanks for having a look!
> 
>> On 12/03/2025 23:23, Philippe Simons wrote:
>>> Tie the Allwinner compatible string to the two features bits that will
>>> toggle the clocks and the reset line whenever the power domain is changing
>>> state.  
>>
>> This looks fine, but we need the new compatible string to be documented
>> in the bindings:
>>
>> Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
>>
>> I'm not sure what the situation is for the device tree for this
>> platform, but it would be good to get that all sorted before we merge
>> the compatible into panfrost.
> 
> The binding addition was sent earlier, as part of my power-domain driver
> series:
> https://lore.kernel.org/linux-sunxi/20250221005802.11001-1-andre.przywara@arm.com/T/#m083df99cf34ddfd06a6a4b8fbb49636a51b05112
> 
> Rob took that one already, and it landed in Linus' tree last week, so
> that would be covered.

Ah, cool. I realised now I was looking in drm-misc-next not linux-next
(too many Linux checkouts!) which is why I didn't find it.

Thanks,
Steve

> Cheers,
> Andre
> 
>>
>> Thanks,
>> Steve
>>
>>> Signed-off-by: Philippe Simons <simons.philippe@gmail.com>
>>> ---
>>>  drivers/gpu/drm/panfrost/panfrost_drv.c | 8 ++++++++
>>>  1 file changed, 8 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
>>> index 0f3935556ac7..f13743fe6bad 100644
>>> --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
>>> +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
>>> @@ -776,6 +776,13 @@ static const struct panfrost_compatible default_data = {
>>>  	.pm_domain_names = NULL,
>>>  };
>>>  
>>> +static const struct panfrost_compatible allwinner_h616_data = {
>>> +	.num_supplies = ARRAY_SIZE(default_supplies) - 1,
>>> +	.supply_names = default_supplies,
>>> +	.num_pm_domains = 1,
>>> +	.pm_features = BIT(GPU_PM_RT_CLK_DIS) | BIT(GPU_PM_RT_RST_ASRT),
>>> +};
>>> +
>>>  static const struct panfrost_compatible amlogic_data = {
>>>  	.num_supplies = ARRAY_SIZE(default_supplies) - 1,
>>>  	.supply_names = default_supplies,
>>> @@ -859,6 +866,7 @@ static const struct of_device_id dt_match[] = {
>>>  	{ .compatible = "mediatek,mt8186-mali", .data = &mediatek_mt8186_data },
>>>  	{ .compatible = "mediatek,mt8188-mali", .data = &mediatek_mt8188_data },
>>>  	{ .compatible = "mediatek,mt8192-mali", .data = &mediatek_mt8192_data },
>>> +	{ .compatible = "allwinner,sun50i-h616-mali", .data = &allwinner_h616_data },
>>>  	{}
>>>  };
>>>  MODULE_DEVICE_TABLE(of, dt_match);  
>>
>