[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