[alsa-devel] Remove clkdiv and pll setters from pxa dais
Daniel Mack
daniel at zonque.org
Wed May 30 11:47:15 CEST 2018
On Wednesday, May 30, 2018 11:24 AM, Mark Brown wrote:
> On Wed, May 30, 2018 at 10:35:25AM +0200, Daniel Mack wrote:
>
>> For instance, code for Zylonite does this:
>
>> /* Add 1 to the width for the leading clock cycle */
>> pll_out = rate * (width + 1) * 8;
>
>> The commit which introduced these lines dates back to 2009 and was done by
>> you, Mark. Can you remember what the reason for this was? I've never seen
>> sample frames with 17 bits :) This is a setup that we can't generically
>> describe through .hw_params() or .dai_fmt() in the cpu dai, correct?
>
> I think it's copied from somewhere else probably, it looks like there's
> a bit of code motion going on. I bet it was just for I2S, keeping the
> extra clock cycle for the initial rising edge in the frame but not
> actually required.
Hmm, okay. You happen to still have access to that board for regression
tests?
>> So for both 22050 and 44100, the base frequency and all dividers are the
>> same, which can't be right. I assume these rates have never been used. I'll
>> ignore this and implement the table in the datasheet which should do the
>> right thing. Philipp?
>
> That looks buggy, yeah. I doubt anyone ever used 22.05kHz.
AFAIU, it's rather the 44.1 rate that looks wrong. But okay, we'll see.
>> What we need, however, is a way to describe whether the dai is mclk master
>> or slave. Would we add a DT propery for that?
>
> That might be sensible, though the MCLK isn't really part of the DAI.
Well, the DAI may well be the producer of the MCLK. If there's only a
master/slave mode to decide, we could set that property on the machine
side as well, in the subnode of simple-card for instance (similar to
'bitclock-master' and 'frame-master'), but then the question is which
callback to use for propagating that master/slave setting to the cpu
dai. We will, however, need such a callback anyway for non-DT boards, as
those won't go away anytime soon. Could we squeeze that into the
SND_SOC_DAIFMT_ mask? Not sure which options would be acceptable.
Thanks,
Daniel
More information about the Alsa-devel
mailing list