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