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

PM / devfreq: Add devm_devfreq_add_governor()

Add resource-managed variant of devfreq_add_governor().

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>

authored by

Dmitry Osipenko and committed by
Viresh Kumar
1cc55204 e69709f6

+29
+26
drivers/devfreq/devfreq.c
··· 1301 1301 } 1302 1302 EXPORT_SYMBOL(devfreq_add_governor); 1303 1303 1304 + static void devm_devfreq_remove_governor(void *governor) 1305 + { 1306 + WARN_ON(devfreq_remove_governor(governor)); 1307 + } 1308 + 1309 + /** 1310 + * devm_devfreq_add_governor() - Add devfreq governor 1311 + * @dev: device which adds devfreq governor 1312 + * @governor: the devfreq governor to be added 1313 + * 1314 + * This is a resource-managed variant of devfreq_add_governor(). 1315 + */ 1316 + int devm_devfreq_add_governor(struct device *dev, 1317 + struct devfreq_governor *governor) 1318 + { 1319 + int err; 1320 + 1321 + err = devfreq_add_governor(governor); 1322 + if (err) 1323 + return err; 1324 + 1325 + return devm_add_action_or_reset(dev, devm_devfreq_remove_governor, 1326 + governor); 1327 + } 1328 + EXPORT_SYMBOL(devm_devfreq_add_governor); 1329 + 1304 1330 /** 1305 1331 * devfreq_remove_governor() - Remove devfreq feature from a device. 1306 1332 * @governor: the devfreq governor to be removed
+3
drivers/devfreq/governor.h
··· 84 84 int devfreq_add_governor(struct devfreq_governor *governor); 85 85 int devfreq_remove_governor(struct devfreq_governor *governor); 86 86 87 + int devm_devfreq_add_governor(struct device *dev, 88 + struct devfreq_governor *governor); 89 + 87 90 int devfreq_update_status(struct devfreq *devfreq, unsigned long freq); 88 91 int devfreq_update_target(struct devfreq *devfreq, unsigned long freq); 89 92