/sound/soc/intel/common/ |
D | sst-firmware.c | 128 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 …]
|
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 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 …]
|
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 7 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
|
D | sst-dsp.c | 342 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/ |
D | wm_adsp.c | 279 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 …]
|
D | wm_adsp.h | 100 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);
|
D | wm2200.c | 87 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/ |
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 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 …]
|
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 …]
|
/sound/soc/intel/skylake/ |
D | skl-sst-ipc.c | 271 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 …]
|
D | skl-sst.c | 452 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 …]
|
D | bxt-sst.c | 438 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 …]
|
D | skl-sst-ipc.h | 58 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);
|
D | skl-sst-dsp.c | 448 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()
|
D | skl-sst-dsp.h | 197 void skl_dsp_free(struct sst_dsp *dsp); 205 struct skl_sst **dsp); 208 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()
|
/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()
|