Merge remote-tracking branch 'origin/master'
[unleashed/lotheac.git] / usr / src / uts / common / io / audio / drv / audioemu10k / dsp / emu10k1.mac
blob745d34bb526fcd69bca0582de14d168399025c42
1 //
2 // Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3 // Use is subject to license terms.
4 //
5 // Copyright (C) 4Front Technologies 1996-2008.
6 //
7 // CDDL HEADER START
8 //
9 // The contents of this file are subject to the terms of the
10 // Common Development and Distribution License (the "License").
11 // You may not use this file except in compliance with the License.
13 // You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14 // or http://www.opensolaris.org/os/licensing.
15 // See the License for the specific language governing permissions
16 // and limitations under the License.
18 // When distributing Covered Code, include this CDDL HEADER in each
19 // file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20 // If applicable, add the following below this CDDL HEADER, with the
21 // fields enclosed by brackets "[]" replaced with your own identifying
22 // information: Portions Copyright [yyyy] [name of copyright owner]
24 // CDDL HEADER END
26         // Constants for EMU 10k1 (SB Live)
28         // Inputs
29         .input IN_AC97_L        0
30         .input IN_AC97_R        1
31         .input IN_DIGCD_L       2
32         .input IN_DIGCD_R       3
33         .input IN_ZV_L          4
34         .input IN_ZV_R          5
35         .input IN_SPDIF1_L      6       // TOSLink
36         .input IN_SPDIF1_R      7
37         .input IN_LINE2_L       8       // LiveDrive (Line/Mic In 1)
38         .input IN_LINE2_R       9
39         .input IN_SPDIF2_L      10      // LiveDrive (Coax S/PDIF input)
40         .input IN_SPDIF2_R      11
41         .input IN_AUX2_L        12      // LiveDrive (Line/Mic 2)
42         .input IN_AUX2_R        13
44         // Outputs
45         .output OUT_FRONT_L     0       // via AC'97
46         .output OUT_FRONT_R     1       // via AC'97
47         .output OUT_SPDIF_L     2
48         .output OUT_SPDIF_R     3
49         .output OUT_DCENTER     4       // Digital Center channel
50         .output OUT_DLFE        5       // Digital LFE
51         .output OUT_HEADPH_L    6       // LiveDrive headphone out
52         .output OUT_HEADPH_R    7
53         .output OUT_SURR_L      8       // Rear output
54         .output OUT_SURR_R      9
55         .output OUT_ADC_L       10      // Send to the ADC recording channel
56         .output OUT_ADC_R       11
57         .output OUT_MICREC      12      // Send to the mic recording buffer
58         .output OUT_AC97SURR_L  13      // AC97 Surround L
59         .output OUT_AC97SURR_R  14      // AC97 Surround R
61         .output OUT_ACENTER     17      // Analog center channel
62         .output OUT_ALFE        18      // Analog LFE output
64         // Temporaries
65         .gpr PCM_FRONT_L
66         .gpr PCM_FRONT_R
67         .gpr PCM_SURR_L
68         .gpr PCM_SURR_R
69         .gpr PCM_CEN
70         .gpr PCM_LFE
71         .gpr PCM_REC_L
72         .gpr PCM_REC_R
74         // Code
76         // Load up the PCM inputs.  We multiply each of them by 4, as
77         // otherwise they are too quiet.
78         MACINTS(PCM_FRONT_L, 0 FX_FRONT_L, 4)
79         MACINTS(PCM_FRONT_R, 0 FX_FRONT_R, 4)
80         MACINTS(PCM_SURR_L, 0, FX_SURR_L, 4)
81         MACINTS(PCM_SURR_R, 0, FX_SURR_R, 4)
82         MACINTS(PCM_CEN, 0, FX_CEN, 4)
83         MACINTS(PCM_LFE, 0, FX_LFE, 4)
85         // Apply PCM (wave) volume
86         MACS(PCM_FRONT_L, 0, PCM_FRONT_L, VOL_PCM)
87         MACS(PCM_FRONT_R, 0, PCM_FRONT_R, VOL_PCM)
88         MACS(PCM_SURR_L, 0, PCM_SURR_L, VOL_PCM)
89         MACS(PCM_SURR_R, 0, PCM_SURR_R, VOL_PCM)
90         MACS(PCM_CEN, 0, PCM_CEN, VOL_PCM)
91         MACS(PCM_LFE, 0, PCM_LFE, VOL_PCM)
93         // Mix any monitor sources into the front PCM
94         // AC'97 (includes Line-In, analog CD, and Mic)
95         MACS(PCM_FRONT_L, PCM_FRONT_L, IN_AC97_L, MON_AC97_L)
96         MACS(PCM_FRONT_R, PCM_FRONT_R, IN_AC97_R, MON_AC97_R)
97         // DIGCD
98         MACS(PCM_FRONT_L, PCM_FRONT_L, IN_DIGCD_L, MON_DIGCD_L)
99         MACS(PCM_FRONT_R, PCM_FRONT_R, IN_DIGCD_R, MON_DIGCD_R)
100         // SPDIF1
101         MACS(PCM_FRONT_L, PCM_FRONT_L, IN_SPDIF1_L, MON_SPDIF1_L)
102         MACS(PCM_FRONT_R, PCM_FRONT_R, IN_SPDIF1_R, MON_SPDIF1_R)
103         // SPDIF2
104         MACS(PCM_FRONT_L, PCM_FRONT_L, IN_SPDIF2_L, MON_SPDIF2_L)
105         MACS(PCM_FRONT_R, PCM_FRONT_R, IN_SPDIF2_R, MON_SPDIF2_R)
106         // Line2/Mic2 (Live! Drive)
107         MACS(PCM_FRONT_L, PCM_FRONT_L, IN_LINE2_L, MON_LINE2_L)
108         MACS(PCM_FRONT_R, PCM_FRONT_R, IN_LINE2_R, MON_LINE2_R)
109         // Aux2 (Live! Drive)
110         MACS(PCM_FRONT_L, PCM_FRONT_L, IN_AUX2_L, MON_AUX2_L)
111         MACS(PCM_FRONT_R, PCM_FRONT_R, IN_AUX2_R, MON_AUX2_R)
113         // Outputs
114         MACS(OUT_FRONT_L, 0, PCM_FRONT_L, VOL_FRONT_L)
115         MACS(OUT_FRONT_R, 0, PCM_FRONT_R, VOL_FRONT_R)
116         MACS(OUT_SPDIF_L, 0, PCM_FRONT_L, VOL_FRONT_L)
117         MACS(OUT_SPDIF_R, 0, PCM_FRONT_R, VOL_FRONT_R)
118         MACS(OUT_HEADPH_L, 0, PCM_FRONT_L, VOL_HEADPH_L)
119         MACS(OUT_HEADPH_R, 0, PCM_FRONT_R, VOL_HEADPH_R)
120         MACS(OUT_SURR_L, 0, PCM_SURR_L, VOL_SURR_L)
121         MACS(OUT_SURR_R, 0, PCM_SURR_R, VOL_SURR_R)
122         MACS(OUT_AC97SURR_L, 0, PCM_SURR_L, VOL_SURR_L)
123         MACS(OUT_AC97SURR_R, 0, PCM_SURR_R, VOL_SURR_R)
124         MACS(OUT_DCENTER, 0, PCM_CEN, VOL_CEN)
125         MACS(OUT_ACENTER, 0, PCM_CEN, VOL_CEN)
126         MACS(OUT_DLFE, 0, PCM_LFE, VOL_LFE)
127         MACS(OUT_ALFE, 0, PCM_LFE, VOL_LFE)
129         // Inputs (Recording) -- the source variables are treated as
130         // simple boolean enables.
131         MACINTS(PCM_REC_L, 0, IN_AC97_L, REC_AC97)
132         MACINTS(PCM_REC_R, 0, IN_AC97_R, REC_AC97)
134         MACINTS(PCM_REC_L, PCM_REC_L, IN_DIGCD_L, REC_DIGCD)
135         MACINTS(PCM_REC_R, PCM_REC_R, IN_DIGCD_R, REC_DIGCD)
137         MACINTS(PCM_REC_L, PCM_REC_L, IN_SPDIF1_L, REC_SPDIF1)
138         MACINTS(PCM_REC_R, PCM_REC_R, IN_SPDIF1_R, REC_SPDIF1)
140         MACINTS(PCM_REC_L, PCM_REC_L, IN_SPDIF2_L, REC_SPDIF2)
141         MACINTS(PCM_REC_R, PCM_REC_R, IN_SPDIF2_R, REC_SPDIF2)
143         MACINTS(PCM_REC_L, PCM_REC_L, IN_AUX2_L, REC_AUX2)
144         MACINTS(PCM_REC_R, PCM_REC_R, IN_AUX2_R, REC_AUX2)
146         MACINTS(PCM_REC_L, PCM_REC_L, IN_LINE2_L, REC_LINE2)
147         MACINTS(PCM_REC_R, PCM_REC_R, IN_LINE2_R, REC_LINE2)
149         MACINTS(PCM_REC_L, PCM_REC_L, PCM_FRONT_L, REC_PCM)
150         MACINTS(PCM_REC_R, PCM_REC_R, PCM_FRONT_R, REC_PCM)
152         // Apply master record gain
153         MACS(OUT_ADC_L, 0, PCM_REC_L, VOL_REC_L)
154         MACS(OUT_ADC_R, 0, PCM_REC_R, VOL_REC_R)