#include <sound/hdaudio_ext.h>
#include <sound/hda_register.h>
#include <sound/sof.h>
#include <trace/events/sof_intel.h>
#include "../ops.h"
#include "../sof-audio.h"
#include "../ipc4-priv.h"
#include "hda.h"
int sof_hda_position_quirk = …;
module_param_named(position_quirk, sof_hda_position_quirk, int, 0444);
MODULE_PARM_DESC(…) …;
EXPORT_SYMBOL_NS(…);
#define HDA_LTRP_GB_VALUE_US …
static inline const char *hda_hstream_direction_str(struct hdac_stream *hstream)
{ … }
static char *hda_hstream_dbg_get_stream_info_str(struct hdac_stream *hstream)
{ … }
static int hda_setup_bdle(struct snd_sof_dev *sdev,
struct snd_dma_buffer *dmab,
struct hdac_stream *hstream,
struct sof_intel_dsp_bdl **bdlp,
int offset, int size, int ioc)
{ … }
int hda_dsp_stream_setup_bdl(struct snd_sof_dev *sdev,
struct snd_dma_buffer *dmab,
struct hdac_stream *hstream)
{ … }
int hda_dsp_stream_spib_config(struct snd_sof_dev *sdev,
struct hdac_ext_stream *hext_stream,
int enable, u32 size)
{ … }
struct hdac_ext_stream *
hda_dsp_stream_get(struct snd_sof_dev *sdev, int direction, u32 flags)
{ … }
int hda_dsp_stream_put(struct snd_sof_dev *sdev, int direction, int stream_tag)
{ … }
static int hda_dsp_stream_reset(struct snd_sof_dev *sdev, struct hdac_stream *hstream)
{ … }
int hda_dsp_stream_trigger(struct snd_sof_dev *sdev,
struct hdac_ext_stream *hext_stream, int cmd)
{ … }
int hda_dsp_iccmax_stream_hw_params(struct snd_sof_dev *sdev, struct hdac_ext_stream *hext_stream,
struct snd_dma_buffer *dmab,
struct snd_pcm_hw_params *params)
{ … }
int hda_dsp_stream_hw_params(struct snd_sof_dev *sdev,
struct hdac_ext_stream *hext_stream,
struct snd_dma_buffer *dmab,
struct snd_pcm_hw_params *params)
{ … }
int hda_dsp_stream_hw_free(struct snd_sof_dev *sdev,
struct snd_pcm_substream *substream)
{ … }
EXPORT_SYMBOL_NS(…);
bool hda_dsp_check_stream_irq(struct snd_sof_dev *sdev)
{ … }
EXPORT_SYMBOL_NS(…);
static void
hda_dsp_compr_bytes_transferred(struct hdac_stream *hstream, int direction)
{ … }
static bool hda_dsp_stream_check(struct hdac_bus *bus, u32 status)
{ … }
irqreturn_t hda_dsp_stream_threaded_handler(int irq, void *context)
{ … }
EXPORT_SYMBOL_NS(…);
int hda_dsp_stream_init(struct snd_sof_dev *sdev)
{ … }
EXPORT_SYMBOL_NS(…);
void hda_dsp_stream_free(struct snd_sof_dev *sdev)
{ … }
EXPORT_SYMBOL_NS(…);
snd_pcm_uframes_t hda_dsp_stream_get_position(struct hdac_stream *hstream,
int direction, bool can_sleep)
{ … }
EXPORT_SYMBOL_NS(…);
#define merge_u64(u32_u, u32_l) …
u64 hda_dsp_get_stream_llp(struct snd_sof_dev *sdev,
struct snd_soc_component *component,
struct snd_pcm_substream *substream)
{ … }
EXPORT_SYMBOL_NS(…);
u64 hda_dsp_get_stream_ldp(struct snd_sof_dev *sdev,
struct snd_soc_component *component,
struct snd_pcm_substream *substream)
{ … }
EXPORT_SYMBOL_NS(…);