On 20/07/15 09:51, Mikko Perttunen wrote:
> On 07/20/2015 11:28 AM, Jon Hunter wrote:
>> Hi Mikko,
>
> Hi!
>
>> ...
>>> +static int vic_runtime_resume(struct device *dev)
>>> +{
>>> + struct vic *vic = dev_get_drvdata(dev);
>>> + int err;
>>> +
>>> + err = tegra_powergate_sequence_power_up(TEGRA_POWERGATE_VIC,
>>> + vic->clk, vic->rst);
>>
>> I would like to deprecate use of the above function [1]. I have been
>> trying to migrate driver to use a new API instead of the above.
>
> Yes, we will need to coordinate the API change here. I kept the old way
> here to not depend on your series for now.
>
>>
>>> + if (err < 0)
>>> + dev_err(dev, "failed to power up device\n");
>>> +
>>> + return err;
>>> +}
>>> +
>>> ...
>>> +
>>> + pm_runtime_enable(&pdev->dev);
>>> + if (!pm_runtime_enabled(&pdev->dev)) {
>>> + err = vic_runtime_resume(&pdev->dev);
>>> + if (err < 0)
>>> + goto unregister_client;
>>> + }
>>
>> I don't see why pm_runtime_enable() should ever fail to enable
>> pm_runtime here. Hence, the if-statement appears to be redundant. If you
>> are trying to determine whether rpm is supported for the power-domains
>> then you should simply check to see if the DT node for the device has
>> the "power-domains" property. See my series [1].
>
> The intention is that if runtime PM is not enabled, the power domain is
> still brought up. On a cursory look, it seems like with your patch, this
> should indeed work fine without this check if CONFIG_PM is enabled. Now,
> that might always be enabled? If so, then everything would be fine; if
> this lands after your series, we could even just make the power-domains
> prop mandatory and not implement the legacy mode at all. If not, then
> AFAIU we must still keep this path.
Ok, I see you just wish to test it is enabled in the kernel config. Then
yes that would make sense and the above is fine.
Cheers
Jon