Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PM / devfreq: tegra: Register governor on module init

So this driver builds as a module.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>

authored by

Tomeu Vizoso and committed by
MyungJoo Ham
358b615f 34ed5040

+30 -7
+30 -7
drivers/devfreq/tegra-devfreq.c
··· 606 606 .event_handler = tegra_governor_event_handler, 607 607 }; 608 608 609 - static int __init tegra_governor_init(void) 610 - { 611 - return devfreq_add_governor(&tegra_devfreq_governor); 612 - } 613 - subsys_initcall(tegra_governor_init); 614 - 615 609 static int tegra_devfreq_probe(struct platform_device *pdev) 616 610 { 617 611 struct tegra_devfreq *tegra; ··· 749 755 .of_match_table = tegra_devfreq_of_match, 750 756 }, 751 757 }; 752 - module_platform_driver(tegra_devfreq_driver); 758 + 759 + static int __init tegra_devfreq_init(void) 760 + { 761 + int ret = 0; 762 + 763 + ret = devfreq_add_governor(&tegra_devfreq_governor); 764 + if (ret) { 765 + pr_err("%s: failed to add governor: %d\n", __func__, ret); 766 + return ret; 767 + } 768 + 769 + ret = platform_driver_register(&tegra_devfreq_driver); 770 + if (ret) 771 + devfreq_remove_governor(&tegra_devfreq_governor); 772 + 773 + return ret; 774 + } 775 + module_init(tegra_devfreq_init) 776 + 777 + static void __exit tegra_devfreq_exit(void) 778 + { 779 + int ret = 0; 780 + 781 + platform_driver_unregister(&tegra_devfreq_driver); 782 + 783 + ret = devfreq_remove_governor(&tegra_devfreq_governor); 784 + if (ret) 785 + pr_err("%s: failed to remove governor: %d\n", __func__, ret); 786 + } 787 + module_exit(tegra_devfreq_exit) 753 788 754 789 MODULE_LICENSE("GPL v2"); 755 790 MODULE_DESCRIPTION("Tegra devfreq driver");