/linux-4.4.14/sound/soc/intel/atom/sst/ |
H A D | sst_stream.c | 36 int sst_alloc_stream_mrfld(struct intel_sst_drv *sst_drv_ctx, void *params) sst_alloc_stream_mrfld() argument 47 dev_dbg(sst_drv_ctx->dev, "Enter\n"); sst_alloc_stream_mrfld() 79 str_info = get_stream_info(sst_drv_ctx, str_id); sst_alloc_stream_mrfld() 81 dev_err(sst_drv_ctx->dev, "get stream info returned null\n"); 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() 91 if (sst_drv_ctx->info.lpe_viewpt_rqd) sst_alloc_stream_mrfld() 92 alloc_param.ts = sst_drv_ctx->info.mailbox_start + sst_alloc_stream_mrfld() 93 sst_drv_ctx->tstamp + (str_id * sizeof(fw_tstamp)); sst_alloc_stream_mrfld() 95 alloc_param.ts = sst_drv_ctx->mailbox_add + sst_alloc_stream_mrfld() 96 sst_drv_ctx->tstamp + (str_id * sizeof(fw_tstamp)); sst_alloc_stream_mrfld() 98 dev_dbg(sst_drv_ctx->dev, "alloc tstamp location = 0x%x\n", sst_alloc_stream_mrfld() 100 dev_dbg(sst_drv_ctx->dev, "assigned pipe id 0x%x to task %d\n", sst_alloc_stream_mrfld() 104 sst_init_stream(&sst_drv_ctx->streams[str_id], alloc_param.codec_type, sst_alloc_stream_mrfld() 107 dev_info(sst_drv_ctx->dev, "Alloc for str %d pipe %#x\n", sst_alloc_stream_mrfld() 109 ret = sst_prepare_and_post_msg(sst_drv_ctx, task_id, IPC_CMD, sst_alloc_stream_mrfld() 114 dev_err(sst_drv_ctx->dev, "FW alloc failed ret %d\n", ret); sst_alloc_stream_mrfld() 123 dev_err(sst_drv_ctx->dev, "FW alloc failed ret %d\n", ret); sst_alloc_stream_mrfld() 125 dev_err(sst_drv_ctx->dev, sst_alloc_stream_mrfld() 127 sst_free_stream(sst_drv_ctx, str_id); sst_alloc_stream_mrfld() 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() 156 retval = sst_prepare_and_post_msg(sst_drv_ctx, str_info->task_id, sst_start_stream() 163 int sst_send_byte_stream_mrfld(struct intel_sst_drv *sst_drv_ctx, sst_send_byte_stream_mrfld() argument 170 dev_dbg(sst_drv_ctx->dev, sst_send_byte_stream_mrfld() 178 pvt_id = sst_assign_pvt_id(sst_drv_ctx); sst_send_byte_stream_mrfld() 184 dev_dbg(sst_drv_ctx->dev, "length is %d\n", length); sst_send_byte_stream_mrfld() 187 block = sst_create_block(sst_drv_ctx, bytes->ipc_msg, pvt_id); sst_send_byte_stream_mrfld() 195 sst_add_to_dispatch_list_and_post(sst_drv_ctx, msg); sst_send_byte_stream_mrfld() 196 dev_dbg(sst_drv_ctx->dev, "msg->mrfld_header.p.header_low_payload:%d", sst_send_byte_stream_mrfld() 200 ret = sst_wait_timeout(sst_drv_ctx, block); sst_send_byte_stream_mrfld() 202 dev_err(sst_drv_ctx->dev, "fw returned err %d\n", ret); sst_send_byte_stream_mrfld() 203 sst_free_block(sst_drv_ctx, block); sst_send_byte_stream_mrfld() 215 dev_dbg(sst_drv_ctx->dev, "read back %d bytes", sst_send_byte_stream_mrfld() 221 sst_free_block(sst_drv_ctx, block); sst_send_byte_stream_mrfld() 223 test_and_clear_bit(pvt_id, &sst_drv_ctx->pvt_id); sst_send_byte_stream_mrfld() 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() 250 retval = sst_prepare_and_post_msg(sst_drv_ctx, str_info->task_id, IPC_CMD, sst_pause_stream() 259 mutex_lock(&sst_drv_ctx->sst_lock); sst_pause_stream() 261 mutex_unlock(&sst_drv_ctx->sst_lock); sst_pause_stream() 265 dev_dbg(sst_drv_ctx->dev, "SST DBG:BADRQC for stream\n "); sst_pause_stream() 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() 290 retval = sst_prepare_and_post_msg(sst_drv_ctx, str_info->task_id, sst_resume_stream() 303 mutex_lock(&sst_drv_ctx->sst_lock); sst_resume_stream() 305 mutex_unlock(&sst_drv_ctx->sst_lock); sst_resume_stream() 309 dev_err(sst_drv_ctx->dev, "SST ERR: BADQRC for stream\n"); sst_resume_stream() 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() 337 retval = sst_prepare_and_post_msg(sst_drv_ctx, str_info->task_id, sst_drop_stream() 343 dev_dbg(sst_drv_ctx->dev, "BADQRC for stream, state %x\n", sst_drop_stream() 356 int sst_drain_stream(struct intel_sst_drv *sst_drv_ctx, sst_drain_stream() argument 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() 369 dev_err(sst_drv_ctx->dev, "SST ERR: BADQRC for stream = %d\n", sst_drain_stream() 374 retval = sst_prepare_and_post_msg(sst_drv_ctx, str_info->task_id, IPC_CMD, sst_drain_stream() 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() 401 mutex_lock(&sst_drv_ctx->sst_lock); sst_free_stream() 402 if (sst_drv_ctx->sst_state == SST_RESET) { sst_free_stream() 403 mutex_unlock(&sst_drv_ctx->sst_lock); sst_free_stream() 406 mutex_unlock(&sst_drv_ctx->sst_lock); sst_free_stream() 407 str_info = get_stream_info(sst_drv_ctx, str_id); sst_free_stream() 410 ops = sst_drv_ctx->ops; sst_free_stream() 418 dev_info(sst_drv_ctx->dev, "Free for str %d pipe %#x\n", sst_free_stream() 420 retval = sst_prepare_and_post_msg(sst_drv_ctx, str_info->task_id, IPC_CMD, sst_free_stream() 424 dev_dbg(sst_drv_ctx->dev, "sst: wait for free returned %d\n", sst_free_stream() 426 mutex_lock(&sst_drv_ctx->sst_lock); sst_free_stream() 428 mutex_unlock(&sst_drv_ctx->sst_lock); sst_free_stream() 429 dev_dbg(sst_drv_ctx->dev, "SST DBG:Stream freed\n"); sst_free_stream() 433 dev_dbg(sst_drv_ctx->dev, "SST DBG:BADQRC for stream\n"); sst_free_stream()
|
H A D | sst_ipc.c | 124 int sst_post_message_mrfld(struct intel_sst_drv *sst_drv_ctx, sst_post_message_mrfld() argument 133 dev_dbg(sst_drv_ctx->dev, "Enter: sync: %d\n", sync); sst_post_message_mrfld() 134 spin_lock_irqsave(&sst_drv_ctx->ipc_spin_lock, irq_flags); sst_post_message_mrfld() 135 header.full = sst_shim_read64(sst_drv_ctx->shim, SST_IPCX); sst_post_message_mrfld() 139 dev_err(sst_drv_ctx->dev, sst_post_message_mrfld() 146 header.full = sst_shim_read64(sst_drv_ctx->shim, SST_IPCX); sst_post_message_mrfld() 149 if (list_empty(&sst_drv_ctx->ipc_dispatch_list)) { sst_post_message_mrfld() 151 spin_unlock_irqrestore(&sst_drv_ctx->ipc_spin_lock, irq_flags); sst_post_message_mrfld() 152 dev_dbg(sst_drv_ctx->dev, sst_post_message_mrfld() 158 spin_unlock_irqrestore(&sst_drv_ctx->ipc_spin_lock, irq_flags); sst_post_message_mrfld() 159 dev_dbg(sst_drv_ctx->dev, "Busy not free... post later\n"); sst_post_message_mrfld() 164 msg = list_entry(sst_drv_ctx->ipc_dispatch_list.next, sst_post_message_mrfld() 168 dev_dbg(sst_drv_ctx->dev, "sst: Post message: header = %x\n", sst_post_message_mrfld() 170 dev_dbg(sst_drv_ctx->dev, "sst: size = 0x%x\n", sst_post_message_mrfld() 174 memcpy_toio(sst_drv_ctx->mailbox + SST_MAILBOX_SEND, sst_post_message_mrfld() 178 sst_shim_write64(sst_drv_ctx->shim, SST_IPCX, msg->mrfld_header.full); sst_post_message_mrfld() 181 spin_unlock_irqrestore(&sst_drv_ctx->ipc_spin_lock, irq_flags); sst_post_message_mrfld() 187 void intel_sst_clear_intr_mrfld(struct intel_sst_drv *sst_drv_ctx) intel_sst_clear_intr_mrfld() argument 194 spin_lock_irqsave(&sst_drv_ctx->ipc_spin_lock, irq_flags); intel_sst_clear_intr_mrfld() 195 imr.full = sst_shim_read64(sst_drv_ctx->shim, SST_IMRX); intel_sst_clear_intr_mrfld() 196 isr.full = sst_shim_read64(sst_drv_ctx->shim, SST_ISRX); intel_sst_clear_intr_mrfld() 200 sst_shim_write64(sst_drv_ctx->shim, SST_ISRX, isr.full); intel_sst_clear_intr_mrfld() 203 clear_ipc.full = sst_shim_read64(sst_drv_ctx->shim, SST_IPCD); intel_sst_clear_intr_mrfld() 208 sst_shim_write64(sst_drv_ctx->shim, SST_IPCD, clear_ipc.full); intel_sst_clear_intr_mrfld() 211 sst_shim_write64(sst_drv_ctx->shim, SST_IMRX, imr.full); intel_sst_clear_intr_mrfld() 212 spin_unlock_irqrestore(&sst_drv_ctx->ipc_spin_lock, irq_flags); intel_sst_clear_intr_mrfld() 224 static void process_fw_init(struct intel_sst_drv *sst_drv_ctx, process_fw_init() argument 231 dev_dbg(sst_drv_ctx->dev, "*** FW Init msg came***\n"); process_fw_init() 233 sst_set_fw_state_locked(sst_drv_ctx, SST_RESET); process_fw_init() 234 dev_err(sst_drv_ctx->dev, "FW Init failed, Error %x\n", process_fw_init() 241 sst_wake_up_block(sst_drv_ctx, retval, FW_DWNL_ID, 0 , NULL, 0); process_fw_init() 244 static void process_fw_async_msg(struct intel_sst_drv *sst_drv_ctx, process_fw_async_msg() argument 264 str_id = get_stream_id_mrfld(sst_drv_ctx, pipe_id); process_fw_async_msg() 266 dev_dbg(sst_drv_ctx->dev, 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() 281 stream = &sst_drv_ctx->streams[str_id]; process_fw_async_msg() 288 dev_err(sst_drv_ctx->dev, "FW sent async error msg:\n"); process_fw_async_msg() 295 process_fw_init(sst_drv_ctx, data_offset); process_fw_async_msg() 300 str_id = get_stream_id_mrfld(sst_drv_ctx, pipe_id); process_fw_async_msg() 302 dev_err(sst_drv_ctx->dev, process_fw_async_msg() 308 dev_err(sst_drv_ctx->dev, process_fw_async_msg() 313 void sst_process_reply_mrfld(struct intel_sst_drv *sst_drv_ctx, sst_process_reply_mrfld() argument 326 dev_dbg(sst_drv_ctx->dev, "IPC process message header %x payload %x\n", sst_process_reply_mrfld() 335 process_fw_async_msg(sst_drv_ctx, msg); sst_process_reply_mrfld() 342 dev_err(sst_drv_ctx->dev, "FW sent error response 0x%x", msg_low); sst_process_reply_mrfld() 343 sst_wake_up_block(sst_drv_ctx, msg_high.part.result, sst_process_reply_mrfld() 361 dev_dbg(sst_drv_ctx->dev, "cmd_id %d\n", dsp_hdr->cmd_id); sst_process_reply_mrfld() 362 if (sst_wake_up_block(sst_drv_ctx, msg_high.part.result, sst_process_reply_mrfld() 367 sst_wake_up_block(sst_drv_ctx, msg_high.part.result, sst_process_reply_mrfld()
|
H A D | sst_loader.c | 63 int intel_sst_reset_dsp_mrfld(struct intel_sst_drv *sst_drv_ctx) intel_sst_reset_dsp_mrfld() argument 67 dev_dbg(sst_drv_ctx->dev, "sst: Resetting the DSP in mrfld\n"); intel_sst_reset_dsp_mrfld() 68 csr.full = sst_shim_read64(sst_drv_ctx->shim, SST_CSR); intel_sst_reset_dsp_mrfld() 70 dev_dbg(sst_drv_ctx->dev, "value:0x%llx\n", csr.full); intel_sst_reset_dsp_mrfld() 73 sst_shim_write64(sst_drv_ctx->shim, SST_CSR, csr.full); intel_sst_reset_dsp_mrfld() 74 csr.full = sst_shim_read64(sst_drv_ctx->shim, SST_CSR); intel_sst_reset_dsp_mrfld() 76 dev_dbg(sst_drv_ctx->dev, "value:0x%llx\n", csr.full); intel_sst_reset_dsp_mrfld() 79 sst_shim_write64(sst_drv_ctx->shim, SST_CSR, csr.full); intel_sst_reset_dsp_mrfld() 81 csr.full = sst_shim_read64(sst_drv_ctx->shim, SST_CSR); intel_sst_reset_dsp_mrfld() 82 dev_dbg(sst_drv_ctx->dev, "value:0x%llx\n", csr.full); intel_sst_reset_dsp_mrfld() 91 int sst_start_mrfld(struct intel_sst_drv *sst_drv_ctx) sst_start_mrfld() argument 95 dev_dbg(sst_drv_ctx->dev, "sst: Starting the DSP in mrfld LALALALA\n"); sst_start_mrfld() 96 csr.full = sst_shim_read64(sst_drv_ctx->shim, SST_CSR); sst_start_mrfld() 97 dev_dbg(sst_drv_ctx->dev, "value:0x%llx\n", csr.full); sst_start_mrfld() 100 sst_shim_write64(sst_drv_ctx->shim, SST_CSR, csr.full); sst_start_mrfld() 102 csr.full = sst_shim_read64(sst_drv_ctx->shim, SST_CSR); sst_start_mrfld() 103 dev_dbg(sst_drv_ctx->dev, "value:0x%llx\n", csr.full); sst_start_mrfld() 107 sst_shim_write64(sst_drv_ctx->shim, SST_CSR, csr.full); sst_start_mrfld() 109 csr.full = sst_shim_read64(sst_drv_ctx->shim, SST_CSR); sst_start_mrfld() 110 dev_dbg(sst_drv_ctx->dev, "sst: Starting the DSP_merrifield:%llx\n", sst_start_mrfld() 174 * @sst_drv_ctx : driver context 180 static int sst_parse_module_memcpy(struct intel_sst_drv *sst_drv_ctx, sst_parse_module_memcpy() argument 188 dev_dbg(sst_drv_ctx->dev, "module sign %s size %x blocks %x type %x\n", sst_parse_module_memcpy() 191 dev_dbg(sst_drv_ctx->dev, "module entrypoint 0x%x\n", module->entry_point); sst_parse_module_memcpy() 197 dev_err(sst_drv_ctx->dev, "block size invalid\n"); sst_parse_module_memcpy() 202 ram_iomem = sst_drv_ctx->iram; sst_parse_module_memcpy() 205 ram_iomem = sst_drv_ctx->dram; sst_parse_module_memcpy() 208 ram_iomem = sst_drv_ctx->ddr; sst_parse_module_memcpy() 214 dev_err(sst_drv_ctx->dev, "wrong ram type0x%x in block0x%x\n", sst_parse_module_memcpy() 280 void sst_memcpy_free_resources(struct intel_sst_drv *sst_drv_ctx) sst_memcpy_free_resources() argument 285 if (!list_empty(&sst_drv_ctx->memcpy_list)) { sst_memcpy_free_resources() 287 &sst_drv_ctx->memcpy_list, memcpylist) { sst_memcpy_free_resources() 400 int sst_load_fw(struct intel_sst_drv *sst_drv_ctx) sst_load_fw() argument 405 dev_dbg(sst_drv_ctx->dev, "sst_load_fw\n"); sst_load_fw() 407 if (sst_drv_ctx->sst_state != SST_RESET || sst_load_fw() 408 sst_drv_ctx->sst_state == SST_SHUTDOWN) sst_load_fw() 411 if (!sst_drv_ctx->fw_in_mem) { sst_load_fw() 412 dev_dbg(sst_drv_ctx->dev, "sst: FW not in memory retry to download\n"); sst_load_fw() 413 ret_val = sst_request_fw(sst_drv_ctx); sst_load_fw() 418 BUG_ON(!sst_drv_ctx->fw_in_mem); sst_load_fw() 419 block = sst_create_block(sst_drv_ctx, 0, FW_DWNL_ID); sst_load_fw() 424 pm_qos_update_request(sst_drv_ctx->qos, 0); sst_load_fw() 426 sst_drv_ctx->sst_state = SST_FW_LOADING; sst_load_fw() 428 ret_val = sst_drv_ctx->ops->reset(sst_drv_ctx); sst_load_fw() 432 sst_do_memcpy(&sst_drv_ctx->memcpy_list); sst_load_fw() 435 if (sst_drv_ctx->ops->post_download) sst_load_fw() 436 sst_drv_ctx->ops->post_download(sst_drv_ctx); sst_load_fw() 439 ret_val = sst_drv_ctx->ops->start(sst_drv_ctx); sst_load_fw() 443 ret_val = sst_wait_timeout(sst_drv_ctx, block); sst_load_fw() 445 dev_err(sst_drv_ctx->dev, "fw download failed %d\n" , ret_val); sst_load_fw() 454 pm_qos_update_request(sst_drv_ctx->qos, PM_QOS_DEFAULT_VALUE); sst_load_fw() 455 sst_free_block(sst_drv_ctx, block); sst_load_fw() 456 dev_dbg(sst_drv_ctx->dev, "fw load successful!!!\n"); sst_load_fw() 458 if (sst_drv_ctx->ops->restore_dsp_context) sst_load_fw() 459 sst_drv_ctx->ops->restore_dsp_context(); sst_load_fw() 460 sst_drv_ctx->sst_state = SST_FW_RUNNING; sst_load_fw()
|
H A D | sst_pci.c | 124 struct intel_sst_drv *sst_drv_ctx; intel_sst_probe() local 128 ret = sst_alloc_drv_context(&sst_drv_ctx, &pci->dev, pci->device); intel_sst_probe() 132 sst_drv_ctx->pdata = sst_pdata; intel_sst_probe() 133 sst_drv_ctx->irq_num = pci->irq; intel_sst_probe() 134 snprintf(sst_drv_ctx->firmware_name, sizeof(sst_drv_ctx->firmware_name), intel_sst_probe() 136 sst_drv_ctx->dev_id, ".bin"); intel_sst_probe() 138 ret = sst_context_init(sst_drv_ctx); intel_sst_probe() 145 dev_err(sst_drv_ctx->dev, intel_sst_probe() 149 sst_drv_ctx->pci = pci_dev_get(pci); intel_sst_probe() 150 ret = sst_platform_get_resources(sst_drv_ctx); intel_sst_probe() 154 pci_set_drvdata(pci, sst_drv_ctx); intel_sst_probe() 155 sst_configure_runtime_pm(sst_drv_ctx); intel_sst_probe() 160 sst_context_cleanup(sst_drv_ctx); intel_sst_probe() 161 dev_err(sst_drv_ctx->dev, "Probe failed with %d\n", ret); intel_sst_probe() 175 struct intel_sst_drv *sst_drv_ctx = pci_get_drvdata(pci); intel_sst_remove() local 177 sst_context_cleanup(sst_drv_ctx); intel_sst_remove() 178 pci_dev_put(sst_drv_ctx->pci); intel_sst_remove()
|
H A D | sst_pvt.c | 74 struct intel_sst_drv *sst_drv_ctx, int sst_state) sst_set_fw_state_locked() 76 mutex_lock(&sst_drv_ctx->sst_lock); sst_set_fw_state_locked() 77 sst_drv_ctx->sst_state = sst_state; sst_set_fw_state_locked() 78 mutex_unlock(&sst_drv_ctx->sst_lock); sst_set_fw_state_locked() 84 * @sst_drv_ctx: Driver context 90 int sst_wait_interruptible(struct intel_sst_drv *sst_drv_ctx, sst_wait_interruptible() argument 95 if (!wait_event_interruptible(sst_drv_ctx->wait_queue, sst_wait_interruptible() 99 dev_err(sst_drv_ctx->dev, sst_wait_interruptible() 103 dev_dbg(sst_drv_ctx->dev, "event up\n"); sst_wait_interruptible() 107 dev_err(sst_drv_ctx->dev, "signal interrupted\n"); sst_wait_interruptible() 117 * @sst_drv_ctx: Driver context 123 int sst_wait_timeout(struct intel_sst_drv *sst_drv_ctx, struct sst_block *block) sst_wait_timeout() argument 132 dev_dbg(sst_drv_ctx->dev, sst_wait_timeout() 135 if (wait_event_timeout(sst_drv_ctx->wait_queue, sst_wait_timeout() 139 dev_dbg(sst_drv_ctx->dev, "Event wake %x\n", sst_wait_timeout() 141 dev_dbg(sst_drv_ctx->dev, "message ret: %d\n", sst_wait_timeout() 146 dev_err(sst_drv_ctx->dev, sst_wait_timeout() 148 block->condition, block->msg_id, sst_drv_ctx->sst_state); sst_wait_timeout() 149 sst_drv_ctx->sst_state = SST_RESET; sst_wait_timeout() 190 * @sst_drv_ctx: sst driver context 196 struct intel_sst_drv *sst_drv_ctx, struct sst_block **block, sst_create_block_and_ipc_msg() 204 *block = sst_create_block(sst_drv_ctx, msg_id, drv_id); sst_create_block_and_ipc_msg() 340 * @sst_drv_ctx : driver context 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() 377 dev_err(sst_drv_ctx->dev, 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() 394 int get_stream_id_mrfld(struct intel_sst_drv *sst_drv_ctx, get_stream_id_mrfld() argument 399 for (i = 1; i <= sst_drv_ctx->info.max_streams; i++) get_stream_id_mrfld() 400 if (pipe_id == sst_drv_ctx->streams[i].pipe_id) get_stream_id_mrfld() 403 dev_dbg(sst_drv_ctx->dev, "no such pipe_id(%u)", pipe_id); get_stream_id_mrfld() 73 sst_set_fw_state_locked( struct intel_sst_drv *sst_drv_ctx, int sst_state) sst_set_fw_state_locked() argument 195 sst_create_block_and_ipc_msg(struct ipc_post **arg, bool large, struct intel_sst_drv *sst_drv_ctx, struct sst_block **block, u32 msg_id, u32 drv_id) sst_create_block_and_ipc_msg() argument 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
|
H A D | sst.h | 462 int sst_pause_stream(struct intel_sst_drv *sst_drv_ctx, int id); 463 int sst_resume_stream(struct intel_sst_drv *sst_drv_ctx, int id); 464 int sst_drop_stream(struct intel_sst_drv *sst_drv_ctx, int id); 465 int sst_free_stream(struct intel_sst_drv *sst_drv_ctx, int id); 466 int sst_start_stream(struct intel_sst_drv *sst_drv_ctx, int str_id); 471 int sst_get_stream(struct intel_sst_drv *sst_drv_ctx, 476 int sst_drain_stream(struct intel_sst_drv *sst_drv_ctx, 488 int sst_get_block_stream(struct intel_sst_drv *sst_drv_ctx); 491 int sst_wait_interruptible(struct intel_sst_drv *sst_drv_ctx, 493 int sst_wait_timeout(struct intel_sst_drv *sst_drv_ctx, 504 int sst_alloc_stream_mrfld(struct intel_sst_drv *sst_drv_ctx, void *params); 509 struct intel_sst_drv *sst_drv_ctx, struct sst_block **block, 524 int sst_assign_pvt_id(struct intel_sst_drv *sst_drv_ctx); 527 int sst_validate_strid(struct intel_sst_drv *sst_drv_ctx, int str_id); 528 struct stream_info *get_stream_info(struct intel_sst_drv *sst_drv_ctx, 530 int get_stream_id_mrfld(struct intel_sst_drv *sst_drv_ctx, 542 struct intel_sst_drv *sst_drv_ctx, int sst_state);
|