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

[ARM] 5536/1: Move clk_add_alias() to arch/arm/common/clkdev.c

This can be used for other arm platforms too as discussed
on the linux-arm-kernel list.

Also check the return value with IS_ERR and return PTR_ERR
as suggested by Russell King.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Tony Lindgren and committed by
Russell King
c0683039 5926a295

+31 -17
+18
arch/arm/common/clkdev.c
··· 135 135 } 136 136 EXPORT_SYMBOL(clkdev_alloc); 137 137 138 + int clk_add_alias(const char *alias, const char *alias_dev_name, char *id, 139 + struct device *dev) 140 + { 141 + struct clk *r = clk_get(dev, id); 142 + struct clk_lookup *l; 143 + 144 + if (IS_ERR(r)) 145 + return PTR_ERR(r); 146 + 147 + l = clkdev_alloc(r, alias, alias_dev_name); 148 + clk_put(r); 149 + if (!l) 150 + return -ENODEV; 151 + clkdev_add(l); 152 + return 0; 153 + } 154 + EXPORT_SYMBOL(clk_add_alias); 155 + 138 156 /* 139 157 * clkdev_drop - remove a clock dynamically allocated 140 158 */
-17
arch/arm/mach-pxa/clock.c
··· 86 86 for (i = 0; i < num; i++) 87 87 clkdev_add(&clks[i]); 88 88 } 89 - 90 - int clk_add_alias(const char *alias, const char *alias_dev_name, char *id, 91 - struct device *dev) 92 - { 93 - struct clk *r = clk_get(dev, id); 94 - struct clk_lookup *l; 95 - 96 - if (!r) 97 - return -ENODEV; 98 - 99 - l = clkdev_alloc(r, alias, alias_dev_name); 100 - clk_put(r); 101 - if (!l) 102 - return -ENODEV; 103 - clkdev_add(l); 104 - return 0; 105 - }
+13
include/linux/clk.h
··· 142 142 */ 143 143 struct clk *clk_get_sys(const char *dev_id, const char *con_id); 144 144 145 + /** 146 + * clk_add_alias - add a new clock alias 147 + * @alias: name for clock alias 148 + * @alias_dev_name: device name 149 + * @id: platform specific clock name 150 + * @dev: device 151 + * 152 + * Allows using generic clock names for drivers by adding a new alias. 153 + * Assumes clkdev, see clkdev.h for more info. 154 + */ 155 + int clk_add_alias(const char *alias, const char *alias_dev_name, char *id, 156 + struct device *dev); 157 + 145 158 #endif