Intel HD-Audio driver 解析
PCI driver的基本流程
定义一个PCI ID table,这在/kernel/sound/pci/hda/hda_intel.c 中有定义:
前两个是vendor ID & device ID,后面是一些masks
static const struct pci_device_id azx_ids[] = {/* CPT */{ PCI_DEVICE(0x8086, 0x1c20),.driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH_NOPM }...
定义pci_driver,创建一个probe callback & remove callback,并讲现在提到的三项放到一个struct中;
static struct pci_driver azx_driver = {.name = KBUILD_MODNAME,.id_table = azx_ids,.probe = azx_probe,.remove = azx_remove,.driver = {.pm = AZX_PM_OPS,},
};
创建一个init函数,来调用 pci_register_driver() 函数,注册上述结构体中的pci_driver table,这个函数包含在“pcm.h”中,在hda_intel.c中最后一行
module_pci_driver(azx_driver);
一、Driver constructor
PCI driver的constructor主要就是probe callback,即函数 azx_probe() & azx_probe_continue() 两个函数中,主要包含内容如下:
1)检查并增加 device index
if (dev >= SNDRV_CARDS)//8return -ENODEV;if (!enable[dev]) {dev++;return -ENOENT;}
2)创建一个card instace
struct snd_card *card;
err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE, 0, &card);
3)创建一个主要component
allocate PCI resources
err = azx_create(card, pci, dev, pci_id->driver_data,&pci_hda_ops, &chip);if (err < 0)goto out_free;
4)设置driver的ID & name
这短信息在 azx_probe_continue() ->azx_first_init() 中有
strcpy(card->driver, "HDA-Intel");strlcpy(card->shortname, driver_short_names[chip->driver_type],sizeof(card->shortname));snprintf(card->longname, sizeof(card->longname),"%s at 0x%lx irq %i",card->shortname, chip->addr, chip->irq);
5)创建其他components
最主要的一个设备组件就是PCM,还有codec、mixer等…,这些在probe_continue()函数中有建立
/* create PCM streams */err = snd_hda_build_pcms(chip->bus);if (err < 0)goto out_free;/* create mixer controls */err = azx_mixer_create(chip);if (err < 0)goto out_free;
6) 注册这个card 实例
err = snd_card_register(chip->card);if (err < 0)goto out_free;
7)设置PCI drver data 然后返回0
pci_set_drvdata(pci, card);
...dev++;if (chip->disabled)complete_all(&chip->probe_wait);return 0;
Intel HD-Audio driver 解析相关推荐
- 安装Realtek HD Audio Driver 失败
安装Realtek HD Audio Driver 失败 序:很郁闷地重装了几次系统.就是装不上声卡.这才找到解决办法. Realtek HD Audio声卡驱动与系统HD总线驱动冲突的解决方 ...
- 安装Realtek HD Audio Driver 失败 就是安装不上怎么办
之前重装系统一直好好的,前几天重装完,安装声卡驱动时,一直提示 安装realtek hd audio driver 失败 [error code:0x0000FF] 网上的办法都用了,系统再次重装都没 ...
- 瑞昱Realtek(Realtek HD Audio Driver)音频声卡驱动R2.49 for Win7_Vista
不管是在高端系列主板上,还是在低端系列主板上,我们都能看到Realtek瑞昱的身影,Realtek HD Audio Driver能够支持所有的Realtek HD Audio音频驱动.Realtek ...
- Realtek HD Audio Driver安装失败的解决方法
公司ACER4710笔记本电脑安装winxp系统,安装若干遍声音驱动都提示"安装Realtek HD Audio Driver失败": 解决的处理过程: 1,进入安全模式(否则相 ...
- ac97与intel HD audio
1.从上表可以看出,第1.2.3.5.9虽然名字有所变化,其功能没有改变.这就可以使HD Audio前置音频插座与AC97的前置音频面板兼容. 2.There is only one problem ...
- Realtek HD Audio Driver, Error Code:0xE0000100
zhuanzi: http://www.bananamart.net/zongjie/fa/39420.html 昨天晚上装好WIN7之后发现声卡驱动没能装上找出主板驱动盘装了所有驱动可是喇叭那里还是 ...
- 安装 Realtek HD Audio Driver 失败 Error Code : 0xE0000100
更新声卡驱动提示"安装Realtek HD Audio Driver失败.Error Code:0xE0000100]",错误, 尝试各种版本驱动无效,以下是解决方案: 1. 下 ...
- 安装 Realtek HD Audio Driver失败 Error Code:0xE0000247
安装 Realtek HD Audio Driver失败 Error Code:0xE0000247 问题 win10重装后,发现系统没声音,以为是驱动的问题,就安装了某动精灵,装了好几个版本的声卡驱 ...
- 安装realtek hd audio driver失败_《搞机作战室》机械师F117-X游戏本驱动安装教程
硬件驱动是确保我们电脑所有硬件能够正常运行的主要程序,当驱动程序出错时,电脑系统也会对应出现卡顿.功能性丢失.甚至死机蓝屏的情况,所以我们需要确保电脑驱动的完整可用性. 由于不同笔记本型号内置的硬件各 ...
- hd audio驱动
hd_audio引脚: RST(Intel High Definition Audio Reset): This signal is the master hardware reset to ext ...
最新文章
- 腾讯:互联网正进入社区化阶段
- 微信小程序图片轮转播放
- electron 打印需要联网的吗?_英语四六级考试准考证怎么打印,需要彩打吗
- 扩展吉日嘎拉的用户角色管理,让用户角色编码和名称在一个组织里面唯一
- Java调用.net开发的webService接口
- 定制家具设计拆单用什么软件好?
- 《Linux/Unix系统编程手册》源代码下载编译
- 模拟电子技术知识点总结
- 计算机网络实验 网络命令的使用,计算机网络常用网络命令 实验报告.doc
- java 毫秒转分钟和秒_将毫秒转换为分钟和秒的java程序
- 【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第五节 窗体文字材质设置
- 想长胖的人看过来,几招教你变胖|猎人营
- 爬虫初学——爬取京东商品的评论(二)
- android shareSDK 微博分享案例
- 英国帝国理工出品——SSIM对抗攻击
- [体感游戏]关于体感游戏的一些思考(五) --- 导航
- Prometheus和它的xdm
- 我的 Java 后端面试日记!
- 如何有效记账 记账有哪些优点
- 史上最全的大厂机器学习面试题,赶紧收藏吧!(附详解答案)