lkml.org 
[lkml]   [2008]   [Feb]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [ALSA] HDA: no sound in headphone-out caused by commit f889fa91ad47e (2.6.25-rc1 regression)
    At Tue, 12 Feb 2008 23:57:46 +0100,
    Matej Laitl wrote:
    >
    > On Tuesday 12 of February 2008 19:24:35 Matej Laitl wrote:
    > > > > Yes, this "slightly better" patch applied on top of your first patch
    > > > > against hda_codec.c did the trick, but with some side-effects:
    > > > > (...)
    >
    > Now I just found that the new "Speaker" switch forgets it's value from time to
    > time, ie. it's muted, you go and have lunch, and when you get back and start
    > the music, it's unmuted. It is probably related to aggressive hda-codec
    > powersaving, which I have enabled and set to 20 secs.

    Hm, does the patch below have any influence?
    If the problem still persists, please take alsa-info.sh snapshots
    before and after power-saving.


    Takashi

    ---

    diff -r f4f3c5e8931a sound/pci/hda/patch_realtek.c
    --- a/sound/pci/hda/patch_realtek.c Tue Feb 12 18:37:26 2008 +0100
    +++ b/sound/pci/hda/patch_realtek.c Wed Feb 13 12:01:09 2008 +0100
    @@ -2306,6 +2306,23 @@ static int alc_init(struct hda_codec *co
    return 0;
    }

    +#ifdef CONFIG_PM
    +static int alc_resume(struct hda_codec *codec)
    +{
    + struct alc_spec *spec = codec->spec;
    + unsigned int i;
    +
    + for (i = 0; i < spec->num_init_verbs; i++)
    + snd_hda_sequence_write(codec, spec->init_verbs[i]);
    + snd_hda_codec_resume_amp(codec);
    + snd_hda_codec_resume_cache(codec);
    + /* call init hook at last */
    + if (spec->init_hook)
    + spec->init_hook(codec);
    + return 0;
    +}
    +#endif
    +
    static void alc_unsol_event(struct hda_codec *codec, unsigned int res)
    {
    struct alc_spec *spec = codec->spec;
    @@ -2584,6 +2601,9 @@ static struct hda_codec_ops alc_patch_op
    .init = alc_init,
    .free = alc_free,
    .unsol_event = alc_unsol_event,
    +#ifdef CONFIG_PM
    + .resume = alc_resume,
    +#endif
    #ifdef CONFIG_SND_HDA_POWER_SAVE
    .check_power_status = alc_check_power_status,
    #endif

    \
     
     \ /
      Last update: 2008-02-13 12:03    [W:0.034 / U:0.124 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site