[alsa-devel] HD-audio generic parser merged to linux-next
Takashi Iwai
tiwai at suse.de
Wed Jan 23 15:55:49 CET 2013
At Wed, 23 Jan 2013 15:20:16 +0100,
Takashi Iwai wrote:
>
> At Wed, 23 Jan 2013 15:01:43 +0100,
> Manolo Díaz wrote:
> >
> > El mié, 23 ene 2013 a las 14:54 horas
> > Takashi Iwai escribió:
> >
> > >At Wed, 23 Jan 2013 14:49:32 +0100,
> > >Manolo Díaz wrote:
> > >>
> > >> El mié, 23 ene 2013 a las 9:30 horas
> > >> Takashi Iwai escribió:
> > >>
> > >> >Hi,
> > >> >
> > >> >as most of feedbacks about the new generic parser migration were
> > >> >positive, I decided to take a risk: now all commit that have been in
> > >> >test/hda-migrate branch in sound-unstable git tree are merged to
> > >> >for-next branch of sound git tree for better test coverage.
> > >> >It means that all changes are merged to linux-next, i.e. will be
> > >> >included in 3.9 kernel.
> > >> >
> > >> >For the early adapter people, I'm going to keep test/hda-migrate
> > >> >branch of sound-unstable git tree updated for a while, but the branch
> > >> >will be abandoned some time later.
> > >> >
> > >> >If you encounter any regression by the recent update, please let me
> > >> >know.
> > >> >
> > >> >
> > >> >thanks,
> > >> >
> > >> >Takashi
> > >> >_______________________________________________
> > >> >Alsa-devel mailing list
> > >> >Alsa-devel at alsa-project.org
> > >> >http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> > >>
> > >> Hi,
> > >>
> > >> Recording and (multi stream) playing seem to work fine, but auto-mute
> > >> doesn't. For example, front speakers may remain muted after
> > >> disconnecting the HP.
> > >>
> > >> cat /sys/kernel/debug/tracing/trace
> > >> # tracer: nop
> > >> #
> > >> # entries-in-buffer/entries-written: 0/0 #P:2
> > >> #
> > >> # _-----=> irqs-off
> > >> # / _----=> need-resched
> > >> # | / _---=> hardirq/softirq
> > >> # || / _--=> preempt-depth
> > >> # ||| / delay
> > >> # TASK-PID CPU# |||| TIMESTAMP FUNCTION
> > >> # | | | |||| | |
> > >>
> > >> I've connected and disconnected the HP jack several times before.
> > >
> > >If nothing appears in the tracing (suppose you enabled the events
> > >properly via /sys/kernel/debug/tracing/events/hda/enable), it's rather
> > >a hardware issue.
> >
> > Sorry, I've forgotten this step.
> >
> > >Did the auto-mute work reliably before the code change?
> > >
> > >
> > >Takashi
> >
> > Yes, it did.
>
> Did you mean when it worked? Was it before moving to the generic
> parser, or after it but before upgrading to the latest tree?
> In the latter case, try git bisection to figure out the culprit.
>
> But, it's anyway better to update the git branch. You are testing the
> too old version (there have been already 75 commits after your testing
> one).
>
>
> > New try, this time with hda events enabled.
> >
> > cat /sys/kernel/debug/tracing/trace
> > # tracer: nop
> > #
> > # entries-in-buffer/entries-written: 871/871 #P:2
> > #
> > # _-----=> irqs-off
> > # / _----=> need-resched
> > # | / _---=> hardirq/softirq
> > # || / _--=> preempt-depth
> > # ||| / delay
> > # TASK-PID CPU# |||| TIMESTAMP FUNCTION
> > # | | | |||| | |
> > <idle>-0 [001] d.h. 4509.450172: hda_unsol_event: [0] res=4000000, res_ex=10
> > <idle>-0 [001] d.h. 4513.991711: hda_unsol_event: [0] res=4000000, res_ex=10
>
> OK, so the unsol event is generated properly.
>
> Is the alsa-info.sh output you attached previously at the state after
> unplugging? If so, I see no problem in the code register. The path
> 0x04 -> 0x29 -> 0x12 looks fine, all unmuted, power D0 and the pin set
> properly.
>
> If something doesn't work as expected, we need two alsa-info outputs
> for comparison: the working one and non-working one.
I think I found the culprit. Could you update to the latest tree and
apply the patch below?
Takashi
---
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 77ddd34..a22a18b 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -3824,6 +3824,7 @@ static void hda_call_codec_resume(struct hda_codec *codec)
*/
hda_keep_power_on(codec);
hda_set_power_state(codec, AC_PWRST_D0);
+ snd_hda_jack_set_dirty_all(codec);
restore_shutup_pins(codec);
hda_exec_init_verbs(codec);
if (codec->patch_ops.resume)
@@ -3837,10 +3838,8 @@ static void hda_call_codec_resume(struct hda_codec *codec)
if (codec->jackpoll_interval)
hda_jackpoll_work(&codec->jackpoll_work.work);
- else {
- snd_hda_jack_set_dirty_all(codec);
+ else
snd_hda_jack_report_sync(codec);
- }
codec->in_pm = 0;
snd_hda_power_down(codec); /* flag down before returning */
More information about the Alsa-devel
mailing list