At Mon, 04 Jul 2011 14:55:31 +0200, Takashi Iwai wrote:
One notably thing is that the new (for codec VT1718S family) Master control misses a few slaves, mainly:
- as expectable, there's neither a "Side Playback Volume" nor a "Side
Playback Switch", since there's no grey jack (to support 7.1 systems, my motherboard line-in (0x2a) should be re-tasked as output and get input from the now available 0xc, which is no more used by headphones)
- more noticeably, there's no "Headphone Playback Volume" control.
There was one in old implementation, explicitly created by vt1718S_auto_create_hp_ctls(); within that function it was easy to bind that control to the actual hp_nid (replacing any occurrence of 0xc with spec->multiout.hp_nid in all relevant functions, the switch from 0xc to 0xb was complete), given that the only reason to test usability of dac at 0xb for headphone was, initially, to check whether 0xc could be freed for use with 0x2a as side (and ensure, or confirm, this codec family can handle as much as 10 channels - but to confirm it definitely an attempt to retask 0x2a should be made).
Moreover, looking at codec informations, now control "Independent HP" is attached to hp pin, altogether with control "Headphone Playback Switch". This should be somehow more consistent with those codecs not using an intermidiate selector to choose the nid to get sound from (perhaps the majority), so that such control always sticks in same (or corresponding) places. However, this way there is more 'distance' between such control and the 'real' nid it works on.
Hm, I'll check this with your alsa-info.sh output.
The missing headphone-volume control is fixed now with the commit 18bd2c44b9c7f0ee775e756dd59e12e0939f7ab9 ALSA: hda - Create HP-vol control properly for VIA codecs
For the retasking for a side-channel, I'm still considering what would be the best. Currently we have smart51 control while other driver has "Channel Mode" enum control. I think the latter can be used more generically for both smart51 and side-channel re-tasking.
Takashi