Lines Matching refs:apu
450 u8 apu[4];
523 unsigned char apu[NR_APUS];
907 offset = apu_get_register(chip, es->apu[0], 5);
914 static void snd_es1968_apu_set_freq(struct es1968 *chip, int apu, int freq)
916 apu_set_register(chip, apu, 2,
917 (apu_get_register(chip, apu, 2) & 0x00FF) |
919 apu_set_register(chip, apu, 3, freq >> 8);
923 static inline void snd_es1968_trigger_apu(struct es1968 *esm, int apu, int mode)
926 __apu_set_register(esm, apu, 0,
927 (__apu_get_register(esm, apu, 0) & 0xff0f) |
934 __apu_set_register(chip, es->apu[0], 5, es->base[0]);
935 snd_es1968_trigger_apu(chip, es->apu[0], es->apu_mode[0]);
937 __apu_set_register(chip, es->apu[2], 5, es->base[2]);
938 snd_es1968_trigger_apu(chip, es->apu[2], es->apu_mode[2]);
941 __apu_set_register(chip, es->apu[1], 5, es->base[1]);
942 snd_es1968_trigger_apu(chip, es->apu[1], es->apu_mode[1]);
944 __apu_set_register(chip, es->apu[3], 5, es->base[3]);
945 snd_es1968_trigger_apu(chip, es->apu[3], es->apu_mode[3]);
954 snd_es1968_trigger_apu(chip, es->apu[0], 0);
955 snd_es1968_trigger_apu(chip, es->apu[1], 0);
957 snd_es1968_trigger_apu(chip, es->apu[2], 0);
958 snd_es1968_trigger_apu(chip, es->apu[3], 0);
977 wave_set_register(chip, es->apu[channel] << 3, tmpval);
990 int channel, apu;
1001 apu = es->apu[channel];
1025 apu_set_register(chip, apu, i, 0x0000);
1028 apu_set_register(chip, apu, 4, ((pa >> 16) & 0xFF) << 8);
1029 apu_set_register(chip, apu, 5, pa & 0xFFFF);
1030 apu_set_register(chip, apu, 6, (pa + size) & 0xFFFF);
1032 apu_set_register(chip, apu, 7, size);
1035 apu_set_register(chip, apu, 8, 0x0000);
1037 apu_set_register(chip, apu, 9, 0xD000);
1040 apu_set_register(chip, apu, 11, 0x0000);
1042 apu_set_register(chip, apu, 0, 0x400F);
1055 apu_set_register(chip, apu, 10,
1059 apu_set_register(chip, apu, 10, 0x8F08);
1083 snd_es1968_apu_set_freq(chip, es->apu[0], freq);
1084 snd_es1968_apu_set_freq(chip, es->apu[1], freq);
1092 int i, apu = es->apu[channel];
1110 apu_set_register(chip, apu, i, 0x0000);
1114 apu_set_register(chip, apu, 2, 0x8);
1117 apu_set_register(chip, apu, 4, ((pa >> 16) & 0xFF) << 8);
1118 apu_set_register(chip, apu, 5, pa & 0xFFFF);
1119 apu_set_register(chip, apu, 6, (pa + bsize) & 0xFFFF);
1120 apu_set_register(chip, apu, 7, bsize);
1122 apu_set_register(chip, apu, 8, 0x00F0);
1124 apu_set_register(chip, apu, 9, 0x0000);
1126 apu_set_register(chip, apu, 10, 0x8F08);
1128 apu_set_register(chip, apu, 11, route);
1130 apu_set_register(chip, apu, 0, 0x400F);
1148 /* data seems to flow from the codec, through an apu into
1149 the 'mixbuf' bit of page, then through the SRC apu
1157 /* SRC (left/mono); get input from inputing apu */
1159 ESM_APU_SRCONVERTOR, es->apu[2]);
1169 ESM_APU_SRCONVERTOR, es->apu[3]);
1182 snd_es1968_apu_set_freq(chip, es->apu[0], freq);
1183 snd_es1968_apu_set_freq(chip, es->apu[1], freq);
1187 snd_es1968_apu_set_freq(chip, es->apu[2], freq);
1188 snd_es1968_apu_set_freq(chip, es->apu[3], freq);
1504 int apu;
1506 for (apu = 0; apu < NR_APUS; apu += 2) {
1507 if (chip->apu[apu] == ESM_APU_FREE &&
1508 chip->apu[apu + 1] == ESM_APU_FREE) {
1509 chip->apu[apu] = chip->apu[apu + 1] = type;
1510 return apu;
1519 static void snd_es1968_free_apu_pair(struct es1968 *chip, int apu)
1521 chip->apu[apu] = chip->apu[apu + 1] = ESM_APU_FREE;
1547 es->apu[0] = apu1;
1548 es->apu[1] = apu1 + 1;
1590 es->apu[0] = apu1;
1591 es->apu[1] = apu1 + 1;
1592 es->apu[2] = apu2;
1593 es->apu[3] = apu2 + 1;
1636 snd_es1968_free_apu_pair(chip, es->apu[0]);
1654 snd_es1968_free_apu_pair(chip, es->apu[0]);
1655 snd_es1968_free_apu_pair(chip, es->apu[2]);
1689 int i, apu;
1698 /* search 2 APUs (although one apu is enough) */
1699 apu = snd_es1968_alloc_apu_pair(chip, ESM_APU_PCM_PLAY);
1700 if (apu < 0) {
1709 snd_es1968_free_apu_pair(chip, apu);
1715 wave_set_register(chip, apu << 3, (memory->buf.addr - 0x10) & 0xfff8);
1720 /* initialize apu */
1722 apu_set_register(chip, apu, i, 0x0000);
1724 apu_set_register(chip, apu, 0, 0x400f);
1725 apu_set_register(chip, apu, 4, ((pa >> 16) & 0xff) << 8);
1726 apu_set_register(chip, apu, 5, pa & 0xffff);
1727 apu_set_register(chip, apu, 6, (pa + CLOCK_MEASURE_BUFSIZE/2) & 0xffff);
1728 apu_set_register(chip, apu, 7, CLOCK_MEASURE_BUFSIZE/2);
1729 apu_set_register(chip, apu, 8, 0x0000);
1730 apu_set_register(chip, apu, 9, 0xD000);
1731 apu_set_register(chip, apu, 10, 0x8F08);
1732 apu_set_register(chip, apu, 11, 0x0000);
1738 snd_es1968_apu_set_freq(chip, apu, ((unsigned int)48000 << 16) / chip->clock); /* 48000 Hz */
1741 chip->measure_apu = apu;
1744 __apu_set_register(chip, apu, 5, pa & 0xffff);
1745 snd_es1968_trigger_apu(chip, apu, ESM_APU_16BITLINEAR);
1750 offset = __apu_get_register(chip, apu, 5);
1752 snd_es1968_trigger_apu(chip, apu, 0); /* stop */
1776 snd_es1968_free_apu_pair(chip, apu);
2682 chip->apu[i] = ESM_APU_FREE;