Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
sound
pci
echoaudio
gina20.c
Go to the documentation of this file.
1
/*
2
* ALSA driver for Echoaudio soundcards.
3
* Copyright (C) 2003-2004 Giuliano Pochini <
[email protected]
>
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; version 2 of the License.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
*/
18
19
#define ECHOGALS_FAMILY
20
#define ECHOCARD_GINA20
21
#define ECHOCARD_NAME "Gina20"
22
#define ECHOCARD_HAS_MONITOR
23
#define ECHOCARD_HAS_INPUT_GAIN
24
#define ECHOCARD_HAS_DIGITAL_IO
25
#define ECHOCARD_HAS_EXTERNAL_CLOCK
26
#define ECHOCARD_HAS_ADAT FALSE
27
28
/* Pipe indexes */
29
#define PX_ANALOG_OUT 0
/* 8 */
30
#define PX_DIGITAL_OUT 8
/* 2 */
31
#define PX_ANALOG_IN 10
/* 2 */
32
#define PX_DIGITAL_IN 12
/* 2 */
33
#define PX_NUM 14
34
35
/* Bus indexes */
36
#define BX_ANALOG_OUT 0
/* 8 */
37
#define BX_DIGITAL_OUT 8
/* 2 */
38
#define BX_ANALOG_IN 10
/* 2 */
39
#define BX_DIGITAL_IN 12
/* 2 */
40
#define BX_NUM 14
41
42
43
#include <
linux/delay.h
>
44
#include <
linux/init.h
>
45
#include <
linux/interrupt.h
>
46
#include <linux/pci.h>
47
#include <linux/module.h>
48
#include <
linux/firmware.h
>
49
#include <linux/slab.h>
50
#include <
sound/core.h
>
51
#include <
sound/info.h
>
52
#include <
sound/control.h
>
53
#include <
sound/tlv.h
>
54
#include <
sound/pcm.h
>
55
#include <
sound/pcm_params.h
>
56
#include <
sound/asoundef.h
>
57
#include <
sound/initval.h
>
58
#include <asm/io.h>
59
#include <
linux/atomic.h
>
60
#include "
echoaudio.h
"
61
62
MODULE_FIRMWARE
(
"ea/gina20_dsp.fw"
);
63
64
#define FW_GINA20_DSP 0
65
66
static
const
struct
firmware
card_fw[] = {
67
{0,
"gina20_dsp.fw"
}
68
};
69
70
static
DEFINE_PCI_DEVICE_TABLE
(snd_echo_ids) = {
71
{0x1057, 0x1801, 0xECC0, 0x0020, 0, 0, 0},
/* DSP 56301 Gina20 rev.0 */
72
{0,}
73
};
74
75
static
struct
snd_pcm_hardware
pcm_hardware_skel = {
76
.info =
SNDRV_PCM_INFO_MMAP
|
77
SNDRV_PCM_INFO_INTERLEAVED
|
78
SNDRV_PCM_INFO_BLOCK_TRANSFER
|
79
SNDRV_PCM_INFO_MMAP_VALID
|
80
SNDRV_PCM_INFO_PAUSE
|
81
SNDRV_PCM_INFO_SYNC_START
,
82
.formats =
SNDRV_PCM_FMTBIT_U8
|
83
SNDRV_PCM_FMTBIT_S16_LE
|
84
SNDRV_PCM_FMTBIT_S24_3LE
|
85
SNDRV_PCM_FMTBIT_S32_LE
|
86
SNDRV_PCM_FMTBIT_S32_BE
,
87
.rates =
SNDRV_PCM_RATE_44100
|
SNDRV_PCM_RATE_48000
,
88
.rate_min = 44100,
89
.rate_max = 48000,
90
.channels_min = 1,
91
.channels_max = 2,
92
.buffer_bytes_max = 262144,
93
.period_bytes_min = 32,
94
.period_bytes_max = 131072,
95
.periods_min = 2,
96
.periods_max = 220,
97
/* One page (4k) contains 512 instructions. I don't know if the hw
98
supports lists longer than this. In this case periods_max=220 is a
99
safe limit to make sure the list never exceeds 512 instructions. */
100
};
101
102
103
#include "
gina20_dsp.c
"
104
#include "
echoaudio_dsp.c
"
105
#include "
echoaudio.c
"
Generated on Thu Jan 10 2013 15:06:07 for Linux Kernel by
1.8.2