声卡分析:
static struct snd_soc_dai_link s3c2440_uda1341_dai_link = {
.name = "UDA1341",
.stream_name = "UDA134X",
.codec_name = "uda1341-codec",//跟codec里的平台设备名字对应
.codec_dai_name = "uda1341-iis",//跟codec里的dai名字对应
.cpu_dai_name = "s3c2440-iis", //跟platform里的dai平台设备名字对应
.ops = &s3c2440_uda1341_ops,
.platform_name = "s3c2440-dma",//跟platform里的dma平台设备名字对应
};
=====================================================================================
No soundcards found.
[0] =========mixtile_audio_init==============
[1] soc-audio soc-audio: ASoC: machine iTOP-4412-Audio should use snd_soc_register_card()
[ 2] soc-audio soc-audio: ASoC: CPU DAI samsung-i2s.0 not registered
||
\/
if (!rtd->cpu_dai) {
dev_err(card->dev, "ASoC: CPU DAI %s not registered\n", //soc-core.c P880
dai_link->cpu_dai_name);
return -EPROBE_DEFER;
}
[3] platform soc-audio: Driver soc-audio requests probe deferral
||
static int really_probe(struct device *dev, struct device_driver *drv)
{
if (dev->bus->probe) {
ret = dev->bus->probe(dev);// 调用bus->probe, 由bus->probe调用'具体'dev_drv->probe
if (ret)
goto probe_failed;
} else if (drv->probe) {
ret = drv->probe(dev);// 使用'顶层'驱动device_driver的probe
if (ret)
goto probe_failed;
}
probe_failed:
/* Driver requested deferred probing 驱动请求延迟探测*/
dev_info(dev, "Driver %s requests probe deferral\n", drv->name);//打印了这一句,说明bus没有probe,driver又没有注册,找不到probe
//(Probe的规则是:如果BUS上实现了probe就用BUS的probe;否则才会用driver的probe。)
}
[4] soc-audio: probe of soc-audio failed with error -22
移植dev-audio.c
+arch\arm\plat-samsung\include\plat\audio.h
printk("--%s-----%d-----\n",__FUNCTION__,__LINE__);
printk("--%s-----%d-----ret=%d\n",__FUNCTION__,__LINE__,ret);
fs4412开发板学习笔记(十四)
最新推荐文章于 2023-09-21 00:06:53 发布