Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Aug 2008 17:18:50 +0300
From:      Andriy Gapon <avg@icyb.net.ua>
To:        Alexander Motin <mav@FreeBSD.org>
Cc:        freebsd-multimedia@FreeBSD.org
Subject:   Re: RFC: massive snd_hda driver update to better conform UAA
Message-ID:  <48A2ED4A.6060606@icyb.net.ua>
In-Reply-To: <48A2E8D6.10806@icyb.net.ua>
References:  <53a1e0710808130628t451c5e87n28adb7d01b03dfd4@mail.gmail.com> <48A2E5DA.4060203@FreeBSD.org> <48A2E8D6.10806@icyb.net.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
on 13/08/2008 16:59 Andriy Gapon said the following:
> Alexander,
> 
> I've tried a slightly tweaked version of your releng_7 patch on 6.3.
> It seems that with your patch recording stopped working for me, but
> everything else is OK.
> 
> From (non-verbose) dmesg:
> hdac0: <NVidia MCP51 High Definition Audio Controller> mem
> 0xfe024000-0xfe027fff irq 22 at device 16.1 on pci0
> hdac0: <HDA Driver Revision: 20080812_0000>
> hdac0: <HDA Codec #0: Analog Devices AD1986A>
> hdac0: hdac_widget_connection_parse: nid=18 WARNING: zero cnid entnum=4
> j=2 index=0 entries=8 found=2 res=0x21002211
> hdac0: hdac_audio_as_parse: Pin 28 has wrong direction for association
> 1! Disabling association.
> hdac0: hdac_audio_as_parse: Pin 29 has wrong direction for association
> 1! Disabling association.
> pcm0: <HDA codec Analog Devices AD1986A PCM #0> on hdac0
> pcm1: <HDA codec Analog Devices AD1986A PCM #1> on hdac0

Some info from verbose dmesg:
nid 26 0x02214021 as  2 seq  1    Headphones  Jack jack  1 loc  2 color
  Green misc 0
nid 27 0x01014011 as  1 seq  1      Line out  Jack jack  1 loc  1 color
  Green misc 0
nid 28 0x01013012 as  1 seq  2      Line out  Jack jack  1 loc  1 color
   Blue misc 0
Patching pin config nid=28 0x01013012 -> 0x01813012
nid 29 0x01019015 as  1 seq  5      Line out  Jack jack  1 loc  1 color
   Pink misc 0
Patching pin config nid=29 0x01019015 -> 0x01a19015
nid 30 0x501700f0 as 15 seq  0       Speaker  None jack  7 loc 16 color
Unknown misc 0
nid 31 0x02a190f0 as 15 seq  0        Mic in  Jack jack  1 loc  2 color
   Pink misc 0
nid 32 0x018130f0 as 15 seq  0       Line in  Jack jack  1 loc  1 color
   Blue misc 0
nid 33 0x509700f0 as 15 seq  0           AUX  None jack  7 loc 16 color
Unknown misc 0
nid 34 0x993310f0 as 15 seq  0            CD Fixed jack  3 loc 25 color
  Black misc 0
nid 35 0x50b700f0 as 15 seq  0     Telephony  None jack  7 loc 16 color
Unknown misc 0
nid 36 0x90f700f0 as 15 seq  0         Other Fixed jack  7 loc 16 color
Unknown misc 0
nid 37 0x014510f0 as 15 seq  0     SPDIF out  Jack jack  5 loc  1 color
  Black misc 0
Parsing Ctls...
Parsing vendor patch...
Patched pins configuration:
nid 26 0x02214021 as  2 seq  1    Headphones  Jack jack  1 loc  2 color
  Green misc 0
nid 27 0x01014011 as  1 seq  1      Line out  Jack jack  1 loc  1 color
  Green misc 0
nid 28 0x01813012 as  1 seq  2       Line in  Jack jack  1 loc  1 color
   Blue misc 0
nid 29 0x01a19015 as  1 seq  5        Mic in  Jack jack  1 loc  1 color
   Pink misc 0
nid 30 0x501700f0 as 15 seq  0       Speaker  None jack  7 loc 16 color
Unknown misc 0 [DISABLED]
nid 31 0x02a190f0 as 15 seq  0        Mic in  Jack jack  1 loc  2 color
   Pink misc 0
nid 32 0x018130f0 as 15 seq  0       Line in  Jack jack  1 loc  1 color
   Blue misc 0
nid 33 0x509700f0 as 15 seq  0           AUX  None jack  7 loc 16 color
Unknown misc 0 [DISABLED]
nid 34 0x993310f0 as 15 seq  0            CD Fixed jack  3 loc 25 color
  Black misc 0
nid 35 0x50b700f0 as 15 seq  0     Telephony  None jack  7 loc 16 color
Unknown misc 0 [DISABLED]
nid 36 0x90f700f0 as 15 seq  0         Other Fixed jack  7 loc 16 color
Unknown misc 0
nid 37 0x014510f0 as 15 seq  0     SPDIF out  Jack jack  5 loc  1 color
  Black misc 0
Parsing pin associations...
hdac_audio_as_parse: Pin 28 has wrong direction for association 1!
Disabling association.
hdac_audio_as_parse: Pin 29 has wrong direction for association 1!
Disabling association.
7 associations found
Association 1 out (disabled):
  Pin nid=27 seq=1
  Pin nid=28 seq=2
  Pin nid=29 seq=5

> I can see that current (non-patched) code has the following quirks for
> the above two pins with my codec and my subvendor (ASUS M2NPV-MX
> motherboard):
> 
> } else if (id == HDA_CODEC_AD1986A &&
> 	    (sc->pci_subvendor == ASUS_M2NPVMX_SUBVENDOR ||
> 	    sc->pci_subvendor == ASUS_A8NVMCSM_SUBVENDOR)) {
> 		switch (nid) {
> 		case 28:	/* LINE */
> 			config &= ~HDA_CONFIG_DEFAULTCONF_DEVICE_MASK;
> 			config |= HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN;
> 			break;
> 		case 29:	/* MIC */
> 			config &= ~HDA_CONFIG_DEFAULTCONF_DEVICE_MASK;
> 			config |= HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN;
> 			break;
> 		default:
> 			break;
> 		}
> 	}

The above code is still there after the patch, but the following is gone:
case HDA_CODEC_AD1986A:
...
        if (subvendor == ASUS_M2NPVMX_SUBVENDOR ||
            subvendor == ASUS_A8NVMCSM_SUBVENDOR) {
                /* nid 28 is mic, nid 29 is line-in */
                w = hdac_widget_get(devinfo, 15);
                if (w != NULL)
                        w->selconn = 2;
                w = hdac_widget_get(devinfo, 16);
                if (w != NULL)
                        w->selconn = 1;


-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48A2ED4A.6060606>