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.
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?
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.
Abraços, Gustavo