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