xref: /openbmc/linux/include/sound/hda_i915.h (revision e3b9f1e8)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * HD-Audio helpers to sync with i915 driver
4  */
5 #ifndef __SOUND_HDA_I915_H
6 #define __SOUND_HDA_I915_H
7 
8 #include <drm/i915_component.h>
9 
10 #ifdef CONFIG_SND_HDA_I915
11 int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable);
12 int snd_hdac_display_power(struct hdac_bus *bus, bool enable);
13 void snd_hdac_i915_set_bclk(struct hdac_bus *bus);
14 int snd_hdac_sync_audio_rate(struct hdac_device *codec, hda_nid_t nid,
15 			     int dev_id, int rate);
16 int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id,
17 			   bool *audio_enabled, char *buffer, int max_bytes);
18 int snd_hdac_i915_init(struct hdac_bus *bus);
19 int snd_hdac_i915_exit(struct hdac_bus *bus);
20 int snd_hdac_i915_register_notifier(const struct i915_audio_component_audio_ops *);
21 #else
22 static inline int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable)
23 {
24 	return 0;
25 }
26 static inline int snd_hdac_display_power(struct hdac_bus *bus, bool enable)
27 {
28 	return 0;
29 }
30 static inline void snd_hdac_i915_set_bclk(struct hdac_bus *bus)
31 {
32 }
33 static inline int snd_hdac_sync_audio_rate(struct hdac_device *codec,
34 					   hda_nid_t nid, int dev_id, int rate)
35 {
36 	return 0;
37 }
38 static inline int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid,
39 					 int dev_id, bool *audio_enabled,
40 					 char *buffer, int max_bytes)
41 {
42 	return -ENODEV;
43 }
44 static inline int snd_hdac_i915_init(struct hdac_bus *bus)
45 {
46 	return -ENODEV;
47 }
48 static inline int snd_hdac_i915_exit(struct hdac_bus *bus)
49 {
50 	return 0;
51 }
52 static inline int snd_hdac_i915_register_notifier(const struct i915_audio_component_audio_ops *ops)
53 {
54 	return -ENODEV;
55 }
56 #endif
57 
58 #endif /* __SOUND_HDA_I915_H */
59