linux/sound/pci/lola/lola_pcm.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *  Support for Digigram Lola PCI-e boards
 *
 *  Copyright (c) 2011 Takashi Iwai <[email protected]>
 */

#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/dma-mapping.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include "lola.h"

#define LOLA_MAX_BDL_ENTRIES
#define LOLA_MAX_BUF_SIZE
#define LOLA_BDL_ENTRY_SIZE

static struct lola_pcm *lola_get_pcm(struct snd_pcm_substream *substream)
{}

static struct lola_stream *lola_get_stream(struct snd_pcm_substream *substream)
{}

static unsigned int lola_get_lrc(struct lola *chip)
{}

static unsigned int lola_get_tstamp(struct lola *chip, bool quick_no_sync)
{}

/* clear any pending interrupt status */
static void lola_stream_clear_pending_irq(struct lola *chip,
					  struct lola_stream *str)
{}

static void lola_stream_start(struct lola *chip, struct lola_stream *str,
			      unsigned int tstamp)
{}

static void lola_stream_stop(struct lola *chip, struct lola_stream *str,
			     unsigned int tstamp)
{}

static void wait_for_srst_clear(struct lola *chip, struct lola_stream *str)
{}

static int lola_stream_wait_for_fifo(struct lola *chip,
				     struct lola_stream *str,
				     bool ready)
{}

/* sync for FIFO ready/empty for all linked streams;
 * clear paused flag when FIFO gets ready again
 */
static int lola_sync_wait_for_fifo(struct lola *chip,
				   struct snd_pcm_substream *substream,
				   bool ready)
{}

/* finish pause - prepare for a new resume */
static void lola_sync_pause(struct lola *chip,
			    struct snd_pcm_substream *substream)
{}

static void lola_stream_reset(struct lola *chip, struct lola_stream *str)
{}

static const struct snd_pcm_hardware lola_pcm_hw =;

static int lola_pcm_open(struct snd_pcm_substream *substream)
{}

static void lola_cleanup_slave_streams(struct lola_pcm *pcm,
				       struct lola_stream *str)
{}

static int lola_pcm_close(struct snd_pcm_substream *substream)
{}

static int lola_pcm_hw_params(struct snd_pcm_substream *substream,
			      struct snd_pcm_hw_params *hw_params)
{}

static int lola_pcm_hw_free(struct snd_pcm_substream *substream)
{}

/*
 * set up a BDL entry
 */
static int setup_bdle(struct snd_pcm_substream *substream,
		      struct lola_stream *str, __le32 **bdlp,
		      int ofs, int size)
{}

/*
 * set up BDL entries
 */
static int lola_setup_periods(struct lola *chip, struct lola_pcm *pcm,
			      struct snd_pcm_substream *substream,
			      struct lola_stream *str)
{}

static unsigned int lola_get_format_verb(struct snd_pcm_substream *substream)
{}

static int lola_set_stream_config(struct lola *chip,
				  struct lola_stream *str,
				  int channels)
{}

/*
 * set up the SD for streaming
 */
static int lola_setup_controller(struct lola *chip, struct lola_pcm *pcm,
				 struct lola_stream *str)
{}

static int lola_pcm_prepare(struct snd_pcm_substream *substream)
{}

static int lola_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
{}

static snd_pcm_uframes_t lola_pcm_pointer(struct snd_pcm_substream *substream)
{}

void lola_pcm_update(struct lola *chip, struct lola_pcm *pcm, unsigned int bits)
{}

static const struct snd_pcm_ops lola_pcm_ops =;

int lola_create_pcm(struct lola *chip)
{}

/*
 */

static int lola_init_stream(struct lola *chip, struct lola_stream *str,
			    int idx, int nid, int dir)
{}

int lola_init_pcm(struct lola *chip, int dir, int *nidp)
{}