Hi Mark, again

> > > + struct clk *clk;
> > > + u32 val;
> > > +
> > > + /*
> > > +  * Parse dai->sysclk come from "clocks = <&xxx>"
> > > +  * (if system has common clock)
> > > +  *  or "system-clock-frequency = <xxx>"
> > > +  *  or device's module clock.
> > > +  */
> > > + clk = of_clk_get(port_np, 0);
> > > + if (!IS_ERR(clk)) {
> > > +         simple_dai->sysclk = clk_get_rate(clk);
> > > +         simple_dai->clk = clk;
> > > + } else if (!of_property_read_u32(port_np, "system-clock-frequency", 
> > > &val)) {
> > > +         simple_dai->sysclk = val;
> > > + } else {
> > > +         clk = of_clk_get(endpoint_np, 0);
> > > +         if (!IS_ERR(clk))
> > > +                 simple_dai->sysclk = clk_get_rate(clk);
> > > + }
> > 
> > This looks like we're leaking the clocks - devm_ might help here
> > perhaps?
> 
> Good catch.
> This came from original simple-card, but yes, we should use devm_*
> I will fix it on v3

Oops, of_clk_get() doesn't have devm_of_clk_get() ?
(and no of_clk_put() ... )
I will keep above as-is in v3. We can fix it incrementally (?)

Reply via email to