Home
last modified time | relevance | path

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

12

/sound/soc/intel/common/
Dsst-firmware.c114 static void block_list_remove(struct sst_dsp *dsp, in block_list_remove() argument
126 dev_err(dsp->dev, in block_list_remove()
135 list_move(&block->list, &dsp->free_block_list); in block_list_remove()
136 dev_dbg(dsp->dev, "block freed %d:%d at offset 0x%x\n", in block_list_remove()
142 static int block_list_prepare(struct sst_dsp *dsp, in block_list_prepare() argument
154 dev_err(dsp->dev, in block_list_prepare()
206 struct sst_dsp *dsp = (struct sst_dsp *)param; in dma_chan_filter() local
208 return chan->device->dev == dsp->dma_dev; in dma_chan_filter()
211 int sst_dsp_dma_get_channel(struct sst_dsp *dsp, int chan_id) in sst_dsp_dma_get_channel() argument
213 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
339 struct sst_fw *sst_fw_new(struct sst_dsp *dsp,
342 void sst_fw_free_all(struct sst_dsp *dsp);
350 struct sst_module *sst_module_get_from_id(struct sst_dsp *dsp, u32 id);
369 int sst_alloc_blocks(struct sst_dsp *dsp, struct sst_block_allocator *ba,
371 int sst_free_blocks(struct sst_dsp *dsp, struct list_head *block_list);
374 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
6 snd-soc-sst-dsp-objs += sst-firmware.o
9 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
/sound/soc/codecs/
Dwm_adsp.c241 struct wm_adsp *dsp; member
253 static void wm_adsp_debugfs_save_wmfwname(struct wm_adsp *dsp, const char *s) in wm_adsp_debugfs_save_wmfwname() argument
257 mutex_lock(&dsp->debugfs_lock); in wm_adsp_debugfs_save_wmfwname()
258 kfree(dsp->wmfw_file_name); in wm_adsp_debugfs_save_wmfwname()
259 dsp->wmfw_file_name = tmp; in wm_adsp_debugfs_save_wmfwname()
260 mutex_unlock(&dsp->debugfs_lock); in wm_adsp_debugfs_save_wmfwname()
263 static void wm_adsp_debugfs_save_binname(struct wm_adsp *dsp, const char *s) in wm_adsp_debugfs_save_binname() argument
267 mutex_lock(&dsp->debugfs_lock); in wm_adsp_debugfs_save_binname()
268 kfree(dsp->bin_file_name); in wm_adsp_debugfs_save_binname()
269 dsp->bin_file_name = tmp; in wm_adsp_debugfs_save_binname()
[all …]
Dwm_adsp.h88 int wm_adsp1_init(struct wm_adsp *dsp);
89 int wm_adsp2_init(struct wm_adsp *dsp);
90 int wm_adsp2_codec_probe(struct wm_adsp *dsp, struct snd_soc_codec *codec);
91 int wm_adsp2_codec_remove(struct wm_adsp *dsp, struct snd_soc_codec *codec);
Dwm2200.c87 struct wm_adsp dsp[2]; member
2217 wm2200->dsp[i].type = WMFW_ADSP1; in wm2200_i2c_probe()
2218 wm2200->dsp[i].part = "wm2200"; in wm2200_i2c_probe()
2219 wm2200->dsp[i].num = i + 1; in wm2200_i2c_probe()
2220 wm2200->dsp[i].dev = &i2c->dev; in wm2200_i2c_probe()
2221 wm2200->dsp[i].regmap = wm2200->regmap; in wm2200_i2c_probe()
2222 wm2200->dsp[i].sysclk_reg = WM2200_CLOCKING_3; in wm2200_i2c_probe()
2223 wm2200->dsp[i].sysclk_mask = WM2200_SYSCLK_FREQ_MASK; in wm2200_i2c_probe()
2224 wm2200->dsp[i].sysclk_shift = WM2200_SYSCLK_FREQ_SHIFT; in wm2200_i2c_probe()
2227 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
260 sst_dsp_inbox_read(byt->dsp, msg->rx_data, msg->rx_size); in sst_byt_process_reply()
284 struct sst_dsp *sst = byt->dsp; in sst_byt_process_notification()
358 struct sst_dsp *sst = byt->dsp; in sst_byt_stream_new()
451 struct sst_dsp *sst = byt->dsp; in sst_byt_stream_free()
559 struct sst_dsp *sst = byt->dsp; in sst_byt_get_dsp_position()
573 return byt->dsp; in sst_byt_get_dsp()
583 struct sst_byt *byt = pdata->dsp; in sst_byt_dsp_suspend_late()
586 sst_dsp_reset(byt->dsp); in sst_byt_dsp_suspend_late()
599 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 …]
DMakefile2 sst-baytrail-ipc.o sst-baytrail-pcm.o sst-baytrail-dsp.o
/sound/soc/intel/skylake/
Dskl-sst-ipc.c258 static bool skl_ipc_is_dsp_busy(struct sst_dsp *dsp) in skl_ipc_is_dsp_busy() argument
262 hipci = sst_dsp_shim_read_unlocked(dsp, SKL_ADSP_REG_HIPCI); in skl_ipc_is_dsp_busy()
272 sst_dsp_outbox_write(ipc->dsp, msg->tx_data, msg->tx_size); in skl_ipc_tx_msg()
273 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCIE, in skl_ipc_tx_msg()
275 sst_dsp_shim_write_unlocked(ipc->dsp, SKL_ADSP_REG_HIPCI, in skl_ipc_tx_msg()
368 ipc->dsp->fw_ops.get_fw_errcode(ipc->dsp)); in skl_ipc_process_reply()
377 struct sst_dsp *dsp = context; in skl_dsp_irq_thread_handler() local
378 struct skl_sst *skl = sst_dsp_get_thread_context(dsp); in skl_dsp_irq_thread_handler()
384 if (dsp->intr_status & SKL_ADSPIS_CL_DMA) in skl_dsp_irq_thread_handler()
385 skl_cldma_process_intr(dsp); in skl_dsp_irq_thread_handler()
[all …]
Dskl-sst.c226 struct skl_dsp_loader_ops dsp_ops, struct skl_sst **dsp) in skl_sst_dsp_init() argument
239 skl->dsp = skl_dsp_ctx_init(dev, &skl_dev, irq); in skl_sst_dsp_init()
240 if (!skl->dsp) { in skl_sst_dsp_init()
245 sst = skl->dsp; in skl_sst_dsp_init()
265 if (dsp) in skl_sst_dsp_init()
266 *dsp = skl; in skl_sst_dsp_init()
278 ctx->dsp->cl_dev.ops.cl_cleanup_controller(ctx->dsp); in skl_sst_dsp_cleanup()
279 ctx->dsp->ops->free(ctx->dsp); in skl_sst_dsp_cleanup()
Dskl-sst-ipc.h50 struct sst_dsp *dsp; member
117 void skl_ipc_int_enable(struct sst_dsp *dsp);
120 void skl_ipc_int_disable(struct sst_dsp *dsp);
122 bool skl_ipc_int_status(struct sst_dsp *dsp);
Dskl-sst-dsp.c334 void skl_dsp_free(struct sst_dsp *dsp) in skl_dsp_free() argument
336 skl_ipc_int_disable(dsp); in skl_dsp_free()
338 free_irq(dsp->irq, dsp); in skl_dsp_free()
339 skl_dsp_disable_core(dsp); in skl_dsp_free()
Dskl-sst-dsp.h138 void skl_dsp_free(struct sst_dsp *dsp);
142 struct skl_dsp_loader_ops dsp_ops, 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()
Dpcxhr_core.c333 static int pcxhr_download_dsp(struct pcxhr_mgr *mgr, const struct firmware *dsp) in pcxhr_download_dsp() argument
341 if (dsp->size <= 0) in pcxhr_download_dsp()
343 if (dsp->size % 3) in pcxhr_download_dsp()
345 if (snd_BUG_ON(!dsp->data)) in pcxhr_download_dsp()
348 for (i = 0; i < dsp->size; i += 3) { in pcxhr_download_dsp()
349 data = dsp->data + i; in pcxhr_download_dsp()
355 if (len && (dsp->size != (len + 2) * 3)) in pcxhr_download_dsp()
445 int pcxhr_load_dsp_binary(struct pcxhr_mgr *mgr, const struct firmware *dsp) in pcxhr_load_dsp_binary() argument
455 err = pcxhr_download_dsp(mgr, dsp); in pcxhr_load_dsp_binary()
/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()

12