Chinaunix首页 | 论坛 | 博客
  • 博客访问: 415416
  • 博文数量: 116
  • 博客积分: 7087
  • 博客等级: 少将
  • 技术积分: 1175
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-19 23:32
文章分类

全部博文(116)

文章存档

2012年(1)

2011年(2)

2010年(10)

2009年(21)

2008年(18)

2007年(12)

2006年(21)

2005年(31)

我的朋友

分类: LINUX

2006-01-16 09:36:05

--------------------------------------------------------------------
 jwoithe - 01-16-06 00:32
--------------------------------------------------------------------
In response to eudoxos' request, here's a *really brief* outline of how I went about deducing the connection layout on the S7020.  Note that there may well be a better, more streamlined way of going about this.  However, this worked for me and was quick.
Firstly you really must get hold of the ALC260 datasheet from Realtek.
This is available for download on the realtek website.  The datasheet details the internal arrangement of the ALC260, the IDs of the various widgets, and what command verbs each widget accepts.  Of particular interest are the widget IDs of the the I/O widgets which connect to physical input/output pins on the chip.  It is these which are in turn connected to jacks, internal speakers etc.
It is also quite helpful to understand the basic details about the HDA system structure and how it all fits together.  This can be acquireed by reading the source code or the HDA docs from Intel (downloadable from their website).
Armed with the widget IDs of interest, I hacked the patch-realtek.c module.  In particular I concentrated on the mixer and initialisation verb structures.  Since I did my tests the structure of patch-realtek has changed slightly, but for the purposes of this exercise changing alc260_base_output_mixer and alc260_init_verbs in the most recent versions of alsa-driver (1.0.11rc1 and later) should be fine.
To discover the output routings, add mixer controls for all the output widgets of the ALC260 chip to the mixer definition - alc260_base_output_mixer in this case.  Then add initialisation verbs for each of these widgets to the alc260_init_verbs list, making each of them an output.  Recompile and insert the new hda-* modules.
Use aplay (or anything really) to send output to the chip.  Then play with the controls in alsamixer until you discover which control sends output to what.
The technique for input jacks is pretty much the same, but this time you're configuring widgets for input and using a capture program instead of a player.  It's most convenient to use one which has input level meters of some kind so you can monitor what the chip ADC is seeing as you change the capture source in alsamixer.
At the end of all this you should end up with a list of widgets and which jacks/devices each is connected to.  This can then be used to construct a new ALC260 model in patch-realtek.c in a similar way as for the existing HP and Fujitsu models.
If you require more details, please contact me via the alsa-devel mailing list and we'll pick this up off-list.
阅读(865) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~