ALSA driver 新增一個 ASoc Layer 是為了 embedded system
讓 codec driver 獨立於 platform 之外,不用為每一個 embedded system chip 都寫一份 codec driver
在沒有 ASoc Layer 之前,codec WM8731 在 kernel 中總共寫了4 個 driver, 分別為了四個不同的 chip
目的簡述:
- 獨立出 codec driver,不用針對chip platform 寫作
- 簡化 I2S/PCM 介面,讓 連接 Soc 更容易
- 電源管理
- 統一 Pop, Click 聲的消除 介面
- 允許 machine 增加對 sound card 的控制, 例如 AMP volume
.. 看來 都是介面 定義。
所以 ASoc Layer 把 audio system 分成:
- Codec Driver : codec 本身控制,
- Platform Driver : 例如 I2S, PCM 等 interface
- Machine Driver : Audio 控制,例如 play pause audio
ref:
- http://opensource.wolfsonmicro.com/cgi-bin/gitweb.cgi?p=linux-2.6-asoc.git;a=summary
沒有留言:
張貼留言