Message ID | 1458863503-31121-6-git-send-email-david@lechnology.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Friday 25 March 2016 05:21 AM, David Lechner wrote: > Introduce a set_parent callback that will be used for mux clocks, such as > the USB PHY muxes and the async3 clock domain mux. > > Signed-off-by: David Lechner <david@lechnology.com> > --- > > v3 changes: none. > > > arch/arm/mach-davinci/clock.c | 17 ++++++++++++++++- > arch/arm/mach-davinci/clock.h | 1 + > 2 files changed, 17 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c > index a5c2629..dfc2eb3 100644 > --- a/arch/arm/mach-davinci/clock.c > +++ b/arch/arm/mach-davinci/clock.c > @@ -195,6 +195,13 @@ int clk_set_parent(struct clk *clk, struct clk *parent) > return -EINVAL; > > mutex_lock(&clocks_mutex); > + if (clk->set_parent) { > + int ret = clk->set_parent(clk, parent); Need empty line here. > + if (ret) { > + mutex_unlock(&clocks_mutex); > + return ret; > + } > + } > clk->parent = parent; > list_del_init(&clk->childnode); > list_add(&clk->childnode, &clk->parent->children); > @@ -224,8 +231,16 @@ int clk_register(struct clk *clk) > > mutex_lock(&clocks_mutex); > list_add_tail(&clk->node, &clocks); > - if (clk->parent) > + if (clk->parent) { > + if (clk->set_parent) { > + int ret = clk->set_parent(clk, clk->parent); Here too. Applying this patch with these local changes. BTW, checkpatch complained about these. Please try to address all warnings unless there is a good reason not to fix one. Thanks, Sekhar
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c index a5c2629..dfc2eb3 100644 --- a/arch/arm/mach-davinci/clock.c +++ b/arch/arm/mach-davinci/clock.c @@ -195,6 +195,13 @@ int clk_set_parent(struct clk *clk, struct clk *parent) return -EINVAL; mutex_lock(&clocks_mutex); + if (clk->set_parent) { + int ret = clk->set_parent(clk, parent); + if (ret) { + mutex_unlock(&clocks_mutex); + return ret; + } + } clk->parent = parent; list_del_init(&clk->childnode); list_add(&clk->childnode, &clk->parent->children); @@ -224,8 +231,16 @@ int clk_register(struct clk *clk) mutex_lock(&clocks_mutex); list_add_tail(&clk->node, &clocks); - if (clk->parent) + if (clk->parent) { + if (clk->set_parent) { + int ret = clk->set_parent(clk, clk->parent); + if (ret) { + mutex_unlock(&clocks_mutex); + return ret; + } + } list_add_tail(&clk->childnode, &clk->parent->children); + } mutex_unlock(&clocks_mutex); /* If rate is already set, use it */ diff --git a/arch/arm/mach-davinci/clock.h b/arch/arm/mach-davinci/clock.h index 8b0fbbe..96a591f 100644 --- a/arch/arm/mach-davinci/clock.h +++ b/arch/arm/mach-davinci/clock.h @@ -106,6 +106,7 @@ struct clk { int (*reset) (struct clk *clk, bool reset); void (*clk_enable) (struct clk *clk); void (*clk_disable) (struct clk *clk); + int (*set_parent) (struct clk *clk, struct clk *parent); }; /* Clock flags: SoC-specific flags start at BIT(16) */
Introduce a set_parent callback that will be used for mux clocks, such as the USB PHY muxes and the async3 clock domain mux. Signed-off-by: David Lechner <david@lechnology.com> --- v3 changes: none. arch/arm/mach-davinci/clock.c | 17 ++++++++++++++++- arch/arm/mach-davinci/clock.h | 1 + 2 files changed, 17 insertions(+), 1 deletion(-)