Dr. H. Nikolaus Schaller
hns at goldelico.com
Sun Sep 4 11:55:12 CEST 2011
Am 04.09.2011 um 00:25 schrieb John Ogness:
> On 2011-09-02, Dr. H. Nikolaus Schaller <hns at goldelico.com> wrote:
>> Our ALSA board config is in sound/soc/omap/gta04.c
> It seems to me that you are trying to use multiple dai_links for the
> various codecs. This will not work because each codec has its own
> device ops and you can only have one codec device per soc-audio
> platform device. (Each codec assumes that platform_get_drvdata() will
> yield it's own soc device.) As far as I can tell, multiple dai links
> are only useful if a single codec chip provides multiple audio
Well, what we have tried is to assign separate dai links for all the codecs
but each one should only have one.
Only TWL4030 is capable of supporting 2 or 3 parallel dai links
(for the Audio, Voice and Bluetooth channels), but our hardware
uses only one of them.
> By calling platform_device_alloc() and platform_device_add() for each
> codec, it is possible to create multiple ALSA cards. In my opinion,
> this is the correct procedure since the various codecs have nothing to
> do with each other.
Ok, then our approach in gta04_soc_init() to allocate separate
platform devices should be the correct one.
The code we have so far compiles and appears to load drivers,
but they are never registered as additional sound cards. While
the twl codec is registererd. The boot log looks like attached.
There are additional printk() calls to visualize the call chain.
> On a separate note, the 2.6.32 kernel has several incorrect settings
> regarding the McBSP. (In particular, the size of the FIFO's.) If you
> really want to stick with this kernel, then I would also send some
> patches to fix up the McBSP code to match the reality of the hardware.
That would be great.
We stick to the 2.6.32 kernel for the moment since our target is to
validate the hardware the the 2.6.32 supports the display well enough.
In parallel, there is work in progress to get a 3.x-Kernel, but that one makes
its own problems and does just boot.
> Is "_git at git.goldelico.com:gta04-kernel.git" the official place to
> find the current code? Or should I put together patches based on some
> other kernel source?
Yes, this is our branch for developing this kernel variant.
The patches I have sent to you for analysis are not yet committed to
the git server, but I also could submit them do a new branch.
Maybe we should try to provide you some hardware...
[ 11.233093] Advanced Linux Sound Architecture Driver Version 1.0.21.
[ 11.246673] bus: 'platform': driver_probe_device: matched device twl4030_codec_audio with driver twl4030_codec_audio
[ 11.257324] bus: 'platform': really_probe: probing driver twl4030_codec_audio with device twl4030_codec_audio
[ 11.267333] twl4030_codec_probe
[ 11.360260] Registered codec 'twl4030'
[ 11.364044] Registered DAI 'twl4030'
[ 11.367675] Registered DAI 'twl4030 Voice'
[ 11.371795] twl4030_codec_probe ok
[ 11.375244] driver: 'twl4030_codec_audio': driver_bound: bound to device 'twl4030_codec_audio'
[ 11.383941] bus: 'platform': really_probe: bound device twl4030_codec_audio to driver twl4030_codec_audio
[ 11.393920] Registered platform 'omap-pcm-audio'
[ 11.398590] No device for DAI omap-mcbsp-dai-0 <--- this is just a warning
[ 11.403076] Registered DAI 'omap-mcbsp-dai-0'
[ 11.407470] No device for DAI omap-mcbsp-dai-1
[ 11.411956] Registered DAI 'omap-mcbsp-dai-1'
[ 11.416351] No device for DAI omap-mcbsp-dai-2
[ 11.420837] Registered DAI 'omap-mcbsp-dai-2'
[ 11.425262] No device for DAI omap-mcbsp-dai-3
[ 11.429748] Registered DAI 'omap-mcbsp-dai-3'
[ 11.434143] No device for DAI omap-mcbsp-dai-4
[ 11.438629] Registered DAI 'omap-mcbsp-dai-4'
[ 11.442993] GTA04 SoC snd init
[ 11.446289] bus: 'platform': driver_probe_device: matched device soc-audio.1 with driver soc-audio
[ 11.455352] bus: 'platform': really_probe: probing driver soc-audio with device soc-audio.1
[ 11.463806] soc-audio soc-audio.1: All components present, instantiating
[ 11.470581] twl4030_soc_probe
[ 11.473602] snd_card_create(0, (null), ...) ok <--- creates twl4030 sound card
[ 11.478698] asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok
[ 11.485168] twl4030_soc_probe ok
[ 11.493377] sound card 0 registered
[ 11.497619] soc-audio soc-audio.1: Registered card 'gta04-audio'
[ 11.503723] driver: 'soc-audio.1': driver_bound: bound to device 'soc-audio'
[ 11.510864] bus: 'platform': really_probe: bound device soc-audio.1 to driver soc-audio
[ 11.519134] bus: 'platform': driver_probe_device: matched device soc-audio.2 with driver soc-audio
[ 11.528198] bus: 'platform': really_probe: probing driver soc-audio with device soc-audio.2
[ 11.536651] soc-audio soc-audio.2: DAI GTM601 not registered
[ 11.542388] soc-audio soc-audio.2: Registered card 'gta04-voice'
[ 11.548461] driver: 'soc-audio.2': driver_bound: bound to device 'soc-audio'
[ 11.555572] bus: 'platform': really_probe: bound device soc-audio.2 to driver soc-audio
[ 11.563781] bus: 'platform': driver_probe_device: matched device si47xx_codec_audio with driver si47xx_codec_audio
[ 11.574218] bus: 'platform': really_probe: probing driver si47xx_codec_audio with device si47xx_codec_audio
[ 11.584075] si47xx_codec_probe
[ 11.587402] bus: 'i2c': driver_probe_device: matched device 2-0011 with driver Si47xx I2C Codec
[ 11.596191] bus: 'i2c': really_probe: probing driver Si47xx I2C Codec with device 2-0011
[ 11.604431] snd_card_create(1, (null), ...) ok <--- should create a second sound card
[ 11.609252] asoc: Si47xx <-> omap-mcbsp-dai-3 mapping ok
[ 11.615325] driver: '2-0011': driver_bound: bound to device 'Si47xx I2C Codec'
[ 11.622650] bus: 'i2c': really_probe: bound device 2-0011 to driver Si47xx I2C Codec
[ 11.630462] No device for codec Si47xx
[ 11.634277] soc-audio soc-audio.2: DAI GTM601 not registered
[ 11.640014] Registered codec 'Si47xx'
[ 11.643707] No device for DAI Si47xx
[ 11.647308] soc-audio soc-audio.2: DAI GTM601 not registered
[ 11.653015] Registered DAI 'Si47xx'
[ 11.656555] driver: 'si47xx_codec_audio': driver_bound: bound to device 'si47xx_codec_audio'
[ 11.665069] bus: 'platform': really_probe: bound device si47xx_codec_audio to driver si47xx_codec_audio
[ 11.674713] bus: 'platform': driver_probe_device: matched device w2cbw003_codec_audio with driver w2cbw003_codec_audio
[ 11.685516] bus: 'platform': really_probe: probing driver w2cbw003_codec_audio with device w2cbw003_codec_audio
[ 11.695709] soc-audio soc-audio.2: DAI GTM601 not registered
[ 11.701416] Registered DAI 'W2CBW003'
[ 11.705139] driver: 'w2cbw003_codec_audio': driver_bound: bound to device 'w2cbw003_codec_audio'
[ 11.714019] bus: 'platform': really_probe: bound device w2cbw003_codec_audio to driver w2cbw003_codec_audio
[ 11.723846] ALSA device list:
[ 11.726867] #0: gta04-audio (twl4030) <--- only twl4030 really registered
[ 11.730804] oprofile: using arm/armv7
[ 11.734771] TCP cubic registered
[ 11.738006] NET: Registered protocol family 17
[ 11.742553] NET: Registered protocol family 15
More information about the Gta04-owner