diff --git a/drivers/gpu/drm/tegra/nvdec.c b/drivers/gpu/drm/tegra/nvdec.c index 6bd7c57a..18a017d3 100644 --- a/drivers/gpu/drm/tegra/nvdec.c +++ b/drivers/gpu/drm/tegra/nvdec.c @@ -835,13 +835,13 @@ static int nvdec_probe(struct platform_device *pdev) err = clk_set_rate(nvdec->clks[0].clk, ULONG_MAX); if (err < 0) { dev_err(&pdev->dev, "failed to set clock rate: %d\n", err); - goto exit_falcon; + goto exit_actmon; } err = nvdec_devfreq_init(nvdec); if (err < 0) { dev_err(&pdev->dev, "failed to init devfreq: %d\n", err); - goto exit_falcon; + goto exit_actmon; } pm_runtime_enable(dev); @@ -850,6 +850,9 @@ static int nvdec_probe(struct platform_device *pdev) return 0; +exit_actmon: + host1x_actmon_unregister(&nvdec->client.base); + host1x_client_unregister(&nvdec->client.base); exit_falcon: falcon_exit(&nvdec->falcon); diff --git a/drivers/gpu/drm/tegra/nvenc.c b/drivers/gpu/drm/tegra/nvenc.c index f19f02ed..e7c1c13f 100644 --- a/drivers/gpu/drm/tegra/nvenc.c +++ b/drivers/gpu/drm/tegra/nvenc.c @@ -701,13 +701,13 @@ static int nvenc_probe(struct platform_device *pdev) err = clk_set_rate(nvenc->clk, ULONG_MAX); if (err < 0) { dev_err(&pdev->dev, "failed to set clock rate\n"); - goto exit_falcon; + goto exit_actmon; } err = nvenc_devfreq_init(nvenc); if (err < 0) { dev_err(&pdev->dev, "failed to init devfreq: %d\n", err); - goto exit_falcon; + goto exit_actmon; } pm_runtime_enable(dev); @@ -716,6 +716,9 @@ static int nvenc_probe(struct platform_device *pdev) return 0; +exit_actmon: + host1x_actmon_unregister(&nvenc->client.base); + host1x_client_unregister(&nvenc->client.base); exit_falcon: falcon_exit(&nvenc->falcon); diff --git a/drivers/gpu/drm/tegra/nvjpg.c b/drivers/gpu/drm/tegra/nvjpg.c index cd40b3fe..3d2d636e 100644 --- a/drivers/gpu/drm/tegra/nvjpg.c +++ b/drivers/gpu/drm/tegra/nvjpg.c @@ -688,13 +688,13 @@ static int nvjpg_probe(struct platform_device *pdev) err = clk_set_rate(nvjpg->clk, ULONG_MAX); if (err < 0) { dev_err(&pdev->dev, "failed to set clock rate\n"); - goto exit_falcon; + goto exit_actmon; } err = nvjpg_devfreq_init(nvjpg); if (err < 0) { dev_err(&pdev->dev, "failed to init devfreq: %d\n", err); - goto exit_falcon; + goto exit_actmon; } pm_runtime_enable(dev); @@ -703,6 +703,9 @@ static int nvjpg_probe(struct platform_device *pdev) return 0; +exit_actmon: + host1x_actmon_unregister(&nvjpg->client.base); + host1x_client_unregister(&nvjpg->client.base); exit_falcon: falcon_exit(&nvjpg->falcon); diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c index e8251088..79f02bd1 100644 --- a/drivers/gpu/drm/tegra/vic.c +++ b/drivers/gpu/drm/tegra/vic.c @@ -769,13 +769,13 @@ static int vic_probe(struct platform_device *pdev) err = clk_set_rate(vic->clk, ULONG_MAX); if (err < 0) { dev_err(&pdev->dev, "failed to set clock rate: %d\n", err); - goto exit_falcon; + goto exit_actmon; } err = vic_devfreq_init(vic); if (err < 0) { dev_err(&pdev->dev, "failed to init devfreq: %d\n", err); - goto exit_falcon; + goto exit_actmon; } pm_runtime_enable(dev); @@ -784,6 +784,10 @@ static int vic_probe(struct platform_device *pdev) return 0; +exit_actmon: + host1x_actmon_unregister(&vic->client.base); + host1x_client_unregister(&vic->client.base); + exit_falcon: falcon_exit(&vic->falcon);