Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0683039 authored by Tony Lindgren's avatar Tony Lindgren Committed by Russell King
Browse files

[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: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 5926a295
Loading
Loading
Loading
Loading
+18 −0
Original line number Original line Diff line number Diff line
@@ -135,6 +135,24 @@ struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,
}
}
EXPORT_SYMBOL(clkdev_alloc);
EXPORT_SYMBOL(clkdev_alloc);


int clk_add_alias(const char *alias, const char *alias_dev_name, char *id,
	struct device *dev)
{
	struct clk *r = clk_get(dev, id);
	struct clk_lookup *l;

	if (IS_ERR(r))
		return PTR_ERR(r);

	l = clkdev_alloc(r, alias, alias_dev_name);
	clk_put(r);
	if (!l)
		return -ENODEV;
	clkdev_add(l);
	return 0;
}
EXPORT_SYMBOL(clk_add_alias);

/*
/*
 * clkdev_drop - remove a clock dynamically allocated
 * clkdev_drop - remove a clock dynamically allocated
 */
 */
+0 −17
Original line number Original line Diff line number Diff line
@@ -86,20 +86,3 @@ void clks_register(struct clk_lookup *clks, size_t num)
	for (i = 0; i < num; i++)
	for (i = 0; i < num; i++)
		clkdev_add(&clks[i]);
		clkdev_add(&clks[i]);
}
}

int clk_add_alias(const char *alias, const char *alias_dev_name, char *id,
	struct device *dev)
{
	struct clk *r = clk_get(dev, id);
	struct clk_lookup *l;

	if (!r)
		return -ENODEV;

	l = clkdev_alloc(r, alias, alias_dev_name);
	clk_put(r);
	if (!l)
		return -ENODEV;
	clkdev_add(l);
	return 0;
}
+13 −0
Original line number Original line Diff line number Diff line
@@ -142,4 +142,17 @@ struct clk *clk_get_parent(struct clk *clk);
 */
 */
struct clk *clk_get_sys(const char *dev_id, const char *con_id);
struct clk *clk_get_sys(const char *dev_id, const char *con_id);


/**
 * clk_add_alias - add a new clock alias
 * @alias: name for clock alias
 * @alias_dev_name: device name
 * @id: platform specific clock name
 * @dev: device
 *
 * Allows using generic clock names for drivers by adding a new alias.
 * Assumes clkdev, see clkdev.h for more info.
 */
int clk_add_alias(const char *alias, const char *alias_dev_name, char *id,
			struct device *dev);

#endif
#endif