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 解析相关推荐

  1. 安装Realtek HD Audio Driver 失败

    安装Realtek HD Audio Driver 失败   序:很郁闷地重装了几次系统.就是装不上声卡.这才找到解决办法.   Realtek HD Audio声卡驱动与系统HD总线驱动冲突的解决方 ...

  2. 安装Realtek HD Audio Driver 失败 就是安装不上怎么办

    之前重装系统一直好好的,前几天重装完,安装声卡驱动时,一直提示 安装realtek hd audio driver 失败 [error code:0x0000FF] 网上的办法都用了,系统再次重装都没 ...

  3. 瑞昱Realtek(Realtek HD Audio Driver)音频声卡驱动R2.49 for Win7_Vista

    不管是在高端系列主板上,还是在低端系列主板上,我们都能看到Realtek瑞昱的身影,Realtek HD Audio Driver能够支持所有的Realtek HD Audio音频驱动.Realtek ...

  4. Realtek HD Audio Driver安装失败的解决方法

    公司ACER4710笔记本电脑安装winxp系统,安装若干遍声音驱动都提示"安装Realtek HD Audio Driver失败": 解决的处理过程:  1,进入安全模式(否则相 ...

  5. ac97与intel HD audio

    1.从上表可以看出,第1.2.3.5.9虽然名字有所变化,其功能没有改变.这就可以使HD Audio前置音频插座与AC97的前置音频面板兼容. 2.There is only one problem ...

  6. Realtek HD Audio Driver, Error Code:0xE0000100

    zhuanzi: http://www.bananamart.net/zongjie/fa/39420.html 昨天晚上装好WIN7之后发现声卡驱动没能装上找出主板驱动盘装了所有驱动可是喇叭那里还是 ...

  7. 安装 Realtek HD Audio Driver 失败 Error Code : 0xE0000100

    更新声卡驱动提示"安装Realtek HD Audio Driver失败.Error Code:0xE0000100]",错误, 尝试各种版本驱动无效,以下是解决方案: 1. 下 ...

  8. 安装 Realtek HD Audio Driver失败 Error Code:0xE0000247

    安装 Realtek HD Audio Driver失败 Error Code:0xE0000247 问题 win10重装后,发现系统没声音,以为是驱动的问题,就安装了某动精灵,装了好几个版本的声卡驱 ...

  9. 安装realtek hd audio driver失败_《搞机作战室》机械师F117-X游戏本驱动安装教程

    硬件驱动是确保我们电脑所有硬件能够正常运行的主要程序,当驱动程序出错时,电脑系统也会对应出现卡顿.功能性丢失.甚至死机蓝屏的情况,所以我们需要确保电脑驱动的完整可用性. 由于不同笔记本型号内置的硬件各 ...

  10. hd audio驱动

    hd_audio引脚: RST(Intel  High Definition Audio Reset): This signal is the master hardware reset to ext ...

最新文章

  1. 腾讯:互联网正进入社区化阶段
  2. 微信小程序图片轮转播放
  3. electron 打印需要联网的吗?_英语四六级考试准考证怎么打印,需要彩打吗
  4. 扩展吉日嘎拉的用户角色管理,让用户角色编码和名称在一个组织里面唯一
  5. Java调用.net开发的webService接口
  6. 定制家具设计拆单用什么软件好?
  7. 《Linux/Unix系统编程手册》源代码下载编译
  8. 模拟电子技术知识点总结
  9. 计算机网络实验 网络命令的使用,计算机网络常用网络命令 实验报告.doc
  10. java 毫秒转分钟和秒_将毫秒转换为分钟和秒的java程序
  11. 【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第五节 窗体文字材质设置
  12. 想长胖的人看过来,几招教你变胖|猎人营
  13. 爬虫初学——爬取京东商品的评论(二)
  14. android shareSDK 微博分享案例
  15. 英国帝国理工出品——SSIM对抗攻击
  16. [体感游戏]关于体感游戏的一些思考(五) --- 导航
  17. Prometheus和它的xdm
  18. 我的 Java 后端面试日记!
  19. 如何有效记账 记账有哪些优点
  20. 史上最全的大厂机器学习面试题,赶紧收藏吧!(附详解答案)

热门文章

  1. Python自动投票开发,基本实现微信投票3秒钟一票实现案例分析
  2. 1. 企业应用系统设计之签到
  3. 【转】星际2技能系统分析
  4. 寻找亚马逊测评师邮箱_亚马逊真人测评靠谱吗
  5. 0.4秒拍摄高清眼底图,欧堡Daytona免散瞳眼底照相机
  6. 联邦学习FATE框架安装
  7. Guerrilla Oracle: The Succinct Windows Perspective
  8. centos7下安装itop-2.6.1(一)
  9. 纸上得来终觉浅,构建之法东北师大站2016秋季学期
  10. 国产野生硬核科技狂人,从造雷到核聚变没有他不会的。。。