At Mon, 20 Jun 2011 17:06:51 +0200, Takashi Iwai wrote:
Hi,
as there have many problems reported for VIA codecs, I started looking at the driver code, and decided to rework on it.
The current development is found in sound git tree topic/via-cleanup branch: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
You can pull into the latest Linus tree from topic/via-cleanup branch: # this is the vanilla tree % cd linux-2.6 % git pull \ git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git \ topic/via-cleanup
A good thing is that a fair amount of code reduction is done there:
% git diff HEAD..topic/via-cleanup --stat sound/pci/hda/patch_via.c sound/pci/hda/patch_via.c | 5892 +++++++++++---------------------------------- 1 files changed, 1453 insertions(+), 4439 deletions(-)
But, the driver isn't tested with real machines, yet. That is, I need testers with real machines.
Could VIA machine owners take a look at these commits and test it if possible? Especially, I'd like to know whether the headphone auto-mute works in this form or not.
FWIW, the branch was merged to sound-unstable tree, so you can build from alsa-driver-unstable snapshot tarball if you'd like to build external modules without the kernel tree and git-merge. ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-unstable-snapshot.tar.gz
Also, if anyone has alsa-info.sh outputs of VIA codecs, please let me know. It'd be very helpful for debugging, since I can check it via hda-emu with alsa-info.sh output. For now, I have the files of only VT1702, VT1708S, VT1718S, VT1828S and VT2020 codecs. The alsa-info.sh outputs of other VIA codecs would be greatly appreciated.
I implemented the dynamic ADC switching, mainly for VT1702 machines with the digital-mic connection like Gateway or Packard-Bell laptops.
When you have such a machine, i.e. an internal-mic input that doesn't work as default properly, give it a try.
What I can implement more in a short time frame would be: - The automatic input switching for int-/ext-mics on laptop - Auto-mute Mode enum like in Realtek codec driver
Also, the rewrite of set_widgets_power_state() would be nice. We can use the parsed input/output-paths for determining whether each widget can be turned down or not.
In anyways, any positive / negative feedbacks or tests would be appreciated. When no big problem is found, I'm going to merge the new code in the next week or next-next week.
(And yes, I'm still gathering alsa-info.sh outputs of VIA codecs; please contribute them if you have!)
thanks,
Takashi