Lines Matching +full:0 +full:x4400

89 	unsigned right_bit = (mode & EMU8000_RAM_RIGHT) ? 0x01000000 : 0;
92 EMU8000_CCCA_WRITE(emu, ch, 0);
93 EMU8000_DCYSUSV_WRITE(emu, ch, 0x807F);
96 EMU8000_DCYSUSV_WRITE(emu, ch, 0x80);
97 EMU8000_VTFT_WRITE(emu, ch, 0);
98 EMU8000_CVCF_WRITE(emu, ch, 0);
99 EMU8000_PTRX_WRITE(emu, ch, 0x40000000);
100 EMU8000_CPF_WRITE(emu, ch, 0x40000000);
101 EMU8000_PSST_WRITE(emu, ch, 0);
102 EMU8000_CSL_WRITE(emu, ch, 0);
104 EMU8000_CCCA_WRITE(emu, ch, 0x06000000 | right_bit);
106 EMU8000_CCCA_WRITE(emu, ch, 0x04000000 | right_bit);
114 while ((EMU8000_SMALR_READ(emu) & 0x80000000) != 0) {
126 while ((EMU8000_SMALW_READ(emu) & 0x80000000) != 0) {
140 EMU8000_HWCF1_WRITE(emu, 0x0059);
141 EMU8000_HWCF2_WRITE(emu, 0x0020);
142 EMU8000_HWCF3_WRITE(emu, 0x0000);
145 if ((EMU8000_U1_READ(emu) & 0x000f) != 0x000c)
148 if ((EMU8000_HWCF1_READ(emu) & 0x007e) != 0x0058)
150 if ((EMU8000_HWCF2_READ(emu) & 0x0003) != 0x0003)
153 dev_dbg(emu->card->dev, "EMU8000 [0x%lx]: Synth chip found\n",
155 return 0;
168 for (ch = 0; ch < EMU8000_CHANNELS; ch++)
169 EMU8000_DCYSUSV_WRITE(emu, ch, 0x80);
172 for (ch = 0; ch < EMU8000_CHANNELS; ch++) {
173 EMU8000_ENVVOL_WRITE(emu, ch, 0);
174 EMU8000_ENVVAL_WRITE(emu, ch, 0);
175 EMU8000_DCYSUS_WRITE(emu, ch, 0);
176 EMU8000_ATKHLDV_WRITE(emu, ch, 0);
177 EMU8000_LFO1VAL_WRITE(emu, ch, 0);
178 EMU8000_ATKHLD_WRITE(emu, ch, 0);
179 EMU8000_LFO2VAL_WRITE(emu, ch, 0);
180 EMU8000_IP_WRITE(emu, ch, 0);
181 EMU8000_IFATN_WRITE(emu, ch, 0);
182 EMU8000_PEFE_WRITE(emu, ch, 0);
183 EMU8000_FMMOD_WRITE(emu, ch, 0);
184 EMU8000_TREMFRQ_WRITE(emu, ch, 0);
185 EMU8000_FM2FRQ2_WRITE(emu, ch, 0);
186 EMU8000_PTRX_WRITE(emu, ch, 0);
187 EMU8000_VTFT_WRITE(emu, ch, 0);
188 EMU8000_PSST_WRITE(emu, ch, 0);
189 EMU8000_CSL_WRITE(emu, ch, 0);
190 EMU8000_CCCA_WRITE(emu, ch, 0);
193 for (ch = 0; ch < EMU8000_CHANNELS; ch++) {
194 EMU8000_CPF_WRITE(emu, ch, 0);
195 EMU8000_CVCF_WRITE(emu, ch, 0);
206 EMU8000_SMALR_WRITE(emu, 0);
207 EMU8000_SMARR_WRITE(emu, 0);
208 EMU8000_SMALW_WRITE(emu, 0);
209 EMU8000_SMARW_WRITE(emu, 0);
216 0x03ff, 0x0030, 0x07ff, 0x0130, 0x0bff, 0x0230, 0x0fff, 0x0330,
217 0x13ff, 0x0430, 0x17ff, 0x0530, 0x1bff, 0x0630, 0x1fff, 0x0730,
218 0x23ff, 0x0830, 0x27ff, 0x0930, 0x2bff, 0x0a30, 0x2fff, 0x0b30,
219 0x33ff, 0x0c30, 0x37ff, 0x0d30, 0x3bff, 0x0e30, 0x3fff, 0x0f30,
221 0x43ff, 0x0030, 0x47ff, 0x0130, 0x4bff, 0x0230, 0x4fff, 0x0330,
222 0x53ff, 0x0430, 0x57ff, 0x0530, 0x5bff, 0x0630, 0x5fff, 0x0730,
223 0x63ff, 0x0830, 0x67ff, 0x0930, 0x6bff, 0x0a30, 0x6fff, 0x0b30,
224 0x73ff, 0x0c30, 0x77ff, 0x0d30, 0x7bff, 0x0e30, 0x7fff, 0x0f30,
226 0x83ff, 0x0030, 0x87ff, 0x0130, 0x8bff, 0x0230, 0x8fff, 0x0330,
227 0x93ff, 0x0430, 0x97ff, 0x0530, 0x9bff, 0x0630, 0x9fff, 0x0730,
228 0xa3ff, 0x0830, 0xa7ff, 0x0930, 0xabff, 0x0a30, 0xafff, 0x0b30,
229 0xb3ff, 0x0c30, 0xb7ff, 0x0d30, 0xbbff, 0x0e30, 0xbfff, 0x0f30,
231 0xc3ff, 0x0030, 0xc7ff, 0x0130, 0xcbff, 0x0230, 0xcfff, 0x0330,
232 0xd3ff, 0x0430, 0xd7ff, 0x0530, 0xdbff, 0x0630, 0xdfff, 0x0730,
233 0xe3ff, 0x0830, 0xe7ff, 0x0930, 0xebff, 0x0a30, 0xefff, 0x0b30,
234 0xf3ff, 0x0c30, 0xf7ff, 0x0d30, 0xfbff, 0x0e30, 0xffff, 0x0f30,
238 0x03ff, 0x8030, 0x07ff, 0x8130, 0x0bff, 0x8230, 0x0fff, 0x8330,
239 0x13ff, 0x8430, 0x17ff, 0x8530, 0x1bff, 0x8630, 0x1fff, 0x8730,
240 0x23ff, 0x8830, 0x27ff, 0x8930, 0x2bff, 0x8a30, 0x2fff, 0x8b30,
241 0x33ff, 0x8c30, 0x37ff, 0x8d30, 0x3bff, 0x8e30, 0x3fff, 0x8f30,
243 0x43ff, 0x8030, 0x47ff, 0x8130, 0x4bff, 0x8230, 0x4fff, 0x8330,
244 0x53ff, 0x8430, 0x57ff, 0x8530, 0x5bff, 0x8630, 0x5fff, 0x8730,
245 0x63ff, 0x8830, 0x67ff, 0x8930, 0x6bff, 0x8a30, 0x6fff, 0x8b30,
246 0x73ff, 0x8c30, 0x77ff, 0x8d30, 0x7bff, 0x8e30, 0x7fff, 0x8f30,
248 0x83ff, 0x8030, 0x87ff, 0x8130, 0x8bff, 0x8230, 0x8fff, 0x8330,
249 0x93ff, 0x8430, 0x97ff, 0x8530, 0x9bff, 0x8630, 0x9fff, 0x8730,
250 0xa3ff, 0x8830, 0xa7ff, 0x8930, 0xabff, 0x8a30, 0xafff, 0x8b30,
251 0xb3ff, 0x8c30, 0xb7ff, 0x8d30, 0xbbff, 0x8e30, 0xbfff, 0x8f30,
253 0xc3ff, 0x8030, 0xc7ff, 0x8130, 0xcbff, 0x8230, 0xcfff, 0x8330,
254 0xd3ff, 0x8430, 0xd7ff, 0x8530, 0xdbff, 0x8630, 0xdfff, 0x8730,
255 0xe3ff, 0x8830, 0xe7ff, 0x8930, 0xebff, 0x8a30, 0xefff, 0x8b30,
256 0xf3ff, 0x8c30, 0xf7ff, 0x8d30, 0xfbff, 0x8e30, 0xffff, 0x8f30,
260 0x0C10, 0x8470, 0x14FE, 0xB488, 0x167F, 0xA470, 0x18E7, 0x84B5,
261 0x1B6E, 0x842A, 0x1F1D, 0x852A, 0x0DA3, 0x8F7C, 0x167E, 0xF254,
262 0x0000, 0x842A, 0x0001, 0x852A, 0x18E6, 0x8BAA, 0x1B6D, 0xF234,
263 0x229F, 0x8429, 0x2746, 0x8529, 0x1F1C, 0x86E7, 0x229E, 0xF224,
265 0x0DA4, 0x8429, 0x2C29, 0x8529, 0x2745, 0x87F6, 0x2C28, 0xF254,
266 0x383B, 0x8428, 0x320F, 0x8528, 0x320E, 0x8F02, 0x1341, 0xF264,
267 0x3EB6, 0x8428, 0x3EB9, 0x8528, 0x383A, 0x8FA9, 0x3EB5, 0xF294,
268 0x3EB7, 0x8474, 0x3EBA, 0x8575, 0x3EB8, 0xC4C3, 0x3EBB, 0xC5C3,
270 0x0000, 0xA404, 0x0001, 0xA504, 0x141F, 0x8671, 0x14FD, 0x8287,
271 0x3EBC, 0xE610, 0x3EC8, 0x8C7B, 0x031A, 0x87E6, 0x3EC8, 0x86F7,
272 0x3EC0, 0x821E, 0x3EBE, 0xD208, 0x3EBD, 0x821F, 0x3ECA, 0x8386,
273 0x3EC1, 0x8C03, 0x3EC9, 0x831E, 0x3ECA, 0x8C4C, 0x3EBF, 0x8C55,
275 0x3EC9, 0xC208, 0x3EC4, 0xBC84, 0x3EC8, 0x8EAD, 0x3EC8, 0xD308,
276 0x3EC2, 0x8F7E, 0x3ECB, 0x8219, 0x3ECB, 0xD26E, 0x3EC5, 0x831F,
277 0x3EC6, 0xC308, 0x3EC3, 0xB2FF, 0x3EC9, 0x8265, 0x3EC9, 0x8319,
278 0x1342, 0xD36E, 0x3EC7, 0xB3FF, 0x0000, 0x8365, 0x1420, 0x9570,
282 0x0C10, 0x8470, 0x14FE, 0xB488, 0x167F, 0xA470, 0x18E7, 0x84B5,
283 0x1B6E, 0x842A, 0x1F1D, 0x852A, 0x0DA3, 0x0F7C, 0x167E, 0x7254,
284 0x0000, 0x842A, 0x0001, 0x852A, 0x18E6, 0x0BAA, 0x1B6D, 0x7234,
285 0x229F, 0x8429, 0x2746, 0x8529, 0x1F1C, 0x06E7, 0x229E, 0x7224,
287 0x0DA4, 0x8429, 0x2C29, 0x8529, 0x2745, 0x07F6, 0x2C28, 0x7254,
288 0x383B, 0x8428, 0x320F, 0x8528, 0x320E, 0x0F02, 0x1341, 0x7264,
289 0x3EB6, 0x8428, 0x3EB9, 0x8528, 0x383A, 0x0FA9, 0x3EB5, 0x7294,
290 0x3EB7, 0x8474, 0x3EBA, 0x8575, 0x3EB8, 0x44C3, 0x3EBB, 0x45C3,
292 0x0000, 0xA404, 0x0001, 0xA504, 0x141F, 0x0671, 0x14FD, 0x0287,
293 0x3EBC, 0xE610, 0x3EC8, 0x0C7B, 0x031A, 0x07E6, 0x3EC8, 0x86F7,
294 0x3EC0, 0x821E, 0x3EBE, 0xD208, 0x3EBD, 0x021F, 0x3ECA, 0x0386,
295 0x3EC1, 0x0C03, 0x3EC9, 0x031E, 0x3ECA, 0x8C4C, 0x3EBF, 0x0C55,
297 0x3EC9, 0xC208, 0x3EC4, 0xBC84, 0x3EC8, 0x0EAD, 0x3EC8, 0xD308,
298 0x3EC2, 0x8F7E, 0x3ECB, 0x0219, 0x3ECB, 0xD26E, 0x3EC5, 0x031F,
299 0x3EC6, 0xC308, 0x3EC3, 0x32FF, 0x3EC9, 0x0265, 0x3EC9, 0x8319,
300 0x1342, 0xD36E, 0x3EC7, 0x33FF, 0x0000, 0x8365, 0x1420, 0x9570,
314 for (i = 0; i < size; i++, p++)
316 for (i = 0; i < size; i++, p++)
318 for (i = 0; i < size; i++, p++)
320 for (i = 0; i < size; i++, p++)
338 EMU8000_HWCF4_WRITE(emu, 0);
339 EMU8000_HWCF5_WRITE(emu, 0x83);
340 EMU8000_HWCF6_WRITE(emu, 0x8000);
346 #define UNIQUE_ID1 0xa5b9
347 #define UNIQUE_ID2 0x9d53
363 size = 0;
366 snd_emu8000_dma_chan(emu, 0, EMU8000_RAM_WRITE);
387 * 0x200000(=EMU8000_DRAM_OFFSET). Then the id word is
390 /*snd_emu8000_dma_chan(emu, 0, EMU8000_RAM_WRITE);*/
399 /*snd_emu8000_dma_chan(emu, 0, EMU8000_RAM_READ);*/
423 for (i = 0; i < 10000; i++) {
424 if ((EMU8000_SMALW_READ(emu) & 0x80000000) == 0)
430 snd_emu8000_dma_chan(emu, 0, EMU8000_RAM_CLOSE);
433 pr_info("EMU8000 [0x%lx]: %d KiB on-board DRAM detected\n",
451 /* 31: FM left channel, 0xffffe0-0xffffe8 */
452 EMU8000_DCYSUSV_WRITE(emu, 30, 0x80);
453 EMU8000_PSST_WRITE(emu, 30, 0xFFFFFFE0); /* full left */
454 EMU8000_CSL_WRITE(emu, 30, 0x00FFFFE8 | (emu->fm_chorus_depth << 24));
456 EMU8000_CPF_WRITE(emu, 30, 0);
457 EMU8000_CCCA_WRITE(emu, 30, 0x00FFFFE3);
459 /* 32: FM right channel, 0xfffff0-0xfffff8 */
460 EMU8000_DCYSUSV_WRITE(emu, 31, 0x80);
461 EMU8000_PSST_WRITE(emu, 31, 0x00FFFFF0); /* full right */
462 EMU8000_CSL_WRITE(emu, 31, 0x00FFFFF8 | (emu->fm_chorus_depth << 24));
464 EMU8000_CPF_WRITE(emu, 31, 0x8000);
465 EMU8000_CCCA_WRITE(emu, 31, 0x00FFFFF3);
467 snd_emu8000_poke((emu), EMU8000_DATA0(emu), EMU8000_CMD(1, (30)), 0);
470 while (!(inw(EMU8000_PTR(emu)) & 0x1000))
472 while ((inw(EMU8000_PTR(emu)) & 0x1000))
475 snd_emu8000_poke((emu), EMU8000_DATA0(emu), EMU8000_CMD(1, (30)), 0x4828);
477 outb(0x3C, EMU8000_PTR(emu));
478 outb(0, EMU8000_DATA1(emu));
481 EMU8000_VTFT_WRITE(emu, 30, 0x8000FFFF);
482 EMU8000_VTFT_WRITE(emu, 31, 0x8000FFFF);
494 emu->last_reg = 0xffff; /* reset the last register index */
497 EMU8000_HWCF1_WRITE(emu, 0x0059);
498 EMU8000_HWCF2_WRITE(emu, 0x0020);
501 EMU8000_HWCF3_WRITE(emu, 0);
519 for (i = 0; i < EMU8000_DRAM_VOICES; i++)
520 EMU8000_DCYSUSV_WRITE(emu, 0, 0x807F);
526 EMU8000_HWCF3_WRITE(emu, 0x4);
540 {0xD26A, 0xD36A, 0x0000}, /* -12 dB */
541 {0xD25B, 0xD35B, 0x0000}, /* -8 */
542 {0xD24C, 0xD34C, 0x0000}, /* -6 */
543 {0xD23D, 0xD33D, 0x0000}, /* -4 */
544 {0xD21F, 0xD31F, 0x0000}, /* -2 */
545 {0xC208, 0xC308, 0x0001}, /* 0 (HW default) */
546 {0xC219, 0xC319, 0x0001}, /* +2 */
547 {0xC22A, 0xC32A, 0x0001}, /* +4 */
548 {0xC24C, 0xC34C, 0x0001}, /* +6 */
549 {0xC26E, 0xC36E, 0x0001}, /* +8 */
550 {0xC248, 0xC384, 0x0002}, /* +10 */
551 {0xC26A, 0xC36A, 0x0002}, /* +12 dB */
555 {0x821E, 0xC26A, 0x031E, 0xC36A, 0x021E, 0xD208, 0x831E, 0xD308, 0x0001}, /* -12 dB */
556 {0x821E, 0xC25B, 0x031E, 0xC35B, 0x021E, 0xD208, 0x831E, 0xD308, 0x0001},
557 {0x821E, 0xC24C, 0x031E, 0xC34C, 0x021E, 0xD208, 0x831E, 0xD308, 0x0001},
558 {0x821E, 0xC23D, 0x031E, 0xC33D, 0x021E, 0xD208, 0x831E, 0xD308, 0x0001},
559 {0x821E, 0xC21F, 0x031E, 0xC31F, 0x021E, 0xD208, 0x831E, 0xD308, 0x0001},
560 {0x821E, 0xD208, 0x031E, 0xD308, 0x021E, 0xD208, 0x831E, 0xD308, 0x0002},
561 {0x821E, 0xD208, 0x031E, 0xD308, 0x021D, 0xD219, 0x831D, 0xD319, 0x0002},
562 {0x821E, 0xD208, 0x031E, 0xD308, 0x021C, 0xD22A, 0x831C, 0xD32A, 0x0002},
563 {0x821E, 0xD208, 0x031E, 0xD308, 0x021A, 0xD24C, 0x831A, 0xD34C, 0x0002},
564 {0x821E, 0xD208, 0x031E, 0xD308, 0x0219, 0xD26E, 0x8319, 0xD36E, 0x0002}, /* +8 (HW default) */
565 {0x821D, 0xD219, 0x031D, 0xD319, 0x0219, 0xD26E, 0x8319, 0xD36E, 0x0002},
566 {0x821C, 0xD22A, 0x031C, 0xD32A, 0x0219, 0xD26E, 0x8319, 0xD36E, 0x0002} /* +12 dB */
571 * set Emu8000 digital equalizer; from 0 to 11 [-12dB - 12dB]
580 if (bass < 0 || bass > 11 || treble < 0 || treble > 11)
582 EMU8000_INIT4_WRITE(emu, 0x01, bass_parm[bass][0]);
583 EMU8000_INIT4_WRITE(emu, 0x11, bass_parm[bass][1]);
584 EMU8000_INIT3_WRITE(emu, 0x11, treble_parm[treble][0]);
585 EMU8000_INIT3_WRITE(emu, 0x13, treble_parm[treble][1]);
586 EMU8000_INIT3_WRITE(emu, 0x1b, treble_parm[treble][2]);
587 EMU8000_INIT4_WRITE(emu, 0x07, treble_parm[treble][3]);
588 EMU8000_INIT4_WRITE(emu, 0x0b, treble_parm[treble][4]);
589 EMU8000_INIT4_WRITE(emu, 0x0d, treble_parm[treble][5]);
590 EMU8000_INIT4_WRITE(emu, 0x17, treble_parm[treble][6]);
591 EMU8000_INIT4_WRITE(emu, 0x19, treble_parm[treble][7]);
593 EMU8000_INIT4_WRITE(emu, 0x15, (unsigned short)(w + 0x0262));
594 EMU8000_INIT4_WRITE(emu, 0x1d, (unsigned short)(w + 0x8362));
605 #define SNDRV_EMU8000_CHORUS_1 0
618 unsigned short feedback; /* feedback level (0xE600-0xE6FF) */
619 unsigned short delay_offset; /* delay (0-0x0DA3) [1/44100 sec] */
620 unsigned short lfo_depth; /* LFO depth (0xBC00-0xBCFF) */
621 unsigned int delay; /* right delay (0-0xFFFFFFFF) [1/256/44100 sec] */
622 unsigned int lfo_freq; /* LFO freq LFO freq (0-0xFFFFFFFF) */
628 {0xE600, 0x03F6, 0xBC2C ,0x00000000, 0x0000006D}, /* chorus 1 */
629 {0xE608, 0x031A, 0xBC6E, 0x00000000, 0x0000017C}, /* chorus 2 */
630 {0xE610, 0x031A, 0xBC84, 0x00000000, 0x00000083}, /* chorus 3 */
631 {0xE620, 0x0269, 0xBC6E, 0x00000000, 0x0000017C}, /* chorus 4 */
632 {0xE680, 0x04D3, 0xBCA6, 0x00000000, 0x0000005B}, /* feedback */
633 {0xE6E0, 0x044E, 0xBC37, 0x00000000, 0x00000026}, /* flanger */
634 {0xE600, 0x0B06, 0xBC00, 0x0006E000, 0x00000083}, /* short delay */
635 {0xE6C0, 0x0B06, 0xBC00, 0x0006E000, 0x00000083}, /* short delay + feedback */
650 return 0;
657 if (effect < 0 || effect >= SNDRV_EMU8000_CHORUS_NUMBERS ||
660 EMU8000_INIT3_WRITE(emu, 0x09, chorus_parm[effect].feedback);
661 EMU8000_INIT3_WRITE(emu, 0x0c, chorus_parm[effect].delay_offset);
662 EMU8000_INIT4_WRITE(emu, 0x03, chorus_parm[effect].lfo_depth);
665 EMU8000_HWCF6_WRITE(emu, 0x8000);
666 EMU8000_HWCF7_WRITE(emu, 0x0000);
676 #define SNDRV_EMU8000_REVERB_ROOM1 0
698 0xB488, 0xA450, 0x9550, 0x84B5, 0x383A, 0x3EB5, 0x72F4,
699 0x72A4, 0x7254, 0x7204, 0x7204, 0x7204, 0x4416, 0x4516,
700 0xA490, 0xA590, 0x842A, 0x852A, 0x842A, 0x852A, 0x8429,
701 0x8529, 0x8429, 0x8529, 0x8428, 0x8528, 0x8428, 0x8528,
704 0xB488, 0xA458, 0x9558, 0x84B5, 0x383A, 0x3EB5, 0x7284,
705 0x7254, 0x7224, 0x7224, 0x7254, 0x7284, 0x4448, 0x4548,
706 0xA440, 0xA540, 0x842A, 0x852A, 0x842A, 0x852A, 0x8429,
707 0x8529, 0x8429, 0x8529, 0x8428, 0x8528, 0x8428, 0x8528,
710 0xB488, 0xA460, 0x9560, 0x84B5, 0x383A, 0x3EB5, 0x7284,
711 0x7254, 0x7224, 0x7224, 0x7254, 0x7284, 0x4416, 0x4516,
712 0xA490, 0xA590, 0x842C, 0x852C, 0x842C, 0x852C, 0x842B,
713 0x852B, 0x842B, 0x852B, 0x842A, 0x852A, 0x842A, 0x852A,
716 0xB488, 0xA470, 0x9570, 0x84B5, 0x383A, 0x3EB5, 0x7284,
717 0x7254, 0x7224, 0x7224, 0x7254, 0x7284, 0x4448, 0x4548,
718 0xA440, 0xA540, 0x842B, 0x852B, 0x842B, 0x852B, 0x842A,
719 0x852A, 0x842A, 0x852A, 0x8429, 0x8529, 0x8429, 0x8529,
722 0xB488, 0xA470, 0x9570, 0x84B5, 0x383A, 0x3EB5, 0x7254,
723 0x7234, 0x7224, 0x7254, 0x7264, 0x7294, 0x44C3, 0x45C3,
724 0xA404, 0xA504, 0x842A, 0x852A, 0x842A, 0x852A, 0x8429,
725 0x8529, 0x8429, 0x8529, 0x8428, 0x8528, 0x8428, 0x8528,
728 0xB4FF, 0xA470, 0x9570, 0x84B5, 0x383A, 0x3EB5, 0x7234,
729 0x7234, 0x7234, 0x7234, 0x7234, 0x7234, 0x4448, 0x4548,
730 0xA440, 0xA540, 0x842A, 0x852A, 0x842A, 0x852A, 0x8429,
731 0x8529, 0x8429, 0x8529, 0x8428, 0x8528, 0x8428, 0x8528,
734 0xB4FF, 0xA470, 0x9500, 0x84B5, 0x333A, 0x39B5, 0x7204,
735 0x7204, 0x7204, 0x7204, 0x7204, 0x72F4, 0x4400, 0x4500,
736 0xA4FF, 0xA5FF, 0x8420, 0x8520, 0x8420, 0x8520, 0x8420,
737 0x8520, 0x8420, 0x8520, 0x8420, 0x8520, 0x8420, 0x8520,
740 0xB4FF, 0xA490, 0x9590, 0x8474, 0x333A, 0x39B5, 0x7204,
741 0x7204, 0x7204, 0x7204, 0x7204, 0x72F4, 0x4400, 0x4500,
742 0xA4FF, 0xA5FF, 0x8420, 0x8520, 0x8420, 0x8520, 0x8420,
743 0x8520, 0x8420, 0x8520, 0x8420, 0x8520, 0x8420, 0x8520,
756 {AWE_INIT1(0x03)}, {AWE_INIT1(0x05)}, {AWE_INIT4(0x1F)}, {AWE_INIT1(0x07)},
757 {AWE_INIT2(0x14)}, {AWE_INIT2(0x16)}, {AWE_INIT1(0x0F)}, {AWE_INIT1(0x17)},
758 {AWE_INIT1(0x1F)}, {AWE_INIT2(0x07)}, {AWE_INIT2(0x0F)}, {AWE_INIT2(0x17)},
759 {AWE_INIT2(0x1D)}, {AWE_INIT2(0x1F)}, {AWE_INIT3(0x01)}, {AWE_INIT3(0x03)},
760 {AWE_INIT1(0x09)}, {AWE_INIT1(0x0B)}, {AWE_INIT1(0x11)}, {AWE_INIT1(0x13)},
761 {AWE_INIT1(0x19)}, {AWE_INIT1(0x1B)}, {AWE_INIT2(0x01)}, {AWE_INIT2(0x03)},
762 {AWE_INIT2(0x09)}, {AWE_INIT2(0x0B)}, {AWE_INIT2(0x11)}, {AWE_INIT2(0x13)},
778 return 0;
787 if (effect < 0 || effect >= SNDRV_EMU8000_REVERB_NUMBERS ||
790 for (i = 0; i < 28; i++) {
812 uinfo->value.integer.min = 0;
814 return 0;
821 ucontrol->value.integer.value[0] = kcontrol->private_value ? emu->treble_level : emu->bass_level;
822 return 0;
831 val1 = ucontrol->value.integer.value[0] % 12;
852 .private_value = 0,
872 uinfo->value.integer.min = 0;
874 return 0;
881 ucontrol->value.integer.value[0] = kcontrol->private_value ? emu->chorus_mode : emu->reverb_mode;
882 return 0;
893 val1 = ucontrol->value.integer.value[0] % SNDRV_EMU8000_CHORUS_NUMBERS;
897 val1 = ucontrol->value.integer.value[0] % SNDRV_EMU8000_REVERB_NUMBERS;
928 .private_value = 0,
938 uinfo->value.integer.min = 0;
940 return 0;
947 ucontrol->value.integer.value[0] = kcontrol->private_value ? emu->fm_chorus_depth : emu->fm_reverb_depth;
948 return 0;
957 val1 = ucontrol->value.integer.value[0] % 256;
989 .private_value = 0,
1009 int i, err = 0;
1016 memset(emu->controls, 0, sizeof(emu->controls));
1017 for (i = 0; i < EMU8000_NUM_CONTROLS; i++) {
1020 if (err < 0)
1024 return 0;
1027 for (i = 0; i < EMU8000_NUM_CONTROLS; i++)
1046 if (seq_ports <= 0)
1047 return 0;
1055 hw->port2 = port + 0x400;
1056 hw->port3 = port + 0x800;
1060 dev_err(card->dev, "sbawe: can't grab ports 0x%lx, 0x%lx, 0x%lx\n",
1064 hw->mem_size = 0;
1071 hw->fm_chorus_depth = 0;
1072 hw->fm_reverb_depth = 0;
1074 if (snd_emu8000_detect(hw) < 0)
1079 if (err < 0)
1083 sizeof(struct snd_emu8000*), &awe) >= 0) {
1093 return 0;