[PATCH 2/2] drm/panfrost: add devfreq regulator support

Steven Price steven.price at arm.com
Mon Apr 13 15:55:06 UTC 2020


On 13/04/2020 15:31, Clément Péron wrote:
> Hi,
> 
> On Mon, 13 Apr 2020 at 16:18, Clément Péron <peron.clem at gmail.com> wrote:
>>
>> Hi Steven,
>>
>> On Mon, 13 Apr 2020 at 15:18, Steven Price <steven.price at arm.com> wrote:
>>>
>>> On 11/04/2020 21:06, Clément Péron wrote:
>>>> OPP table can defined both frequency and voltage.
>>>>
>>>> Register the mali regulator if it exist.
>>>>
>>>> Signed-off-by: Clément Péron <peron.clem at gmail.com>
>>>> ---
>>>>    drivers/gpu/drm/panfrost/panfrost_devfreq.c | 34 ++++++++++++++++++---
>>>>    drivers/gpu/drm/panfrost/panfrost_device.h  |  1 +
>>>>    2 files changed, 31 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/panfrost/panfrost_devfreq.c b/drivers/gpu/drm/panfrost/panfrost_devfreq.c
>>>> index 62541f4edd81..2dc8e2355358 100644
>>>> --- a/drivers/gpu/drm/panfrost/panfrost_devfreq.c
>>>> +++ b/drivers/gpu/drm/panfrost/panfrost_devfreq.c
>>>> @@ -78,12 +78,26 @@ int panfrost_devfreq_init(struct panfrost_device *pfdev)
>>>>        struct device *dev = &pfdev->pdev->dev;
>>>>        struct devfreq *devfreq;
>>>>        struct thermal_cooling_device *cooling;
>>>> +     const char *mali = "mali";
>>>> +     struct opp_table *opp_table = NULL;
>>>> +
>>>> +     /* Regulator is optional */
>>>> +     opp_table = dev_pm_opp_set_regulators(dev, &mali, 1);
>>>
>>> This looks like it applies before 3e1399bccf51 ("drm/panfrost: Add
>>> support for multiple regulators") which is currently in drm-misc-next
>>> (and linux-next). You want something more like:
>>
>> Thanks for you review, indeed I didn't see that multiple regulators
>> support has been added.
>> Will update in v2.
>>
>>>
>>>       opp_table = dev_pm_opp_set_regulators(dev,
>>>                                             pfdev->comp->supply_names,
>>>                                             pfdev->comp->num_supplies);
>>>
>>> Otherwise a platform with multiple regulators won't work correctly.
>>>
>>> Also running on my firefly (RK3288) board I get the following warning:
>>>
>>>      debugfs: Directory 'ffa30000.gpu-mali' with parent 'vdd_gpu' already
>>> present!
>>>
>>> This is due to the regulator debugfs entries getting created twice (once
>>> in panfrost_regulator_init() and once here).
>>
>> Is it a warning that should be consider as an error? Look's more an info no?
>> What should be the correct behavior if a device want to register two
>> times the same regulator?
> 
> Or we can change the name from vdd_XXX to opp_vdd_XXX ?
> https://elixir.bootlin.com/linux/latest/source/drivers/opp/debugfs.c#L45

Yes, I'm not sure that it's actually a problem in practice. And it may 
well be correct to change this in the generic code rather than try to 
work around it in Panfrost. But we shouldn't spam the user with warnings 
as that makes real issues harder to see.

Your suggestion to change the name seems reasonable to me, but I don't 
fully understand the opp code, so we'd need some review from the OPP 
maintainers. Hopefully Viresh, Nishanth or Stephen can provide some insight.

Steve


More information about the dri-devel mailing list