Lines Matching refs:dsp
272 struct sst_dsp *dsp; member
438 sst_dsp_read(hsw->dsp, &fw_ready, offset, sizeof(fw_ready)); in hsw_fw_ready()
440 sst_dsp_mailbox_init(hsw->dsp, fw_ready.inbox_offset, in hsw_fw_ready()
481 sst_dsp_inbox_read(hsw->dsp, glitch, sizeof(*glitch)); in hsw_notification_work()
491 sst_dsp_inbox_read(hsw->dsp, pos, sizeof(*pos)); in hsw_notification_work()
504 sst_dsp_shim_update_bits(hsw->dsp, SST_IPCD, in hsw_notification_work()
508 sst_dsp_shim_update_bits(hsw->dsp, SST_IMRX, SST_IMRX_BUSY, 0); in hsw_notification_work()
566 sst_dsp_inbox_read(hsw->dsp, msg->rx.data, in hsw_process_reply()
571 sst_dsp_outbox_read(hsw->dsp, msg->rx.data, in hsw_process_reply()
701 hsw->dsp, &stream->curr_pos, sizeof(stream->curr_pos)); in hsw_log_message()
711 struct sst_dsp *sst = hsw->dsp; in hsw_process_notification()
770 ipcx = sst_dsp_ipc_msg_rx(hsw->dsp); in hsw_irq_thread()
834 sst_dsp_read(hsw->dsp, volume, in sst_hsw_stream_get_volume()
900 sst_dsp_read(hsw->dsp, volume, in sst_hsw_mixer_get_volume()
967 struct sst_dsp *sst = hsw->dsp; in sst_hsw_stream_new()
993 struct sst_dsp *sst = hsw->dsp; in sst_hsw_stream_free()
1149 struct sst_dsp *dsp = sst_hsw_get_dsp(hsw); in sst_hsw_stream_set_module_info() local
1163 sst_dsp_get_offset(dsp, runtime->persistent_offset, SST_MEM_DRAM); in sst_hsw_stream_set_module_info()
1167 sst_dsp_get_offset(dsp, dsp->scratch_offset, SST_MEM_DRAM); in sst_hsw_stream_set_module_info()
1168 stream->request.scratch_mem.size = dsp->scratch_size; in sst_hsw_stream_set_module_info()
1361 sst_dsp_read(hsw->dsp, &rpos, in sst_hsw_get_dsp_position()
1373 sst_dsp_read(hsw->dsp, &ppos, in sst_hsw_get_dsp_presentation_position()
1453 struct sst_dsp *dsp = hsw->dsp; in sst_hsw_runtime_module_create() local
1458 module = sst_module_get_from_id(dsp, mod_id); in sst_hsw_runtime_module_create()
1460 dev_err(dsp->dev, "error: failed to get module %d for pcm\n", in sst_hsw_runtime_module_create()
1467 dev_err(dsp->dev, "error: failed to create module %d runtime\n", in sst_hsw_runtime_module_create()
1474 dev_err(dsp->dev, "error: failed to alloc blocks for module %d runtime\n", in sst_hsw_runtime_module_create()
1480 dev_dbg(dsp->dev, "runtime id %d created for module %d\n", runtime->id, in sst_hsw_runtime_module_create()
1494 struct sst_dsp *sst = hsw->dsp; in sst_hsw_dx_state_dump()
1547 struct sst_dsp *sst = hsw->dsp; in sst_hsw_dx_state_restore()
1576 struct sst_dsp *dsp = hsw->dsp; in sst_hsw_dsp_load() local
1582 ret = sst_dsp_wake(dsp); in sst_hsw_dsp_load()
1588 ret = sst_dsp_dma_get_channel(dsp, 0); in sst_hsw_dsp_load()
1594 list_for_each_entry_safe_reverse(sst_fw, t, &dsp->fw_list, list) { in sst_hsw_dsp_load()
1598 sst_dsp_dma_put_channel(dsp); in sst_hsw_dsp_load()
1602 ret = sst_block_alloc_scratch(hsw->dsp); in sst_hsw_dsp_load()
1606 sst_dsp_dma_put_channel(dsp); in sst_hsw_dsp_load()
1612 struct sst_dsp *dsp = hsw->dsp; in sst_hsw_dsp_restore() local
1617 ret = sst_dsp_dma_get_channel(dsp, 0); in sst_hsw_dsp_restore()
1626 sst_dsp_dma_put_channel(dsp); in sst_hsw_dsp_restore()
1629 sst_dsp_dma_put_channel(dsp); in sst_hsw_dsp_restore()
1632 sst_dsp_boot(dsp); in sst_hsw_dsp_restore()
1647 sst_dsp_stall(hsw->dsp); in sst_hsw_dsp_runtime_suspend()
1661 struct sst_dsp *dsp = hsw->dsp; in sst_hsw_dsp_runtime_sleep() local
1663 list_for_each_entry_safe(sst_fw, t, &dsp->fw_list, list) { in sst_hsw_dsp_runtime_sleep()
1666 sst_block_free_scratch(dsp); in sst_hsw_dsp_runtime_sleep()
1670 sst_dsp_sleep(dsp); in sst_hsw_dsp_runtime_sleep()
1695 sst_dsp_shim_read_unlocked(hsw->dsp, SST_IPCD), in sst_hsw_dsp_runtime_resume()
1696 sst_dsp_shim_read_unlocked(hsw->dsp, SST_IPCX)); in sst_hsw_dsp_runtime_resume()
1713 return hsw->dsp; in sst_hsw_get_dsp()
1723 module = sst_module_get_from_id(hsw->dsp, id); in sst_hsw_init_module_state()
1738 module = sst_module_get_from_id(hsw->dsp, module_id); in sst_hsw_is_module_loaded()
1749 module = sst_module_get_from_id(hsw->dsp, module_id); in sst_hsw_is_module_active()
1840 struct sst_dsp *dsp = hsw->dsp; in sst_hsw_module_load() local
1844 module = sst_module_get_from_id(dsp, module_id); in sst_hsw_module_load()
1849 fw = dsp->pdata->fw; in sst_hsw_module_load()
1865 hsw_sst_fw = sst_fw_new(dsp, fw, hsw); in sst_hsw_module_load()
1871 module = sst_module_get_from_id(dsp, module_id); in sst_hsw_module_load()
1896 struct sst_dsp *dsp = hsw->dsp; in sst_hsw_module_enable() local
1908 module = sst_module_get_from_id(dsp, module_id); in sst_hsw_module_enable()
1930 sst_dsp_get_offset(dsp, in sst_hsw_module_enable()
1935 sst_dsp_get_offset(dsp, in sst_hsw_module_enable()
1936 dsp->scratch_offset, SST_MEM_DRAM); in sst_hsw_module_enable()
1963 struct sst_dsp *dsp = hsw->dsp; in sst_hsw_module_disable() local
1975 module = sst_module_get_from_id(dsp, module_id); in sst_hsw_module_disable()
2056 sst_dsp_outbox_write(ipc->dsp, msg->tx.data, msg->tx.size); in hsw_tx_msg()
2057 sst_dsp_ipc_msg_tx(ipc->dsp, msg->tx.header); in hsw_tx_msg()
2062 struct sst_dsp *sst = ipc->dsp; in hsw_shim_dbg()
2090 static bool hsw_is_dsp_busy(struct sst_dsp *dsp) in hsw_is_dsp_busy() argument
2094 ipcx = sst_dsp_shim_read_unlocked(dsp, SST_IPCX); in hsw_is_dsp_busy()
2133 hsw->dsp = sst_dsp_new(dev, &hsw_dev, pdata); in sst_hsw_dsp_init()
2134 if (hsw->dsp == NULL) { in sst_hsw_dsp_init()
2139 ipc->dsp = hsw->dsp; in sst_hsw_dsp_init()
2142 hsw->dx_context = dma_alloc_coherent(hsw->dsp->dma_dev, in sst_hsw_dsp_init()
2150 sst_dsp_reset(hsw->dsp); in sst_hsw_dsp_init()
2161 ret = sst_block_alloc_scratch(hsw->dsp); in sst_hsw_dsp_init()
2169 sst_dsp_boot(hsw->dsp); in sst_hsw_dsp_init()
2175 sst_dsp_shim_read_unlocked(hsw->dsp, SST_IPCD), in sst_hsw_dsp_init()
2176 sst_dsp_shim_read_unlocked(hsw->dsp, SST_IPCX)); in sst_hsw_dsp_init()
2193 pdata->dsp = hsw; in sst_hsw_dsp_init()
2197 sst_dsp_reset(hsw->dsp); in sst_hsw_dsp_init()
2198 sst_fw_free_all(hsw->dsp); in sst_hsw_dsp_init()
2200 dma_free_coherent(hsw->dsp->dma_dev, SST_HSW_DX_CONTEXT_SIZE, in sst_hsw_dsp_init()
2203 sst_dsp_free(hsw->dsp); in sst_hsw_dsp_init()
2213 struct sst_hsw *hsw = pdata->dsp; in sst_hsw_dsp_free()
2215 sst_dsp_reset(hsw->dsp); in sst_hsw_dsp_free()
2216 sst_fw_free_all(hsw->dsp); in sst_hsw_dsp_free()
2217 dma_free_coherent(hsw->dsp->dma_dev, SST_HSW_DX_CONTEXT_SIZE, in sst_hsw_dsp_free()
2219 sst_dsp_free(hsw->dsp); in sst_hsw_dsp_free()