usr/src/uts/common/io/audio/drv/audiohd/audiohd.h
author Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
Tue, 01 Dec 2009 10:01:20 +0800
changeset 11212 3ddd45f5e7a3
parent 11192 139d0048af04
child 11309 e04242a17e06
permissions -rw-r--r--
6862294 Clicking from speakers whilst changing volume level
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2307
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
     1
/*
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
     2
 * CDDL HEADER START
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
     3
 *
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
     5
 * Common Development and Distribution License (the "License").
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
     6
 * You may not use this file except in compliance with the License.
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
     7
 *
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    11
 * and limitations under the License.
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    12
 *
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    18
 *
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    19
 * CDDL HEADER END
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    20
 */
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    21
/*
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    22
 * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
2307
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    23
 * Use is subject to license terms.
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    24
 */
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    25
#ifndef _SYS_AUDIOHD_IMPL_H_
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    26
#define	_SYS_AUDIOHD_IMPL_H_
2307
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    27
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    28
#ifdef __cplusplus
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    29
extern "C" {
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    30
#endif
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
    31
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    32
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    33
 * vendor IDs of PCI audio controllers
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    34
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    35
#define	AUDIOHD_VID_INTEL	0x8086
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    36
#define	AUDIOHD_VID_ATI		0x1002
11047
dc0bb5e7d98b 6863659 audio starts clean, becomes scratchy
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10821
diff changeset
    37
#define	AUDIOHD_VID_CIRRUS	0x1013
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    38
#define	AUDIOHD_VID_NVIDIA	0x10de
10821
77dbb4cf3365 6884252 Reliable hang with MCP51 audio effective build 123
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10531
diff changeset
    39
#define	AUDIOHD_VID_REALTEK	0x10ec
11192
139d0048af04 6836377 audio output on Thinkpad R61e distorts
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11047
diff changeset
    40
#define	AUDIOHD_VID_ANALOG	0x11d4
11047
dc0bb5e7d98b 6863659 audio starts clean, becomes scratchy
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10821
diff changeset
    41
#define	AUDIOHD_VID_CONEXANT	0x14f1
9842
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
    42
#define	AUDIOHD_VID_SIGMATEL	0x8384
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    43
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    44
/*
10821
77dbb4cf3365 6884252 Reliable hang with MCP51 audio effective build 123
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10531
diff changeset
    45
 * specific audiohd controller device id
77dbb4cf3365 6884252 Reliable hang with MCP51 audio effective build 123
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10531
diff changeset
    46
 */
77dbb4cf3365 6884252 Reliable hang with MCP51 audio effective build 123
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10531
diff changeset
    47
#define	AUDIOHD_CONTROLLER_MCP51	0x10de026c
77dbb4cf3365 6884252 Reliable hang with MCP51 audio effective build 123
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10531
diff changeset
    48
77dbb4cf3365 6884252 Reliable hang with MCP51 audio effective build 123
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10531
diff changeset
    49
/*
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    50
 * specific codec id used by specific vendors
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    51
 */
10078
d845006661a3 6831395 Loud noise from speakers on Dell Lattitude E6400
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9842
diff changeset
    52
#define	AUDIOHD_CODEC_IDT7608	0x111d7608
d845006661a3 6831395 Loud noise from speakers on Dell Lattitude E6400
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9842
diff changeset
    53
#define	AUDIOHD_CODEC_IDT76B2	0x111d76b2
10347
ef3957bb6db1 6853359 internal microphone always enabled in Lenovo T60
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 10078
diff changeset
    54
#define	AUDIOHD_CODEC_AD1981	0x11d41981
11047
dc0bb5e7d98b 6863659 audio starts clean, becomes scratchy
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10821
diff changeset
    55
#define	AUDIOHD_CODEC_ALC272	0x10ec0272
dc0bb5e7d98b 6863659 audio starts clean, becomes scratchy
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10821
diff changeset
    56
#define	AUDIOHD_CODEC_ALC885	0x10ec0885
9727
25b58ea25e4f 6844700 "Scratchy" sound with Intel 82801JI(ICH10) and boomer RC1
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9545
diff changeset
    57
#define	AUDIOHD_CODECID_ALC888	0x10ec0888
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    58
#define	AUDIOHD_CODECID_SONY1	0x10ec0260
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    59
#define	AUDIOHD_CODECID_SONY2	0x10ec0262
11192
139d0048af04 6836377 audio output on Thinkpad R61e distorts
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11047
diff changeset
    60
#define	AUDIOHD_CODEC_CX20549	0x14f15045
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    61
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    62
#define	AUDIOHD_INTS		50
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    63
#define	AUDIOHD_MAX_INTS	1500
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    64
#define	AUDIOHD_MIN_INTS	32
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    65
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    66
#define	AUDIOHD_DEV_CONFIG	"onboard1"
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    67
#define	AUDIOHD_DEV_VERSION	"a"
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    68
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    69
#define	AUDIOHD_FMT_PCM		0x001
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    70
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    71
 * Only for Intel hardware:
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    72
 * PCI Express traffic class select register in PCI configure space
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    73
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    74
#define	AUDIOHD_INTEL_PCI_TCSEL 0x44
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    75
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    76
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    77
 * Only for ATI SB450:
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    78
 * MISC control register 2
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    79
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    80
#define	AUDIOHD_ATI_PCI_MISC2	0x42
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    81
#define	AUDIOHD_ATI_MISC2_SNOOP	0x02
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    82
#define	AUDIOHDC_NID(x)		x
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    83
#define	AUDIOHDC_NULL_NODE	-1
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    84
#define	AUDIOHD_NULL_CONN	((uint_t)(-1))
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    85
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    86
 * currently, only the format of 48K sample rate, 16-bit
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    87
 * 2-channel is supported.
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    88
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    89
#define	AUDIOHD_FMT_PCMOUT	0x0011
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    90
#define	AUDIOHD_FMT_PCMIN	0x0011
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    91
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    92
#define	AUDIOHD_EXT_AMP_MASK	0x00010000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    93
#define	AUDIOHD_EXT_AMP_ENABLE	0x02
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    94
/* NVIDIA snoop */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    95
#define	AUDIOHD_NVIDIA_SNOOP	0x0f
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    96
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    97
/* Power On/Off */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    98
#define	AUDIOHD_PW_OFF		1
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
    99
#define	AUDIOHD_PW_ON		0
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   100
#define	AUDIOHD_PW_D0		0
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   101
#define	AUDIOHD_PW_D2		2
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   102
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   103
#define	AUDIOHD_INTEL_TCS_MASK	0xf8
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   104
#define	AUDIOHD_ATI_MISC2_MASK	0xf8
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   105
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   106
/* Pin speaker On/Off */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   107
#define	AUDIOHD_SP_ON		1
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   108
#define	AUDIOHD_SP_OFF		0
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   109
10821
77dbb4cf3365 6884252 Reliable hang with MCP51 audio effective build 123
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10531
diff changeset
   110
#define	AUDIOHD_PORT_MAX	15
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   111
#define	AUDIOHD_CODEC_MAX	16
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   112
#define	AUDIOHD_MEMIO_LEN	0x4000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   113
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   114
#define	AUDIOHD_RETRY_TIMES	60
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   115
#define	AUDIOHD_TEST_TIMES	500
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   116
#define	AUDIOHD_OUTSTR_NUM_OFF	12
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   117
#define	AUDIOHD_INSTR_NUM_OFF	8
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   118
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   119
#define	AUDIOHD_CORB_SIZE_OFF	0x4e
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   120
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   121
#define	AUDIOHD_URCAP_MASK	0x80
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   122
#define	AUDIOHD_DTCCAP_MASK	0x4
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   123
#define	AUDIOHD_UR_ENABLE_OFF	8
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   124
#define	AUDIOHD_UR_TAG_MASK	0x1f
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   125
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   126
#define	AUDIOHD_CIS_MASK	0x40000000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   127
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   128
#define	AUDIOHD_RIRB_UR_MASK	0x10
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   129
#define	AUDIOHD_RIRB_CODEC_MASK	0xf
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   130
#define	AUDIOHD_RIRB_WID_OFF	27
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   131
#define	AUDIOHD_RIRB_INTRCNT	0x0
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   132
#define	AUDIOHD_RIRB_WPMASK	0xff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   133
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   134
#define	AUDIOHD_FORM_MASK	0x0080
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   135
#define	AUDIOHD_LEN_MASK	0x007f
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   136
#define	AUDIOHD_PIN_CAP_MASK	0x00000010
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   137
#define	AUDIOHD_PIN_CONF_MASK	0xc0000000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   138
#define	AUDIOHD_PIN_CON_MASK	3
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   139
#define	AUDIOHD_PIN_CON_STEP	30
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   140
#define	AUDIOHD_PIN_IO_MASK	0X0018
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   141
#define	AUDIOHD_PIN_SEQ_MASK	0x0000000f
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   142
#define	AUDIOHD_PIN_ASO_MASK	0x000000f0
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   143
#define	AUDIOHD_PIN_ASO_OFF	0x4
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   144
#define	AUDIOHD_PIN_DEV_MASK	0x00f00000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   145
#define	AUDIOHD_PIN_DEV_OFF	20
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   146
#define	AUDIOHD_PIN_NUMS	6
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   147
#define	AUDIOHD_PIN_NO_CONN	0x40000000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   148
#define	AUDIOHD_PIN_IN_ENABLE	0x20
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   149
#define	AUDIOHD_PIN_OUT_ENABLE	0x40
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   150
#define	AUDIOHD_PIN_PRES_OFF	0x20
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   151
#define	AUDIOHD_PIN_CONTP_OFF	0x1e
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   152
#define	AUDIOHD_PIN_CON_JACK	0
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   153
#define	AUDIOHD_PIN_CON_FIXED	0x2
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   154
#define	AUDIOHD_PIN_CONTP_MASK	0x3
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   155
#define	AUDIOHD_PIN_VREF_L1	0x20
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   156
#define	AUDIOHD_PIN_VREF_L2	0x10
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   157
#define	AUDIOHD_PIN_VREF_L3	0x04
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   158
#define	AUDIOHD_PIN_VREF_L4	0x02
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   159
#define	AUDIOHD_PIN_VREF_OFF	8
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   160
#define	AUDIOHD_PIN_VREF_MASK	0xff
10821
77dbb4cf3365 6884252 Reliable hang with MCP51 audio effective build 123
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10531
diff changeset
   161
#define	AUDIOHD_PIN_CLR_MASK	0xf
77dbb4cf3365 6884252 Reliable hang with MCP51 audio effective build 123
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10531
diff changeset
   162
#define	AUDIOHD_PIN_CLR_OFF	12
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   163
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   164
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   165
#define	AUDIOHD_VERB_ADDR_OFF	28
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   166
#define	AUDIOHD_VERB_NID_OFF	20
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   167
#define	AUDIOHD_VERB_CMD_OFF	8
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   168
#define	AUDIOHD_VERB_CMD16_OFF	16
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   169
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   170
#define	AUDIOHD_RING_MAX_SIZE	0x00ff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   171
#define	AUDIOHD_REC_TAG_OFF	4
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   172
#define	AUDIOHD_PLAY_TAG_OFF	4
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   173
#define	AUDIOHD_PLAY_CTL_OFF	2
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   174
#define	AUDIOHD_REC_CTL_OFF	2
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   175
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   176
#define	AUDIOHD_SPDIF_ON	1
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   177
#define	AUDIOHD_SPDIF_MASK	0x00ff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   178
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   179
#define	AUDIOHD_GAIN_OFF	8
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   180
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   181
#define	AUDIOHD_CODEC_STR_OFF	16
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   182
#define	AUDIOHD_CODEC_STR_MASK	0x000000ff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   183
#define	AUDIOHD_CODEC_NUM_MASK	0x000000ff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   184
#define	AUDIOHD_CODEC_TYPE_MASK	0x000000ff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   185
11047
dc0bb5e7d98b 6863659 audio starts clean, becomes scratchy
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10821
diff changeset
   186
#define	AUDIOHD_ROUNDUP(x, algn)	(((x) + ((algn) - 1)) & ~((algn) - 1))
dc0bb5e7d98b 6863659 audio starts clean, becomes scratchy
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10821
diff changeset
   187
#define	AUDIOHD_FRAGFR_ALIGN	64
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   188
#define	AUDIOHD_BDLE_BUF_ALIGN	128
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   189
#define	AUDIOHD_CMDIO_ENT_MASK	0x00ff	/* 256 entries for CORB/RIRB */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   190
#define	AUDIOHD_CDBIO_CORB_LEN	1024	/* 256 entries for CORB, 1024B */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   191
#define	AUDIOHD_CDBIO_RIRB_LEN	2048	/* 256 entries for RIRB, 2048B */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   192
#define	AUDIOHD_BDLE_NUMS	4	/* 4 entires for record/play BD list */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   193
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   194
#define	AUDIOHD_PORT_UNMUTE	(0xffffffff)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   195
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   196
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   197
 * Audio registers of high definition
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   198
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   199
#define	AUDIOHD_REG_GCAP		0x00
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   200
#define	AUDIOHDR_GCAP_OUTSTREAMS	0xf000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   201
#define	AUDIOHDR_GCAP_INSTREAMS		0x0f00
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   202
#define	AUDIOHDR_GCAP_BSTREAMS		0x00f8
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   203
#define	AUDIOHDR_GCAP_NSDO		0x0006
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   204
#define	AUDIOHDR_GCAP_64OK		0x0001
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   205
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   206
#define	AUDIOHD_REG_VMIN		0x02
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   207
#define	AUDIOHD_REG_VMAJ		0x03
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   208
#define	AUDIOHD_REG_OUTPAY		0x04
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   209
#define	AUDIOHD_REG_INPAY		0x06
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   210
#define	AUDIOHD_REG_GCTL		0x08
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   211
#define	AUDIOHD_REG_WAKEEN		0x0C
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   212
#define	AUDIOHD_REG_STATESTS		0x0E
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   213
#define	AUDIOHD_STATESTS_BIT_SDINS	0x7F
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   214
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   215
#define	AUDIOHD_REG_GSTS		0x10
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   216
#define	AUDIOHD_REG_INTCTL		0x20
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   217
#define	AUDIOHD_INTCTL_BIT_GIE		0x80000000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   218
#define	AUDIOHD_INTCTL_BIT_CIE		0x40000000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   219
#define	AUDIOHD_INTCTL_BIT_SIE		0x3FFFFFFF
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   220
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   221
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   222
#define	AUDIOHD_REG_INTSTS		0x24
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   223
#define	AUDIOHD_INTSTS_BIT_GIS		0x80000000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   224
#define	AUDIOHD_INTSTS_BIT_CIS		0x40000000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   225
#define	AUDIOHD_INTSTS_BIT_SINTS	(0x3fffffff)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   226
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   227
#define	AUDIOHD_REG_WALCLK		0x30
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   228
#define	AUDIOHD_REG_SYNC		0x38
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   229
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   230
#define	AUDIOHD_REG_CORBLBASE		0x40
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   231
#define	AUDIOHD_REG_CORBUBASE		0x44
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   232
#define	AUDIOHD_REG_CORBWP		0x48
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   233
#define	AUDIOHD_REG_CORBRP		0x4A
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   234
#define	AUDIOHD_REG_CORBCTL		0x4C
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   235
#define	AUDIOHD_REG_CORBST		0x4D
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   236
#define	AUDIOHD_REG_CORBSIZE		0x4E
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   237
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   238
#define	AUDIOHD_REG_RIRBLBASE		0x50
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   239
#define	AUDIOHD_REG_RIRBUBASE		0x54
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   240
#define	AUDIOHD_REG_RIRBWP		0x58
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   241
#define	AUDIOHD_REG_RINTCNT		0x5A
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   242
#define	AUDIOHD_REG_RIRBCTL		0x5C
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   243
#define	AUDIOHD_REG_RIRBSTS		0x5D
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   244
#define	AUDIOHD_REG_RIRBSIZE		0x5E
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   245
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   246
#define	AUDIOHD_REG_IC			0x60
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   247
#define	AUDIOHD_REG_IR			0x64
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   248
#define	AUDIOHD_REG_IRS			0x68
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   249
#define	AUDIOHD_REG_DPLBASE		0x70
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   250
#define	AUDIOHD_REG_DPUBASE		0x74
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   251
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   252
#define	AUDIOHD_REG_SD_BASE		0x80
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   253
#define	AUDIOHD_REG_SD_LEN		0x20
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   254
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   255
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   256
 * Offset of Stream Descriptor Registers
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   257
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   258
#define	AUDIOHD_SDREG_OFFSET_CTL		0x00
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   259
#define	AUDIOHD_SDREG_OFFSET_STS		0x03
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   260
#define	AUDIOHD_SDREG_OFFSET_LPIB		0x04
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   261
#define	AUDIOHD_SDREG_OFFSET_CBL		0x08
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   262
#define	AUDIOHD_SDREG_OFFSET_LVI		0x0c
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   263
#define	AUDIOHD_SDREG_OFFSET_FIFOW		0x0e
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   264
#define	AUDIOHD_SDREG_OFFSET_FIFOSIZE		0x10
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   265
#define	AUDIOHD_SDREG_OFFSET_FORMAT		0x12
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   266
#define	AUDIOHD_SDREG_OFFSET_BDLPL		0x18
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   267
#define	AUDIOHD_SDREG_OFFSET_BDLPU		0x1c
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   268
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   269
/* bits for stream descriptor control reg */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   270
#define	AUDIOHDR_SD_CTL_DEIE		0x000010
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   271
#define	AUDIOHDR_SD_CTL_FEIE		0x000008
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   272
#define	AUDIOHDR_SD_CTL_IOCE		0x000004
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   273
#define	AUDIOHDR_SD_CTL_SRUN		0x000002
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   274
#define	AUDIOHDR_SD_CTL_SRST		0x000001
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   275
#define	AUDIOHDR_SD_CTL_INTS	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   276
	(AUDIOHDR_SD_CTL_DEIE |	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   277
	AUDIOHDR_SD_CTL_FEIE |	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   278
	AUDIOHDR_SD_CTL_IOCE)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   279
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   280
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   281
/* bits for stream descriptor status register */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   282
#define	AUDIOHDR_SD_STS_BCIS		0x0004
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   283
#define	AUDIOHDR_SD_STS_FIFOE		0x0008
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   284
#define	AUDIOHDR_SD_STS_DESE		0x0010
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   285
#define	AUDIOHDR_SD_STS_FIFORY		0x0020
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   286
#define	AUDIOHDR_SD_STS_INTRS	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   287
	(AUDIOHDR_SD_STS_BCIS | \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   288
	AUDIOHDR_SD_STS_FIFOE |	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   289
	AUDIOHDR_SD_STS_DESE)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   290
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   291
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   292
/* bits for GCTL register */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   293
#define	AUDIOHDR_GCTL_CRST		0x00000001
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   294
#define	AUDIOHDR_GCTL_URESPE		0x00000100
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   295
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   296
/* bits for CORBRP register */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   297
#define	AUDIOHDR_CORBRP_RESET		0x8000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   298
#define	AUDIOHDR_CORBRP_WPTR		0x00ff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   299
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   300
/* bits for CORBCTL register */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   301
#define	AUDIOHDR_CORBCTL_CMEIE		0x01
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   302
#define	AUDIOHDR_CORBCTL_DMARUN		0x02
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   303
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   304
/* bits for CORB SIZE register */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   305
#define	AUDIOHDR_CORBSZ_8		0
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   306
#define	AUDIOHDR_CORBSZ_16		1
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   307
#define	AUDIOHDR_CORBSZ_256		2
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   308
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   309
/* bits for RIRBCTL register */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   310
#define	AUDIOHDR_RIRBCTL_RINTCTL	0x01
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   311
#define	AUDIOHDR_RIRBCTL_DMARUN		0x02
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   312
#define	AUDIOHDR_RIRBCTL_RIRBOIC	0x04
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   313
#define	AUDIOHDR_RIRBCTL_RSTINT		0xfe
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   314
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   315
/* bits for RIRBWP register */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   316
#define	AUDIOHDR_RIRBWP_RESET		0x8000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   317
#define	AUDIOHDR_RIRBWP_WPTR		0x00ff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   318
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   319
/* bits for RIRB SIZE register */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   320
#define	AUDIOHDR_RIRBSZ_8		0
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   321
#define	AUDIOHDR_RIRBSZ_16		1
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   322
#define	AUDIOHDR_RIRBSZ_256		2
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   323
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   324
#define	AUDIOHD_BDLE_RIRB_SDI		0x0000000f
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   325
#define	AUDIOHD_BDLE_RIRB_UNSOLICIT	0x00000010
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   326
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   327
/* HD spec: ID of Root node is 0 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   328
#define	AUDIOHDC_NODE_ROOT		0x00
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   329
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   330
/* HD spec: ID of audio function group is "1" */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   331
#define	AUDIOHDC_AUDIO_FUNC_GROUP	1
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   332
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   333
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   334
 * HD audio verbs can be either 12-bit or 4-bit in length.
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   335
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   336
#define	AUDIOHDC_12BIT_VERB_MASK	0xfffff000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   337
#define	AUDIOHDC_4BIT_VERB_MASK		0xfffffff0
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   338
9842
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   339
#define	AUDIOHDC_SAMPR48000		48000
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   340
#define	AUDIOHDC_MAX_BEEP_GEN		12000
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   341
#define	AUDIOHDC_MIX_BEEP_GEN		47
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   342
#define	AUDIOHDC_MUTE_BEEP_GEN		0x0
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   343
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   344
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   345
 * 12-bit verbs
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   346
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   347
#define	AUDIOHDC_VERB_GET_PARAM			0xf00
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   348
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   349
#define	AUDIOHDC_VERB_GET_CONN_SEL		0xf01
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   350
#define	AUDIOHDC_VERB_SET_CONN_SEL		0x701
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   351
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   352
#define	AUDIOHDC_VERB_GET_CONN_LIST_ENT		0xf02
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   353
#define	AUDIOHDC_VERB_GET_PROCESS_STATE		0xf03
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   354
#define	AUDIOHDC_VERB_GET_SDI_SEL		0xf04
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   355
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   356
#define	AUDIOHDC_VERB_GET_POWER_STATE		0xf05
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   357
#define	AUDIOHDC_VERB_SET_POWER_STATE		0x705
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   358
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   359
#define	AUDIOHDC_VERB_GET_STREAM_CHANN		0xf06
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   360
#define	AUDIOHDC_VERB_SET_STREAM_CHANN		0x706
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   361
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   362
#define	AUDIOHDC_VERB_GET_PIN_CTRL		0xf07
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   363
#define	AUDIOHDC_VERB_SET_PIN_CTRL		0x707
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   364
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   365
#define	AUDIOHDC_VERB_GET_UNS_ENABLE		0xf08
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   366
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   367
#define	AUDIOHDC_VERB_GET_PIN_SENSE		0xf09
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   368
#define	AUDIOHDC_VERB_EXEC_PIN_SENSE		0x709
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   369
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   370
#define	AUDIOHDC_VERB_GET_BEEP_GEN		0xf0a
9842
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   371
#define	AUDIOHDC_VERB_SET_BEEP_GEN		0x70a
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   372
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   373
#define	AUDIOHDC_VERB_GET_EAPD			0xf0c
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   374
#define	AUDIOHDC_VERB_SET_EAPD			0x70c
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   375
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   376
#define	AUDIOHDC_VERB_GET_DEFAULT_CONF		0xf1c
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   377
#define	AUDIOHDC_VERB_GET_SPDIF_CTL		0xf0d
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   378
#define	AUDIOHDC_VERB_SET_SPDIF_LCL		0x70d
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   379
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   380
#define	AUDIOHDC_VERB_SET_URCTRL		0x708
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   381
#define	AUDIOHDC_VERB_GET_PIN_SENSE		0xf09
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   382
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   383
#define	AUDIOHDC_VERB_GET_GPIO_MASK		0xf16
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   384
#define	AUDIOHDC_VERB_SET_GPIO_MASK		0x716
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   385
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   386
#define	AUDIOHDC_VERB_GET_GPIO_DIREC		0xf17
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   387
#define	AUDIOHDC_VERB_SET_GPIO_DIREC		0x717
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   388
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   389
#define	AUDIOHDC_VERB_GET_GPIO_DATA		0xf15
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   390
#define	AUDIOHDC_VERB_SET_GPIO_DATA		0x715
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   391
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   392
#define	AUDIOHDC_VERB_GET_GPIO_STCK		0xf1a
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   393
#define	AUDIOHDC_VERB_SET_GPIO_STCK		0x71a
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   394
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   395
#define	AUDIOHDC_GPIO_ENABLE			0xff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   396
#define	AUDIOHDC_GPIO_DIRECT			0xf1
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   397
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   398
#define	AUDIOHDC_GPIO_DATA_CTRL			0xff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   399
#define	AUDIOHDC_GPIO_STCK_CTRL			0xff
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   400
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   401
 * 4-bit verbs
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   402
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   403
#define	AUDIOHDC_VERB_GET_CONV_FMT		0xa
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   404
#define	AUDIOHDC_VERB_SET_CONV_FMT		0x2
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   405
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   406
#define	AUDIOHDC_VERB_GET_AMP_MUTE		0xb
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   407
#define	AUDIOHDC_VERB_SET_AMP_MUTE		0x3
9842
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   408
#define	AUDIOHDC_VERB_SET_BEEP_VOL		0x3A0
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   409
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   410
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   411
 * parameters of nodes
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   412
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   413
#define	AUDIOHDC_PAR_VENDOR_ID			0x00
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   414
#define	AUDIOHDC_PAR_SUBSYS_ID			0x01
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   415
#define	AUDIOHDC_PAR_REV_ID			0x02
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   416
#define	AUDIOHDC_PAR_NODE_COUNT			0x04
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   417
#define	AUDIOHDC_PAR_FUNCTION_TYPE		0x05
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   418
#define	AUDIOHDC_PAR_AUDIO_FG_CAP		0x08
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   419
#define	AUDIOHDC_PAR_AUDIO_WID_CAP		0x09
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   420
#define	AUDIOHDC_PAR_PCM			0x0a
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   421
#define	AUDIOHDC_PAR_STREAM			0x0b
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   422
#define	AUDIOHDC_PAR_PIN_CAP			0x0c
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   423
#define	AUDIOHDC_PAR_INAMP_CAP			0x0d
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   424
#define	AUDIOHDC_PAR_CONNLIST_LEN		0x0e
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   425
#define	AUDIOHDC_PAR_POWER_STATE		0x0f
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   426
#define	AUDIOHDC_PAR_PROC_CAP			0x10
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   427
#define	AUDIOHDC_PAR_GPIO_CAP			0x11
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   428
#define	AUDIOHDC_PAR_OUTAMP_CAP			0x12
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   429
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   430
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   431
 * bits for get/set amplifier gain/mute
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   432
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   433
#define	AUDIOHDC_AMP_SET_OUTPUT			0x8000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   434
#define	AUDIOHDC_AMP_SET_INPUT			0x4000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   435
#define	AUDIOHDC_AMP_SET_LEFT			0x2000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   436
#define	AUDIOHDC_AMP_SET_RIGHT			0x1000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   437
#define	AUDIOHDC_AMP_SET_MUTE			0x0080
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   438
#define	AUDIOHDC_AMP_SET_LNR			0x3000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   439
#define	AUDIOHDC_AMP_SET_LR_INPUT		0x7000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   440
#define	AUDIOHDC_AMP_SET_LR_OUTPUT		0xb000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   441
#define	AUDIOHDC_AMP_SET_INDEX_OFFSET		8
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   442
#define	AUDIOHDC_AMP_SET_GAIN_MASK		0x007f
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   443
#define	AUDIOHDC_GAIN_MAX			0x7f
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   444
#define	AUDIOHDC_GAIN_BITS			7
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   445
#define	AUDIOHDC_GAIN_DEFAULT			0x0f
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   446
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   447
#define	AUDIOHDC_AMP_GET_OUTPUT			0x8000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   448
#define	AUDIOHDC_AMP_GET_INPUT			0x0000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   449
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   450
/* value used to set max volume for left output */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   451
#define	AUDIOHDC_AMP_LOUT_MAX	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   452
	(AUDIOHDC_AMP_SET_OUTPUT | \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   453
	AUDIOHDC_AMP_SET_LEFT | \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   454
	AUDIOHDC_GAIN_MAX)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   455
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   456
/* value used to set max volume for right output */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   457
#define	AUDIOHDC_AMP_ROUT_MAX	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   458
	(AUDIOHDC_AMP_SET_OUTPUT | \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   459
	AUDIOHDC_AMP_SET_RIGHT | \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   460
	AUDIOHDC_GAIN_MAX)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   461
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   462
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   463
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   464
 * Bits for pin widget control verb
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   465
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   466
#define	AUDIOHDC_PIN_CONTROL_HP_ENABLE		0x80
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   467
#define	AUDIOHDC_PIN_CONTROL_OUT_ENABLE		0x40
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   468
#define	AUDIOHDC_PIN_CONTROL_IN_ENABLE		0x20
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   469
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   470
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   471
 * Bits for Amplifier capabilities
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   472
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   473
#define	AUDIOHDC_AMP_CAP_MUTE_CAP		0x80000000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   474
#define	AUDIOHDC_AMP_CAP_STEP_SIZE		0x007f0000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   475
#define	AUDIOHDC_AMP_CAP_STEP_NUMS		0x00007f00
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   476
#define	AUDIOHDC_AMP_CAP_0DB_OFFSET		0x0000007f
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   477
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   478
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   479
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   480
 * Bits for Audio Widget Capabilities
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   481
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   482
#define	AUDIOHD_WIDCAP_STEREO		0x00000001
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   483
#define	AUDIOHD_WIDCAP_INAMP		0x00000002
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   484
#define	AUDIOHD_WIDCAP_OUTAMP		0x00000004
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   485
#define	AUDIOHD_WIDCAP_AMP_OVRIDE	0x00000008
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   486
#define	AUDIOHD_WIDCAP_FMT_OVRIDE	0x00000010
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   487
#define	AUDIOHD_WIDCAP_STRIP		0x00000020
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   488
#define	AUDIOHD_WIDCAP_PROC_WID		0x00000040
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   489
#define	AUDIOHD_WIDCAP_UNSOL		0x00000080
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   490
#define	AUDIOHD_WIDCAP_CONNLIST		0x00000100
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   491
#define	AUDIOHD_WIDCAP_DIGIT		0x00000200
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   492
#define	AUDIOHD_WIDCAP_PWRCTRL		0x00000400
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   493
#define	AUDIOHD_WIDCAP_LRSWAP		0x00000800
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   494
#define	AUDIOHD_WIDCAP_TYPE		0x00f00000
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   495
#define	AUDIOHD_WIDCAP_TO_WIDTYPE(wcap)		\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   496
	((wcap & AUDIOHD_WIDCAP_TYPE) >> 20)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   497
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   498
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   499
#define	AUDIOHD_CODEC_FAILURE	(uint32_t)(-1)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   500
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   501
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   502
 * buffer descriptor list entry of stream descriptor
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   503
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   504
typedef struct {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   505
	uint64_t	sbde_addr;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   506
	uint32_t	sbde_len;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   507
	uint32_t
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   508
		sbde_ioc: 1,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   509
		reserved: 31;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   510
}sd_bdle_t;
2307
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
   511
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
   512
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   513
#define	AUDIOHD_PLAY_STARTED		0x00000001
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   514
#define	AUDIOHD_PLAY_EMPTY		0x00000002
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   515
#define	AUDIOHD_PLAY_PAUSED		0x00000004
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   516
#define	AUDIOHD_RECORD_STARTED		0x00000008
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   517
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   518
enum audiohda_widget_type {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   519
	WTYPE_AUDIO_OUT = 0,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   520
	WTYPE_AUDIO_IN,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   521
	WTYPE_AUDIO_MIX,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   522
	WTYPE_AUDIO_SEL,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   523
	WTYPE_PIN,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   524
	WTYPE_POWER,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   525
	WTYPE_VOL_KNOB,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   526
	WTYPE_BEEP,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   527
	WTYPE_VENDOR = 0xf
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   528
};
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   529
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   530
enum audiohda_device_type {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   531
	DTYPE_LINEOUT = 0,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   532
	DTYPE_SPEAKER,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   533
	DTYPE_HP_OUT,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   534
	DTYPE_CD,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   535
	DTYPE_SPDIF_OUT,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   536
	DTYPE_DIGIT_OUT,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   537
	DTYPE_MODEM_SIDE,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   538
	DTYPE_MODEM_HNAD_SIDE,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   539
	DTYPE_LINE_IN,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   540
	DTYPE_AUX,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   541
	DTYPE_MIC_IN,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   542
	DTYPE_TEL,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   543
	DTYPE_SPDIF_IN,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   544
	DTYPE_DIGIT_IN,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   545
	DTYPE_OTHER = 0x0f,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   546
};
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   547
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   548
enum audiohd_pin_color {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   549
	AUDIOHD_PIN_UNKNOWN = 0,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   550
	AUDIOHD_PIN_BLACK,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   551
	AUDIOHD_PIN_GREY,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   552
	AUDIOHD_PIN_BLUE,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   553
	AUDIOHD_PIN_GREEN,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   554
	AUDIOHD_PIN_RED,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   555
	AUDIOHD_PIN_ORANGE,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   556
	AUDIOHD_PIN_YELLOW,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   557
	AUDIOHD_PIN_PURPLE,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   558
	AUDIOHD_PIN_PINK,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   559
	AUDIOHD_PIN_WHITE = 0xe,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   560
	AUDIOHD_PIN_OTHER = 0xf,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   561
};
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   562
9842
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   563
#define	CTRL_NUM	16
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   564
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   565
/* values for audiohd_widget.path_flags */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   566
#define	AUDIOHD_PATH_DAC	(1 << 0)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   567
#define	AUDIOHD_PATH_ADC	(1 << 1)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   568
#define	AUDIOHD_PATH_MON	(1 << 2)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   569
#define	AUDIOHD_PATH_NOMON	(1 << 3)
9842
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   570
#define	AUDIOHD_PATH_BEEP	(1 << 4)
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   571
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   572
typedef struct audiohd_path		audiohd_path_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   573
typedef struct audiohd_widget	audiohd_widget_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   574
typedef struct audiohd_state	audiohd_state_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   575
typedef struct audiohd_pin	audiohd_pin_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   576
typedef struct hda_codec	hda_codec_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   577
typedef uint32_t	wid_t;		/* id of widget */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   578
typedef	struct audiohd_entry_prop	audiohd_entry_prop_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   579
typedef	enum audiohda_device_type	audiohda_device_type_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   580
typedef	enum audiohd_pin_color		audiohd_pin_color_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   581
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   582
#define	AUDIOHD_MAX_WIDGET		128
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   583
#define	AUDIOHD_MAX_CONN		16
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   584
#define	AUDIOHD_MAX_PINS		16
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   585
#define	AUDIOHD_MAX_DEPTH		8
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   586
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   587
struct audiohd_entry_prop {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   588
	uint32_t	conn_len;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   589
	uint32_t	mask_range;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   590
	uint32_t	mask_wid;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   591
	wid_t		input_wid;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   592
	int		conns_per_entry;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   593
	int		bits_per_conn;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   594
};
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   595
struct audiohd_widget {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   596
	wid_t		wid_wid;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   597
	hda_codec_t	*codec;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   598
	enum audiohda_widget_type type;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   599
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   600
	uint32_t	widget_cap;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   601
	uint32_t	pcm_format;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   602
	uint32_t	inamp_cap;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   603
	uint32_t	outamp_cap;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   604
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   605
	uint32_t	path_flags;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   606
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   607
	int		out_weight;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   608
	int		in_weight;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   609
	int		finish;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   610
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   611
	/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   612
	 * wid of possible & selected input connections
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   613
	 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   614
	wid_t		avail_conn[AUDIOHD_MAX_CONN];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   615
	wid_t		selconn;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   616
	/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   617
	 * for monitor path
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   618
	 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   619
	wid_t		selmon[AUDIOHD_MAX_CONN];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   620
	uint16_t 	used;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   621
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   622
	/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   623
	 * available (input) connections. 0 means this widget
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   624
	 * has fixed connection
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   625
	 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   626
	int		nconns;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   627
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   628
	/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   629
	 * pointer to struct depending on widget type:
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   630
	 *	1. DAC	audiohd_ostream_t
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   631
	 *	2. ADC	audiohd_istream_t
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   632
	 *	3. PIN	audiohd_pin_t
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   633
	 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   634
	void	*priv;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   635
};
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   636
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   637
#define	AUDIOHD_FLAG_LINEOUT		(1 << 0)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   638
#define	AUDIOHD_FLAG_SPEAKER		(1 << 1)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   639
#define	AUDIOHD_FLAG_HP			(1 << 2)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   640
#define	AUDIOHD_FLAG_MONO		(1 << 3)
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   641
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   642
#define	AUDIOHD_MAX_MIXER		5
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   643
#define	AUDIOHD_MAX_PIN			4
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   644
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   645
#define	PORT_DAC		0
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   646
#define	PORT_ADC		1
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   647
#define	PORT_MAX		2
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   648
typedef enum {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   649
	PLAY = 0,
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   650
	RECORD = 1,
9842
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   651
	BEEP = 2,
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   652
} path_type_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   653
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   654
struct audiohd_path {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   655
	wid_t			adda_wid;
9842
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   656
	wid_t			beep_wid;
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   657
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   658
	wid_t			pin_wid[AUDIOHD_MAX_PINS];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   659
	int			sum_selconn[AUDIOHD_MAX_PINS];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   660
	int			mon_wid[AUDIOHD_MAX_PIN][AUDIOHD_MAX_MIXER];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   661
	int			pin_nums;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   662
	int			maxmixer[AUDIOHD_MAX_PINS];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   663
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   664
	path_type_t		path_type;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   665
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   666
	wid_t			mute_wid;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   667
	int			mute_dir;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   668
	wid_t			gain_wid;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   669
	int			gain_dir;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   670
	uint32_t		gain_bits;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   671
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   672
	uint32_t		pin_outputs;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   673
	uint8_t			tag;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   674
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   675
	hda_codec_t		*codec;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   676
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   677
	wid_t			sum_wid;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   678
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   679
	audiohd_state_t		*statep;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   680
};
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   681
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   682
typedef struct audiohd_port
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   683
{
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   684
	uint8_t			nchan;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   685
	int			index;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   686
	uint16_t		regoff;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   687
	boolean_t		started;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   688
	boolean_t		triggered;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   689
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   690
	unsigned		fragfr;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   691
	unsigned		nframes;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   692
	uint64_t		count;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   693
	int			curpos;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   694
	int			intrs;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   695
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   696
	uint_t			format;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   697
	unsigned		sync_dir;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   698
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   699
	ddi_dma_handle_t	samp_dmah;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   700
	ddi_acc_handle_t	samp_acch;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   701
	size_t			samp_size;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   702
	caddr_t			samp_kaddr;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   703
	uint64_t		samp_paddr;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   704
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   705
	ddi_dma_handle_t	bdl_dmah;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   706
	ddi_acc_handle_t	bdl_acch;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   707
	size_t			bdl_size;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   708
	caddr_t			bdl_kaddr;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   709
	uint64_t		bdl_paddr;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   710
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   711
	audio_engine_t		*engine;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   712
	audiohd_state_t		*statep;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   713
}audiohd_port_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   714
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   715
typedef struct audiohd_ctrl
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   716
{
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   717
	audiohd_state_t		*statep;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   718
	audio_ctrl_t		*ctrl;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   719
	uint32_t		num;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   720
	uint64_t		val;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   721
} audiohd_ctrl_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   722
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   723
struct audiohd_pin {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   724
	audiohd_pin_t	*next;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   725
	wid_t		wid;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   726
	wid_t		mute_wid;	/* node used to mute this pin */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   727
	int		mute_dir;	/* 1: input, 2: output */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   728
	wid_t		gain_wid;	/* node for gain control */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   729
	int		gain_dir;	/* _OUTPUT/_INPUT */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   730
	uint32_t	gain_bits;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   731
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   732
	uint8_t		vrefvalue;	/* value of VRef */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   733
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   734
	uint32_t	cap;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   735
	uint32_t	config;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   736
	uint32_t	ctrl;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   737
	uint32_t	assoc;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   738
	uint32_t	seq;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   739
	wid_t		adc_dac_wid; /* AD/DA wid which can route to this pin */
9842
333f65f565a1 6828784 Beep doesn't work for Opensolaris on DELL LATITUDE D630
lipeng sang - Sun Microsystems - Beijing China <Lipeng.Sang@Sun.COM>
parents: 9841
diff changeset
   740
	wid_t		beep_wid;
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   741
	int		no_phys_conn;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   742
	enum audiohda_device_type	device;
2307
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
   743
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   744
	/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   745
	 * mg_dir, mg_gain, mg_wid are used to store the monitor gain control
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   746
	 * widget wid.
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   747
	 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   748
	int		mg_dir[AUDIOHD_MAX_CONN];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   749
	int		mg_gain[AUDIOHD_MAX_CONN];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   750
	int		mg_wid[AUDIOHD_MAX_CONN];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   751
	int		num;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   752
	int		finish;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   753
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   754
};
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   755
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   756
typedef struct {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   757
	ddi_dma_handle_t	ad_dmahdl;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   758
	ddi_acc_handle_t	ad_acchdl;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   759
	caddr_t			ad_vaddr;	/* virtual addr */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   760
	uint64_t		ad_paddr;	/* physical addr */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   761
	size_t			ad_req_sz;	/* required size of memory */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   762
	size_t			ad_real_sz;	/* real size of memory */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   763
} audiohd_dma_t;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   764
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   765
struct hda_codec {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   766
	uint8_t		index;		/* codec address */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   767
	uint32_t	vid;		/* vendor id and device id */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   768
	uint32_t	revid;		/* revision id */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   769
	wid_t		wid_afg;	/* id of AFG */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   770
	wid_t		first_wid;	/* wid of 1st subnode of AFG */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   771
	wid_t		last_wid;	/* wid of the last subnode of AFG */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   772
	int		nnodes;		/* # of subnodes of AFG */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   773
	uint8_t		nistream;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   774
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   775
	uint32_t	outamp_cap;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   776
	uint32_t	inamp_cap;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   777
	uint32_t	stream_format;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   778
	uint32_t	pcm_format;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   779
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   780
	audiohd_state_t		*soft_statep;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   781
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   782
	/* use wid as index to the array of widget pointers */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   783
	audiohd_widget_t	*widget[AUDIOHD_MAX_WIDGET];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   784
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   785
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   786
	audiohd_port_t		*port[AUDIOHD_PORT_MAX];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   787
	uint8_t			portnum;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   788
	audiohd_pin_t		*first_pin;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   789
};
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   790
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   791
#define	AUDIOHD_MAX_ASSOC	15
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   792
struct audiohd_state {
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   793
	dev_info_t	*hda_dip;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   794
	kstat_t		*hda_ksp;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   795
	kmutex_t	hda_mutex;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   796
	uint32_t	hda_flags;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   797
9510
ad868d7bc35a 6835361 Soft volume should be used to control the PCM volume if DAC has no capability to control
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9484
diff changeset
   798
	boolean_t	soft_volume;
ad868d7bc35a 6835361 Soft volume should be used to control the PCM volume if DAC has no capability to control
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9484
diff changeset
   799
11212
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   800
	caddr_t			hda_reg_base;
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   801
	ddi_acc_handle_t	hda_pci_handle;
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   802
	ddi_acc_handle_t	hda_reg_handle;
10347
ef3957bb6db1 6853359 internal microphone always enabled in Lenovo T60
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 10078
diff changeset
   803
ef3957bb6db1 6853359 internal microphone always enabled in Lenovo T60
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 10078
diff changeset
   804
	ddi_intr_handle_t 	*htable; 	/* For array of interrupts */
11212
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   805
	boolean_t		intr_added;
10347
ef3957bb6db1 6853359 internal microphone always enabled in Lenovo T60
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 10078
diff changeset
   806
	int			intr_type;	/* What type of interrupt */
ef3957bb6db1 6853359 internal microphone always enabled in Lenovo T60
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 10078
diff changeset
   807
	int			intr_rqst;	/* # of request intrs count */
ef3957bb6db1 6853359 internal microphone always enabled in Lenovo T60
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 10078
diff changeset
   808
	int			intr_cnt;	/* # of intrs count returned */
ef3957bb6db1 6853359 internal microphone always enabled in Lenovo T60
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 10078
diff changeset
   809
	uint_t			intr_pri;	/* Interrupt priority */
ef3957bb6db1 6853359 internal microphone always enabled in Lenovo T60
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 10078
diff changeset
   810
	int			intr_cap;	/* Interrupt capabilities */
ef3957bb6db1 6853359 internal microphone always enabled in Lenovo T60
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 10078
diff changeset
   811
	boolean_t		msi_enable;
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   812
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   813
	audiohd_dma_t	hda_dma_corb;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   814
	audiohd_dma_t	hda_dma_rirb;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   815
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   816
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   817
	uint8_t		hda_rirb_rp;		/* read pointer for rirb */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   818
	uint16_t	hda_codec_mask;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   819
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   820
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   821
	audio_dev_t	*adev;
10821
77dbb4cf3365 6884252 Reliable hang with MCP51 audio effective build 123
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 10531
diff changeset
   822
	uint32_t	devid;
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   823
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   824
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   825
	int		hda_pint_freq;	/* play intr frequence */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   826
	int		hda_rint_freq;	/* record intr frequence */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   827
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   828
	int		hda_input_streams;	/* # of input stream */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   829
	int		hda_output_streams;	/* # of output stream */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   830
	int		hda_streams_nums;	/* # of stream */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   831
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   832
	uint_t		hda_play_regbase;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   833
	uint_t		hda_record_regbase;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   834
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   835
	uint_t		hda_play_stag;		/* tag of playback stream */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   836
	uint_t		hda_record_stag;	/* tag of record stream */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   837
	uint_t		hda_play_lgain;		/* left gain for playback */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   838
	uint_t		hda_play_rgain;		/* right gain for playback */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   839
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   840
	/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   841
	 * Now, for the time being, we add some fields
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   842
	 * for parsing codec topology
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   843
	 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   844
	hda_codec_t	*codec[AUDIOHD_CODEC_MAX];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   845
	/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   846
	 * Suspend/Resume used fields
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   847
	 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   848
	boolean_t	suspended;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   849
	boolean_t	monitor_unsupported;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   850
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   851
	audiohd_path_t	*path[AUDIOHD_PORT_MAX];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   852
	uint8_t		pathnum;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   853
	audiohd_port_t	*port[PORT_MAX];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   854
	uint8_t		pchan;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   855
	uint8_t		rchan;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   856
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   857
	uint64_t	inmask;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   858
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   859
	uint_t		hda_out_ports;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   860
	uint_t		in_port;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   861
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   862
	/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   863
	 * Controls
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   864
	 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   865
	audiohd_ctrl_t		*controls[CTRL_NUM];
2307
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
   866
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   867
	/* for multichannel */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   868
	uint8_t			chann[AUDIOHD_MAX_ASSOC];
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   869
	uint8_t			assoc;
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   870
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   871
};
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   872
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   873
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   874
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   875
 * Operation for high definition audio control system bus
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   876
 * interface registers
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   877
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   878
#define	AUDIOHD_REG_GET8(reg)	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   879
	ddi_get8(statep->hda_reg_handle, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   880
	(void *)((char *)statep->hda_reg_base + (reg)))
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   881
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   882
#define	AUDIOHD_REG_GET16(reg)	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   883
	ddi_get16(statep->hda_reg_handle, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   884
	(void *)((char *)statep->hda_reg_base + (reg)))
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   885
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   886
#define	AUDIOHD_REG_GET32(reg)	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   887
	ddi_get32(statep->hda_reg_handle, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   888
	(void *)((char *)statep->hda_reg_base + (reg)))
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   889
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   890
#define	AUDIOHD_REG_GET64(reg)	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   891
	ddi_get64(statep->hda_reg_handle, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   892
	(void *)((char *)statep->hda_reg_base + (reg)))
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   893
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   894
#define	AUDIOHD_REG_SET8(reg, val)	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   895
	ddi_put8(statep->hda_reg_handle, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   896
	(void *)((char *)statep->hda_reg_base + (reg)), (val))
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   897
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   898
#define	AUDIOHD_REG_SET16(reg, val)	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   899
	ddi_put16(statep->hda_reg_handle, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   900
	(void *)((char *)statep->hda_reg_base + (reg)), (val))
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   901
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   902
#define	AUDIOHD_REG_SET32(reg, val)	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   903
	ddi_put32(statep->hda_reg_handle, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   904
	(void *)((char *)statep->hda_reg_base + (reg)), (val))
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   905
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   906
#define	AUDIOHD_REG_SET64(reg, val)	\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   907
	ddi_put64(statep->hda_reg_handle, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   908
	(void *)((char *)statep->hda_reg_base + (reg)), (val))
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   909
2307
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
   910
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   911
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   912
 * enable a pin widget to output
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   913
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   914
#define	AUDIOHD_ENABLE_PIN_OUT(statep, caddr, wid) \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   915
{ \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   916
	uint32_t	lTmp; \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   917
\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   918
	lTmp = audioha_codec_verb_get(statep, caddr, wid, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   919
	    AUDIOHDC_VERB_GET_PIN_CTRL, 0); \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   920
	if (lTmp == AUDIOHD_CODEC_FAILURE) \
9841
c7ecdbcb7950 6848264 Sound distorts when recording with the built-in MIC on Toshiba M9
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9727
diff changeset
   921
		return (DDI_FAILURE); \
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   922
	lTmp = audioha_codec_verb_get(statep, caddr, wid, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   923
	    AUDIOHDC_VERB_SET_PIN_CTRL, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   924
	    (lTmp | AUDIOHDC_PIN_CONTROL_OUT_ENABLE | \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   925
	    AUDIOHDC_PIN_CONTROL_HP_ENABLE)); \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   926
	if (lTmp == AUDIOHD_CODEC_FAILURE) \
9841
c7ecdbcb7950 6848264 Sound distorts when recording with the built-in MIC on Toshiba M9
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9727
diff changeset
   927
		return (DDI_FAILURE); \
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   928
}
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   929
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   930
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   931
 * disable output pin
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   932
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   933
#define	AUDIOHD_DISABLE_PIN_OUT(statep, caddr, wid) \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   934
{ \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   935
	uint32_t	lTmp; \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   936
\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   937
	lTmp = audioha_codec_verb_get(statep, caddr, wid, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   938
	    AUDIOHDC_VERB_GET_PIN_CTRL, 0); \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   939
	if (lTmp == AUDIOHD_CODEC_FAILURE) \
9841
c7ecdbcb7950 6848264 Sound distorts when recording with the built-in MIC on Toshiba M9
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9727
diff changeset
   940
		return (DDI_FAILURE); \
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   941
	lTmp = audioha_codec_verb_get(statep, caddr, wid, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   942
	    AUDIOHDC_VERB_SET_PIN_CTRL, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   943
	    (lTmp & ~AUDIOHDC_PIN_CONTROL_OUT_ENABLE)); \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   944
	if (lTmp == AUDIOHD_CODEC_FAILURE) \
9841
c7ecdbcb7950 6848264 Sound distorts when recording with the built-in MIC on Toshiba M9
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9727
diff changeset
   945
		return (DDI_FAILURE); \
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   946
}
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   947
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   948
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   949
 * enable a pin widget to input
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   950
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   951
#define	AUDIOHD_ENABLE_PIN_IN(statep, caddr, wid) \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   952
{ \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   953
	(void) audioha_codec_verb_get(statep, caddr, wid, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   954
	    AUDIOHDC_VERB_SET_PIN_CTRL, AUDIOHDC_PIN_CONTROL_IN_ENABLE | 4); \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   955
}
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   956
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   957
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   958
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   959
 * disable input pin
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   960
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   961
#define	AUDIOHD_DISABLE_PIN_IN(statep, caddr, wid) \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   962
{ \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   963
	uint32_t	lTmp; \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   964
\
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   965
	lTmp = audioha_codec_verb_get(statep, caddr, wid, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   966
	    AUDIOHDC_VERB_GET_PIN_CTRL, 0); \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   967
	if (lTmp == AUDIOHD_CODEC_FAILURE) \
9841
c7ecdbcb7950 6848264 Sound distorts when recording with the built-in MIC on Toshiba M9
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9727
diff changeset
   968
		return (DDI_FAILURE); \
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   969
	lTmp = audioha_codec_verb_get(statep, caddr, wid, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   970
	    AUDIOHDC_VERB_SET_PIN_CTRL, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   971
	    (lTmp & ~AUDIOHDC_PIN_CONTROL_IN_ENABLE)); \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   972
	if (lTmp == AUDIOHD_CODEC_FAILURE) \
9841
c7ecdbcb7950 6848264 Sound distorts when recording with the built-in MIC on Toshiba M9
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9727
diff changeset
   973
		return (DDI_FAILURE); \
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   974
}
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   975
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   976
/*
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   977
 * unmute an output pin
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   978
 */
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   979
#define	AUDIOHD_NODE_UNMUTE_OUT(statep, caddr, wid) \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   980
{ \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   981
	if (audioha_codec_4bit_verb_get(statep, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   982
	    caddr, wid, AUDIOHDC_VERB_SET_AMP_MUTE, \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   983
	    AUDIOHDC_AMP_SET_LR_OUTPUT | AUDIOHDC_GAIN_MAX) == \
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   984
	    AUDIOHD_CODEC_FAILURE) \
9841
c7ecdbcb7950 6848264 Sound distorts when recording with the built-in MIC on Toshiba M9
Yang-Rong Jerry Zhou <Yangrong.Zhou@Sun.COM>
parents: 9727
diff changeset
   985
		return (DDI_FAILURE); \
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
   986
}
2307
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
   987
11212
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   988
/*
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   989
 * check volume adjust value of 2 channels control
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   990
 */
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   991
#define	AUDIOHD_CHECK_2CHANNELS_VOLUME(value) \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   992
{ \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   993
	if ((value) & ~0xffff) \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   994
		return (EINVAL); \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   995
	if ((((value) & 0xff00) >> 8) > 100 || \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   996
	    ((value) & 0xff) > 100) \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   997
		return (EINVAL); \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   998
}
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
   999
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1000
/*
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1001
 * check volume adjust value of mono channel control
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1002
 */
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1003
#define	AUDIOHD_CHECK_CHANNEL_VOLUME(value) \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1004
{ \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1005
	if ((value) & ~0xff) \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1006
		return (EINVAL); \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1007
	if (((value) & 0xff) > 100) \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1008
		return (EINVAL); \
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1009
}
3ddd45f5e7a3 6862294 Clicking from speakers whilst changing volume level
Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
parents: 11192
diff changeset
  1010
2307
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
  1011
#ifdef __cplusplus
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
  1012
}
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
  1013
#endif
0b8abf5d5947 PSARC 2006/394 Solaris audio driver for Munich Workstation
fl147353
parents:
diff changeset
  1014
9484
fbd5ddc28e96 PSARC 2008/318 Boomer: Next Generation Solaris Audio
Garrett D'Amore <garrett.damore@Sun.COM>
parents: 4814
diff changeset
  1015
#endif	/* _SYS_AUDIOHD_IMPL_H_ */