On Tue, Dec 09, 2014 at 07:31:47AM +0100, Alessandro DE LAURENZIS wrote:
> Hi Jonathan,
> 
> On Tue 09/12 16:03, Jonathan Gray wrote:
> > I'm curious why you decided to mask the subid here and not just test
> > subid == 0x308a103c ?
> 
> In my understanding (I'm definitely not an expert), the last part of
> subid represents the vendor signature (HP in this case); the first 4
> digits should be instead specific to the particular chip implementation.
> 
> Here I just tried to make the patch more general (guessing that the GPIO
> needs to be unmuted for all IDT 92HD75B1/2-type cards sold by HP), and
> also to stay close to code style adopted for other (similar?) cases.
> 
> If my assumption is wrong, then yes, you're right: the whole subid
> should be tested.
> 
> Anyhow, thanks for your feedback.
> 
> All the best

I've found a few other mentions with different subids that look like
they need the mask.

HP Mini 5102
http://marc.info/?l=openbsd-misc&m=130937855423807&w=2

HP Mini 1000
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/318942

So I'll commit your original patch, included below as
the original didn't apply cleanly here.

Please send patches to tech@ or bugs@ in future.

Index: azalia_codec.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/azalia_codec.c,v
retrieving revision 1.164
diff -u -p -r1.164 azalia_codec.c
--- azalia_codec.c      17 Nov 2014 16:34:51 -0000      1.164
+++ azalia_codec.c      10 Dec 2014 04:39:42 -0000
@@ -184,6 +184,9 @@ azalia_codec_init_vtbl(codec_t *this)
                break;
        case 0x111d7608:
                this->name = "IDT 92HD75B1/2";
+               if ((this->subid & 0x0000ffff) == 0x0000103c) { /* HP */
+                       this->qrks |= AZ_QRK_GPIO_UNMUTE_0;
+               }
                break;
        case 0x111d7674:
                this->name = "IDT 92HD73D1";

Reply via email to