[alsa-devel] Choosing the sysclk in simple-card looks broken to me.

jonsmirl at gmail.com jonsmirl at gmail.com
Mon Aug 11 04:10:51 CEST 2014


As I debug further I am getting a better understanding of the problem.
This is my simple-audio binding.

sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";

simple-audio-card,cpu {
sound-dai = <&iis0>;
};

simple-audio-card,codec {
clocks = <&iis0>;
sound-dai = <&sgtl5000>;
};
};

I'm having trouble with the simple-audio-card,cpu node, not the
simple-audio-card,codec node.  As simple-audio is currently
implemented when simple-audio-card,cpu is processed it will pick up my
80Mhz apb clock and set it as sysclk.

After spending all day trying to fix that else clause, I'm coming to
the conclusion that the else clause simply shouldn't be there at all.
I just hit this because I had code checking for bogus values in
setsysclk.

diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
index 03a7fdc..b389d9c2 100644
--- a/sound/soc/generic/simple-card.c
+++ b/sound/soc/generic/simple-card.c
@@ -155,10 +155,6 @@ asoc_simple_card_sub_parse_of(struct device_node *np,
  of_property_read_u32(np,
      "system-clock-frequency",
      &dai->sysclk);
- } else {
- clk = of_clk_get(node, 0);
- if (!IS_ERR(clk))
- dai->sysclk = clk_get_rate(clk);
  }

  return 0;


-- 
Jon Smirl
jonsmirl at gmail.com


More information about the Alsa-devel mailing list