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
soc
mid-x86
sst_dsp.h
Go to the documentation of this file.
1
#ifndef __SST_DSP_H__
2
#define __SST_DSP_H__
3
/*
4
* sst_dsp.h - Intel SST Driver for audio engine
5
*
6
* Copyright (C) 2008-12 Intel Corporation
7
* Authors: Vinod Koul <
[email protected]
>
8
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation; version 2 of the License.
13
*
14
* This program is distributed in the hope that it will be useful, but
15
* WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License along
20
* with this program; if not, write to the Free Software Foundation, Inc.,
21
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
22
*
23
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24
*/
25
26
enum
sst_codec_types
{
27
/* AUDIO/MUSIC CODEC Type Definitions */
28
SST_CODEC_TYPE_UNKNOWN
= 0,
29
SST_CODEC_TYPE_PCM
,
/* Pass through Audio codec */
30
SST_CODEC_TYPE_MP3
,
31
SST_CODEC_TYPE_MP24
,
32
SST_CODEC_TYPE_AAC
,
33
SST_CODEC_TYPE_AACP
,
34
SST_CODEC_TYPE_eAACP
,
35
};
36
37
enum
stream_type
{
38
SST_STREAM_TYPE_NONE
= 0,
39
SST_STREAM_TYPE_MUSIC
= 1,
40
};
41
42
struct
snd_pcm_params
{
43
u16
codec
;
/* codec type */
44
u8
num_chan
;
/* 1=Mono, 2=Stereo */
45
u8
pcm_wd_sz
;
/* 16/24 - bit*/
46
u32
reserved
;
/* Bitrate in bits per second */
47
u32
sfreq
;
/* Sampling rate in Hz */
48
u8
use_offload_path
;
49
u8
reserved2
;
50
u16
reserved3
;
51
u8
channel_map
[8];
52
}
__packed
;
53
54
/* MP3 Music Parameters Message */
55
struct
snd_mp3_params
{
56
u16
codec
;
57
u8
num_chan
;
/* 1=Mono, 2=Stereo */
58
u8
pcm_wd_sz
;
/* 16/24 - bit*/
59
u8
crc_check
;
/* crc_check - disable (0) or enable (1) */
60
u8
reserved1
;
/* unused*/
61
u16
reserved2
;
/* Unused */
62
}
__packed
;
63
64
#define AAC_BIT_STREAM_ADTS 0
65
#define AAC_BIT_STREAM_ADIF 1
66
#define AAC_BIT_STREAM_RAW 2
67
68
/* AAC Music Parameters Message */
69
struct
snd_aac_params
{
70
u16
codec
;
71
u8
num_chan
;
/* 1=Mono, 2=Stereo*/
72
u8
pcm_wd_sz
;
/* 16/24 - bit*/
73
u8
bdownsample
;
/*SBR downsampling 0 - disable 1 -enabled AAC+ only */
74
u8
bs_format
;
/* input bit stream format adts=0, adif=1, raw=2 */
75
u16
reser2
;
76
u32
externalsr
;
/*sampling rate of basic AAC raw bit stream*/
77
u8
sbr_signalling
;
/*disable/enable/set automode the SBR tool.AAC+*/
78
u8
reser1
;
79
u16
reser3
;
80
}
__packed
;
81
82
/* WMA Music Parameters Message */
83
struct
snd_wma_params
{
84
u16
codec
;
85
u8
num_chan
;
/* 1=Mono, 2=Stereo */
86
u8
pcm_wd_sz
;
/* 16/24 - bit*/
87
u32
brate
;
/* Use the hard coded value. */
88
u32
sfreq
;
/* Sampling freq eg. 8000, 441000, 48000 */
89
u32
channel_mask
;
/* Channel Mask */
90
u16
format_tag
;
/* Format Tag */
91
u16
block_align
;
/* packet size */
92
u16
wma_encode_opt
;
/* Encoder option */
93
u8
op_align
;
/* op align 0- 16 bit, 1- MSB, 2 LSB */
94
u8
reserved
;
/* reserved */
95
}
__packed
;
96
97
/* Codec params struture */
98
union
snd_sst_codec_params
{
99
struct
snd_pcm_params
pcm_params
;
100
struct
snd_mp3_params
mp3_params
;
101
struct
snd_aac_params
aac_params
;
102
struct
snd_wma_params
wma_params
;
103
}
__packed
;
104
105
/* Address and size info of a frame buffer */
106
struct
sst_address_info
{
107
u32
addr
;
/* Address at IA */
108
u32
size
;
/* Size of the buffer */
109
};
110
111
struct
snd_sst_alloc_params_ext
{
112
struct
sst_address_info
ring_buf_info
[8];
113
u8
sg_count
;
114
u8
reserved
;
115
u16
reserved2
;
116
u32
frag_size
;
/*Number of samples after which period elapsed
117
message is sent valid only if path = 0*/
118
}
__packed
;
119
120
struct
snd_sst_stream_params
{
121
union
snd_sst_codec_params
uc
;
122
}
__packed
;
123
124
struct
snd_sst_params
{
125
u32
stream_id
;
126
u8
codec
;
127
u8
ops
;
128
u8
stream_type
;
129
u8
device_type
;
130
struct
snd_sst_stream_params
sparams
;
131
struct
snd_sst_alloc_params_ext
aparams
;
132
};
133
134
#endif
/* __SST_DSP_H__ */
Generated on Thu Jan 10 2013 15:08:16 for Linux Kernel by
1.8.2