[PATCH v15 12/39] drm/tegra: gr2d: Support generic power domain and runtime PM

Michał Mirosław mirq-linux at rere.qmqm.pl
Sun Nov 28 05:47:31 UTC 2021


On Sun, Nov 14, 2021 at 10:34:08PM +0300, Dmitry Osipenko wrote:
> Add runtime power management and support generic power domains.
[...]
> @@ -104,10 +127,17 @@ static int gr2d_open_channel(struct tegra_drm_client *client,
>  			     struct tegra_drm_context *context)
>  {
>  	struct gr2d *gr2d = to_gr2d(client);
> +	int err;
> +
> +	err = pm_runtime_resume_and_get(client->base.dev);
> +	if (err)
> +		return err;
>  
>  	context->channel = host1x_channel_get(gr2d->channel);
> -	if (!context->channel)
> +	if (!context->channel) {
> +		pm_runtime_put(context->client->base.dev);

Could host1x_channel_get/put() handle pm_runtime* calls ? I would expect
this to be common code for the users.

BTW, pm_runtime_resume_and_get() uses different dev than
pm_runtime_put() in the error path - is this intended?

Best Regards
Michał Mirosław


More information about the dri-devel mailing list