On 2012-11-16 20:05, Ricardo Neri wrote:
I hope the explanation above provides more clarity to you. I think HDMI does not fit seamlessly into the ASoC driver model, as we don't have a real codec and no machine driver seems to be needed. This is the best I could get. :/ :)
Ok. I can't say I fully grasp everything about the audio architecture, but this clarified it anyway.
So I'm fine with the three audio related devices. But I still have the following points:
The name of the codec platform_device is "hdmi-audio-codec". Isn't that too generic name? Shouldn't it be "omap-hdmi-audio-codec"? Then again, you said in this case it represents the tv-set. If so, should it be a generic codec driver, without any reference to omap?
I still don't understand why the codec and machine drivers need to be created in the board file. That just forces us to replicate the same code for all OMAP boards that have OMAP HDMI output. Why not create the devices in some common code, for example arch/arm/mach-omap2/display.c?
With DT this should be similar: OMAP's hdmi devices should be presented in the omap4.dtsi file, not in each individual board dts. Although the DT data should represent the hardware, and if the code and machine devices are not really there in the HW, then... I don't know =).
And something that confuses me: sound/soc/codecs/omap-hdmi.c contains a codec and dai drivers, but sound/soc/omap/omap-hdmi.c also contains a dai driver. The latter actually contains two dai drivers, the other a platform driver and the other a snd_soc_dai_driver. But I guess this is asoc details, and not relevant to this disuccsion =).
Tomi