Hi, >> +static int s5pc100_spdif_set_rate(struct clk *clk, unsigned long rate) >> +{ >> + Â Â struct clk *pclk; >> + Â Â int ret; >> + >> + Â Â pclk = clk_get_parent(clk); >> + Â Â if (IS_ERR(pclk)) >> + Â Â Â Â Â Â return -EINVAL; >> + >> + Â Â ret = pclk->ops->set_rate(pclk, rate); >> + Â Â clk_put(pclk); >> + >> + Â Â return ret; > > How about following? > > static int parent_set_rate(struct clk *clk, unsigned long rate) > { > Â Â Â Âstruct clk *p_clk; > Â Â Â Âint ret; > > Â Â Â Âp_clk = clk_get_parent(clk); > Â Â Â Âret = clk_set_rate(p_clk, rate); > > Â Â Â Âclk_put(p_clk); > > Â Â Â Âreturn ret; > } > > Hmm...isn't there any method?... I think you mean is that adds a new clock api function that sets parent clock rate.(am I right?) But as you know, this also needs that S/PDIF knows it's source clock can not set rate directly and set it's parent clock. Actually my point was that I want to make S/PDIF does not care about clock characteristics, so I did make it solve in clock part, not in audio driver. And also, I do not want to modify a common function 'clk_set_rate()' that can support jassi's opinion, because I'm not sure about side effect that I can not grantee it's safety with other drivers. (snip) Thanks, Claude _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel