/linux-4.4.14/sound/soc/intel/atom/sst/ |
H A D | sst_stream.c | 43 unsigned int str_id, pipe_id, task_id; sst_alloc_stream_mrfld() local 78 str_id = str_params->stream_id; sst_alloc_stream_mrfld() 79 str_info = get_stream_info(sst_drv_ctx, str_id); sst_alloc_stream_mrfld() 87 sst_drv_ctx->streams[str_id].pipe_id = pipe_id; sst_alloc_stream_mrfld() 88 sst_drv_ctx->streams[str_id].task_id = task_id; sst_alloc_stream_mrfld() 89 sst_drv_ctx->streams[str_id].num_ch = num_ch; sst_alloc_stream_mrfld() 93 sst_drv_ctx->tstamp + (str_id * sizeof(fw_tstamp)); sst_alloc_stream_mrfld() 96 sst_drv_ctx->tstamp + (str_id * sizeof(fw_tstamp)); sst_alloc_stream_mrfld() 104 sst_init_stream(&sst_drv_ctx->streams[str_id], alloc_param.codec_type, sst_alloc_stream_mrfld() 105 str_id, alloc_param.operation, 0); sst_alloc_stream_mrfld() 108 str_id, pipe_id); sst_alloc_stream_mrfld() 117 str_id = ret; sst_alloc_stream_mrfld() 126 "FW not in clean state, send free for:%d\n", str_id); sst_alloc_stream_mrfld() 127 sst_free_stream(sst_drv_ctx, str_id); sst_alloc_stream_mrfld() 129 str_id = -ret; sst_alloc_stream_mrfld() 133 return str_id; sst_alloc_stream_mrfld() 138 * @str_id: stream ID 143 int sst_start_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) sst_start_stream() argument 149 dev_dbg(sst_drv_ctx->dev, "sst_start_stream for %d\n", str_id); sst_start_stream() 150 str_info = get_stream_info(sst_drv_ctx, str_id); sst_start_stream() 229 * @str_id: stream ID 234 int sst_pause_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) sst_pause_stream() argument 239 dev_dbg(sst_drv_ctx->dev, "SST DBG:sst_pause_stream for %d\n", str_id); sst_pause_stream() 240 str_info = get_stream_info(sst_drv_ctx, str_id); sst_pause_stream() 273 * @str_id: stream ID 278 int sst_resume_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) sst_resume_stream() argument 283 dev_dbg(sst_drv_ctx->dev, "SST DBG:sst_resume_stream for %d\n", str_id); sst_resume_stream() 284 str_info = get_stream_info(sst_drv_ctx, str_id); sst_resume_stream() 318 * @str_id: stream ID 323 int sst_drop_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) sst_drop_stream() argument 328 dev_dbg(sst_drv_ctx->dev, "SST DBG:sst_drop_stream for %d\n", str_id); sst_drop_stream() 329 str_info = get_stream_info(sst_drv_ctx, str_id); sst_drop_stream() 351 * @str_id: stream ID 357 int str_id, bool partial_drain) sst_drain_stream() 362 dev_dbg(sst_drv_ctx->dev, "SST DBG:sst_drain_stream for %d\n", str_id); sst_drain_stream() 363 str_info = get_stream_info(sst_drv_ctx, str_id); sst_drain_stream() 388 * @str_id: stream ID 393 int sst_free_stream(struct intel_sst_drv *sst_drv_ctx, int str_id) sst_free_stream() argument 399 dev_dbg(sst_drv_ctx->dev, "SST DBG:sst_free_stream for %d\n", str_id); sst_free_stream() 407 str_info = get_stream_info(sst_drv_ctx, str_id); sst_free_stream() 419 str_id, str_info->pipe_id); sst_free_stream() 356 sst_drain_stream(struct intel_sst_drv *sst_drv_ctx, int str_id, bool partial_drain) sst_drain_stream() argument
|
H A D | sst_drv_interface.c | 51 int free_stream_context(struct intel_sst_drv *ctx, unsigned int str_id) free_stream_context() argument 56 stream = get_stream_info(ctx, str_id); free_stream_context() 58 /* str_id is valid, so stream is alloacted */ free_stream_context() 59 ret = sst_free_stream(ctx, str_id); free_stream_context() 61 sst_clean_stream(&ctx->streams[str_id]); free_stream_context() 64 dev_err(ctx->dev, "we tried to free stream context %d which was freed!!!\n", str_id); free_stream_context() 203 int str_id, retval; sst_cdev_open() local 213 str_id = sst_get_stream(ctx, str_params); sst_cdev_open() 214 if (str_id > 0) { sst_cdev_open() 215 dev_dbg(dev, "stream allocated in sst_cdev_open %d\n", str_id); sst_cdev_open() 216 stream = &ctx->streams[str_id]; sst_cdev_open() 222 dev_err(dev, "stream encountered error during alloc %d\n", str_id); sst_cdev_open() 223 str_id = -EINVAL; sst_cdev_open() 226 return str_id; sst_cdev_open() 229 static int sst_cdev_close(struct device *dev, unsigned int str_id) sst_cdev_close() argument 235 stream = get_stream_info(ctx, str_id); sst_cdev_close() 237 dev_err(dev, "stream info is NULL for str %d!!!\n", str_id); sst_cdev_close() 249 retval = sst_free_stream(ctx, str_id); sst_cdev_close() 262 static int sst_cdev_ack(struct device *dev, unsigned int str_id, sst_cdev_ack() argument 271 stream = get_stream_info(ctx, str_id); sst_cdev_ack() 281 +(str_id * sizeof(fw_tstamp))), sst_cdev_ack() 289 (str_id * sizeof(fw_tstamp)); sst_cdev_ack() 296 unsigned int str_id, struct snd_compr_metadata *metadata) sst_cdev_set_metadata() 302 dev_dbg(dev, "set metadata for stream %d\n", str_id); sst_cdev_set_metadata() 304 str_info = get_stream_info(ctx, str_id); sst_cdev_set_metadata() 317 static int sst_cdev_stream_pause(struct device *dev, unsigned int str_id) sst_cdev_stream_pause() argument 321 return sst_pause_stream(ctx, str_id); sst_cdev_stream_pause() 325 unsigned int str_id) sst_cdev_stream_pause_release() 329 return sst_resume_stream(ctx, str_id); sst_cdev_stream_pause_release() 332 static int sst_cdev_stream_start(struct device *dev, unsigned int str_id) sst_cdev_stream_start() argument 337 str_info = get_stream_info(ctx, str_id); sst_cdev_stream_start() 342 return sst_start_stream(ctx, str_id); sst_cdev_stream_start() 345 static int sst_cdev_stream_drop(struct device *dev, unsigned int str_id) sst_cdev_stream_drop() argument 349 return sst_drop_stream(ctx, str_id); sst_cdev_stream_drop() 352 static int sst_cdev_stream_drain(struct device *dev, unsigned int str_id) sst_cdev_stream_drain() argument 356 return sst_drain_stream(ctx, str_id, false); sst_cdev_stream_drain() 360 unsigned int str_id) sst_cdev_stream_partial_drain() 364 return sst_drain_stream(ctx, str_id, true); sst_cdev_stream_partial_drain() 367 static int sst_cdev_tstamp(struct device *dev, unsigned int str_id, sst_cdev_tstamp() argument 376 +(str_id * sizeof(fw_tstamp))), sst_cdev_tstamp() 379 stream = get_stream_info(ctx, str_id); sst_cdev_tstamp() 392 str_id, tstamp->copied_total, tstamp->pcm_frames); sst_cdev_tstamp() 458 void sst_cdev_fragment_elapsed(struct intel_sst_drv *ctx, int str_id) sst_cdev_fragment_elapsed() argument 462 dev_dbg(ctx->dev, "fragment elapsed from firmware for str_id %d\n", sst_cdev_fragment_elapsed() 463 str_id); sst_cdev_fragment_elapsed() 464 stream = &ctx->streams[str_id]; sst_cdev_fragment_elapsed() 472 * @str_id: stream id to be closed 477 static int sst_close_pcm_stream(struct device *dev, unsigned int str_id) sst_close_pcm_stream() argument 483 stream = get_stream_info(ctx, str_id); sst_close_pcm_stream() 485 dev_err(ctx->dev, "stream info is NULL for str %d!!!\n", str_id); sst_close_pcm_stream() 497 retval = free_stream_context(ctx, str_id); sst_close_pcm_stream() 550 unsigned int str_id; sst_read_timestamp() local 553 str_id = info->str_id; sst_read_timestamp() 554 stream = get_stream_info(ctx, str_id); sst_read_timestamp() 564 + (str_id * sizeof(fw_tstamp))), sst_read_timestamp() 569 static int sst_stream_start(struct device *dev, int str_id) sst_stream_start() argument 576 str_info = get_stream_info(ctx, str_id); sst_stream_start() 581 sst_start_stream(ctx, str_id); sst_stream_start() 586 static int sst_stream_drop(struct device *dev, int str_id) sst_stream_drop() argument 594 str_info = get_stream_info(ctx, str_id); sst_stream_drop() 599 return sst_drop_stream(ctx, str_id); sst_stream_drop() 602 static int sst_stream_pause(struct device *dev, int str_id) sst_stream_pause() argument 610 str_info = get_stream_info(ctx, str_id); sst_stream_pause() 614 return sst_pause_stream(ctx, str_id); sst_stream_pause() 617 static int sst_stream_resume(struct device *dev, int str_id) sst_stream_resume() argument 625 str_info = get_stream_info(ctx, str_id); sst_stream_resume() 628 return sst_resume_stream(ctx, str_id); sst_stream_resume() 633 int str_id = 0; sst_stream_init() local 637 str_id = str_info->str_id; sst_stream_init() 642 stream = get_stream_info(ctx, str_id); sst_stream_init() 295 sst_cdev_set_metadata(struct device *dev, unsigned int str_id, struct snd_compr_metadata *metadata) sst_cdev_set_metadata() argument 324 sst_cdev_stream_pause_release(struct device *dev, unsigned int str_id) sst_cdev_stream_pause_release() argument 359 sst_cdev_stream_partial_drain(struct device *dev, unsigned int str_id) sst_cdev_stream_partial_drain() argument
|
H A D | sst_ipc.c | 248 int str_id; process_fw_async_msg() local 264 str_id = get_stream_id_mrfld(sst_drv_ctx, pipe_id); process_fw_async_msg() 265 if (str_id > 0) { process_fw_async_msg() 269 stream = &sst_drv_ctx->streams[str_id]; process_fw_async_msg() 279 str_id = get_stream_id_mrfld(sst_drv_ctx, pipe_id); process_fw_async_msg() 280 if (str_id > 0) { process_fw_async_msg() 281 stream = &sst_drv_ctx->streams[str_id]; process_fw_async_msg() 300 str_id = get_stream_id_mrfld(sst_drv_ctx, pipe_id); process_fw_async_msg() 301 if (str_id > 0) process_fw_async_msg() 303 "Buffer under-run for pipe:%#x str_id:%d\n", process_fw_async_msg() 304 pipe_id, str_id); process_fw_async_msg()
|
H A D | sst.h | 165 * @drv_id: str_id in mfld/ctp, = drv_id in mrfld 215 unsigned int str_id; member in struct:stream_info 410 /* str_id 0 is not used */ 466 int sst_start_stream(struct intel_sst_drv *sst_drv_ctx, int str_id); 469 int sst_set_stream_param(int str_id, struct snd_sst_params *str_param); 470 int sst_set_metadata(int str_id, char *params); 477 int str_id, bool partial_drain); 496 int free_stream_context(struct intel_sst_drv *ctx, unsigned int str_id); 500 void sst_cdev_fragment_elapsed(struct intel_sst_drv *ctx, int str_id); 501 int sst_send_sync_msg(int ipc, int str_id); 527 int sst_validate_strid(struct intel_sst_drv *sst_drv_ctx, int str_id); 529 int str_id);
|
H A D | sst_pvt.c | 374 struct intel_sst_drv *sst_drv_ctx, int str_id) sst_validate_strid() 376 if (str_id <= 0 || str_id > sst_drv_ctx->info.max_streams) { sst_validate_strid() 379 str_id, sst_drv_ctx->info.max_streams); sst_validate_strid() 387 struct intel_sst_drv *sst_drv_ctx, int str_id) get_stream_info() 389 if (sst_validate_strid(sst_drv_ctx, str_id)) get_stream_info() 391 return &sst_drv_ctx->streams[str_id]; get_stream_info() 373 sst_validate_strid( struct intel_sst_drv *sst_drv_ctx, int str_id) sst_validate_strid() argument 386 get_stream_info( struct intel_sst_drv *sst_drv_ctx, int str_id) get_stream_info() argument
|
/linux-4.4.14/sound/soc/intel/atom/ |
H A D | sst-mfld-platform.h | 43 int str_id; member in struct:pcm_stream_info 106 int (*stream_start)(struct device *dev, unsigned int str_id); 107 int (*stream_drop)(struct device *dev, unsigned int str_id); 108 int (*stream_drain)(struct device *dev, unsigned int str_id); 109 int (*stream_partial_drain)(struct device *dev, unsigned int str_id); 110 int (*stream_pause)(struct device *dev, unsigned int str_id); 111 int (*stream_pause_release)(struct device *dev, unsigned int str_id); 113 int (*tstamp)(struct device *dev, unsigned int str_id, 115 int (*ack)(struct device *dev, unsigned int str_id, 117 int (*close)(struct device *dev, unsigned int str_id); 120 int (*set_metadata)(struct device *dev, unsigned int str_id, 128 int (*stream_start)(struct device *dev, int str_id); 129 int (*stream_drop)(struct device *dev, int str_id); 130 int (*stream_pause)(struct device *dev, int str_id); 131 int (*stream_pause_release)(struct device *dev, int str_id); 134 int (*close)(struct device *dev, unsigned int str_id);
|
H A D | sst-mfld-platform-pcm.c | 253 stream->stream_info.str_id = str_params.stream_id; sst_platform_alloc_stream() 333 stream->stream_info.str_id = 0; sst_media_open() 359 int ret_val = 0, str_id; sst_media_close() local 364 str_id = stream->stream_info.str_id; sst_media_close() 365 if (str_id) sst_media_close() 366 ret_val = stream->ops->close(sst->dev, str_id); sst_media_close() 375 int ret_val = 0, str_id; sst_media_prepare() local 378 str_id = stream->stream_info.str_id; sst_media_prepare() 379 if (stream->stream_info.str_id) { sst_media_prepare() 380 ret_val = stream->ops->stream_drop(sst->dev, str_id); sst_media_prepare() 388 "%d", stream->stream_info.str_id); sst_media_prepare() 597 int ret_val = 0, str_id; sst_platform_pcm_trigger() local 606 str_id = stream->stream_info.str_id; sst_platform_pcm_trigger() 612 ret_val = stream->ops->stream_start(sst->dev, str_id); sst_platform_pcm_trigger() 617 ret_val = stream->ops->stream_drop(sst->dev, str_id); sst_platform_pcm_trigger() 623 ret_val = stream->ops->stream_pause(sst->dev, str_id); sst_platform_pcm_trigger() 629 ret_val = stream->ops->stream_pause_release(sst->dev, str_id); sst_platform_pcm_trigger()
|
H A D | sst-mfld-platform-compress.c | 86 int ret_val = 0, str_id; sst_platform_compr_free() local 93 str_id = stream->id; sst_platform_compr_free() 94 if (str_id) sst_platform_compr_free() 95 ret_val = stream->compr_ops->close(sst->dev, str_id); sst_platform_compr_free()
|
H A D | sst-mfld-dsp.h | 80 #define IPC_IA_DRAIN_STREAM 0x27 /* Short msg with str_id */ 87 #define IPC_IA_START_STREAM 0x30 /* Short msg with str_id */ 225 u32 str_id:5; member in struct:ipc_header::__anon15556 473 u8 str_id; member in struct:snd_sst_runtime_params
|
/linux-4.4.14/sound/soc/intel/baytrail/ |
H A D | sst-baytrail-ipc.c | 159 int str_id; member in struct:sst_byt_stream 185 static inline u64 sst_byt_header(int msg_id, int data, bool large, int str_id) sst_byt_header() argument 190 IPC_HEADER_STR_ID(str_id) | sst_byt_header() 219 if (stream->str_id == stream_id) sst_byt_get_stream() 370 stream->str_id = id; sst_byt_stream_new() 433 true, stream->str_id); sst_byt_stream_commit() 457 header = sst_byt_header(IPC_IA_FREE_STREAM, 0, false, stream->str_id); sst_byt_stream_free() 461 stream->str_id); sst_byt_stream_free() 502 true, stream->str_id); sst_byt_stream_start() 509 stream->str_id); sst_byt_stream_start() 523 stream->str_id, 0); sst_byt_stream_stop() 526 stream->str_id); sst_byt_stream_stop() 535 stream->str_id, 0); sst_byt_stream_pause() 538 stream->str_id); sst_byt_stream_pause() 548 stream->str_id, 0); sst_byt_stream_resume() 551 stream->str_id); sst_byt_stream_resume() 561 u8 str_id = stream->str_id; sst_byt_get_dsp_position() local 564 tstamp_offset = SST_BYT_TIMESTAMP_OFFSET + str_id * sizeof(fw_tstamp); sst_byt_get_dsp_position()
|