static int omap_cpufreq_remove(struct platform_device *pdev) { return cpufreq_unregister_driver(&omap_driver); }
static int ls1x_cpufreq_probe(struct platform_device *pdev) { struct plat_ls1x_cpufreq *pdata = dev_get_platdata(&pdev->dev); struct clk *clk; int ret; if (!pdata || !pdata->clk_name || !pdata->osc_clk_name) { dev_err(&pdev->dev, "platform data missing\n"); return -EINVAL; } cpufreq = devm_kzalloc(&pdev->dev, sizeof(struct ls1x_cpufreq), GFP_KERNEL); if (!cpufreq) return -ENOMEM; cpufreq->dev = &pdev->dev; clk = devm_clk_get(&pdev->dev, pdata->clk_name); if (IS_ERR(clk)) { dev_err(&pdev->dev, "unable to get %s clock\n", pdata->clk_name); return PTR_ERR(clk); } cpufreq->clk = clk; clk = clk_get_parent(clk); if (IS_ERR(clk)) { dev_err(&pdev->dev, "unable to get parent of %s clock\n", __clk_get_name(cpufreq->clk)); return PTR_ERR(clk); } cpufreq->mux_clk = clk; clk = clk_get_parent(clk); if (IS_ERR(clk)) { dev_err(&pdev->dev, "unable to get parent of %s clock\n", __clk_get_name(cpufreq->mux_clk)); return PTR_ERR(clk); } cpufreq->pll_clk = clk; clk = devm_clk_get(&pdev->dev, pdata->osc_clk_name); if (IS_ERR(clk)) { dev_err(&pdev->dev, "unable to get %s clock\n", pdata->osc_clk_name); return PTR_ERR(clk); } cpufreq->osc_clk = clk; cpufreq->max_freq = pdata->max_freq; cpufreq->min_freq = pdata->min_freq; ret = cpufreq_register_driver(&ls1x_cpufreq_driver); if (ret) { dev_err(&pdev->dev, "failed to register CPUFreq driver: %d\n", ret); return ret; } ret = cpufreq_register_notifier(&ls1x_cpufreq_notifier_block, CPUFREQ_TRANSITION_NOTIFIER); if (ret) { dev_err(&pdev->dev, "failed to register CPUFreq notifier: %d\n",ret); cpufreq_unregister_driver(&ls1x_cpufreq_driver); } return ret; }
static int dt_cpufreq_remove(struct platform_device *pdev) { cpufreq_unregister_driver(&dt_cpufreq_driver); return 0; }
/** * longrun_exit - unregisters LongRun support */ static void __exit longrun_exit(void) { cpufreq_unregister_driver(&longrun_driver); }
/* ============= Module exit ============= */ static void __exit bcm2835_cpufreq_module_exit(void) { print_debug("IN\n"); cpufreq_unregister_driver(&bcm2835_cpufreq_driver); return; }
/** * speedstep_exit - unregisters SpeedStep support * * Unregisters SpeedStep support. */ static void __exit speedstep_exit(void) { cpufreq_unregister_driver(&speedstep_driver); }
static void __exit sc520_freq_exit(void) { cpufreq_unregister_driver(&sc520_freq_driver); iounmap(cpuctl); }
static void __exit tegra_cpufreq_exit(void) { cpufreq_unregister_driver(&tegra_cpufreq_driver); clk_put(emc_clk); clk_put(cpu_clk); }