All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Maciej Rutecki <maciej.rutecki@gmail.com>
Cc: "Sergei Trofimovich" <slyich@gmail.com>,
	linux-kernel@vger.kernel.org,
	"Éric Piel" <eric.piel@tremplin-utc.net>
Subject: Re: intel hda regression: 2.6.33-rc{1,2}: hd-audio0 eats 25% CPU 	(according to top)
Date: Fri, 25 Dec 2009 22:59:24 +0100	[thread overview]
Message-ID: <s5hiqbulnpf.wl%tiwai@suse.de> (raw)
In-Reply-To: <8db1092f0912251101q7ae69d1ai59c68d03a9155566@mail.gmail.com>

At Fri, 25 Dec 2009 20:01:46 +0100,
Maciej Rutecki wrote:
> 
> 2009/12/25 Takashi Iwai <tiwai@suse.de>:
> 
> > diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> > index 950ee5c..f98b47c 100644
> > --- a/sound/pci/hda/hda_codec.c
> > +++ b/sound/pci/hda/hda_codec.c
> > @@ -1327,11 +1327,13 @@ EXPORT_SYMBOL_HDA(snd_hda_query_pin_caps);
> >  */
> >  u32 snd_hda_pin_sense(struct hda_codec *codec, hda_nid_t nid)
> >  {
> > -       u32 pincap = snd_hda_query_pin_caps(codec, nid);
> > -
> > -       if (pincap & AC_PINCAP_TRIG_REQ) /* need trigger? */
> > -               snd_hda_codec_read(codec, nid, 0, AC_VERB_SET_PIN_SENSE, 0);
> > +       u32 pincap;
> >
> > +       if (!codec->no_trigger_sense) {
> > +               pincap = snd_hda_query_pin_caps(codec, nid);
> > +               if (pincap & AC_PINCAP_TRIG_REQ) /* need trigger? */
> > +                       snd_hda_codec_read(codec, nid, 0, AC_VERB_SET_PIN_SENSE, 0);
> > +       }
> >        return snd_hda_codec_read(codec, nid, 0,
> >                                  AC_VERB_GET_PIN_SENSE, 0);
> >  }
> > diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
> > index 1d541b7..0a770a2 100644
> > --- a/sound/pci/hda/hda_codec.h
> > +++ b/sound/pci/hda/hda_codec.h
> > @@ -817,6 +817,7 @@ struct hda_codec {
> >        unsigned int pin_amp_workaround:1; /* pin out-amp takes index
> >                                            * (e.g. Conexant codecs)
> >                                            */
> > +       unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */
> >  #ifdef CONFIG_SND_HDA_POWER_SAVE
> >        unsigned int power_on :1;       /* current (global) power-state */
> >        unsigned int power_transition :1; /* power-state in transition */
> > diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
> > index 1a36137..69a941c 100644
> > --- a/sound/pci/hda/patch_analog.c
> > +++ b/sound/pci/hda/patch_analog.c
> > @@ -1186,6 +1186,8 @@ static int patch_ad1986a(struct hda_codec *codec)
> >         */
> >        spec->multiout.no_share_stream = 1;
> >
> > +       codec->no_trigger_sense = 1;
> > +
> >        return 0;
> >  }
> >
> > @@ -1371,6 +1373,8 @@ static int patch_ad1983(struct hda_codec *codec)
> >
> >        codec->patch_ops = ad198x_patch_ops;
> >
> > +       codec->no_trigger_sense = 1;
> > +
> >        return 0;
> >  }
> >
> > @@ -1813,6 +1817,9 @@ static int patch_ad1981(struct hda_codec *codec)
> >                codec->patch_ops.unsol_event = ad1981_hp_unsol_event;
> >                break;
> >        }
> > +
> > +       codec->no_trigger_sense = 1;
> > +
> >        return 0;
> >  }
> >
> > @@ -3118,6 +3125,8 @@ static int patch_ad1988(struct hda_codec *codec)
> >  #endif
> >        spec->vmaster_nid = 0x04;
> >
> > +       codec->no_trigger_sense = 1;
> > +
> >        return 0;
> >  }
> >
> > @@ -3330,6 +3339,8 @@ static int patch_ad1884(struct hda_codec *codec)
> >
> >        codec->patch_ops = ad198x_patch_ops;
> >
> > +       codec->no_trigger_sense = 1;
> > +
> >        return 0;
> >  }
> >
> > @@ -4287,6 +4298,8 @@ static int patch_ad1884a(struct hda_codec *codec)
> >                break;
> >        }
> >
> > +       codec->no_trigger_sense = 1;
> > +
> >        return 0;
> >  }
> >
> > @@ -4623,6 +4636,9 @@ static int patch_ad1882(struct hda_codec *codec)
> >                spec->mixers[2] = ad1882_6stack_mixers;
> >                break;
> >        }
> > +
> > +       codec->no_trigger_sense = 1;
> > +
> >        return 0;
> >  }
> >
> >
> Patch solves the problem.
> 
> Tested-by Maciej Rutecki <maciej.rutecki@gmail.com>

Thanks for testing.
I merged the patch now.


Takashi

  reply	other threads:[~2009-12-25 21:59 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-25  9:31 drm/radeon/kms regression: 2.6.33-rc2 does not boot Andrei Gaponenko
2009-12-25  9:46 ` Dave Airlie
2009-12-25 10:08   ` Andrei Gaponenko
2009-12-25 10:32     ` Dave Airlie
2009-12-25 10:44       ` Andrei Gaponenko
2009-12-25 12:35       ` Dr. David Alan Gilbert
2009-12-26 18:57         ` Alex Deucher
2009-12-25 10:21 ` intel hda regression: 2.6.33-rc{1,2}: hd-audio0 eats 25% CPU (according to top) Sergei Trofimovich
2009-12-25 11:18   ` Takashi Iwai
2009-12-25 14:25     ` Sergei Trofimovich
2009-12-25 15:31       ` Maciej Rutecki
2009-12-25 16:05         ` Takashi Iwai
2009-12-25 16:32           ` Sergei Trofimovich
2009-12-25 17:06             ` Takashi Iwai
2009-12-25 18:00               ` Sergei Trofimovich
2009-12-25 19:01               ` Maciej Rutecki
2009-12-25 21:59                 ` Takashi Iwai [this message]
2009-12-25 16:44           ` Maciej Rutecki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hiqbulnpf.wl%tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=eric.piel@tremplin-utc.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maciej.rutecki@gmail.com \
    --cc=slyich@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.