0562f7882d
With generic AC97 ASoC glue driver (codec/ac97.c), we get following warning when the device is registered (slightly stripped the backtrace): kobject (c5a863e8): tried to init an initialized object, something is seriously wrong. [<c00254fc>] (unwind_backtrace+0x0/0xec) [<c014fad0>] (kobject_init+0x38/0x70) [<c0171e94>] (device_initialize+0x20/0x70) [<c017267c>] (device_register+0xc/0x18) [<bf20db70>] (snd_soc_instantiate_cards+0x924/0xacc [snd_soc_core]) [<bf20e0d0>] (snd_soc_register_platform+0x16c/0x198 [snd_soc_core]) [<c0175304>] (platform_drv_probe+0x18/0x1c) [<c0174454>] (driver_probe_device+0xb0/0x16c) [<c017456c>] (__driver_attach+0x5c/0x7c) [<c0173cec>] (bus_for_each_dev+0x48/0x78) [<c0173600>] (bus_add_driver+0x98/0x214) [<c0174834>] (driver_register+0xa4/0x130) [<c001f410>] (do_one_initcall+0xd0/0x1a4) [<c0062ddc>] (sys_init_module+0x12b0/0x1454) This happens because the generic AC97 glue driver creates its codec->ac97 via calling snd_ac97_mixer(). snd_ac97_mixer() provides own version of snd_device.register which handles the device registration when snd_card_register() is called. To avoid registering the AC97 device twice, we add a new flag to the snd_soc_codec: ac97_created which tells whether the AC97 device was created by SoC subsystem. Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> |
||
---|---|---|
.. | ||
ac97_codec.h | ||
aci.h | ||
ad1816a.h | ||
ad1843.h | ||
ak4xxx-adda.h | ||
ak4113.h | ||
ak4114.h | ||
ak4117.h | ||
ak4531_codec.h | ||
asequencer.h | ||
asound_fm.h | ||
asound.h | ||
asoundef.h | ||
atmel-abdac.h | ||
atmel-ac97c.h | ||
control.h | ||
core.h | ||
cs46xx_dsp_scb_types.h | ||
cs46xx_dsp_spos.h | ||
cs46xx_dsp_task_types.h | ||
cs46xx.h | ||
cs4231-regs.h | ||
cs8403.h | ||
cs8427.h | ||
emu10k1_synth.h | ||
emu10k1.h | ||
emu8000_reg.h | ||
emu8000.h | ||
emux_legacy.h | ||
emux_synth.h | ||
es1688.h | ||
gus.h | ||
hda_hwdep.h | ||
hdsp.h | ||
hdspm.h | ||
hwdep.h | ||
i2c.h | ||
info.h | ||
initval.h | ||
jack.h | ||
Kbuild | ||
l3.h | ||
memalloc.h | ||
minors.h | ||
mixer_oss.h | ||
mpu401.h | ||
opl3.h | ||
opl4.h | ||
pcm_oss.h | ||
pcm_params.h | ||
pcm-indirect.h | ||
pcm.h | ||
pt2258.h | ||
pxa2xx-lib.h | ||
rawmidi.h | ||
s3c24xx_uda134x.h | ||
sb16_csp.h | ||
sb.h | ||
seq_device.h | ||
seq_kernel.h | ||
seq_midi_emul.h | ||
seq_midi_event.h | ||
seq_oss_legacy.h | ||
seq_oss.h | ||
seq_virmidi.h | ||
sfnt_info.h | ||
sh_dac_audio.h | ||
sh_fsi.h | ||
snd_wavefront.h | ||
soc-dai.h | ||
soc-dapm.h | ||
soc.h | ||
soundfont.h | ||
tea575x-tuner.h | ||
tea6330t.h | ||
timer.h | ||
tlv320aic3x.h | ||
tlv320dac33-plat.h | ||
tlv.h | ||
tpa6130a2-plat.h | ||
trident.h | ||
uda134x.h | ||
uda1380.h | ||
util_mem.h | ||
version.h | ||
vx_core.h | ||
wavefront.h | ||
wm2000.h | ||
wm8903.h | ||
wm8904.h | ||
wm8955.h | ||
wm8960.h | ||
wm8962.h | ||
wm8993.h | ||
wm9081.h | ||
wm9090.h | ||
wss.h | ||
ymfpci.h |