Hi Mark
> > + 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