diff --git a/[refs] b/[refs] index 000af19d9cec..4dae6a56c066 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0c27c1805269f9ff01cc1d77752a662065ebcfe5 +refs/heads/master: d02667e6206fb3be0990c38af8447a4ed2b74c11 diff --git a/trunk/sound/pci/hda/hda_codec.c b/trunk/sound/pci/hda/hda_codec.c index 9c27a3a4c4d5..c0e83ed0b351 100644 --- a/trunk/sound/pci/hda/hda_codec.c +++ b/trunk/sound/pci/hda/hda_codec.c @@ -5103,6 +5103,8 @@ int snd_hda_resume(struct hda_bus *bus) struct hda_codec *codec; list_for_each_entry(codec, &bus->codec_list, list) { + if (codec->patch_ops.pre_resume) + codec->patch_ops.pre_resume(codec); if (snd_hda_codec_needs_resume(codec)) hda_call_codec_resume(codec); } diff --git a/trunk/sound/pci/hda/hda_codec.h b/trunk/sound/pci/hda/hda_codec.h index f465e07a4879..82161466d3b0 100644 --- a/trunk/sound/pci/hda/hda_codec.h +++ b/trunk/sound/pci/hda/hda_codec.h @@ -712,6 +712,9 @@ struct hda_codec_ops { int (*check_power_status)(struct hda_codec *codec, hda_nid_t nid); #endif void (*reboot_notify)(struct hda_codec *codec); +#ifdef SND_HDA_NEEDS_RESUME + int (*pre_resume)(struct hda_codec *codec); +#endif }; /* record for amp information cache */ diff --git a/trunk/sound/pci/hda/patch_sigmatel.c b/trunk/sound/pci/hda/patch_sigmatel.c index 00ea2bd6bc14..c4a6ecb8e085 100644 --- a/trunk/sound/pci/hda/patch_sigmatel.c +++ b/trunk/sound/pci/hda/patch_sigmatel.c @@ -4935,6 +4935,17 @@ static void stac927x_proc_hook(struct snd_info_buffer *buffer, #endif #ifdef SND_HDA_NEEDS_RESUME +static int stac92xx_pre_resume(struct hda_codec *codec) +{ + struct sigmatel_spec *spec = codec->spec; + + /* sync mute LED */ + if (spec->gpio_led) + stac_gpio_set(codec, spec->gpio_mask, + spec->gpio_dir, spec->gpio_data); + return 0; +} + static int stac92xx_resume(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; @@ -5013,6 +5024,7 @@ static const struct hda_codec_ops stac92xx_patch_ops = { #ifdef SND_HDA_NEEDS_RESUME .suspend = stac92xx_suspend, .resume = stac92xx_resume, + .pre_resume = stac92xx_pre_resume, #endif .reboot_notify = stac92xx_shutup, };