Hello!

I has a problem on my Acer laptop with azalia. The HDA controller
did not generate interrupts. And i heard the infinite looping sound.
The reason of this is that the laptop BIOS always set the D3 power state
for HDA controller during the boot time.
This patch solved my problem. The second part of patch enable beep for my laptop.

Index: sys/dev/pci/azalia.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/azalia.c,v
retrieving revision 1.201
diff -u -p -r1.201 azalia.c
--- sys/dev/pci/azalia.c        12 Aug 2012 19:32:22 -0000      1.201
+++ sys/dev/pci/azalia.c        19 Oct 2012 08:18:20 -0000
@@ -498,6 +498,8 @@ azalia_pci_attach(struct device *parent,

        sc->dmat = pa->pa_dmat;

+       pci_set_powerstate(pa->pa_pc, pa->pa_tag, PCI_PMCSR_STATE_D0);
+
        v = pci_conf_read(pa->pa_pc, pa->pa_tag, ICH_PCI_HDBARL);
        v &= PCI_MAPREG_TYPE_MASK | PCI_MAPREG_MEM_TYPE_MASK;
        if (pci_mapreg_map(pa, ICH_PCI_HDBARL, v, 0,
Index: sys/dev/pci/azalia_codec.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/azalia_codec.c,v
retrieving revision 1.151
diff -u -p -r1.151 azalia_codec.c
--- sys/dev/pci/azalia_codec.c  10 Sep 2010 15:11:23 -0000      1.151
+++ sys/dev/pci/azalia_codec.c  19 Oct 2012 08:18:20 -0000
@@ -77,6 +77,7 @@ azalia_codec_init_vtbl(codec_t *this)
                break;
        case 0x10ec0269:
                this->name = "Realtek ALC269";
+               this->qrks |= AZ_QRK_WID_CDIN_1C | AZ_QRK_WID_BEEP_1D;
                break;
        case 0x10ec0272:
                this->name = "Realtek ALC272";

Reply via email to