@@ -108,6 +108,16 @@ void haswell_set_bclk(struct hda_intel *hda)
azx_writew(&hda->chip, EM5, bclk_n);
}
+int snd_hdac_i915_register_notifier(const struct i915_audio_component_audio_ops *aops)
+{
+ if (WARN_ON(!hdac_acomp))
+ return -ENODEV;
+
+ hdac_acomp->audio_ops = aops;
+ return 0;
+}
+EXPORT_SYMBOL_GPL(snd_hdac_i915_register_notifier);
+
static int hda_component_master_bind(struct device *dev)
{
struct snd_card *card = dev_get_drvdata(dev);
@@ -54,6 +54,7 @@ void haswell_set_bclk(struct hda_intel *hda);
int hda_i915_init(struct hda_intel *hda);
int hda_i915_init_bpo(struct hda_intel *hda);
int hda_i915_exit(struct hda_intel *hda);
+int snd_hdac_i915_register_notifier(const struct i915_audio_component_audio_ops *);
#else
static inline int hda_set_codec_wakeup(struct hda_intel *hda, bool enable)
{
@@ -80,6 +81,10 @@ static inline int hda_i915_exit_bpo(void)
{
return 0;
}
+static inline int snd_hdac_i915_register_notifier(const struct i915_audio_component_audio_ops *)
+{
+ return -ENODEV;
+}
#endif
#endif
This lets the interested codec be notified when an i915 pin/ELD event happens. Signed-off-by: David Henningsson <david.henningsson@canonical.com> --- sound/pci/hda/hda_i915.c | 10 ++++++++++ sound/pci/hda/hda_intel.h | 5 +++++ 2 files changed, 15 insertions(+)