Lines Matching refs:ipcm
1087 struct snd_emu10k1_fx8010_pcm_rec *ipcm)
1093 if (ipcm->substream >= EMU10K1_FX8010_PCM_COUNT)
1095 ipcm->substream = array_index_nospec(ipcm->substream,
1097 if (ipcm->channels > 32)
1099 pcm = &emu->fx8010.pcm[ipcm->substream];
1106 if (ipcm->channels == 0) { /* remove */
1110 if (ipcm->channels != 2) {
1116 pcm->channels = ipcm->channels;
1117 pcm->tram_start = ipcm->tram_start;
1118 pcm->buffer_size = ipcm->buffer_size;
1119 pcm->gpr_size = ipcm->gpr_size;
1120 pcm->gpr_count = ipcm->gpr_count;
1121 pcm->gpr_tmpcount = ipcm->gpr_tmpcount;
1122 pcm->gpr_ptr = ipcm->gpr_ptr;
1123 pcm->gpr_trigger = ipcm->gpr_trigger;
1124 pcm->gpr_running = ipcm->gpr_running;
1126 pcm->etram[i] = ipcm->etram[i];
1135 struct snd_emu10k1_fx8010_pcm_rec *ipcm)
1141 if (ipcm->substream >= EMU10K1_FX8010_PCM_COUNT)
1143 ipcm->substream = array_index_nospec(ipcm->substream,
1145 pcm = &emu->fx8010.pcm[ipcm->substream];
1148 ipcm->channels = pcm->channels;
1149 ipcm->tram_start = pcm->tram_start;
1150 ipcm->buffer_size = pcm->buffer_size;
1151 ipcm->gpr_size = pcm->gpr_size;
1152 ipcm->gpr_ptr = pcm->gpr_ptr;
1153 ipcm->gpr_count = pcm->gpr_count;
1154 ipcm->gpr_tmpcount = pcm->gpr_tmpcount;
1155 ipcm->gpr_trigger = pcm->gpr_trigger;
1156 ipcm->gpr_running = pcm->gpr_running;
1158 ipcm->etram[i] = pcm->etram[i];
1159 ipcm->res1 = ipcm->res2 = 0;
1160 ipcm->pad = 0;
1816 struct snd_emu10k1_fx8010_pcm_rec *ipcm = NULL;
1836 ipcm = kzalloc(sizeof(*ipcm), GFP_KERNEL);
1837 if (!ipcm)
1879 ipcm->substream = 0;
1880 ipcm->channels = 2;
1881 ipcm->tram_start = 0;
1882 ipcm->buffer_size = (64 * 1024) / 2;
1883 ipcm->gpr_size = gpr++;
1884 ipcm->gpr_ptr = gpr++;
1885 ipcm->gpr_count = gpr++;
1886 ipcm->gpr_tmpcount = gpr++;
1887 ipcm->gpr_trigger = gpr++;
1888 ipcm->gpr_running = gpr++;
1889 ipcm->etram[0] = 0;
1890 ipcm->etram[1] = 1;
1907 /* 00: */ OP(icode, &ptr, iMAC0, C_00000000, GPR(ipcm->gpr_trigger), C_00000000, C_00000000);
1910 /* 02: */ OP(icode, &ptr, iMAC0, C_00000000, GPR(ipcm->gpr_running), C_00000000, C_00000000);
1918 /* 08: */ OP(icode, &ptr, iANDXOR, GPR(ipcm->gpr_running), GPR(ipcm->gpr_running), C_00000000, C_00000001);
1923 /* 0c: */ OP(icode, &ptr, iANDXOR, GPR(tmp + 0), ETRAM_DATA(ipcm->etram[0]), GPR(gpr + 0), C_00000000);
1929 /* 11: */ OP(icode, &ptr, iANDXOR, GPR(tmp + 0), ETRAM_DATA(ipcm->etram[1]), GPR(gpr + 0), C_00000000);
1935 /* 16: */ OP(icode, &ptr, iACC3, GPR(tmp + 0), GPR(ipcm->gpr_ptr), C_00000001, C_00000000);
1936 /* 17: */ OP(icode, &ptr, iMACINT0, C_00000000, GPR(tmp + 0), C_ffffffff, GPR(ipcm->gpr_size));
1939 /* 1a: */ OP(icode, &ptr, iACC3, GPR(ipcm->gpr_ptr), GPR(tmp + 0), C_00000000, C_00000000);
1941 /* 1b: */ OP(icode, &ptr, iACC3, GPR(ipcm->gpr_tmpcount), GPR(ipcm->gpr_tmpcount), C_ffffffff, C_00000000);
1943 /* 1d: */ OP(icode, &ptr, iACC3, GPR(ipcm->gpr_tmpcount), GPR(ipcm->gpr_count), C_00000000, C_00000000);
1945 /* 1f: */ OP(icode, &ptr, iANDXOR, GPR(ipcm->gpr_running), GPR(ipcm->gpr_running), C_00000001, C_00010000);
1947 /* 20: */ OP(icode, &ptr, iANDXOR, GPR(ipcm->gpr_running), GPR(ipcm->gpr_running), C_00010000, C_00000001);
1950 /* 22: */ OP(icode, &ptr, iMACINT1, ETRAM_ADDR(ipcm->etram[0]), GPR(gpr + 8), GPR_DBAC, C_ffffffff);
1951 /* 23: */ OP(icode, &ptr, iMACINT1, ETRAM_ADDR(ipcm->etram[1]), GPR(gpr + 9), GPR_DBAC, C_ffffffff);
2343 err = snd_emu10k1_fx8010_tram_setup(emu, ipcm->buffer_size);
2352 err = snd_emu10k1_ipcm_poke(emu, ipcm);
2354 kfree(ipcm);
2485 struct snd_emu10k1_fx8010_pcm_rec *ipcm;
2527 ipcm = memdup_user(argp, sizeof(*ipcm));
2528 if (IS_ERR(ipcm))
2529 return PTR_ERR(ipcm);
2530 res = snd_emu10k1_ipcm_poke(emu, ipcm);
2531 kfree(ipcm);
2534 ipcm = memdup_user(argp, sizeof(*ipcm));
2535 if (IS_ERR(ipcm))
2536 return PTR_ERR(ipcm);
2537 res = snd_emu10k1_ipcm_peek(emu, ipcm);
2538 if (res == 0 && copy_to_user(argp, ipcm, sizeof(*ipcm))) {
2539 kfree(ipcm);
2542 kfree(ipcm);