• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/sound/oss/

Lines Matching refs:devc

79 static struct opl_devinfo *devc = NULL;
95 devc->cmask = 0x3f; /* Connect all possible 4 OP voice operators */
96 opl3_command(devc->right_io, CONNECTION_SELECT_REGISTER, 0x3f);
109 devc->lv_map[i] = v4op[i];
110 devc->v_alloc->max_voice = devc->nr_voice = 12;
129 devc->fm_info.nr_voices = (devc->nr_voice == 12) ? 6 : devc->nr_voice;
130 if (copy_to_user(arg, &devc->fm_info, sizeof(devc->fm_info)))
138 if (devc->model == 2)
163 if (devc != NULL)
169 devc = kzalloc(sizeof(*devc), GFP_KERNEL);
171 if (devc == NULL)
178 strcpy(devc->fm_info.name, "OPL2");
180 if (!request_region(ioaddr, 4, devc->fm_info.name)) {
185 devc->osp = osp;
186 devc->base = ioaddr;
265 kfree(devc);
266 devc = NULL;
274 if (voice < 0 || voice >= devc->nr_voice)
277 devc->v_alloc->map[voice] = 0;
279 map = &pv_map[devc->lv_map[voice]];
285 opl3_command(map->ioaddr, KEYON_BLOCK + map->voice_num, devc->voc[voice].keyon_byte & ~0x20);
286 devc->voc[voice].keyon_byte = 0;
287 devc->voc[voice].bender = 0;
288 devc->voc[voice].volume = 64;
289 devc->voc[voice].panning = 0xffff; /* Not set */
290 devc->voc[voice].bender_range = 200;
291 devc->voc[voice].orig_freq = 0;
292 devc->voc[voice].current_freq = 0;
293 devc->voc[voice].mode = 0;
307 if (instr->key != FM_PATCH && (instr->key != OPL3_PATCH || devc->model != 2))
309 memcpy((char *) &(devc->i_map[instr_no]), (char *) instr, sizeof(*instr));
315 if (voice < 0 || voice >= devc->nr_voice)
320 devc->act_i[voice] = &devc->i_map[instr_no];
379 if (voice < 0 || voice >= devc->nr_voice)
382 map = &pv_map[devc->lv_map[voice]];
383 instr = devc->act_i[voice];
386 instr = &devc->i_map[0];
391 if (devc->voc[voice].mode == 0)
394 if (devc->voc[voice].mode == 2)
422 * The connection method for 4 OP devc->voc is defined by the rightmost
467 if (voice < 0 || voice >= devc->nr_voice)
470 map = &pv_map[devc->lv_map[voice]];
471 pan = devc->voc[voice].panning;
480 set_voice_volume(voice, volume, devc->voc[voice].volume);
509 instr = devc->act_i[voice];
512 instr = &devc->i_map[0];
531 voice_shift = (map->ioaddr == devc->left_io) ? 0 : 3;
539 devc->cmask &= ~(1 << voice_shift);
543 devc->cmask |= (1 << voice_shift);
546 opl3_command(devc->right_io, CONNECTION_SELECT_REGISTER, devc->cmask);
647 devc->voc[voice].mode = voice_mode;
648 set_voice_volume(voice, volume, devc->voc[voice].volume);
650 freq = devc->voc[voice].orig_freq = note_to_freq(note) / 1000;
657 freq = compute_finetune(devc->voc[voice].orig_freq, devc->voc[voice].bender, devc->voc[voice].bender_range, 0);
658 devc->voc[voice].current_freq = freq;
672 devc->voc[voice].keyon_byte = data;
732 if (devc->model != 2)
740 if (devc->model != 2)
752 devc->lv_map[i] = i;
754 for (i = 0; i < devc->nr_voice; i++)
756 opl3_command(pv_map[devc->lv_map[i]].ioaddr,
757 KSL_LEVEL + pv_map[devc->lv_map[i]].op[0], 0xff);
759 opl3_command(pv_map[devc->lv_map[i]].ioaddr,
760 KSL_LEVEL + pv_map[devc->lv_map[i]].op[1], 0xff);
762 if (pv_map[devc->lv_map[i]].voice_mode == 4)
764 opl3_command(pv_map[devc->lv_map[i]].ioaddr,
765 KSL_LEVEL + pv_map[devc->lv_map[i]].op[2], 0xff);
767 opl3_command(pv_map[devc->lv_map[i]].ioaddr,
768 KSL_LEVEL + pv_map[devc->lv_map[i]].op[3], 0xff);
774 if (devc->model == 2)
776 devc->v_alloc->max_voice = devc->nr_voice = 18;
788 if (devc->busy)
790 devc->busy = 1;
792 devc->v_alloc->max_voice = devc->nr_voice = (devc->model == 2) ? 18 : 9;
793 devc->v_alloc->timestamp = 0;
797 devc->v_alloc->map[i] = 0;
798 devc->v_alloc->alloc_times[i] = 0;
801 devc->cmask = 0x00; /*
804 if (devc->model == 2)
805 opl3_command(devc->right_io, CONNECTION_SELECT_REGISTER, devc->cmask);
811 devc->busy = 0;
812 devc->v_alloc->max_voice = devc->nr_voice = (devc->model == 2) ? 18 : 9;
814 devc->fm_info.nr_drums = 0;
815 devc->fm_info.perc_mode = 0;
854 devc->voc[voice].panning = value;
873 if (voice < 0 || voice >= devc->nr_voice)
876 map = &pv_map[devc->lv_map[voice]];
887 instr = devc->act_i[voice];
890 instr = &devc->i_map[0];
892 if (devc->voc[voice].mode == 4)
942 map = &pv_map[devc->lv_map[voice]];
947 devc->voc[voice].bender = value;
950 if (!(devc->voc[voice].keyon_byte & 0x20))
955 freq = compute_finetune(devc->voc[voice].orig_freq, devc->voc[voice].bender, devc->voc[voice].bender_range, 0);
956 devc->voc[voice].current_freq = freq;
966 devc->voc[voice].keyon_byte = data;
972 if (voice < 0 || voice >= devc->nr_voice)
982 devc->voc[voice].bender_range = value;
986 devc->voc[voice].volume = value / 128;
990 devc->voc[voice].panning = (value * 2) - 128;
997 if (voice < 0 || voice >= devc->nr_voice)
1013 instr_no = devc->chn_info[chn].pgm_num;
1015 instr = &devc->i_map[instr_no];
1017 devc->nr_voice != 12) /* Not in 4 OP mode */
1019 else if (devc->nr_voice == 12) /* 4 OP mode */
1031 if (devc->nr_voice == 12) /* 4 OP mode. Use the '2 OP only' operators first */
1035 avail = devc->nr_voice;
1063 if (best > devc->nr_voice)
1064 best -= devc->nr_voice;
1066 return best; /* All devc->voc in use. Select the first one. */
1076 devc->voc[voice].bender = 0;
1077 devc->voc[voice].bender_range = info->bender_range;
1078 devc->voc[voice].volume = info->controllers[CTL_MAIN_VOLUME];
1079 devc->voc[voice].panning = (info->controllers[CTL_PAN] * 2) - 128;
1113 if (devc == NULL)
1125 devc->nr_voice = 9;
1127 devc->fm_info.device = 0;
1128 devc->fm_info.synth_type = SYNTH_TYPE_FM;
1129 devc->fm_info.synth_subtype = FM_TYPE_ADLIB;
1130 devc->fm_info.perc_mode = 0;
1131 devc->fm_info.nr_voices = 9;
1132 devc->fm_info.nr_drums = 0;
1133 devc->fm_info.instr_bank_size = SBFM_MAXINSTR;
1134 devc->fm_info.capabilities = 0;
1135 devc->left_io = ioaddr;
1136 devc->right_io = ioaddr + 2;
1139 devc->model = 1;
1142 devc->model = 2;
1144 devc->is_opl4 = 1;
1147 opl3_operations.info = &devc->fm_info;
1155 devc->v_alloc = &opl3_operations.alloc;
1156 devc->chn_info = &opl3_operations.chn_info[0];
1158 if (devc->model == 2)
1160 if (devc->is_opl4)
1161 strcpy(devc->fm_info.name, "Yamaha OPL4/OPL3 FM");
1163 strcpy(devc->fm_info.name, "Yamaha OPL3");
1165 devc->v_alloc->max_voice = devc->nr_voice = 18;
1166 devc->fm_info.nr_drums = 0;
1167 devc->fm_info.synth_subtype = FM_TYPE_OPL3;
1168 devc->fm_info.capabilities |= SYNTH_CAP_OPL3;
1173 pv_map[i].ioaddr = devc->left_io;
1175 pv_map[i].ioaddr = devc->right_io;
1177 opl3_command(devc->right_io, OPL3_MODE_REGISTER, OPL3_ENABLE);
1178 opl3_command(devc->right_io, CONNECTION_SELECT_REGISTER, 0x00);
1182 strcpy(devc->fm_info.name, "Yamaha OPL2");
1183 devc->v_alloc->max_voice = devc->nr_voice = 9;
1184 devc->fm_info.nr_drums = 0;
1187 pv_map[i].ioaddr = devc->left_io;
1189 conf_printf2(devc->fm_info.name, ioaddr, 0, -1, -1);
1192 devc->i_map[i].channel = -1;
1225 if (devc && io != -1)
1227 if (devc->base) {
1228 release_region(devc->base,4);
1229 if (devc->is_opl4)
1230 release_region(devc->base - 8, 2);
1232 kfree(devc);
1233 devc = NULL;