Revision 2690e61e hw/audio/hda-codec-common.h

b/hw/audio/hda-codec-common.h
24 24
 * HDA codec descriptions
25 25
 */
26 26

  
27
#ifdef CONFIG_MIXEMU
27
#ifdef HDA_MIXER
28 28
#define QEMU_HDA_ID_OUTPUT  ((QEMU_HDA_ID_VENDOR << 16) | 0x12)
29 29
#define QEMU_HDA_ID_DUPLEX  ((QEMU_HDA_ID_VENDOR << 16) | 0x22)
30 30
#define QEMU_HDA_ID_MICRO   ((QEMU_HDA_ID_VENDOR << 16) | 0x32)
......
42 42

  
43 43

  
44 44
/* common: audio output widget */
45
static const desc_param common_params_audio_dac[] = {
45
static const desc_param glue(common_params_audio_dac_, PARAM)[] = {
46 46
    {
47 47
        .id  = AC_PAR_AUDIO_WIDGET_CAP,
48 48
        .val = ((AC_WID_AUD_OUT << AC_WCAP_TYPE_SHIFT) |
......
66 66
};
67 67

  
68 68
/* common: audio input widget */
69
static const desc_param common_params_audio_adc[] = {
69
static const desc_param glue(common_params_audio_adc_, PARAM)[] = {
70 70
    {
71 71
        .id  = AC_PAR_AUDIO_WIDGET_CAP,
72 72
        .val = ((AC_WID_AUD_IN << AC_WCAP_TYPE_SHIFT) |
......
94 94
};
95 95

  
96 96
/* common: pin widget (line-out) */
97
static const desc_param common_params_audio_lineout[] = {
97
static const desc_param glue(common_params_audio_lineout_, PARAM)[] = {
98 98
    {
99 99
        .id  = AC_PAR_AUDIO_WIDGET_CAP,
100 100
        .val = ((AC_WID_PIN << AC_WCAP_TYPE_SHIFT) |
......
116 116
};
117 117

  
118 118
/* common: pin widget (line-in) */
119
static const desc_param common_params_audio_linein[] = {
119
static const desc_param glue(common_params_audio_linein_, PARAM)[] = {
120 120
    {
121 121
        .id  = AC_PAR_AUDIO_WIDGET_CAP,
122 122
        .val = ((AC_WID_PIN << AC_WCAP_TYPE_SHIFT) |
......
134 134
};
135 135

  
136 136
/* output: root node */
137
static const desc_param output_params_root[] = {
137
static const desc_param glue(output_params_root_, PARAM)[] = {
138 138
    {
139 139
        .id  = AC_PAR_VENDOR_ID,
140 140
        .val = QEMU_HDA_ID_OUTPUT,
......
151 151
};
152 152

  
153 153
/* output: audio function */
154
static const desc_param output_params_audio_func[] = {
154
static const desc_param glue(output_params_audio_func_, PARAM)[] = {
155 155
    {
156 156
        .id  = AC_PAR_FUNCTION_TYPE,
157 157
        .val = AC_GRP_AUDIO_FUNCTION,
......
186 186
};
187 187

  
188 188
/* output: nodes */
189
static const desc_node output_nodes[] = {
189
static const desc_node glue(output_nodes_, PARAM)[] = {
190 190
    {
191 191
        .nid     = AC_NODE_ROOT,
192 192
        .name    = "root",
193
        .params  = output_params_root,
194
        .nparams = ARRAY_SIZE(output_params_root),
193
        .params  = glue(output_params_root_, PARAM),
194
        .nparams = ARRAY_SIZE(glue(output_params_root_, PARAM)),
195 195
    },{
196 196
        .nid     = 1,
197 197
        .name    = "func",
198
        .params  = output_params_audio_func,
199
        .nparams = ARRAY_SIZE(output_params_audio_func),
198
        .params  = glue(output_params_audio_func_, PARAM),
199
        .nparams = ARRAY_SIZE(glue(output_params_audio_func_, PARAM)),
200 200
    },{
201 201
        .nid     = 2,
202 202
        .name    = "dac",
203
        .params  = common_params_audio_dac,
204
        .nparams = ARRAY_SIZE(common_params_audio_dac),
203
        .params  = glue(common_params_audio_dac_, PARAM),
204
        .nparams = ARRAY_SIZE(glue(common_params_audio_dac_, PARAM)),
205 205
        .stindex = 0,
206 206
    },{
207 207
        .nid     = 3,
208 208
        .name    = "out",
209
        .params  = common_params_audio_lineout,
210
        .nparams = ARRAY_SIZE(common_params_audio_lineout),
209
        .params  = glue(common_params_audio_lineout_, PARAM),
210
        .nparams = ARRAY_SIZE(glue(common_params_audio_lineout_, PARAM)),
211 211
        .config  = ((AC_JACK_PORT_COMPLEX << AC_DEFCFG_PORT_CONN_SHIFT) |
212 212
                    (AC_JACK_LINE_OUT     << AC_DEFCFG_DEVICE_SHIFT)    |
213 213
                    (AC_JACK_CONN_UNKNOWN << AC_DEFCFG_CONN_TYPE_SHIFT) |
......
219 219
};
220 220

  
221 221
/* output: codec */
222
static const desc_codec output = {
222
static const desc_codec glue(output_, PARAM) = {
223 223
    .name   = "output",
224 224
    .iid    = QEMU_HDA_ID_OUTPUT,
225
    .nodes  = output_nodes,
226
    .nnodes = ARRAY_SIZE(output_nodes),
225
    .nodes  = glue(output_nodes_, PARAM),
226
    .nnodes = ARRAY_SIZE(glue(output_nodes_, PARAM)),
227 227
};
228 228

  
229 229
/* duplex: root node */
230
static const desc_param duplex_params_root[] = {
230
static const desc_param glue(duplex_params_root_, PARAM)[] = {
231 231
    {
232 232
        .id  = AC_PAR_VENDOR_ID,
233 233
        .val = QEMU_HDA_ID_DUPLEX,
......
244 244
};
245 245

  
246 246
/* duplex: audio function */
247
static const desc_param duplex_params_audio_func[] = {
247
static const desc_param glue(duplex_params_audio_func_, PARAM)[] = {
248 248
    {
249 249
        .id  = AC_PAR_FUNCTION_TYPE,
250 250
        .val = AC_GRP_AUDIO_FUNCTION,
......
279 279
};
280 280

  
281 281
/* duplex: nodes */
282
static const desc_node duplex_nodes[] = {
282
static const desc_node glue(duplex_nodes_, PARAM)[] = {
283 283
    {
284 284
        .nid     = AC_NODE_ROOT,
285 285
        .name    = "root",
286
        .params  = duplex_params_root,
287
        .nparams = ARRAY_SIZE(duplex_params_root),
286
        .params  = glue(duplex_params_root_, PARAM),
287
        .nparams = ARRAY_SIZE(glue(duplex_params_root_, PARAM)),
288 288
    },{
289 289
        .nid     = 1,
290 290
        .name    = "func",
291
        .params  = duplex_params_audio_func,
292
        .nparams = ARRAY_SIZE(duplex_params_audio_func),
291
        .params  = glue(duplex_params_audio_func_, PARAM),
292
        .nparams = ARRAY_SIZE(glue(duplex_params_audio_func_, PARAM)),
293 293
    },{
294 294
        .nid     = 2,
295 295
        .name    = "dac",
296
        .params  = common_params_audio_dac,
297
        .nparams = ARRAY_SIZE(common_params_audio_dac),
296
        .params  = glue(common_params_audio_dac_, PARAM),
297
        .nparams = ARRAY_SIZE(glue(common_params_audio_dac_, PARAM)),
298 298
        .stindex = 0,
299 299
    },{
300 300
        .nid     = 3,
301 301
        .name    = "out",
302
        .params  = common_params_audio_lineout,
303
        .nparams = ARRAY_SIZE(common_params_audio_lineout),
302
        .params  = glue(common_params_audio_lineout_, PARAM),
303
        .nparams = ARRAY_SIZE(glue(common_params_audio_lineout_, PARAM)),
304 304
        .config  = ((AC_JACK_PORT_COMPLEX << AC_DEFCFG_PORT_CONN_SHIFT) |
305 305
                    (AC_JACK_LINE_OUT     << AC_DEFCFG_DEVICE_SHIFT)    |
306 306
                    (AC_JACK_CONN_UNKNOWN << AC_DEFCFG_CONN_TYPE_SHIFT) |
......
311 311
    },{
312 312
        .nid     = 4,
313 313
        .name    = "adc",
314
        .params  = common_params_audio_adc,
315
        .nparams = ARRAY_SIZE(common_params_audio_adc),
314
        .params  = glue(common_params_audio_adc_, PARAM),
315
        .nparams = ARRAY_SIZE(glue(common_params_audio_adc_, PARAM)),
316 316
        .stindex = 1,
317 317
        .conn    = (uint32_t[]) { 5 },
318 318
    },{
319 319
        .nid     = 5,
320 320
        .name    = "in",
321
        .params  = common_params_audio_linein,
322
        .nparams = ARRAY_SIZE(common_params_audio_linein),
321
        .params  = glue(common_params_audio_linein_, PARAM),
322
        .nparams = ARRAY_SIZE(glue(common_params_audio_linein_, PARAM)),
323 323
        .config  = ((AC_JACK_PORT_COMPLEX << AC_DEFCFG_PORT_CONN_SHIFT) |
324 324
                    (AC_JACK_LINE_IN      << AC_DEFCFG_DEVICE_SHIFT)    |
325 325
                    (AC_JACK_CONN_UNKNOWN << AC_DEFCFG_CONN_TYPE_SHIFT) |
......
330 330
};
331 331

  
332 332
/* duplex: codec */
333
static const desc_codec duplex = {
333
static const desc_codec glue(duplex_, PARAM) = {
334 334
    .name   = "duplex",
335 335
    .iid    = QEMU_HDA_ID_DUPLEX,
336
    .nodes  = duplex_nodes,
337
    .nnodes = ARRAY_SIZE(duplex_nodes),
336
    .nodes  = glue(duplex_nodes_, PARAM),
337
    .nnodes = ARRAY_SIZE(glue(duplex_nodes_, PARAM)),
338 338
};
339 339

  
340 340
/* micro: root node */
341
static const desc_param micro_params_root[] = {
341
static const desc_param glue(micro_params_root_, PARAM)[] = {
342 342
    {
343 343
        .id  = AC_PAR_VENDOR_ID,
344 344
        .val = QEMU_HDA_ID_MICRO,
......
355 355
};
356 356

  
357 357
/* micro: audio function */
358
static const desc_param micro_params_audio_func[] = {
358
static const desc_param glue(micro_params_audio_func_, PARAM)[] = {
359 359
    {
360 360
        .id  = AC_PAR_FUNCTION_TYPE,
361 361
        .val = AC_GRP_AUDIO_FUNCTION,
......
390 390
};
391 391

  
392 392
/* micro: nodes */
393
static const desc_node micro_nodes[] = {
393
static const desc_node glue(micro_nodes_, PARAM)[] = {
394 394
    {
395 395
        .nid     = AC_NODE_ROOT,
396 396
        .name    = "root",
397
        .params  = micro_params_root,
398
        .nparams = ARRAY_SIZE(micro_params_root),
397
        .params  = glue(micro_params_root_, PARAM),
398
        .nparams = ARRAY_SIZE(glue(micro_params_root_, PARAM)),
399 399
    },{
400 400
        .nid     = 1,
401 401
        .name    = "func",
402
        .params  = micro_params_audio_func,
403
        .nparams = ARRAY_SIZE(micro_params_audio_func),
402
        .params  = glue(micro_params_audio_func_, PARAM),
403
        .nparams = ARRAY_SIZE(glue(micro_params_audio_func_, PARAM)),
404 404
    },{
405 405
        .nid     = 2,
406 406
        .name    = "dac",
407
        .params  = common_params_audio_dac,
408
        .nparams = ARRAY_SIZE(common_params_audio_dac),
407
        .params  = glue(common_params_audio_dac_, PARAM),
408
        .nparams = ARRAY_SIZE(glue(common_params_audio_dac_, PARAM)),
409 409
        .stindex = 0,
410 410
    },{
411 411
        .nid     = 3,
412 412
        .name    = "out",
413
        .params  = common_params_audio_lineout,
414
        .nparams = ARRAY_SIZE(common_params_audio_lineout),
413
        .params  = glue(common_params_audio_lineout_, PARAM),
414
        .nparams = ARRAY_SIZE(glue(common_params_audio_lineout_, PARAM)),
415 415
        .config  = ((AC_JACK_PORT_COMPLEX << AC_DEFCFG_PORT_CONN_SHIFT) |
416 416
                    (AC_JACK_SPEAKER      << AC_DEFCFG_DEVICE_SHIFT)    |
417 417
                    (AC_JACK_CONN_UNKNOWN << AC_DEFCFG_CONN_TYPE_SHIFT) |
......
422 422
    },{
423 423
        .nid     = 4,
424 424
        .name    = "adc",
425
        .params  = common_params_audio_adc,
426
        .nparams = ARRAY_SIZE(common_params_audio_adc),
425
        .params  = glue(common_params_audio_adc_, PARAM),
426
        .nparams = ARRAY_SIZE(glue(common_params_audio_adc_, PARAM)),
427 427
        .stindex = 1,
428 428
        .conn    = (uint32_t[]) { 5 },
429 429
    },{
430 430
        .nid     = 5,
431 431
        .name    = "in",
432
        .params  = common_params_audio_linein,
433
        .nparams = ARRAY_SIZE(common_params_audio_linein),
432
        .params  = glue(common_params_audio_linein_, PARAM),
433
        .nparams = ARRAY_SIZE(glue(common_params_audio_linein_, PARAM)),
434 434
        .config  = ((AC_JACK_PORT_COMPLEX << AC_DEFCFG_PORT_CONN_SHIFT) |
435 435
                    (AC_JACK_MIC_IN       << AC_DEFCFG_DEVICE_SHIFT)    |
436 436
                    (AC_JACK_CONN_UNKNOWN << AC_DEFCFG_CONN_TYPE_SHIFT) |
......
441 441
};
442 442

  
443 443
/* micro: codec */
444
static const desc_codec micro = {
444
static const desc_codec glue(micro_, PARAM) = {
445 445
    .name   = "micro",
446 446
    .iid    = QEMU_HDA_ID_MICRO,
447
    .nodes  = micro_nodes,
448
    .nnodes = ARRAY_SIZE(micro_nodes),
447
    .nodes  = glue(micro_nodes_, PARAM),
448
    .nnodes = ARRAY_SIZE(glue(micro_nodes_, PARAM)),
449 449
};
450

  
451
#undef PARAM
452
#undef HDA_MIXER
453
#undef QEMU_HDA_ID_OUTPUT
454
#undef QEMU_HDA_ID_DUPLEX
455
#undef QEMU_HDA_ID_MICRO
456
#undef QEMU_HDA_AMP_CAPS

Also available in: Unified diff