#include <linux/interrupt.h>
#include <linux/mutex.h>
#include <linux/pci.h>
#include <linux/io.h>
#include <sound/core.h>
#include "mixart.h"
#include "mixart_hwdep.h"
#include "mixart_core.h"
#define MSG_TIMEOUT_JIFFIES …
#define MSG_DESCRIPTOR_SIZE …
#define MSG_HEADER_SIZE …
#define MSG_TYPE_MASK …
#define MSG_TYPE_NOTIFY …
#define MSG_TYPE_COMMAND …
#define MSG_TYPE_REQUEST …
#define MSG_TYPE_ANSWER …
#define MSG_CANCEL_NOTIFY_MASK …
static int retrieve_msg_frame(struct mixart_mgr *mgr, u32 *msg_frame)
{ … }
static int get_msg(struct mixart_mgr *mgr, struct mixart_msg *resp,
u32 msg_frame_address )
{ … }
static int send_msg( struct mixart_mgr *mgr,
struct mixart_msg *msg,
int max_answersize,
int mark_pending,
u32 *msg_event)
{ … }
int snd_mixart_send_msg(struct mixart_mgr *mgr, struct mixart_msg *request, int max_resp_size, void *resp_data)
{ … }
int snd_mixart_send_msg_wait_notif(struct mixart_mgr *mgr,
struct mixart_msg *request, u32 notif_event)
{ … }
int snd_mixart_send_msg_nonblock(struct mixart_mgr *mgr, struct mixart_msg *request)
{ … }
static u32 mixart_msg_data[MSG_DEFAULT_SIZE / 4];
static void snd_mixart_process_msg(struct mixart_mgr *mgr)
{ … }
irqreturn_t snd_mixart_interrupt(int irq, void *dev_id)
{ … }
irqreturn_t snd_mixart_threaded_irq(int irq, void *dev_id)
{ … }
void snd_mixart_init_mailbox(struct mixart_mgr *mgr)
{ … }
void snd_mixart_exit_mailbox(struct mixart_mgr *mgr)
{ … }
void snd_mixart_reset_board(struct mixart_mgr *mgr)
{ … }