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, | |
23 | int (*match_master)(struct device *, void *), | |
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, | |
50 | int (*match_master)(struct device *, void *), | |
51 | size_t extra_size) | |
52 | { | |
53 | return -ENODEV; | |
54 | } | |
55 | static inline int snd_hdac_acomp_exit(struct hdac_bus *bus) | |
56 | { | |
57 | return 0; | |
58 | } | |
59 | static inline int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, | |
60 | const struct drm_audio_component_audio_ops *ops) | |
61 | { | |
62 | return -ENODEV; | |
63 | } | |
64 | #endif | |
65 | ||
66 | #endif /* __SOUND_HDA_COMPONENT_H */ |