Home
last modified time | relevance | path

Searched refs:dsp (Results 1 – 25 of 51) sorted by relevance

123

/sound/soc/intel/common/
Dsst-firmware.c128 static void block_list_remove(struct sst_dsp *dsp, in block_list_remove() argument
140 dev_err(dsp->dev, in block_list_remove()
149 list_move(&block->list, &dsp->free_block_list); in block_list_remove()
150 dev_dbg(dsp->dev, "block freed %d:%d at offset 0x%x\n", in block_list_remove()
156 static int block_list_prepare(struct sst_dsp *dsp, in block_list_prepare() argument
168 dev_err(dsp->dev, in block_list_prepare()
220 struct sst_dsp *dsp = (struct sst_dsp *)param; in dma_chan_filter() local
222 return chan->device->dev == dsp->dma_dev; in dma_chan_filter()
225 int sst_dsp_dma_get_channel(struct sst_dsp *dsp, int chan_id) in sst_dsp_dma_get_channel() argument
227 struct sst_dma *dma = dsp->dma; in sst_dsp_dma_get_channel()
[all …]
Dsst-dsp-priv.h114 struct sst_dsp *dsp; member
156 struct sst_dsp *dsp; member
195 struct sst_dsp *dsp; member
238 struct sst_dsp *dsp; member
342 struct sst_fw *sst_fw_new(struct sst_dsp *dsp,
345 void sst_fw_free_all(struct sst_dsp *dsp);
353 struct sst_module *sst_module_get_from_id(struct sst_dsp *dsp, u32 id);
372 int sst_alloc_blocks(struct sst_dsp *dsp, struct sst_block_allocator *ba,
374 int sst_free_blocks(struct sst_dsp *dsp, struct list_head *block_list);
377 int sst_block_alloc_scratch(struct sst_dsp *dsp);
[all …]
Dsst-dsp.h216 void *dsp; member
268 int sst_dsp_dma_get_channel(struct sst_dsp *dsp, int chan_id);
269 void sst_dsp_dma_put_channel(struct sst_dsp *dsp);
276 void sst_dsp_ipc_msg_tx(struct sst_dsp *dsp, u32 msg);
277 u32 sst_dsp_ipc_msg_rx(struct sst_dsp *dsp);
280 int sst_dsp_mailbox_init(struct sst_dsp *dsp, u32 inbox_offset,
282 void sst_dsp_inbox_write(struct sst_dsp *dsp, void *message, size_t bytes);
283 void sst_dsp_inbox_read(struct sst_dsp *dsp, void *message, size_t bytes);
284 void sst_dsp_outbox_write(struct sst_dsp *dsp, void *message, size_t bytes);
285 void sst_dsp_outbox_read(struct sst_dsp *dsp, void *message, size_t bytes);
[all …]
Dsst-ipc.c65 spin_lock_irqsave(&ipc->dsp->spinlock, flags); in tx_wait_done()
81 spin_unlock_irqrestore(&ipc->dsp->spinlock, flags); in tx_wait_done()
92 spin_lock_irqsave(&ipc->dsp->spinlock, flags); in ipc_tx_message()
96 spin_unlock_irqrestore(&ipc->dsp->spinlock, flags); in ipc_tx_message()
112 spin_unlock_irqrestore(&ipc->dsp->spinlock, flags); in ipc_tx_message()
166 spin_lock_irqsave(&ipc->dsp->spinlock, flags); in ipc_tx_msgs()
169 spin_unlock_irqrestore(&ipc->dsp->spinlock, flags); in ipc_tx_msgs()
175 if (ipc->ops.is_dsp_busy && ipc->ops.is_dsp_busy(ipc->dsp)) { in ipc_tx_msgs()
177 spin_unlock_irqrestore(&ipc->dsp->spinlock, flags); in ipc_tx_msgs()
187 spin_unlock_irqrestore(&ipc->dsp->spinlock, flags); in ipc_tx_msgs()
[all …]
DMakefile1 snd-soc-sst-dsp-objs := sst-dsp.o
7 obj-$(CONFIG_SND_SOC_INTEL_SST) += snd-soc-sst-dsp.o snd-soc-sst-ipc.o
Dsst-ipc.h54 bool (*is_dsp_busy)(struct sst_dsp *dsp);
60 struct sst_dsp *dsp; member
Dsst-dsp.c342 void sst_dsp_ipc_msg_tx(struct sst_dsp *dsp, u32 msg) in sst_dsp_ipc_msg_tx() argument
344 sst_dsp_shim_write_unlocked(dsp, SST_IPCX, msg | SST_IPCX_BUSY); in sst_dsp_ipc_msg_tx()
349 u32 sst_dsp_ipc_msg_rx(struct sst_dsp *dsp) in sst_dsp_ipc_msg_rx() argument
353 msg = sst_dsp_shim_read_unlocked(dsp, SST_IPCX); in sst_dsp_ipc_msg_rx()
/sound/soc/codecs/
Dwm_adsp.c279 struct wm_adsp *dsp; member
292 struct wm_adsp *dsp; member
319 static int wm_adsp_buffer_init(struct wm_adsp *dsp);
320 static int wm_adsp_buffer_free(struct wm_adsp *dsp);
437 struct wm_adsp *dsp; member
450 static void wm_adsp_debugfs_save_wmfwname(struct wm_adsp *dsp, const char *s) in wm_adsp_debugfs_save_wmfwname() argument
454 kfree(dsp->wmfw_file_name); in wm_adsp_debugfs_save_wmfwname()
455 dsp->wmfw_file_name = tmp; in wm_adsp_debugfs_save_wmfwname()
458 static void wm_adsp_debugfs_save_binname(struct wm_adsp *dsp, const char *s) in wm_adsp_debugfs_save_binname() argument
462 kfree(dsp->bin_file_name); in wm_adsp_debugfs_save_binname()
[all …]
Dwm_adsp.h100 int wm_adsp1_init(struct wm_adsp *dsp);
101 int wm_adsp2_init(struct wm_adsp *dsp);
102 void wm_adsp2_remove(struct wm_adsp *dsp);
103 int wm_adsp2_codec_probe(struct wm_adsp *dsp, struct snd_soc_codec *codec);
104 int wm_adsp2_codec_remove(struct wm_adsp *dsp, struct snd_soc_codec *codec);
113 extern int wm_adsp_compr_open(struct wm_adsp *dsp,
121 extern int wm_adsp_compr_handle_irq(struct wm_adsp *dsp);
Dwm2200.c87 struct wm_adsp dsp[2]; member
2219 wm2200->dsp[i].type = WMFW_ADSP1; in wm2200_i2c_probe()
2220 wm2200->dsp[i].part = "wm2200"; in wm2200_i2c_probe()
2221 wm2200->dsp[i].num = i + 1; in wm2200_i2c_probe()
2222 wm2200->dsp[i].dev = &i2c->dev; in wm2200_i2c_probe()
2223 wm2200->dsp[i].regmap = wm2200->regmap; in wm2200_i2c_probe()
2224 wm2200->dsp[i].sysclk_reg = WM2200_CLOCKING_3; in wm2200_i2c_probe()
2225 wm2200->dsp[i].sysclk_mask = WM2200_SYSCLK_FREQ_MASK; in wm2200_i2c_probe()
2226 wm2200->dsp[i].sysclk_shift = WM2200_SYSCLK_FREQ_SHIFT; in wm2200_i2c_probe()
2229 wm2200->dsp[0].base = WM2200_DSP1_CONTROL_1; in wm2200_i2c_probe()
[all …]
/sound/soc/intel/haswell/
Dsst-haswell-ipc.c282 struct sst_dsp *dsp; member
453 sst_dsp_read(hsw->dsp, &fw_ready, offset, sizeof(fw_ready)); in hsw_fw_ready()
455 sst_dsp_mailbox_init(hsw->dsp, fw_ready.inbox_offset, in hsw_fw_ready()
496 sst_dsp_inbox_read(hsw->dsp, glitch, sizeof(*glitch)); in hsw_notification_work()
506 sst_dsp_inbox_read(hsw->dsp, pos, sizeof(*pos)); in hsw_notification_work()
519 sst_dsp_shim_update_bits(hsw->dsp, SST_IPCD, in hsw_notification_work()
523 sst_dsp_shim_update_bits(hsw->dsp, SST_IMRX, SST_IMRX_BUSY, 0); in hsw_notification_work()
580 sst_dsp_inbox_read(hsw->dsp, msg->rx_data, in hsw_process_reply()
585 sst_dsp_outbox_read(hsw->dsp, msg->rx_data, in hsw_process_reply()
716 hsw->dsp, &stream->curr_pos, sizeof(stream->curr_pos)); in hsw_log_message()
[all …]
Dsst-haswell-dsp.c88 static int hsw_parse_module(struct sst_dsp *dsp, struct sst_fw *fw, in hsw_parse_module() argument
107 dev_dbg(dsp->dev, "new module sign 0x%s size 0x%x blocks 0x%x type 0x%x\n", in hsw_parse_module()
110 dev_dbg(dsp->dev, " entrypoint 0x%x\n", module->entry_point); in hsw_parse_module()
111 dev_dbg(dsp->dev, " persistent 0x%x scratch 0x%x\n", in hsw_parse_module()
129 dev_err(dsp->dev, in hsw_parse_module()
137 ram = dsp->addr.lpe; in hsw_parse_module()
139 block->ram_offset + dsp->addr.iram_offset; in hsw_parse_module()
144 ram = dsp->addr.lpe; in hsw_parse_module()
149 dev_err(dsp->dev, "error: bad type 0x%x for block 0x%x\n", in hsw_parse_module()
159 dev_dbg(dsp->dev, "module block %d type 0x%x " in hsw_parse_module()
[all …]
/sound/soc/intel/baytrail/
Dsst-baytrail-ipc.c171 struct sst_dsp *dsp; member
254 sst_dsp_inbox_read(byt->dsp, msg->rx_data, msg->rx_size); in sst_byt_process_reply()
278 struct sst_dsp *sst = byt->dsp; in sst_byt_process_notification()
352 struct sst_dsp *sst = byt->dsp; in sst_byt_stream_new()
445 struct sst_dsp *sst = byt->dsp; in sst_byt_stream_free()
553 struct sst_dsp *sst = byt->dsp; in sst_byt_get_dsp_position()
567 return byt->dsp; in sst_byt_get_dsp()
577 struct sst_byt *byt = pdata->dsp; in sst_byt_dsp_suspend_late()
580 sst_dsp_reset(byt->dsp); in sst_byt_dsp_suspend_late()
593 struct sst_byt *byt = pdata->dsp; in sst_byt_dsp_boot()
[all …]
Dsst-baytrail-dsp.c65 static int sst_byt_parse_module(struct sst_dsp *dsp, struct sst_fw *fw, in sst_byt_parse_module() argument
86 dev_err(dsp->dev, "block %d size invalid\n", count); in sst_byt_parse_module()
93 dsp->addr.iram_offset; in sst_byt_parse_module()
98 dsp->addr.dram_offset; in sst_byt_parse_module()
103 (dsp->addr.fw_ext - dsp->addr.lpe); in sst_byt_parse_module()
107 dev_err(dsp->dev, "wrong ram type 0x%x in block0x%x\n", in sst_byt_parse_module()
126 struct sst_dsp *dsp = sst_fw->dsp; in sst_byt_parse_fw_image() local
136 dev_err(dsp->dev, "Invalid FW sign/filesize mismatch\n"); in sst_byt_parse_fw_image()
140 dev_dbg(dsp->dev, in sst_byt_parse_fw_image()
148 ret = sst_byt_parse_module(dsp, sst_fw, module); in sst_byt_parse_fw_image()
[all …]
/sound/soc/intel/skylake/
Dskl-sst-ipc.c271 static bool skl_ipc_is_dsp_busy(struct sst_dsp *dsp) in skl_ipc_is_dsp_busy() argument
275 hipci = sst_dsp_shim_read_unlocked(dsp, SKL_ADSP_REG_HIPCI); in skl_ipc_is_dsp_busy()
285 sst_dsp_outbox_write(ipc->dsp, msg->tx_data, msg->tx_size); in skl_ipc_tx_msg()
286 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCIE, in skl_ipc_tx_msg()
288 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCI, in skl_ipc_tx_msg()
374 sst_dsp_inbox_read(ipc->dsp, msg->rx_data, msg->rx_size); in skl_ipc_process_reply()
396 ipc->dsp->fw_ops.get_fw_errcode(ipc->dsp)); in skl_ipc_process_reply()
405 struct sst_dsp *dsp = context; in skl_dsp_irq_thread_handler() local
406 struct skl_sst *skl = sst_dsp_get_thread_context(dsp); in skl_dsp_irq_thread_handler()
412 if (dsp->intr_status & SKL_ADSPIS_CL_DMA) in skl_dsp_irq_thread_handler()
[all …]
Dskl-sst.c452 const char *fw_name, struct skl_dsp_loader_ops dsp_ops, struct skl_sst **dsp) in skl_sst_dsp_init() argument
466 skl->dsp = skl_dsp_ctx_init(dev, &skl_dev, irq); in skl_sst_dsp_init()
467 if (!skl->dsp) { in skl_sst_dsp_init()
472 sst = skl->dsp; in skl_sst_dsp_init()
491 if (dsp) in skl_sst_dsp_init()
492 *dsp = skl; in skl_sst_dsp_init()
501 struct sst_dsp *sst = ctx->dsp; in skl_sst_init_fw()
519 if (ctx->dsp->fw) in skl_sst_dsp_cleanup()
520 release_firmware(ctx->dsp->fw); in skl_sst_dsp_cleanup()
521 skl_clear_module_table(ctx->dsp); in skl_sst_dsp_cleanup()
[all …]
Dbxt-sst.c438 struct skl_sst **dsp) in bxt_sst_dsp_init() argument
452 skl->dsp = skl_dsp_ctx_init(dev, &skl_dev, irq); in bxt_sst_dsp_init()
453 if (!skl->dsp) { in bxt_sst_dsp_init()
458 sst = skl->dsp; in bxt_sst_dsp_init()
478 if (dsp) in bxt_sst_dsp_init()
479 *dsp = skl; in bxt_sst_dsp_init()
488 struct sst_dsp *sst = ctx->dsp; in bxt_sst_init_fw()
515 ctx->dsp->cl_dev.ops.cl_cleanup_controller(ctx->dsp); in bxt_sst_dsp_cleanup()
517 if (ctx->dsp->addr.lpe) in bxt_sst_dsp_cleanup()
518 iounmap(ctx->dsp->addr.lpe); in bxt_sst_dsp_cleanup()
[all …]
Dskl-sst-ipc.h58 struct sst_dsp *dsp; member
158 void skl_ipc_int_enable(struct sst_dsp *dsp);
161 void skl_ipc_int_disable(struct sst_dsp *dsp);
163 bool skl_ipc_int_status(struct sst_dsp *dsp);
Dskl-sst-dsp.c448 void skl_dsp_free(struct sst_dsp *dsp) in skl_dsp_free() argument
450 skl_ipc_int_disable(dsp); in skl_dsp_free()
452 free_irq(dsp->irq, dsp); in skl_dsp_free()
453 skl_ipc_op_int_disable(dsp); in skl_dsp_free()
454 skl_dsp_disable_core(dsp, SKL_DSP_CORE0_MASK); in skl_dsp_free()
Dskl-sst-dsp.h197 void skl_dsp_free(struct sst_dsp *dsp);
205 struct skl_sst **dsp);
208 struct skl_sst **dsp);
/sound/pci/mixart/
Dmixart_hwdep.c102 static int mixart_load_elf(struct mixart_mgr *mgr, const struct firmware *dsp ) in mixart_load_elf() argument
108 elf_header = (struct snd_mixart_elf32_ehdr *)dsp->data; in mixart_load_elf()
119 memcpy( &elf_programheader, dsp->data + pos, sizeof(elf_programheader) ); in mixart_load_elf()
124 dsp->data + be32_to_cpu( elf_programheader.p_offset ), in mixart_load_elf()
345 static int mixart_dsp_load(struct mixart_mgr* mgr, int index, const struct firmware *dsp) in mixart_dsp_load() argument
381 if (((u32*)(dsp->data))[0] == 0xffffffff) in mixart_dsp_load()
383 if (dsp->size % 4) in mixart_dsp_load()
392 writel_be( dsp->size, MIXART_MEM( mgr, MIXART_PSEUDOREG_MXLX_SIZE_OFFSET )); in mixart_dsp_load()
395 memcpy_toio( MIXART_MEM( mgr, MIXART_MOTHERBOARD_XLX_BASE_ADDRESS), dsp->data, dsp->size); in mixart_dsp_load()
434 err = mixart_load_elf( mgr, dsp ); in mixart_dsp_load()
[all …]
/sound/usb/usx2y/
DusX2Yhwdep.c199 struct snd_hwdep_dsp_image *dsp) in snd_usX2Y_hwdep_dsp_load() argument
203 snd_printdd( "dsp_load %s\n", dsp->name); in snd_usX2Y_hwdep_dsp_load()
205 if (access_ok(VERIFY_READ, dsp->image, dsp->length)) { in snd_usX2Y_hwdep_dsp_load()
209 buf = memdup_user(dsp->image, dsp->length); in snd_usX2Y_hwdep_dsp_load()
217 err = usb_bulk_msg(dev, usb_sndbulkpipe(dev, 2), buf, dsp->length, &lret, 6000); in snd_usX2Y_hwdep_dsp_load()
222 if (dsp->index == 1) { in snd_usX2Y_hwdep_dsp_load()
/sound/isa/sb/
DMakefile7 snd-sb8-dsp-objs := sb8_main.o sb8_midi.o
8 snd-sb16-dsp-objs := sb16_main.o
18 obj-$(CONFIG_SND_SB16_DSP) += snd-sb16-dsp.o
19 obj-$(CONFIG_SND_SB8_DSP) += snd-sb8-dsp.o
/sound/pci/pcxhr/
Dpcxhr_hwdep.c290 const struct firmware *dsp) in pcxhr_dsp_load() argument
295 "loading dsp [%d] size = %Zd\n", index, dsp->size); in pcxhr_dsp_load()
300 return pcxhr_load_xilinx_binary(mgr, dsp, 0); in pcxhr_dsp_load()
304 return pcxhr_load_xilinx_binary(mgr, dsp, 1); in pcxhr_dsp_load()
308 return pcxhr_load_eeprom_binary(mgr, dsp); in pcxhr_dsp_load()
311 return pcxhr_load_boot_binary(mgr, dsp); in pcxhr_dsp_load()
314 err = pcxhr_load_dsp_binary(mgr, dsp); in pcxhr_dsp_load()
/sound/soc/intel/atom/sst/
Dsst_pvt.c324 void sst_fill_header_dsp(struct ipc_dsp_hdr *dsp, int msg, in sst_fill_header_dsp() argument
327 dsp->cmd_id = msg; in sst_fill_header_dsp()
328 dsp->mod_index_id = 0xff; in sst_fill_header_dsp()
329 dsp->pipe_id = pipe_id; in sst_fill_header_dsp()
330 dsp->length = len; in sst_fill_header_dsp()
331 dsp->mod_id = 0; in sst_fill_header_dsp()

123