Home
last modified time | relevance | path

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

/sound/soc/intel/common/
Dsst-dsp.c77 void sst_memcpy_toio_32(struct sst_dsp *sst, in sst_memcpy_toio_32() argument
84 void sst_memcpy_fromio_32(struct sst_dsp *sst, void *dest, in sst_memcpy_fromio_32() argument
92 void sst_dsp_shim_write(struct sst_dsp *sst, u32 offset, u32 value) in sst_dsp_shim_write() argument
96 spin_lock_irqsave(&sst->spinlock, flags); in sst_dsp_shim_write()
97 sst->ops->write(sst->addr.shim, offset, value); in sst_dsp_shim_write()
98 spin_unlock_irqrestore(&sst->spinlock, flags); in sst_dsp_shim_write()
102 u32 sst_dsp_shim_read(struct sst_dsp *sst, u32 offset) in sst_dsp_shim_read() argument
107 spin_lock_irqsave(&sst->spinlock, flags); in sst_dsp_shim_read()
108 val = sst->ops->read(sst->addr.shim, offset); in sst_dsp_shim_read()
109 spin_unlock_irqrestore(&sst->spinlock, flags); in sst_dsp_shim_read()
[all …]
DMakefile1 snd-soc-sst-dsp-objs := sst-dsp.o
2 snd-soc-sst-acpi-objs := sst-acpi.o
3 snd-soc-sst-ipc-objs := sst-ipc.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
10 obj-$(CONFIG_SND_SOC_INTEL_SST_ACPI) += snd-soc-sst-acpi.o
Dsst-dsp.h223 void sst_dsp_free(struct sst_dsp *sst);
227 void sst_dsp_shim_write(struct sst_dsp *sst, u32 offset, u32 value);
228 u32 sst_dsp_shim_read(struct sst_dsp *sst, u32 offset);
229 int sst_dsp_shim_update_bits(struct sst_dsp *sst, u32 offset,
231 void sst_dsp_shim_write64(struct sst_dsp *sst, u32 offset, u64 value);
232 u64 sst_dsp_shim_read64(struct sst_dsp *sst, u32 offset);
233 int sst_dsp_shim_update_bits64(struct sst_dsp *sst, u32 offset,
235 void sst_dsp_shim_update_bits_forced(struct sst_dsp *sst, u32 offset,
239 void sst_dsp_shim_write_unlocked(struct sst_dsp *sst, u32 offset, u32 value);
240 u32 sst_dsp_shim_read_unlocked(struct sst_dsp *sst, u32 offset);
[all …]
Dsst-dsp-priv.h52 void (*ram_read)(struct sst_dsp *sst, void *dest, void __iomem *src,
54 void (*ram_write)(struct sst_dsp *sst, void __iomem *dest, void *src,
63 int (*init)(struct sst_dsp *sst, struct sst_pdata *pdata);
64 void (*free)(struct sst_dsp *sst);
321 static inline void sst_dsp_write(struct sst_dsp *sst, void *src, in sst_dsp_write() argument
324 sst->ops->ram_write(sst, sst->addr.lpe + dest_offset, src, bytes); in sst_dsp_write()
327 static inline void sst_dsp_read(struct sst_dsp *sst, void *dest, in sst_dsp_read() argument
330 sst->ops->ram_read(sst, dest, sst->addr.lpe + src_offset, bytes); in sst_dsp_read()
333 static inline void *sst_dsp_get_thread_context(struct sst_dsp *sst) in sst_dsp_get_thread_context() argument
335 return sst->thread_context; in sst_dsp_get_thread_context()
[all …]
Dsst-firmware.c44 struct sst_dsp *sst; member
60 struct sst_dsp *sst = (struct sst_dsp *)arg; in sst_dma_transfer_complete() local
62 dev_dbg(sst->dev, "DMA: callback\n"); in sst_dma_transfer_complete()
65 static int sst_dsp_dma_copy(struct sst_dsp *sst, dma_addr_t dest_addr, in sst_dsp_dma_copy() argument
69 struct sst_dma *dma = sst->dma; in sst_dsp_dma_copy()
72 dev_err(sst->dev, "error: no DMA channel\n"); in sst_dsp_dma_copy()
76 dev_dbg(sst->dev, "DMA: src: 0x%lx dest 0x%lx size %zu\n", in sst_dsp_dma_copy()
82 dev_err(sst->dev, "error: dma prep memcpy failed\n"); in sst_dsp_dma_copy()
87 desc->callback_param = sst; in sst_dsp_dma_copy()
96 int sst_dsp_dma_copyto(struct sst_dsp *sst, dma_addr_t dest_addr, in sst_dsp_dma_copyto() argument
[all …]
/sound/soc/intel/haswell/
Dsst-haswell-dsp.c86 static void hsw_free(struct sst_dsp *sst);
218 struct sst_dsp *sst = (struct sst_dsp *) context; in hsw_irq() local
222 spin_lock(&sst->spinlock); in hsw_irq()
225 isr = sst_dsp_shim_read_unlocked(sst, SST_ISRX); in hsw_irq()
228 sst_dsp_shim_read_unlocked(sst, SST_IMRX)); in hsw_irq()
231 sst_dsp_shim_update_bits_unlocked(sst, SST_IMRX, in hsw_irq()
238 sst_dsp_shim_read_unlocked(sst, SST_IMRX)); in hsw_irq()
241 sst_dsp_shim_update_bits_unlocked(sst, SST_IMRX, in hsw_irq()
246 spin_unlock(&sst->spinlock); in hsw_irq()
250 static void hsw_set_dsp_D3(struct sst_dsp *sst) in hsw_set_dsp_D3() argument
[all …]
DMakefile1 snd-soc-sst-haswell-pcm-objs := \
2 sst-haswell-ipc.o sst-haswell-pcm.o sst-haswell-dsp.o
4 obj-$(CONFIG_SND_SOC_INTEL_HASWELL) += snd-soc-sst-haswell-pcm.o
Dsst-haswell-ipc.c726 struct sst_dsp *sst = hsw->dsp; in hsw_process_notification() local
730 header = sst_dsp_shim_read_unlocked(sst, SST_IPCD); in hsw_process_notification()
777 struct sst_dsp *sst = (struct sst_dsp *) context; in hsw_irq_thread() local
778 struct sst_hsw *hsw = sst_dsp_get_thread_context(sst); in hsw_irq_thread()
784 spin_lock_irqsave(&sst->spinlock, flags); in hsw_irq_thread()
787 ipcd = sst_dsp_shim_read_unlocked(sst, SST_IPCD); in hsw_irq_thread()
797 sst_dsp_shim_update_bits_unlocked(sst, SST_IPCX, in hsw_irq_thread()
801 sst_dsp_shim_update_bits_unlocked(sst, SST_IMRX, in hsw_irq_thread()
814 sst_dsp_shim_update_bits_unlocked(sst, SST_IPCD, in hsw_irq_thread()
818 sst_dsp_shim_update_bits_unlocked(sst, SST_IMRX, in hsw_irq_thread()
[all …]
/sound/soc/intel/baytrail/
Dsst-baytrail-dsp.c159 static void sst_byt_dump_shim(struct sst_dsp *sst) in sst_byt_dump_shim() argument
165 reg = sst_dsp_shim_read64_unlocked(sst, i); in sst_byt_dump_shim()
167 dev_dbg(sst->dev, "shim 0x%2.2x value 0x%16.16llx\n", in sst_byt_dump_shim()
172 reg = readl(sst->addr.pci_cfg + i); in sst_byt_dump_shim()
174 dev_dbg(sst->dev, "pci 0x%2.2x value 0x%8.8x\n", in sst_byt_dump_shim()
181 struct sst_dsp *sst = (struct sst_dsp *) context; in sst_byt_irq() local
185 spin_lock(&sst->spinlock); in sst_byt_irq()
187 isrx = sst_dsp_shim_read64_unlocked(sst, SST_ISRX); in sst_byt_irq()
190 sst_dsp_shim_update_bits64_unlocked(sst, SST_IPCX, in sst_byt_irq()
196 sst_dsp_shim_update_bits64_unlocked(sst, SST_IMRX, in sst_byt_irq()
[all …]
DMakefile1 snd-soc-sst-baytrail-pcm-objs := \
2 sst-baytrail-ipc.o sst-baytrail-pcm.o sst-baytrail-dsp.o
4 obj-$(CONFIG_SND_SOC_INTEL_BAYTRAIL) += snd-soc-sst-baytrail-pcm.o
Dsst-baytrail-ipc.c284 struct sst_dsp *sst = byt->dsp; in sst_byt_process_notification() local
290 header = sst_dsp_shim_read64_unlocked(sst, SST_IPCD); in sst_byt_process_notification()
298 spin_unlock_irqrestore(&sst->spinlock, *flags); in sst_byt_process_notification()
300 spin_lock_irqsave(&sst->spinlock, *flags); in sst_byt_process_notification()
313 struct sst_dsp *sst = (struct sst_dsp *) context; in sst_byt_irq_thread() local
314 struct sst_byt *byt = sst_dsp_get_thread_context(sst); in sst_byt_irq_thread()
319 spin_lock_irqsave(&sst->spinlock, flags); in sst_byt_irq_thread()
321 header = sst_dsp_shim_read64_unlocked(sst, SST_IPCD); in sst_byt_irq_thread()
335 sst_dsp_shim_update_bits64_unlocked(sst, SST_IPCD, in sst_byt_irq_thread()
340 sst_dsp_shim_update_bits64_unlocked(sst, SST_IMRX, in sst_byt_irq_thread()
[all …]
/sound/soc/intel/boards/
DMakefile1 snd-soc-sst-haswell-objs := haswell.o
2 snd-soc-sst-byt-rt5640-mach-objs := byt-rt5640.o
3 snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o
4 snd-soc-sst-broadwell-objs := broadwell.o
5 snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
6 snd-soc-sst-cht-bsw-rt5672-objs := cht_bsw_rt5672.o
7 snd-soc-sst-cht-bsw-rt5645-objs := cht_bsw_rt5645.o
8 snd-soc-sst-cht-bsw-max98090_ti-objs := cht_bsw_max98090_ti.o
11 obj-$(CONFIG_SND_SOC_INTEL_HASWELL_MACH) += snd-soc-sst-haswell.o
12 obj-$(CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH) += snd-soc-sst-byt-rt5640-mach.o
[all …]
/sound/soc/intel/skylake/
Dskl-sst-dsp.c301 struct sst_dsp *sst; in skl_dsp_ctx_init() local
303 sst = devm_kzalloc(dev, sizeof(*sst), GFP_KERNEL); in skl_dsp_ctx_init()
304 if (sst == NULL) in skl_dsp_ctx_init()
307 spin_lock_init(&sst->spinlock); in skl_dsp_ctx_init()
308 mutex_init(&sst->mutex); in skl_dsp_ctx_init()
309 sst->dev = dev; in skl_dsp_ctx_init()
310 sst->sst_dev = sst_dev; in skl_dsp_ctx_init()
311 sst->irq = irq; in skl_dsp_ctx_init()
312 sst->ops = sst_dev->ops; in skl_dsp_ctx_init()
313 sst->thread_context = sst_dev->thread_context; in skl_dsp_ctx_init()
[all …]
DMakefile7 snd-soc-skl-ipc-objs := skl-sst-ipc.o skl-sst-dsp.o skl-sst-cldma.o \
8 skl-sst.o
Dskl-sst.c229 struct sst_dsp *sst; in skl_sst_dsp_init() local
245 sst = skl->dsp; in skl_sst_dsp_init()
247 sst->addr.lpe = mmio_base; in skl_sst_dsp_init()
248 sst->addr.shim = mmio_base; in skl_sst_dsp_init()
249 sst_dsp_mailbox_init(sst, (SKL_ADSP_SRAM0_BASE + SKL_ADSP_W0_STAT_SZ), in skl_sst_dsp_init()
252 sst->dsp_ops = dsp_ops; in skl_sst_dsp_init()
253 sst->fw_ops = skl_fw_ops; in skl_sst_dsp_init()
259 ret = sst->fw_ops.load_fw(sst); in skl_sst_dsp_init()
/sound/soc/intel/atom/
Dsst-mfld-platform-compress.c64 if (!sst || !try_module_get(sst->dev->driver->owner)) { in sst_platform_compr_open()
69 stream->compr_ops = sst->compr_ops; in sst_platform_compr_open()
73 sst->compr_ops->power(sst->dev, true); in sst_platform_compr_open()
90 sst->compr_ops->power(sst->dev, false); in sst_platform_compr_free()
95 ret_val = stream->compr_ops->close(sst->dev, str_id); in sst_platform_compr_free()
96 module_put(sst->dev->driver->owner); in sst_platform_compr_free()
167 retval = stream->compr_ops->open(sst->dev, &str_params, &cb); in sst_platform_compr_set_params()
184 return stream->compr_ops->stream_start(sst->dev, stream->id); in sst_platform_compr_trigger()
187 return stream->compr_ops->stream_drop(sst->dev, stream->id); in sst_platform_compr_trigger()
190 return stream->compr_ops->stream_drain(sst->dev, stream->id); in sst_platform_compr_trigger()
[all …]
DMakefile1 snd-soc-sst-mfld-platform-objs := sst-mfld-platform-pcm.o \
2 sst-mfld-platform-compress.o sst-atom-controls.o
4 obj-$(CONFIG_SND_SST_MFLD_PLATFORM) += snd-soc-sst-mfld-platform.o
7 obj-$(CONFIG_SND_SST_IPC) += sst/
Dsst-mfld-platform-pcm.c34 struct sst_device *sst; variable
44 if (sst) { in sst_register_dsp()
45 dev_err(dev->dev, "we already have a device %s\n", sst->name); in sst_register_dsp()
51 sst = dev; in sst_register_dsp()
61 if (dev != sst) in sst_unregister_dsp()
66 if (!sst) { in sst_unregister_dsp()
71 module_put(sst->dev->driver->owner); in sst_unregister_dsp()
72 dev_dbg(dev->dev, "unreg %s\n", sst->name); in sst_unregister_dsp()
73 sst = NULL; in sst_unregister_dsp()
254 ret_val = stream->ops->open(sst->dev, &str_params); in sst_platform_alloc_stream()
[all …]
Dsst-mfld-platform.h27 extern struct sst_device *sst;
182 int sst_register_dsp(struct sst_device *sst);
183 int sst_unregister_dsp(struct sst_device *sst);
Dsst-atom-controls.c65 return sst->ops->send_byte_stream(sst->dev, drv->byte_stream); in sst_fill_and_send_cmd_unlocked()
745 ret = sst->ops->power(sst->dev, true); in sst_handle_vb_timer()
773 sst->ops->power(sst->dev, false); in sst_handle_vb_timer()
/sound/soc/intel/atom/sst/
Dsst_pvt.c229 int sst_prepare_and_post_msg(struct intel_sst_drv *sst, in sst_prepare_and_post_msg() argument
239 pvt_id = sst_assign_pvt_id(sst); in sst_prepare_and_post_msg()
245 &msg, large, sst, &block, ipc_msg, pvt_id); in sst_prepare_and_post_msg()
250 test_and_clear_bit(pvt_id, &sst->pvt_id); in sst_prepare_and_post_msg()
254 dev_dbg(sst->dev, "pvt_id = %d, pipe id = %d, task = %d ipc_msg: %d\n", in sst_prepare_and_post_msg()
260 dev_dbg(sst->dev, "header:%x\n", in sst_prepare_and_post_msg()
262 dev_dbg(sst->dev, "response rqd: %x", in sst_prepare_and_post_msg()
264 dev_dbg(sst->dev, "msg->mrfld_header.p.header_low_payload:%d", in sst_prepare_and_post_msg()
276 sst->ops->post_message(sst, msg, true); in sst_prepare_and_post_msg()
278 sst_add_to_dispatch_list_and_post(sst, msg); in sst_prepare_and_post_msg()
[all …]
Dsst_loader.c294 static int sst_cache_and_parse_fw(struct intel_sst_drv *sst, in sst_cache_and_parse_fw() argument
299 sst->fw_in_mem = kzalloc(fw->size, GFP_KERNEL); in sst_cache_and_parse_fw()
300 if (!sst->fw_in_mem) { in sst_cache_and_parse_fw()
304 dev_dbg(sst->dev, "copied fw to %p", sst->fw_in_mem); in sst_cache_and_parse_fw()
305 dev_dbg(sst->dev, "phys: %lx", (unsigned long)virt_to_phys(sst->fw_in_mem)); in sst_cache_and_parse_fw()
306 memcpy(sst->fw_in_mem, fw->data, fw->size); in sst_cache_and_parse_fw()
307 retval = sst_parse_fw_memcpy(sst, fw->size, &sst->memcpy_list); in sst_cache_and_parse_fw()
309 dev_err(sst->dev, "Failed to parse fw\n"); in sst_cache_and_parse_fw()
310 kfree(sst->fw_in_mem); in sst_cache_and_parse_fw()
311 sst->fw_in_mem = NULL; in sst_cache_and_parse_fw()
[all …]
DMakefile1 snd-intel-sst-core-objs := sst.o sst_ipc.o sst_stream.o sst_drv_interface.o sst_loader.o sst_pvt.o
2 snd-intel-sst-pci-objs += sst_pci.o
3 snd-intel-sst-acpi-objs += sst_acpi.o
5 obj-$(CONFIG_SND_SST_IPC) += snd-intel-sst-core.o
6 obj-$(CONFIG_SND_SST_IPC_PCI) += snd-intel-sst-pci.o
7 obj-$(CONFIG_SND_SST_IPC_ACPI) += snd-intel-sst-acpi.o
Dsst.h456 int (*save_dsp_context)(struct intel_sst_drv *sst);
459 void (*post_download)(struct intel_sst_drv *sst);
498 int intel_sst_register_compress(struct intel_sst_drv *sst);
499 int intel_sst_remove_compress(struct intel_sst_drv *sst);
515 int sst_driver_ops(struct intel_sst_drv *sst);
518 int sst_prepare_and_post_msg(struct intel_sst_drv *sst,
533 void sst_add_to_dispatch_list_and_post(struct intel_sst_drv *sst,
Dsst.c150 static int sst_save_dsp_context_v2(struct intel_sst_drv *sst) in sst_save_dsp_context_v2() argument
154 ret = sst_prepare_and_post_msg(sst, SST_TASK_ID_MEDIA, IPC_CMD, in sst_save_dsp_context_v2()
159 dev_err(sst->dev, "not suspending FW!!, Err: %d\n", ret); in sst_save_dsp_context_v2()
180 int sst_driver_ops(struct intel_sst_drv *sst) in sst_driver_ops() argument
183 switch (sst->dev_id) { in sst_driver_ops()
187 sst->tstamp = SST_TIME_STAMP_MRFLD; in sst_driver_ops()
188 sst->ops = &mrfld_ops; in sst_driver_ops()
192 dev_err(sst->dev, in sst_driver_ops()
193 "SST Driver capablities missing for dev_id: %x", sst->dev_id); in sst_driver_ops()