Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Upgrade to 4.4.50-rt62
[kvmfornfv.git]
/
kernel
/
drivers
/
clk
/
rockchip
/
clk.c
diff --git
a/kernel/drivers/clk/rockchip/clk.c
b/kernel/drivers/clk/rockchip/clk.c
index
be6c7fd
..
9b6c818
100644
(file)
--- a/
kernel/drivers/clk/rockchip/clk.c
+++ b/
kernel/drivers/clk/rockchip/clk.c
@@
-70,7
+70,7
@@
static struct clk *rockchip_clk_register_branch(const char *name,
if (gate_offset >= 0) {
gate = kzalloc(sizeof(*gate), GFP_KERNEL);
if (!gate)
if (gate_offset >= 0) {
gate = kzalloc(sizeof(*gate), GFP_KERNEL);
if (!gate)
-
return ERR_PTR(-ENOMEM)
;
+
goto err_gate
;
gate->flags = gate_flags;
gate->reg = base + gate_offset;
gate->flags = gate_flags;
gate->reg = base + gate_offset;
@@
-82,7
+82,7
@@
static struct clk *rockchip_clk_register_branch(const char *name,
if (div_width > 0) {
div = kzalloc(sizeof(*div), GFP_KERNEL);
if (!div)
if (div_width > 0) {
div = kzalloc(sizeof(*div), GFP_KERNEL);
if (!div)
-
return ERR_PTR(-ENOMEM)
;
+
goto err_div
;
div->flags = div_flags;
div->reg = base + muxdiv_offset;
div->flags = div_flags;
div->reg = base + muxdiv_offset;
@@
-90,7
+90,9
@@
static struct clk *rockchip_clk_register_branch(const char *name,
div->width = div_width;
div->lock = lock;
div->table = div_table;
div->width = div_width;
div->lock = lock;
div->table = div_table;
- div_ops = &clk_divider_ops;
+ div_ops = (div_flags & CLK_DIVIDER_READ_ONLY)
+ ? &clk_divider_ro_ops
+ : &clk_divider_ops;
}
clk = clk_register_composite(NULL, name, parent_names, num_parents,
}
clk = clk_register_composite(NULL, name, parent_names, num_parents,
@@
-100,6
+102,11
@@
static struct clk *rockchip_clk_register_branch(const char *name,
flags);
return clk;
flags);
return clk;
+err_div:
+ kfree(gate);
+err_gate:
+ kfree(mux);
+ return ERR_PTR(-ENOMEM);
}
static struct clk *rockchip_clk_register_frac_branch(const char *name,
}
static struct clk *rockchip_clk_register_frac_branch(const char *name,