forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.0 KiB
67 lines
2.0 KiB
// SPDX-License-Identifier: GPL-2.0 |
|
// HD-Audio helpers to sync with DRM driver |
|
|
|
#ifndef __SOUND_HDA_COMPONENT_H |
|
#define __SOUND_HDA_COMPONENT_H |
|
|
|
#include <drm/drm_audio_component.h> |
|
#include <sound/hdaudio.h> |
|
|
|
/* virtual idx for controller */ |
|
#define HDA_CODEC_IDX_CONTROLLER HDA_MAX_CODECS |
|
|
|
#ifdef CONFIG_SND_HDA_COMPONENT |
|
int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable); |
|
void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, |
|
bool enable); |
|
int snd_hdac_sync_audio_rate(struct hdac_device *codec, hda_nid_t nid, |
|
int dev_id, int rate); |
|
int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id, |
|
bool *audio_enabled, char *buffer, int max_bytes); |
|
int snd_hdac_acomp_init(struct hdac_bus *bus, |
|
const struct drm_audio_component_audio_ops *aops, |
|
int (*match_master)(struct device *, int, void *), |
|
size_t extra_size); |
|
int snd_hdac_acomp_exit(struct hdac_bus *bus); |
|
int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, |
|
const struct drm_audio_component_audio_ops *ops); |
|
#else |
|
static inline int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable) |
|
{ |
|
return 0; |
|
} |
|
static inline void snd_hdac_display_power(struct hdac_bus *bus, |
|
unsigned int idx, bool enable) |
|
{ |
|
} |
|
static inline int snd_hdac_sync_audio_rate(struct hdac_device *codec, |
|
hda_nid_t nid, int dev_id, int rate) |
|
{ |
|
return 0; |
|
} |
|
static inline int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, |
|
int dev_id, bool *audio_enabled, |
|
char *buffer, int max_bytes) |
|
{ |
|
return -ENODEV; |
|
} |
|
static inline int snd_hdac_acomp_init(struct hdac_bus *bus, |
|
const struct drm_audio_component_audio_ops *aops, |
|
int (*match_master)(struct device *, |
|
int, void *), |
|
size_t extra_size) |
|
{ |
|
return -ENODEV; |
|
} |
|
static inline int snd_hdac_acomp_exit(struct hdac_bus *bus) |
|
{ |
|
return 0; |
|
} |
|
static inline int snd_hdac_acomp_register_notifier(struct hdac_bus *bus, |
|
const struct drm_audio_component_audio_ops *ops) |
|
{ |
|
return -ENODEV; |
|
} |
|
#endif |
|
|
|
#endif /* __SOUND_HDA_COMPONENT_H */
|
|
|