[hsflinux] Volume control issues..

Rodrigo Luiz rodrigo at editau.com.br
Fri May 4 14:57:46 EDT 2007

Lewis Hopfe wrote:
> Rodrigo,
> Thanks. I'll wait for the patch and give it a try tomorrow.

Today, I download the latest version of HSF driver to update my patch 
before send it. And for my surprise, the Linuxant merged the code with 
Alsa code. So, there exists so minor differences in code between Alsa 
modules and HSF modules. When I made this patch, the version of HSF 
driver was So, I don't see necessity to send this patch, 
because is too litte. But you want, I will send to you.

But I understood your question.

What it is happening is that: This modification of these channels was 
not made by the Linuxant. The maintainers of Alsa responsible for 
conexant audio chipsets had removed this feature. Verions of kernel >= 
2.6.21 just has only one mixer to control speaker and headphone in this 
audio chipset.

So, if you *really* need these two channels separately, and you download 
the latest kernel, or, you use the HSF drivers, you every need apply a 
little patch in patch_conexant.c to show these channels (sound/pci/hda 
in kernel, or modules/GPL/hda in HSF driver)

This is a diff to apply in latest HSF driver ( to you view 
these two channels (I don't tested it, but maybe work):

--- patch_conexant.c.orig	2007-05-04 13:38:51.000000000 -0300
+++ patch_conexant.c	2007-05-04 13:39:23.000000000 -0300
@@ -862,6 +862,8 @@
  	HDA_CODEC_MUTE("Int Mic Switch", 0x1a, 0x01, HDA_INPUT),
  	HDA_CODEC_VOLUME("Ext Mic Volume", 0x1a, 0x02, HDA_INPUT),
  	HDA_CODEC_MUTE("Ext Mic Switch", 0x1a, 0x02, HDA_INPUT),
+	HDA_CODEC_MUTE("Speaker Playback", 0x10, 0, HDA_OUTPUT);
+	HDA_CODEC_MUTE("Headphone Playback", 0x11, 0, HDA_OUTPUT);
  		.name = "Master Playback Volume",

Just save it in a file, and apply with "patch < your_file".

In kernel, because the code is different, you can apply the code 
manually, in struct snd_kcontrol_new cxt5045_mixers[].


More information about the hsflinux mailing list