mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: add gk20a_scale_exit()
When removing the module, remove the device from devfreq and free resources allocated when scaling is initialized. Bug 1476801 Change-Id: I7bb0f8112a5bf7e5ce2fc56cf8af7059d910002c Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/594444 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
committed by
Dan Willemsen
parent
6049301229
commit
e99b59d14a
@@ -1460,6 +1460,9 @@ static int __exit gk20a_remove(struct platform_device *dev)
|
||||
cfb_remove_device(&dev->dev);
|
||||
#endif
|
||||
|
||||
if (IS_ENABLED(CONFIG_GK20A_DEVFREQ))
|
||||
gk20a_scale_exit(dev);
|
||||
|
||||
if (g->remove_support)
|
||||
g->remove_support(dev);
|
||||
|
||||
|
||||
@@ -312,6 +312,28 @@ err_get_freqs:
|
||||
g->scale_profile = NULL;
|
||||
}
|
||||
|
||||
void gk20a_scale_exit(struct platform_device *pdev)
|
||||
{
|
||||
struct gk20a_platform *platform = platform_get_drvdata(pdev);
|
||||
struct gk20a *g = platform->g;
|
||||
int err;
|
||||
|
||||
if (platform->qos_id < PM_QOS_NUM_CLASSES &&
|
||||
platform->qos_id != PM_QOS_RESERVED &&
|
||||
platform->postscale) {
|
||||
pm_qos_remove_notifier(platform->qos_id,
|
||||
&g->scale_profile->qos_notify_block);
|
||||
}
|
||||
|
||||
if (platform->devfreq_governor) {
|
||||
err = devfreq_remove_device(g->devfreq);
|
||||
g->devfreq = NULL;
|
||||
}
|
||||
|
||||
kfree(g->scale_profile);
|
||||
g->scale_profile = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* gk20a_scale_hw_init(dev)
|
||||
*
|
||||
|
||||
@@ -35,6 +35,7 @@ struct gk20a_scale_profile {
|
||||
|
||||
/* Initialization and de-initialization for module */
|
||||
void gk20a_scale_init(struct platform_device *);
|
||||
void gk20a_scale_exit(struct platform_device *);
|
||||
void gk20a_scale_hw_init(struct platform_device *pdev);
|
||||
|
||||
#ifdef CONFIG_GK20A_DEVFREQ
|
||||
|
||||
Reference in New Issue
Block a user