/sound/soc/intel/skylake/ |
D | skl.h | 48 struct skl { struct 80 container_of(sbus, struct skl, sbus) argument 110 struct nhlt_specific_cfg *skl_get_ep_blob(struct skl *skl, u32 instance, 114 int skl_get_dmic_geo(struct skl *skl); 115 int skl_nhlt_update_topology_bin(struct skl *skl); 116 int skl_init_dsp(struct skl *skl); 117 int skl_free_dsp(struct skl *skl); 118 int skl_suspend_late_dsp(struct skl *skl); 119 int skl_suspend_dsp(struct skl *skl); 120 int skl_resume_dsp(struct skl *skl); [all …]
|
D | skl.c | 55 static void skl_init_pci(struct skl *skl) in skl_init_pci() argument 57 struct hdac_ext_bus *ebus = &skl->ebus; in skl_init_pci() 67 skl_update_pci_byte(skl->pci, AZX_PCIREG_TCSEL, 0x07, 0); in skl_init_pci() 210 struct skl *skl = ebus_to_skl(ebus); in skl_acquire_irq() local 214 ret = request_threaded_irq(skl->pci->irq, skl_interrupt, in skl_acquire_irq() 221 skl->pci->irq); in skl_acquire_irq() 225 bus->irq = skl->pci->irq; in skl_acquire_irq() 226 pci_intx(skl->pci, 1); in skl_acquire_irq() 235 struct skl *skl = ebus_to_skl(ebus); in skl_suspend_late() local 237 return skl_suspend_late_dsp(skl); in skl_suspend_late() [all …]
|
D | Makefile | 2 snd-soc-skl-objs := skl.o skl-pcm.o skl-nhlt.o skl-messages.o \ 3 skl-topology.o 6 snd-soc-skl-objs += skl-debug.o 9 obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE) += snd-soc-skl.o 12 snd-soc-skl-ipc-objs := skl-sst-ipc.o skl-sst-dsp.o cnl-sst-dsp.o \ 13 skl-sst-cldma.o skl-sst.o bxt-sst.o cnl-sst.o \ 14 skl-sst-utils.o 16 obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE) += snd-soc-skl-ipc.o
|
D | bxt-sst.c | 60 struct skl_sst *skl = ctx->thread_context; in bxt_load_library() local 66 ret = skl_prepare_lib_load(skl, &skl->lib_info[i], &stripped_fw, in bxt_load_library() 84 ret = skl_sst_ipc_load_library(&skl->ipc, dma_id, i, true); in bxt_load_library() 195 struct skl_sst *skl = ctx->thread_context; in bxt_load_base_firmware() local 207 if (skl->is_first_boot) { in bxt_load_base_firmware() 243 ret = wait_event_timeout(skl->boot_wait, skl->boot_complete, in bxt_load_base_firmware() 251 skl->fw_loaded = true; in bxt_load_base_firmware() 279 struct skl_sst *skl = ctx->thread_context; in bxt_d0i3_target_state() local 280 struct skl_d0i3_data *d0i3 = &skl->d0i3; in bxt_d0i3_target_state() 282 if (skl->cores.state[SKL_DSP_CORE0_ID] != SKL_DSP_RUNNING) in bxt_d0i3_target_state() [all …]
|
D | skl-topology.c | 55 void skl_tplg_d0i3_get(struct skl *skl, enum d0i3_capability caps) in skl_tplg_d0i3_get() argument 57 struct skl_d0i3_data *d0i3 = &skl->skl_sst->d0i3; in skl_tplg_d0i3_get() 74 void skl_tplg_d0i3_put(struct skl *skl, enum d0i3_capability caps) in skl_tplg_d0i3_put() argument 76 struct skl_d0i3_data *d0i3 = &skl->skl_sst->d0i3; in skl_tplg_d0i3_put() 116 static bool skl_is_pipe_mem_avail(struct skl *skl, in skl_is_pipe_mem_avail() argument 119 struct skl_sst *ctx = skl->skl_sst; in skl_is_pipe_mem_avail() 121 if (skl->resource.mem + mconfig->pipe->memory_pages > in skl_is_pipe_mem_avail() 122 skl->resource.max_mem) { in skl_is_pipe_mem_avail() 129 skl->resource.max_mem, skl->resource.mem); in skl_is_pipe_mem_avail() 141 static void skl_tplg_alloc_pipe_mem(struct skl *skl, in skl_tplg_alloc_pipe_mem() argument [all …]
|
D | skl-nhlt.c | 122 *skl_get_ep_blob(struct skl *skl, u32 instance, u8 link_type, in skl_get_ep_blob() argument 128 struct hdac_bus *bus = ebus_to_hbus(&skl->ebus); in skl_get_ep_blob() 131 struct nhlt_acpi_table *nhlt = skl->nhlt; in skl_get_ep_blob() 158 int skl_get_dmic_geo(struct skl *skl) in skl_get_dmic_geo() argument 160 struct nhlt_acpi_table *nhlt = (struct nhlt_acpi_table *)skl->nhlt; in skl_get_dmic_geo() 163 struct device *dev = &skl->pci->dev; in skl_get_dmic_geo() 212 int skl_nhlt_update_topology_bin(struct skl *skl) in skl_nhlt_update_topology_bin() argument 214 struct nhlt_acpi_table *nhlt = (struct nhlt_acpi_table *)skl->nhlt; in skl_nhlt_update_topology_bin() 215 struct hdac_bus *bus = ebus_to_hbus(&skl->ebus); in skl_nhlt_update_topology_bin() 222 snprintf(skl->tplg_name, sizeof(skl->tplg_name), "%x-%.6s-%.8s-%d%s", in skl_nhlt_update_topology_bin() [all …]
|
D | skl-sst-utils.c | 250 struct skl_sst *skl = ctx->thread_context; in snd_skl_parse_uuids() local 321 list_add_tail(&module->list, &skl->uuid_list); in snd_skl_parse_uuids() 331 skl_freeup_uuid_list(skl); in snd_skl_parse_uuids() 376 struct skl_sst *skl; in skl_sst_ctx_init() local 379 skl = devm_kzalloc(dev, sizeof(*skl), GFP_KERNEL); in skl_sst_ctx_init() 380 if (skl == NULL) in skl_sst_ctx_init() 383 skl->dev = dev; in skl_sst_ctx_init() 384 skl_dev->thread_context = skl; in skl_sst_ctx_init() 385 INIT_LIST_HEAD(&skl->uuid_list); in skl_sst_ctx_init() 386 skl->dsp = skl_dsp_ctx_init(dev, skl_dev, irq); in skl_sst_ctx_init() [all …]
|
D | skl-sst.c | 77 struct skl_sst *skl = ctx->thread_context; in skl_load_base_firmware() local 81 skl->boot_complete = false; in skl_load_base_firmware() 82 init_waitqueue_head(&skl->boot_wait); in skl_load_base_firmware() 93 if (skl->is_first_boot) { in skl_load_base_firmware() 147 ret = wait_event_timeout(skl->boot_wait, skl->boot_complete, in skl_load_base_firmware() 156 skl->fw_loaded = true; in skl_load_base_firmware() 172 struct skl_sst *skl = ctx->thread_context; in skl_set_dsp_D0() local 184 if (skl->lib_count > 1) { in skl_set_dsp_D0() 185 ret = ctx->fw_ops.load_library(ctx, skl->lib_info, in skl_set_dsp_D0() 186 skl->lib_count); in skl_set_dsp_D0() [all …]
|
D | skl-sst-dsp.c | 44 struct skl_sst *skl = ctx->thread_context; in skl_dsp_init_core_state() local 47 skl->cores.state[SKL_DSP_CORE0_ID] = SKL_DSP_RUNNING; in skl_dsp_init_core_state() 48 skl->cores.usage_count[SKL_DSP_CORE0_ID] = 1; in skl_dsp_init_core_state() 50 for (i = SKL_DSP_CORE0_ID + 1; i < skl->cores.count; i++) { in skl_dsp_init_core_state() 51 skl->cores.state[i] = SKL_DSP_RESET; in skl_dsp_init_core_state() 52 skl->cores.usage_count[i] = 0; in skl_dsp_init_core_state() 59 struct skl_sst *skl = ctx->thread_context; in skl_dsp_get_enabled_cores() local 63 core_mask = SKL_DSP_CORES_MASK(skl->cores.count); in skl_dsp_get_enabled_cores() 346 struct skl_sst *skl = ctx->thread_context; in skl_dsp_get_core() local 349 if (core_id >= skl->cores.count) { in skl_dsp_get_core() [all …]
|
D | skl-pcm.c | 128 struct skl *skl = ebus_to_skl(ebus); in skl_set_suspend_active() local 136 skl->supend_active++; in skl_set_suspend_active() 138 skl->supend_active--; in skl_set_suspend_active() 222 struct skl *skl = get_skl_ctx(dai->dev); in skl_pcm_open() local 261 skl_tplg_d0i3_get(skl, mconfig->d0i3_caps); in skl_pcm_open() 269 struct skl *skl = get_skl_ctx(dai->dev); in skl_pcm_prepare() local 279 skl_reset_pipe(skl->skl_sst, mconfig->pipe); in skl_pcm_prepare() 332 struct skl *skl = ebus_to_skl(ebus); in skl_pcm_close() local 352 skl->skl_sst->miscbdcg_disabled) { in skl_pcm_close() 353 skl->skl_sst->enable_miscbdcge(dai->dev, true); in skl_pcm_close() [all …]
|
D | skl-debug.c | 31 struct skl *skl; member 185 struct sst_dsp *sst = d->skl->skl_sst->dsp; in fw_softreg_read() 226 struct skl_debug *skl_debugfs_init(struct skl *skl) in skl_debugfs_init() argument 230 d = devm_kzalloc(&skl->pci->dev, sizeof(*d), GFP_KERNEL); in skl_debugfs_init() 236 skl->platform->component.debugfs_root); in skl_debugfs_init() 238 dev_err(&skl->pci->dev, "debugfs root creation failed\n"); in skl_debugfs_init() 242 d->skl = skl; in skl_debugfs_init() 243 d->dev = &skl->pci->dev; in skl_debugfs_init() 248 dev_err(&skl->pci->dev, "modules debugfs create failed\n"); in skl_debugfs_init()
|
D | skl-messages.c | 257 int skl_init_dsp(struct skl *skl) in skl_init_dsp() argument 260 struct hdac_ext_bus *ebus = &skl->ebus; in skl_init_dsp() 269 snd_hdac_ext_bus_ppcap_enable(&skl->ebus, true); in skl_init_dsp() 270 snd_hdac_ext_bus_ppcap_int_enable(&skl->ebus, true); in skl_init_dsp() 273 mmio_base = pci_ioremap_bar(skl->pci, 4); in skl_init_dsp() 279 ops = skl_get_dsp_ops(skl->pci->device); in skl_init_dsp() 287 skl->fw_name, loader_ops, in skl_init_dsp() 288 &skl->skl_sst); in skl_init_dsp() 293 skl->skl_sst->dsp_ops = ops; in skl_init_dsp() 294 cores = &skl->skl_sst->cores; in skl_init_dsp() [all …]
|
D | skl-sst-ipc.c | 353 struct skl_sst *skl = container_of(ipc, struct skl_sst, ipc); in skl_ipc_process_notification() local 368 skl->boot_complete = true; in skl_ipc_process_notification() 369 wake_up(&skl->boot_wait); in skl_ipc_process_notification() 381 skl->enable_miscbdcge(ipc->dev, false); in skl_ipc_process_notification() 382 skl->miscbdcg_disabled = true; in skl_ipc_process_notification() 415 struct skl_sst *skl = container_of(ipc, struct skl_sst, ipc); in skl_ipc_process_reply() local 434 skl->mod_load_complete = true; in skl_ipc_process_reply() 435 skl->mod_load_status = true; in skl_ipc_process_reply() 436 wake_up(&skl->mod_load_wait); in skl_ipc_process_reply() 451 skl->mod_load_complete = true; in skl_ipc_process_reply() [all …]
|
D | skl-topology.h | 449 static inline struct skl *get_skl_ctx(struct device *dev) in get_skl_ctx() 469 void skl_tplg_d0i3_get(struct skl *skl, enum d0i3_capability caps); 470 void skl_tplg_d0i3_put(struct skl *skl, enum d0i3_capability caps);
|
D | skl-sst-ipc.h | 212 int skl_ipc_init(struct device *dev, struct skl_sst *skl);
|
D | skl-sst-dsp.h | 257 int skl_prepare_lib_load(struct skl_sst *skl, struct skl_lib_info *linfo,
|