static void nvhost_pod_exit(struct devfreq *df) { struct podgov_info_rec *podgov = df->data; struct platform_device *d = to_platform_device(df->dev.parent); blocking_notifier_chain_unregister(&throughput_notifier_list, &podgov->throughput_hint_notifier); cancel_delayed_work(&podgov->idle_timer); device_remove_file(&d->dev, &dev_attr_enable_3d_scaling); device_remove_file(&d->dev, &dev_attr_user); device_remove_file(&d->dev, &dev_attr_freq_request); nvhost_scale3d_debug_deinit(df); kfree(podgov); }
static void nvhost_pod_exit(struct devfreq *df) { struct podgov_info_rec *podgov = df->data; struct nvhost_device *d = to_nvhost_device(df->dev.parent); cancel_work_sync(&podgov->work); cancel_delayed_work(&podgov->idle_timer); kfree(podgov->freqlist); device_remove_file(&d->dev, &dev_attr_enable_3d_scaling); device_remove_file(&d->dev, &dev_attr_user); device_remove_file(&d->dev, &dev_attr_freq_request); nvhost_scale3d_debug_deinit(df); kfree(podgov); local_podgov = NULL; }