Subject: Re: kern/33741: MCP55 azalia
To: None <kent@NetBSD.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,>
From: TAMURA Kent <kent@NetBSD.org>
List: netbsd-bugs
Date: 06/29/2006 06:45:02
The following reply was made to PR kern/33741; it has been noted by GNATS.
From: TAMURA Kent <kent@NetBSD.org>
To: gnats-bugs@NetBSD.org, rillig@NetBSD.org
Cc:
Subject: Re: kern/33741: MCP55 azalia
Date: Thu, 29 Jun 2006 15:44:08 +0900 (JST)
> I've done that, and here is the result: The kernel boots with revision
> 1.36, but there is no audio0. :(
Thank you for the work.
Well, the next step is to make MCP55 work. Would test the
following patch?
Index: azalia.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/azalia.c,v
retrieving revision 1.36
diff -u -r1.36 azalia.c
--- azalia.c 27 Jun 2006 22:02:14 -0000 1.36
+++ azalia.c 29 Jun 2006 06:41:56 -0000
@@ -119,6 +119,7 @@
bus_space_handle_t ioh;
bus_size_t map_size;
bus_dma_tag_t dmat;
+ pcireg_t pciid;
uint32_t subid;
codec_t codecs[15];
@@ -269,6 +270,9 @@
* PCI functions
* ================================================================ */
+#define PCI_ID_CODE0(v, p) PCI_ID_CODE(PCI_VENDOR_##v, PCI_PRODUCT_##v##_##p)
+#define PCIID_MCP55 PCI_ID_CODE0(NVIDIA, MCP55_HDA)
+
static int
azalia_pci_match(struct device *parent, struct cfdata *match, void *aux)
{
@@ -328,6 +332,7 @@
}
aprint_normal("%s: interrupting at %s\n", XNAME(sc), intrrupt_str);
+ sc->pciid = pa->pa_id;
vendor = pci_findvendor(pa->pa_id);
name = pci_findproduct(pa->pa_id);
if (vendor != NULL && name != NULL) {
@@ -625,7 +630,7 @@
if (corbrp & HDA_CORBRP_CORBRPRST)
break;
}
- if (i <= 0) {
+ if (i <= 0 && az->pciid != PCIID_MCP55) {
aprint_error("%s: CORBRP reset failure\n", XNAME(az));
return -1;
}