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

Commit 2e733b3f authored by Paul Mundt's avatar Paul Mundt
Browse files

sh: Support early clkdev allocations.



early platform devices and the like may need to set up clock aliases,
which require an allocation at a time well before the slab allocators
are available. The clock framework comes up after bootmem, so using
bootmem as a fallback should be sufficient.

Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 51a5006a
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -20,6 +20,9 @@
#include <linux/string.h>
#include <linux/mutex.h>
#include <linux/clk.h>
#include <linux/slab.h>
#include <linux/bootmem.h>
#include <linux/mm.h>
#include <asm/clock.h>
#include <asm/clkdev.h>

@@ -103,12 +106,16 @@ struct clk_lookup_alloc {
	char	con_id[MAX_CON_ID];
};

struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,
	const char *dev_fmt, ...)
struct clk_lookup * __init_refok
clkdev_alloc(struct clk *clk, const char *con_id, const char *dev_fmt, ...)
{
	struct clk_lookup_alloc *cla;

	if (!slab_is_available())
		cla = alloc_bootmem_low_pages(sizeof(*cla));
	else
		cla = kzalloc(sizeof(*cla), GFP_KERNEL);

	if (!cla)
		return NULL;