Commit | Line | Data |
---|---|---|
a57942bf TI |
1 | // SPDX-License-Identifier: GPL-2.0 |
2 | // HD-Audio helpers to sync with DRM driver | |
3 | ||
4 | #ifndef __SOUND_HDA_COMPONENT_H | |
5 | #define __SOUND_HDA_COMPONENT_H | |
6 | ||
7 | #include <drm/drm_audio_component.h> | |
029d92c2 TI |
8 | #include <sound/hdaudio.h> |
9 | ||
10 | /* virtual idx for controller */ | |
11 | #define HDA_CODEC_IDX_CONTROLLER HDA_MAX_CODECS | |
a57942bf TI |
12 | |
13 | #ifdef CONFIG_SND_HDA_COMPONENT | |
14 | int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable); | |
4f799e73 TI |
15 | void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, |
16 | bool enable); | |
a57942bf TI |
17 | int snd_hdac_sync_audio_rate(struct hdac_device *codec, hda_nid_t nid, |
18 | int dev_id, int rate); | |
19 | int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id, | |
20 | bool *audio_enabled, char *buffer, int max_bytes); | |
21 | int snd_hdac_acomp_init(struct hdac_bus *bus, | |
22 | const struct drm_audio_component_audio_ops *aops, | |
8857c7d0 | 23 | int (*match_master)(struct device *, int, void *), |
a57942bf TI |
24 | size_t extra_size); |
25 | int snd_hdac_acomp_exit(struct hdac_bus *bus); | |
26 | int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, | |
27 | const struct drm_audio_component_audio_ops *ops); | |
28 | #else | |
29 | static inline int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable) | |
30 | { | |
31 | return 0; | |
32 | } | |
4f799e73 TI |
33 | static inline void snd_hdac_display_power(struct hdac_bus *bus, |
34 | unsigned int idx, bool enable) | |
a57942bf | 35 | { |
a57942bf TI |
36 | } |
37 | static inline int snd_hdac_sync_audio_rate(struct hdac_device *codec, | |
38 | hda_nid_t nid, int dev_id, int rate) | |
39 | { | |
40 | return 0; | |
41 | } | |
42 | static inline int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, | |
43 | int dev_id, bool *audio_enabled, | |
44 | char *buffer, int max_bytes) | |
45 | { | |
46 | return -ENODEV; | |
47 | } | |
48 | static inline int snd_hdac_acomp_init(struct hdac_bus *bus, | |
49 | const struct drm_audio_component_audio_ops *aops, | |
8857c7d0 DV |
50 | int (*match_master)(struct device *, |
51 | int, void *), | |
a57942bf TI |
52 | size_t extra_size) |
53 | { | |
54 | return -ENODEV; | |
55 | } | |
56 | static inline int snd_hdac_acomp_exit(struct hdac_bus *bus) | |
57 | { | |
58 | return 0; | |
59 | } | |
60 | static inline int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, | |
61 | const struct drm_audio_component_audio_ops *ops) | |
62 | { | |
63 | return -ENODEV; | |
64 | } | |
65 | #endif | |
66 | ||
67 | #endif /* __SOUND_HDA_COMPONENT_H */ |