Warning: This file is not a C or C++ file. It does not have highlighting.
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> |
8 | #include <sound/hdaudio.h> |
9 | |
10 | /* virtual idx for controller */ |
11 | #define HDA_CODEC_IDX_CONTROLLER HDA_MAX_CODECS |
12 | |
13 | #ifdef CONFIG_SND_HDA_COMPONENT |
14 | int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable); |
15 | void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, |
16 | bool enable); |
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 *, int, 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 | } |
33 | static inline void snd_hdac_display_power(struct hdac_bus *bus, |
34 | unsigned int idx, bool enable) |
35 | { |
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 *, |
51 | int, void *), |
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 */ |
68 |
Warning: This file is not a C or C++ file. It does not have highlighting.