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 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel