30 Jun
2016
30 Jun
'16
2:25 a.m.
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