Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/pci/aw2/aw2-saa7146.h
26442 views
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
/*****************************************************************************
3
*
4
* Copyright (C) 2008 Cedric Bregardis <[email protected]> and
5
* Jean-Christian Hassler <[email protected]>
6
*
7
* This file is part of the Audiowerk2 ALSA driver
8
*
9
*****************************************************************************/
10
11
#ifndef AW2_SAA7146_H
12
#define AW2_SAA7146_H
13
14
#define NB_STREAM_PLAYBACK 2
15
#define NB_STREAM_CAPTURE 1
16
17
#define NUM_STREAM_PLAYBACK_ANA 0
18
#define NUM_STREAM_PLAYBACK_DIG 1
19
20
#define NUM_STREAM_CAPTURE_ANA 0
21
22
struct snd_pcm_substream;
23
typedef void (*snd_aw2_saa7146_it_cb) (struct snd_pcm_substream *);
24
25
struct snd_aw2_saa7146_cb_param {
26
snd_aw2_saa7146_it_cb p_it_callback;
27
struct snd_pcm_substream *p_callback_param;
28
};
29
30
/* definition of the chip-specific record */
31
32
struct snd_aw2_saa7146 {
33
void __iomem *base_addr;
34
};
35
36
extern void snd_aw2_saa7146_setup(struct snd_aw2_saa7146 *chip,
37
void __iomem *pci_base_addr);
38
extern int snd_aw2_saa7146_free(struct snd_aw2_saa7146 *chip);
39
40
extern void snd_aw2_saa7146_pcm_init_playback(struct snd_aw2_saa7146 *chip,
41
int stream_number,
42
unsigned long dma_addr,
43
unsigned long period_size,
44
unsigned long buffer_size);
45
extern void snd_aw2_saa7146_pcm_init_capture(struct snd_aw2_saa7146 *chip,
46
int stream_number,
47
unsigned long dma_addr,
48
unsigned long period_size,
49
unsigned long buffer_size);
50
extern void snd_aw2_saa7146_define_it_playback_callback(unsigned int
51
stream_number,
52
snd_aw2_saa7146_it_cb
53
p_it_callback,
54
void *p_callback_param);
55
extern void snd_aw2_saa7146_define_it_capture_callback(unsigned int
56
stream_number,
57
snd_aw2_saa7146_it_cb
58
p_it_callback,
59
void *p_callback_param);
60
extern void snd_aw2_saa7146_pcm_trigger_start_capture(struct snd_aw2_saa7146
61
*chip, int stream_number);
62
extern void snd_aw2_saa7146_pcm_trigger_stop_capture(struct snd_aw2_saa7146
63
*chip, int stream_number);
64
65
extern void snd_aw2_saa7146_pcm_trigger_start_playback(struct snd_aw2_saa7146
66
*chip,
67
int stream_number);
68
extern void snd_aw2_saa7146_pcm_trigger_stop_playback(struct snd_aw2_saa7146
69
*chip, int stream_number);
70
71
extern irqreturn_t snd_aw2_saa7146_interrupt(int irq, void *dev_id);
72
extern unsigned int snd_aw2_saa7146_get_hw_ptr_playback(struct snd_aw2_saa7146
73
*chip,
74
int stream_number,
75
unsigned char
76
*start_addr,
77
unsigned int
78
buffer_size);
79
extern unsigned int snd_aw2_saa7146_get_hw_ptr_capture(struct snd_aw2_saa7146
80
*chip,
81
int stream_number,
82
unsigned char
83
*start_addr,
84
unsigned int
85
buffer_size);
86
87
extern void snd_aw2_saa7146_use_digital_input(struct snd_aw2_saa7146 *chip,
88
int use_digital);
89
90
extern int snd_aw2_saa7146_is_using_digital_input(struct snd_aw2_saa7146
91
*chip);
92
93
#endif
94
95