ASoC: hdac_hdmi: report codec link up/down status to bus
authorKai Vehmanen <kai.vehmanen@linux.intel.com>
Tue, 2 Jul 2019 13:24:26 +0000 (16:24 +0300)
committerMark Brown <broonie@kernel.org>
Sat, 6 Jul 2019 11:23:00 +0000 (12:23 +0100)
Report codec power status to the HDA codec bus from runtime pm
suspend and resume callbacks. This is required to implement
runtime idle logic that relies on 'codec_powered' field of hdac_bus
to be maintained for all codecs.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20190702132428.13129-2-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/hdac_hdmi.c

index c9f9820968bb5f0cfbac8b559d0e9740ca02c2f3..47eee18b66a3d30dee28e25e587c4e326f26acec 100644 (file)
@@ -2088,6 +2088,7 @@ static int hdac_hdmi_runtime_suspend(struct device *dev)
                return -EIO;
        }
 
+       snd_hdac_codec_link_down(hdev);
        snd_hdac_ext_bus_link_put(bus, hlink);
 
        snd_hdac_display_power(bus, hdev->addr, false);
@@ -2114,6 +2115,7 @@ static int hdac_hdmi_runtime_resume(struct device *dev)
        }
 
        snd_hdac_ext_bus_link_get(bus, hlink);
+       snd_hdac_codec_link_up(hdev);
 
        snd_hdac_display_power(bus, hdev->addr, true);