[alsa-devel] No jack sense on Intel 82801I / IDT 92HD71B7X in a HP dv4

Takashi Iwai tiwai at suse.de
Sat Jun 6 11:04:19 CEST 2009

At Fri, 05 Jun 2009 17:13:25 -0300,
Gustavo Maciel Dias Vieira wrote:
> Em Sex, 2009-06-05 às 21:40 +0200, Takashi Iwai escreveu:
> > > However, this time I made an interesting observation. alsa-info does
> > not
> > > generate spurious events. It generates exactly the number of events
> > that
> > > should be generated before the execution of alsa-info. For example:
> > if I
> > > plug and unplug the HP and run alsa-info, two HP_EVENTs are
> > generated.
> > > This explains the three events I observed earlier (plug, unplug,
> > plug,
> > > alsa-info).
> > > 
> > > It seems the events are getting "stuck" somewhere and alsa-info
> > > "releases" them.
> > 
> > Check /proc/interrupts whether you get an interrupt when you plug /
> > unplug the jack.  I guess you don't get an interrupt there.  If so,
> > then it's a problem of ACPI or BIOS.  If you get a proper interrupt
> > but still no unsol event is passed, something wrong in the sound
> > driver side.
> I'm not sure what interrupt I should be monitoring, but the line with
> "HDA Intel" always stays with 0 interrupts. Also, only timer, i915 and
> rescheduling interrupts are generated.

Hm, but when you play or record something, interrupts must be
generated, right?

> Oh, boy. If this is so, what can I do now? If it is a BIOS problem, I
> may try to file a bug report with HP, but as Vista works perfectly they
> probably won't be interested. If it is a ACPI bug, what exactly should I
> report to the Linux ACPI guys?

Basically the same thing.  They'll certainly want the ACPI dump, etc,
in addition.  Just ask them.

> > BTW, I guess the similar effect could be achieved instead of alsa-info
> > but by just changing the mixer volume once.  The unsol verbs were
> > delivered, but they aren't fed until any sync operation is done.
> > 
> Changing mixer levels wont release the events.

Hrm...  then the unsol events aren't reached at that timing?
With the latest code, you can set bus->sync_write = 1, as done for
STAC_HP_DV5 model in patch_sigmatel.c.  This will make the codec read
and write always synchronized.


More information about the Alsa-devel mailing list