Subject: Re: Device trees and audio codecs

From: Timur Tabi <[email-masked]>
Date: Mon, 22 Oct 2007 08:07:14 -0500

Jon Smirl wrote:

> Doing it that way will make the kernel specific to the target device.
> Currently I can load the same mpc5200 kernel on several different
> target devices since the platform specific code is triggered in the
> probe machine phase.

Maybe I need to take a look at your code, but the fabric driver is, in 
effect, a platform-specific driver.  Its job is to figure out what 
hardware is on the board, how it's connected, and then initialize and 
connect the other drivers as appropriate.

> I tried making the fabric driver into a platform driver instead of an
> openfirmware driver, but the mpc5200 code is not initializing platform
> drivers correctly.

Yeah, that wouldn't work.  Platform drivers are initialized way too early.

> I could insert calls into arch/powerpc/platforms/52xx/whatever to load
> the specific asoc fabric, but doing that is a mess. There must be a
> way to trigger loading of machine specific drivers

Either you do it at driver __init time, or via a probe.  The probe 
actually occurs at __init time, anyway, so they're kinda the same thing. 
  The only thing the probe gets you is that you're called multiple times 
for each instance of a node in the tree.

>> Since the Apple audio drivers are not ASoC drivers, I suggest we don't pay
>> attention to what they do.
> 
> Those Apple drivers are very similar to asoc drivers. They could
> easily be folded into the asoc code.

Perhaps, but that's a job for another day (and another developer).