RE: [PATCH 10/11] ASoC: tegra: Harmony machine support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mark Brown wrote:
> On Fri, Dec 17, 2010 at 10:16:16PM -0800, Stephen Warren wrote:
> > The root of the audio clocks is a single PLL, pll_a, with one output,
> > pll_a_out0. This one output feeds the audio module clock and both
> > I2S controllers. While the feed to at least each I2S controller has a
> > Separate divider per controller, the PLL can't run fast enough to be a
> > multiple of both the two clock rates the driver currently uses[1]. So,
> > once we've pick a 44.1KHz-class clock rate for one I2S controller, that
> > clock also applies to the other I2S controller, albeit perhaps with a
> > different divider.
> 
> Ah, right - the two interfaces have to be synchronous.  That does limit
> things rather.  I take it this restriction applies even if the Tegra is
> not clock master on the I2S interface?

I believe if Tegra is the slave, the two I2S ports can operate at
completely unrelated frequencies.

However, there's also that audio/audio_2x clock. I'm not sure of the
requirements for that clock e.g. if it must be in the same clock domain
as the/both I2S bit clocks in use or not, or simply some faster rate, or...
I'm beginning a conversation with some of the HW designers to find out
exactly what the requirements are.

> What you should also do here is when one of the interfaces is active set
> constraints on the other interface in its startup() so userspace knows
> it can't select a sample rate that's not supported by the currently
> active clock rate.

OK.

> > Perhaps the I2S driver can still manage all this though, and simply
> > apply PCM constraints to any subsequent I2S controller's streams when
> > one stream/controller is configured for the first time?
> 
> That'd probably be too restrictive - it'd mean that if you only have one
> of the ports in use (like on Harmoney) you couldn't switch between the
> two different clock ratios.

I must be misunderstanding that comment; what I meant by it is basically
exactly what you suggested in the paragraph I quoted just before.

(by "configured for the first time", I was talking about stream lifetime not
I2S driver lifetime. I.e. I meant during hw_params or similar, and that the
constraints would be removed later, e.g. during close?)

-- 
nvpublic

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux