• Home
  • Raw
  • Download

Lines Matching refs:s

1060 static int snd_m3_pcm_start(struct snd_m3 *chip, struct m3_dma *s,  in snd_m3_pcm_start()  argument
1063 if (! s || ! subs) in snd_m3_pcm_start()
1071 s->inst.data + CDATA_INSTANCE_READY, 1); in snd_m3_pcm_start()
1080 s->inst.data + CDATA_INSTANCE_READY, 1); in snd_m3_pcm_start()
1087 static int snd_m3_pcm_stop(struct snd_m3 *chip, struct m3_dma *s, in snd_m3_pcm_stop() argument
1090 if (! s || ! subs) in snd_m3_pcm_stop()
1094 s->inst.data + CDATA_INSTANCE_READY, 0); in snd_m3_pcm_stop()
1115 struct m3_dma *s = subs->runtime->private_data; in snd_m3_pcm_trigger() local
1118 if (snd_BUG_ON(!s)) in snd_m3_pcm_trigger()
1125 if (s->running) in snd_m3_pcm_trigger()
1128 s->running = 1; in snd_m3_pcm_trigger()
1129 err = snd_m3_pcm_start(chip, s, subs); in snd_m3_pcm_trigger()
1134 if (! s->running) in snd_m3_pcm_trigger()
1137 s->running = 0; in snd_m3_pcm_trigger()
1138 err = snd_m3_pcm_stop(chip, s, subs); in snd_m3_pcm_trigger()
1150 snd_m3_pcm_setup1(struct snd_m3 *chip, struct m3_dma *s, struct snd_pcm_substream *subs) in snd_m3_pcm_setup1() argument
1162 dsp_in_buffer = s->inst.data + (MINISRC_TMP_BUFFER_SIZE / 2); in snd_m3_pcm_setup1()
1165 s->dma_size = frames_to_bytes(runtime, runtime->buffer_size); in snd_m3_pcm_setup1()
1166 s->period_size = frames_to_bytes(runtime, runtime->period_size); in snd_m3_pcm_setup1()
1167 s->hwptr = 0; in snd_m3_pcm_setup1()
1168 s->count = 0; in snd_m3_pcm_setup1()
1175 s->inst.data + CDATA_HOST_SRC_ADDRL, in snd_m3_pcm_setup1()
1176 LO(s->buffer_addr)); in snd_m3_pcm_setup1()
1179 s->inst.data + CDATA_HOST_SRC_ADDRH, in snd_m3_pcm_setup1()
1180 HI(s->buffer_addr)); in snd_m3_pcm_setup1()
1183 s->inst.data + CDATA_HOST_SRC_END_PLUS_1L, in snd_m3_pcm_setup1()
1184 LO(s->buffer_addr + s->dma_size)); in snd_m3_pcm_setup1()
1187 s->inst.data + CDATA_HOST_SRC_END_PLUS_1H, in snd_m3_pcm_setup1()
1188 HI(s->buffer_addr + s->dma_size)); in snd_m3_pcm_setup1()
1191 s->inst.data + CDATA_HOST_SRC_CURRENTL, in snd_m3_pcm_setup1()
1192 LO(s->buffer_addr)); in snd_m3_pcm_setup1()
1195 s->inst.data + CDATA_HOST_SRC_CURRENTH, in snd_m3_pcm_setup1()
1196 HI(s->buffer_addr)); in snd_m3_pcm_setup1()
1203 s->inst.data + CDATA_IN_BUF_BEGIN, in snd_m3_pcm_setup1()
1207 s->inst.data + CDATA_IN_BUF_END_PLUS_1, in snd_m3_pcm_setup1()
1211 s->inst.data + CDATA_IN_BUF_HEAD, in snd_m3_pcm_setup1()
1215 s->inst.data + CDATA_IN_BUF_TAIL, in snd_m3_pcm_setup1()
1219 s->inst.data + CDATA_OUT_BUF_BEGIN, in snd_m3_pcm_setup1()
1223 s->inst.data + CDATA_OUT_BUF_END_PLUS_1, in snd_m3_pcm_setup1()
1227 s->inst.data + CDATA_OUT_BUF_HEAD, in snd_m3_pcm_setup1()
1231 s->inst.data + CDATA_OUT_BUF_TAIL, in snd_m3_pcm_setup1()
1235 static void snd_m3_pcm_setup2(struct snd_m3 *chip, struct m3_dma *s, in snd_m3_pcm_setup2() argument
1243 if (! s->in_lists) { in snd_m3_pcm_setup2()
1244 s->index[0] = snd_m3_add_list(chip, s->index_list[0], in snd_m3_pcm_setup2()
1245 s->inst.data >> DP_SHIFT_COUNT); in snd_m3_pcm_setup2()
1246 s->index[1] = snd_m3_add_list(chip, s->index_list[1], in snd_m3_pcm_setup2()
1247 s->inst.data >> DP_SHIFT_COUNT); in snd_m3_pcm_setup2()
1248 s->index[2] = snd_m3_add_list(chip, s->index_list[2], in snd_m3_pcm_setup2()
1249 s->inst.data >> DP_SHIFT_COUNT); in snd_m3_pcm_setup2()
1250 s->in_lists = 1; in snd_m3_pcm_setup2()
1255 s->inst.data + SRC3_DIRECTION_OFFSET + 1, in snd_m3_pcm_setup2()
1259 s->inst.data + SRC3_DIRECTION_OFFSET + 2, in snd_m3_pcm_setup2()
1268 s->inst.data + CDATA_FREQUENCY, in snd_m3_pcm_setup2()
1302 snd_m3_playback_setup(struct snd_m3 *chip, struct m3_dma *s, in snd_m3_playback_setup() argument
1312 s->inst.data + SRC3_DIRECTION_OFFSET + 12, in snd_m3_playback_setup()
1313 s->inst.data + 40 + 8); in snd_m3_playback_setup()
1316 s->inst.data + SRC3_DIRECTION_OFFSET + 19, in snd_m3_playback_setup()
1317 s->inst.code + MINISRC_COEF_LOC); in snd_m3_playback_setup()
1321 s->inst.data + SRC3_DIRECTION_OFFSET + 22, in snd_m3_playback_setup()
1326 s->inst.data + CDATA_DMA_CONTROL, in snd_m3_playback_setup()
1334 s->inst.data + pv[i].addr, pv[i].val); in snd_m3_playback_setup()
1369 snd_m3_capture_setup(struct snd_m3 *chip, struct m3_dma *s, struct snd_pcm_substream *subs) in snd_m3_capture_setup() argument
1378 s->inst.data + SRC3_DIRECTION_OFFSET + 12, in snd_m3_capture_setup()
1379 s->inst.data + 40 + 8); in snd_m3_capture_setup()
1383 s->inst.data + CDATA_DMA_CONTROL, in snd_m3_capture_setup()
1392 s->inst.data + rv[i].addr, rv[i].val); in snd_m3_capture_setup()
1398 struct m3_dma *s = substream->runtime->private_data; in snd_m3_pcm_hw_params() local
1404 s->buffer_addr = substream->runtime->dma_addr; in snd_m3_pcm_hw_params()
1405 if (s->buffer_addr & 0x3) { in snd_m3_pcm_hw_params()
1407 s->buffer_addr = s->buffer_addr & ~0x3; in snd_m3_pcm_hw_params()
1414 struct m3_dma *s; in snd_m3_pcm_hw_free() local
1418 s = substream->runtime->private_data; in snd_m3_pcm_hw_free()
1420 s->buffer_addr = 0; in snd_m3_pcm_hw_free()
1429 struct m3_dma *s = runtime->private_data; in snd_m3_pcm_prepare() local
1431 if (snd_BUG_ON(!s)) in snd_m3_pcm_prepare()
1443 snd_m3_pcm_setup1(chip, s, subs); in snd_m3_pcm_prepare()
1446 snd_m3_playback_setup(chip, s, subs); in snd_m3_pcm_prepare()
1448 snd_m3_capture_setup(chip, s, subs); in snd_m3_pcm_prepare()
1450 snd_m3_pcm_setup2(chip, s, runtime); in snd_m3_pcm_prepare()
1461 snd_m3_get_pointer(struct snd_m3 *chip, struct m3_dma *s, struct snd_pcm_substream *subs) in snd_m3_get_pointer() argument
1472 s->inst.data + CDATA_HOST_SRC_CURRENTH); in snd_m3_get_pointer()
1475 s->inst.data + CDATA_HOST_SRC_CURRENTL); in snd_m3_get_pointer()
1478 s->inst.data + CDATA_HOST_SRC_CURRENTH)) in snd_m3_get_pointer()
1482 return (unsigned int)(addr - s->buffer_addr); in snd_m3_get_pointer()
1490 struct m3_dma *s = subs->runtime->private_data; in snd_m3_pcm_pointer() local
1492 if (snd_BUG_ON(!s)) in snd_m3_pcm_pointer()
1496 ptr = snd_m3_get_pointer(chip, s, subs); in snd_m3_pcm_pointer()
1504 static void snd_m3_update_ptr(struct snd_m3 *chip, struct m3_dma *s) in snd_m3_update_ptr() argument
1506 struct snd_pcm_substream *subs = s->substream; in snd_m3_update_ptr()
1510 if (! s->running) in snd_m3_update_ptr()
1513 hwptr = snd_m3_get_pointer(chip, s, subs); in snd_m3_update_ptr()
1516 if (hwptr >= s->dma_size) in snd_m3_update_ptr()
1517 hwptr %= s->dma_size; in snd_m3_update_ptr()
1519 diff = s->dma_size + hwptr - s->hwptr; in snd_m3_update_ptr()
1520 if (diff >= s->dma_size) in snd_m3_update_ptr()
1521 diff %= s->dma_size; in snd_m3_update_ptr()
1523 s->hwptr = hwptr; in snd_m3_update_ptr()
1524 s->count += diff; in snd_m3_update_ptr()
1526 if (s->count >= (signed)s->period_size) { in snd_m3_update_ptr()
1528 if (s->count < 2 * (signed)s->period_size) in snd_m3_update_ptr()
1529 s->count -= (signed)s->period_size; in snd_m3_update_ptr()
1531 s->count %= s->period_size; in snd_m3_update_ptr()
1660 struct m3_dma *s = &chip->substreams[i]; in snd_m3_interrupt() local
1661 if (s->running) in snd_m3_interrupt()
1662 snd_m3_update_ptr(chip, s); in snd_m3_interrupt()
1734 struct m3_dma *s; in snd_m3_substream_open() local
1738 s = &chip->substreams[i]; in snd_m3_substream_open()
1739 if (! s->opened) in snd_m3_substream_open()
1745 s->opened = 1; in snd_m3_substream_open()
1746 s->running = 0; in snd_m3_substream_open()
1749 subs->runtime->private_data = s; in snd_m3_substream_open()
1750 s->substream = subs; in snd_m3_substream_open()
1754 s->index_list[0] = &chip->mixer_list; in snd_m3_substream_open()
1756 s->index_list[0] = &chip->adc1_list; in snd_m3_substream_open()
1757 s->index_list[1] = &chip->msrc_list; in snd_m3_substream_open()
1758 s->index_list[2] = &chip->dma_list; in snd_m3_substream_open()
1766 struct m3_dma *s = subs->runtime->private_data; in snd_m3_substream_close() local
1768 if (s == NULL) in snd_m3_substream_close()
1772 if (s->substream && s->running) in snd_m3_substream_close()
1773 snd_m3_pcm_stop(chip, s, s->substream); /* does this happen? */ in snd_m3_substream_close()
1774 if (s->in_lists) { in snd_m3_substream_close()
1775 snd_m3_remove_list(chip, s->index_list[0], s->index[0]); in snd_m3_substream_close()
1776 snd_m3_remove_list(chip, s->index_list[1], s->index[1]); in snd_m3_substream_close()
1777 snd_m3_remove_list(chip, s->index_list[2], s->index[2]); in snd_m3_substream_close()
1778 s->in_lists = 0; in snd_m3_substream_close()
1780 s->running = 0; in snd_m3_substream_close()
1781 s->opened = 0; in snd_m3_substream_close()
2177 static int snd_m3_assp_client_init(struct snd_m3 *chip, struct m3_dma *s, int index) in snd_m3_assp_client_init() argument
2204 s->number = index; in snd_m3_assp_client_init()
2205 s->inst.code = 0x400; in snd_m3_assp_client_init()
2206 s->inst.data = address; in snd_m3_assp_client_init()
2349 struct m3_dma *s; in snd_m3_free() local
2361 s = &chip->substreams[i]; in snd_m3_free()
2363 if (s->substream && s->running) in snd_m3_free()
2364 snd_m3_pcm_stop(chip, s, s->substream); in snd_m3_free()
2676 struct m3_dma *s = &chip->substreams[i]; in snd_m3_create() local
2677 if ((err = snd_m3_assp_client_init(chip, s, i)) < 0) in snd_m3_create()