@@ -567,9 +567,17 @@ static int azx_position_check(struct azx *chip, struct azx_dev *azx_dev)
/* Enable/disable i915 display power for the link */
static int azx_intel_link_power(struct azx *chip, bool enable)
{
+ int err;
struct hdac_bus *bus = azx_bus(chip);
- return snd_hdac_display_power(bus, enable);
+ err = snd_hdac_display_power(bus, enable);
+ if (err < 0)
+ return err;
+ if (enable && (chip->driver_caps & AZX_DCAPS_I915_POWERWELL)) {
+ snd_hdac_set_codec_wakeup(bus, true);
+ snd_hdac_set_codec_wakeup(bus, false);
+ }
+ return 0;
}
/*