/sound/soc/intel/common/ |
D | sst-firmware.c | 114 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 …]
|
D | sst-dsp-priv.h | 114 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 …]
|
D | sst-dsp.h | 216 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 …]
|
D | sst-ipc.c | 65 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 …]
|
D | Makefile | 1 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
|
D | sst-ipc.h | 54 bool (*is_dsp_busy)(struct sst_dsp *dsp); 60 struct sst_dsp *dsp; member
|
/sound/soc/codecs/ |
D | wm_adsp.c | 241 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 …]
|
D | wm_adsp.h | 88 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);
|
D | wm2200.c | 87 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/ |
D | sst-haswell-ipc.c | 282 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 …]
|
D | sst-haswell-dsp.c | 88 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/ |
D | sst-baytrail-ipc.c | 171 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 …]
|
D | sst-baytrail-dsp.c | 65 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 …]
|
D | Makefile | 2 sst-baytrail-ipc.o sst-baytrail-pcm.o sst-baytrail-dsp.o
|
/sound/soc/intel/skylake/ |
D | skl-sst-ipc.c | 258 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 …]
|
D | skl-sst.c | 226 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()
|
D | skl-sst-ipc.h | 50 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);
|
D | skl-sst-dsp.c | 334 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()
|
D | skl-sst-dsp.h | 138 void skl_dsp_free(struct sst_dsp *dsp); 142 struct skl_dsp_loader_ops dsp_ops, struct skl_sst **dsp);
|
/sound/pci/mixart/ |
D | mixart_hwdep.c | 102 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/ |
D | usX2Yhwdep.c | 199 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/ |
D | Makefile | 7 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/ |
D | pcxhr_hwdep.c | 290 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()
|
D | pcxhr_core.c | 333 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/ |
D | sst_pvt.c | 324 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()
|