Lines Matching refs:ipcm
1032 struct snd_emu10k1_fx8010_pcm_rec *ipcm)
1038 if (ipcm->substream >= EMU10K1_FX8010_PCM_COUNT)
1040 ipcm->substream = array_index_nospec(ipcm->substream,
1042 if (ipcm->channels > 32)
1044 pcm = &emu->fx8010.pcm[ipcm->substream];
1051 if (ipcm->channels == 0) { /* remove */
1055 if (ipcm->channels != 2) {
1061 pcm->channels = ipcm->channels;
1062 pcm->tram_start = ipcm->tram_start;
1063 pcm->buffer_size = ipcm->buffer_size;
1064 pcm->gpr_size = ipcm->gpr_size;
1065 pcm->gpr_count = ipcm->gpr_count;
1066 pcm->gpr_tmpcount = ipcm->gpr_tmpcount;
1067 pcm->gpr_ptr = ipcm->gpr_ptr;
1068 pcm->gpr_trigger = ipcm->gpr_trigger;
1069 pcm->gpr_running = ipcm->gpr_running;
1071 pcm->etram[i] = ipcm->etram[i];
1080 struct snd_emu10k1_fx8010_pcm_rec *ipcm)
1086 if (ipcm->substream >= EMU10K1_FX8010_PCM_COUNT)
1088 ipcm->substream = array_index_nospec(ipcm->substream,
1090 pcm = &emu->fx8010.pcm[ipcm->substream];
1093 ipcm->channels = pcm->channels;
1094 ipcm->tram_start = pcm->tram_start;
1095 ipcm->buffer_size = pcm->buffer_size;
1096 ipcm->gpr_size = pcm->gpr_size;
1097 ipcm->gpr_ptr = pcm->gpr_ptr;
1098 ipcm->gpr_count = pcm->gpr_count;
1099 ipcm->gpr_tmpcount = pcm->gpr_tmpcount;
1100 ipcm->gpr_trigger = pcm->gpr_trigger;
1101 ipcm->gpr_running = pcm->gpr_running;
1103 ipcm->etram[i] = pcm->etram[i];
1104 ipcm->res1 = ipcm->res2 = 0;
1105 ipcm->pad = 0;
1761 struct snd_emu10k1_fx8010_pcm_rec *ipcm = NULL;
1781 ipcm = kzalloc(sizeof(*ipcm), GFP_KERNEL);
1782 if (!ipcm)
1829 ipcm->substream = 0;
1830 ipcm->channels = 2;
1831 ipcm->tram_start = 0;
1832 ipcm->buffer_size = (64 * 1024) / 2;
1833 ipcm->gpr_size = gpr++;
1834 ipcm->gpr_ptr = gpr++;
1835 ipcm->gpr_count = gpr++;
1836 ipcm->gpr_tmpcount = gpr++;
1837 ipcm->gpr_trigger = gpr++;
1838 ipcm->gpr_running = gpr++;
1839 ipcm->etram[0] = 0;
1840 ipcm->etram[1] = 1;
1857 /* 00: */ OP(icode, &ptr, iMAC0, C_00000000, GPR(ipcm->gpr_trigger), C_00000000, C_00000000);
1860 /* 02: */ OP(icode, &ptr, iMAC0, C_00000000, GPR(ipcm->gpr_running), C_00000000, C_00000000);
1868 /* 08: */ OP(icode, &ptr, iANDXOR, GPR(ipcm->gpr_running), GPR(ipcm->gpr_running), C_00000000, C_00000001);
1873 /* 0c: */ OP(icode, &ptr, iANDXOR, GPR(tmp + 0), ETRAM_DATA(ipcm->etram[0]), GPR(gpr + 0), C_00000000);
1879 /* 11: */ OP(icode, &ptr, iANDXOR, GPR(tmp + 0), ETRAM_DATA(ipcm->etram[1]), GPR(gpr + 0), C_00000000);
1885 /* 16: */ OP(icode, &ptr, iACC3, GPR(tmp + 0), GPR(ipcm->gpr_ptr), C_00000001, C_00000000);
1886 /* 17: */ OP(icode, &ptr, iMACINT0, C_00000000, GPR(tmp + 0), C_ffffffff, GPR(ipcm->gpr_size));
1889 /* 1a: */ OP(icode, &ptr, iACC3, GPR(ipcm->gpr_ptr), GPR(tmp + 0), C_00000000, C_00000000);
1891 /* 1b: */ OP(icode, &ptr, iACC3, GPR(ipcm->gpr_tmpcount), GPR(ipcm->gpr_tmpcount), C_ffffffff, C_00000000);
1893 /* 1d: */ OP(icode, &ptr, iACC3, GPR(ipcm->gpr_tmpcount), GPR(ipcm->gpr_count), C_00000000, C_00000000);
1895 /* 1f: */ OP(icode, &ptr, iANDXOR, GPR(ipcm->gpr_running), GPR(ipcm->gpr_running), C_00000001, C_00010000);
1897 /* 20: */ OP(icode, &ptr, iANDXOR, GPR(ipcm->gpr_running), GPR(ipcm->gpr_running), C_00010000, C_00000001);
1900 /* 22: */ OP(icode, &ptr, iMACINT1, ETRAM_ADDR(ipcm->etram[0]), GPR(gpr + 8), GPR_DBAC, C_ffffffff);
1901 /* 23: */ OP(icode, &ptr, iMACINT1, ETRAM_ADDR(ipcm->etram[1]), GPR(gpr + 9), GPR_DBAC, C_ffffffff);
2312 if ((err = snd_emu10k1_fx8010_tram_setup(emu, ipcm->buffer_size)) < 0)
2320 err = snd_emu10k1_ipcm_poke(emu, ipcm);
2322 kfree(ipcm);
2454 struct snd_emu10k1_fx8010_pcm_rec *ipcm;
2496 ipcm = memdup_user(argp, sizeof(*ipcm));
2497 if (IS_ERR(ipcm))
2498 return PTR_ERR(ipcm);
2499 res = snd_emu10k1_ipcm_poke(emu, ipcm);
2500 kfree(ipcm);
2503 ipcm = memdup_user(argp, sizeof(*ipcm));
2504 if (IS_ERR(ipcm))
2505 return PTR_ERR(ipcm);
2506 res = snd_emu10k1_ipcm_peek(emu, ipcm);
2507 if (res == 0 && copy_to_user(argp, ipcm, sizeof(*ipcm))) {
2508 kfree(ipcm);
2511 kfree(ipcm);