#ifndef LX_CORE_H
#define LX_CORE_H
#include <linux/interrupt.h>
#include "lx_defs.h"
#define REG_CRM_NUMBER …
struct lx6464es;
enum { … };
unsigned long lx_dsp_reg_read(struct lx6464es *chip, int port);
void lx_dsp_reg_write(struct lx6464es *chip, int port, unsigned data);
enum { … };
unsigned long lx_plx_reg_read(struct lx6464es *chip, int port);
void lx_plx_reg_write(struct lx6464es *chip, int port, u32 data);
struct lx_rmh { … };
int lx_dsp_get_version(struct lx6464es *chip, u32 *rdsp_version);
int lx_dsp_get_clock_frequency(struct lx6464es *chip, u32 *rfreq);
int lx_dsp_set_granularity(struct lx6464es *chip, u32 gran);
int lx_dsp_read_async_events(struct lx6464es *chip, u32 *data);
int lx_dsp_get_mac(struct lx6464es *chip);
int lx_pipe_allocate(struct lx6464es *chip, u32 pipe, int is_capture,
int channels);
int lx_pipe_release(struct lx6464es *chip, u32 pipe, int is_capture);
int lx_pipe_sample_count(struct lx6464es *chip, u32 pipe, int is_capture,
u64 *rsample_count);
int lx_pipe_state(struct lx6464es *chip, u32 pipe, int is_capture, u16 *rstate);
int lx_pipe_stop(struct lx6464es *chip, u32 pipe, int is_capture);
int lx_pipe_start(struct lx6464es *chip, u32 pipe, int is_capture);
int lx_pipe_pause(struct lx6464es *chip, u32 pipe, int is_capture);
int lx_pipe_wait_for_start(struct lx6464es *chip, u32 pipe, int is_capture);
int lx_pipe_wait_for_idle(struct lx6464es *chip, u32 pipe, int is_capture);
int lx_stream_set_format(struct lx6464es *chip, struct snd_pcm_runtime *runtime,
u32 pipe, int is_capture);
int lx_stream_state(struct lx6464es *chip, u32 pipe, int is_capture,
int *rstate);
int lx_stream_sample_position(struct lx6464es *chip, u32 pipe, int is_capture,
u64 *r_bytepos);
int lx_stream_set_state(struct lx6464es *chip, u32 pipe,
int is_capture, enum stream_state_t state);
static inline int lx_stream_start(struct lx6464es *chip, u32 pipe,
int is_capture)
{ … }
static inline int lx_stream_pause(struct lx6464es *chip, u32 pipe,
int is_capture)
{ … }
static inline int lx_stream_stop(struct lx6464es *chip, u32 pipe,
int is_capture)
{ … }
int lx_buffer_ask(struct lx6464es *chip, u32 pipe, int is_capture,
u32 *r_needed, u32 *r_freed, u32 *size_array);
int lx_buffer_give(struct lx6464es *chip, u32 pipe, int is_capture,
u32 buffer_size, u32 buf_address_lo, u32 buf_address_hi,
u32 *r_buffer_index);
int lx_buffer_free(struct lx6464es *chip, u32 pipe, int is_capture,
u32 *r_buffer_size);
int lx_buffer_cancel(struct lx6464es *chip, u32 pipe, int is_capture,
u32 buffer_index);
int lx_level_unmute(struct lx6464es *chip, int is_capture, int unmute);
int lx_level_peaks(struct lx6464es *chip, int is_capture, int channels,
u32 *r_levels);
irqreturn_t lx_interrupt(int irq, void *dev_id);
irqreturn_t lx_threaded_irq(int irq, void *dev_id);
void lx_irq_enable(struct lx6464es *chip);
void lx_irq_disable(struct lx6464es *chip);
#define HEADER_FMT_BASE …
#define HEADER_FMT_BASE_LIN …
#define HEADER_FMT_BASE_FLOAT …
#define HEADER_FMT_MONO …
#define HEADER_FMT_INTEL …
#define HEADER_FMT_16BITS …
#define HEADER_FMT_24BITS …
#define HEADER_FMT_UPTO11 …
#define HEADER_FMT_UPTO32 …
#define BIT_FMP_HEADER …
#define BIT_FMP_SD …
#define BIT_FMP_MULTICHANNEL …
#define START_STATE …
#define PAUSE_STATE …
#define START_PAUSE_IMMEDIATE …
#define START_PAUSE_ON_SYNCHRO …
#define START_PAUSE_ON_TIME_CODE …
#define START_STATE …
#define PAUSE_STATE …
static inline void unpack_pointer(dma_addr_t ptr, u32 *r_low, u32 *r_high)
{ … }
#endif