]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/patches/suse-2.6.27.39/patches.drivers/alsa-hda-proc-fix
Fix oinkmaster patch.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.drivers / alsa-hda-proc-fix
1 From: Takashi Iwai <tiwai@suse.de>
2 Subject: ALSA: hda - Misc fixes on proc output
3 Patch-mainline: 2.6.28-rc1
4 References:
5
6 Misc fixes and additions for codec#* proc output.
7
8 Signed-off-by: Takashi Iwai <tiwai@suse.de>
9
10 ---
11 ---
12 sound/pci/hda/hda_proc.c | 21 ++++++++++++++++++---
13 1 file changed, 18 insertions(+), 3 deletions(-)
14
15 --- a/sound/pci/hda/hda_proc.c
16 +++ b/sound/pci/hda/hda_proc.c
17 @@ -229,6 +229,13 @@ static void print_pin_caps(struct snd_in
18 snd_iprintf(buffer, " Detect");
19 if (caps & AC_PINCAP_BALANCE)
20 snd_iprintf(buffer, " Balanced");
21 + if (caps & AC_PINCAP_HDMI) {
22 + /* Realtek uses this bit as a different meaning */
23 + if ((codec->vendor_id >> 16) == 0x10ec)
24 + snd_iprintf(buffer, " R/L");
25 + else
26 + snd_iprintf(buffer, " HDMI");
27 + }
28 if (caps & AC_PINCAP_LR_SWAP)
29 snd_iprintf(buffer, " R/L");
30 if (caps & AC_PINCAP_TRIG_REQ)
31 @@ -552,9 +559,15 @@ static void print_codec_info(struct snd_
32
33 snd_iprintf(buffer, "Node 0x%02x [%s] wcaps 0x%x:", nid,
34 get_wid_type_name(wid_type), wid_caps);
35 - if (wid_caps & AC_WCAP_STEREO)
36 - snd_iprintf(buffer, " Stereo");
37 - else
38 + if (wid_caps & AC_WCAP_STEREO) {
39 + unsigned int chans;
40 + chans = (wid_caps & AC_WCAP_CHAN_CNT_EXT) >> 13;
41 + chans = ((chans << 1) | 1) + 1;
42 + if (chans == 2)
43 + snd_iprintf(buffer, " Stereo");
44 + else
45 + snd_iprintf(buffer, " %d-Channels", chans);
46 + } else
47 snd_iprintf(buffer, " Mono");
48 if (wid_caps & AC_WCAP_DIGITAL)
49 snd_iprintf(buffer, " Digital");
50 @@ -566,6 +579,8 @@ static void print_codec_info(struct snd_
51 snd_iprintf(buffer, " Stripe");
52 if (wid_caps & AC_WCAP_LR_SWAP)
53 snd_iprintf(buffer, " R/L");
54 + if (wid_caps & AC_WCAP_CP_CAPS)
55 + snd_iprintf(buffer, " CP");
56 snd_iprintf(buffer, "\n");
57
58 /* volume knob is a special widget that always have connection