mirror of https://github.com/torvalds/linux.git
ASoC: SOF: Intel: refactor i915_get/put functions
The current interface to control i915 display power is misleading. The hda_codec_i915_get() and hda_codec_i915_put() names suggest a refcounting based interface. This is confusing as no refcounting is done and the underlying HDAC library interface does not support refcounts eithers. Clarify the code by replacing the functions with a single hda_codec_i915_display_power() that is aligned with snd_hdac_display_power(). Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://lore.kernel.org/r/20200120160117.29130-2-kai.vehmanen@linux.intel.com Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
e91440ddfb
commit
23ee09032d
|
|
@ -170,23 +170,14 @@ EXPORT_SYMBOL_NS(hda_codec_probe_bus, SND_SOC_SOF_HDA_AUDIO_CODEC);
|
||||||
#if IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI) || \
|
#if IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI) || \
|
||||||
IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)
|
IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)
|
||||||
|
|
||||||
void hda_codec_i915_get(struct snd_sof_dev *sdev)
|
void hda_codec_i915_display_power(struct snd_sof_dev *sdev, bool enable)
|
||||||
{
|
{
|
||||||
struct hdac_bus *bus = sof_to_bus(sdev);
|
struct hdac_bus *bus = sof_to_bus(sdev);
|
||||||
|
|
||||||
dev_dbg(bus->dev, "Turning i915 HDAC power on\n");
|
dev_dbg(bus->dev, "Turning i915 HDAC power %d\n", enable);
|
||||||
snd_hdac_display_power(bus, HDA_CODEC_IDX_CONTROLLER, true);
|
snd_hdac_display_power(bus, HDA_CODEC_IDX_CONTROLLER, enable);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_NS(hda_codec_i915_get, SND_SOC_SOF_HDA_AUDIO_CODEC_I915);
|
EXPORT_SYMBOL_NS(hda_codec_i915_display_power, SND_SOC_SOF_HDA_AUDIO_CODEC_I915);
|
||||||
|
|
||||||
void hda_codec_i915_put(struct snd_sof_dev *sdev)
|
|
||||||
{
|
|
||||||
struct hdac_bus *bus = sof_to_bus(sdev);
|
|
||||||
|
|
||||||
dev_dbg(bus->dev, "Turning i915 HDAC power off\n");
|
|
||||||
snd_hdac_display_power(bus, HDA_CODEC_IDX_CONTROLLER, false);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_NS(hda_codec_i915_put, SND_SOC_SOF_HDA_AUDIO_CODEC_I915);
|
|
||||||
|
|
||||||
int hda_codec_i915_init(struct snd_sof_dev *sdev)
|
int hda_codec_i915_init(struct snd_sof_dev *sdev)
|
||||||
{
|
{
|
||||||
|
|
@ -198,7 +189,7 @@ int hda_codec_i915_init(struct snd_sof_dev *sdev)
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
hda_codec_i915_get(sdev);
|
hda_codec_i915_display_power(sdev, true);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -209,7 +200,7 @@ int hda_codec_i915_exit(struct snd_sof_dev *sdev)
|
||||||
struct hdac_bus *bus = sof_to_bus(sdev);
|
struct hdac_bus *bus = sof_to_bus(sdev);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
hda_codec_i915_put(sdev);
|
hda_codec_i915_display_power(sdev, false);
|
||||||
|
|
||||||
ret = snd_hdac_i915_exit(bus);
|
ret = snd_hdac_i915_exit(bus);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -380,7 +380,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
|
||||||
/* create codec instances */
|
/* create codec instances */
|
||||||
hda_codec_probe_bus(sdev, hda_codec_use_common_hdmi);
|
hda_codec_probe_bus(sdev, hda_codec_use_common_hdmi);
|
||||||
|
|
||||||
hda_codec_i915_put(sdev);
|
hda_codec_i915_display_power(sdev, false);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* we are done probing so decrement link counts
|
* we are done probing so decrement link counts
|
||||||
|
|
|
||||||
|
|
@ -586,15 +586,14 @@ void hda_codec_jack_check(struct snd_sof_dev *sdev);
|
||||||
(IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI) || \
|
(IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI) || \
|
||||||
IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI))
|
IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI))
|
||||||
|
|
||||||
void hda_codec_i915_get(struct snd_sof_dev *sdev);
|
void hda_codec_i915_display_power(struct snd_sof_dev *sdev, bool enable);
|
||||||
void hda_codec_i915_put(struct snd_sof_dev *sdev);
|
|
||||||
int hda_codec_i915_init(struct snd_sof_dev *sdev);
|
int hda_codec_i915_init(struct snd_sof_dev *sdev);
|
||||||
int hda_codec_i915_exit(struct snd_sof_dev *sdev);
|
int hda_codec_i915_exit(struct snd_sof_dev *sdev);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
static inline void hda_codec_i915_get(struct snd_sof_dev *sdev) { }
|
static inline void hda_codec_i915_display_power(struct snd_sof_dev *sdev,
|
||||||
static inline void hda_codec_i915_put(struct snd_sof_dev *sdev) { }
|
bool enable) { }
|
||||||
static inline int hda_codec_i915_init(struct snd_sof_dev *sdev) { return 0; }
|
static inline int hda_codec_i915_init(struct snd_sof_dev *sdev) { return 0; }
|
||||||
static inline int hda_codec_i915_exit(struct snd_sof_dev *sdev) { return 0; }
|
static inline int hda_codec_i915_exit(struct snd_sof_dev *sdev) { return 0; }
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue