···704704no-jd705705 BIOS setup but without jack-detection706706intel707707- Intel DG45* mobos707707+ Intel D*45* mobos708708dell-m6-amic709709 Dell desktops/laptops with analog mics710710dell-m6-dmic
+1-1
sound/firewire/tascam/tascam-stream.c
···490490 // packet is important for media clock recovery.491491 err = amdtp_domain_start(&tscm->domain, tx_init_skip_cycles, true, true);492492 if (err < 0)493493- return err;493493+ goto error;494494495495 if (!amdtp_domain_wait_ready(&tscm->domain, READY_TIMEOUT_MS)) {496496 err = -ETIMEDOUT;
···209209 be_chan = soc_component_to_pcm(component_be)->chan[substream->stream];210210 tmp_chan = be_chan;211211 }212212- if (!tmp_chan)213213- tmp_chan = dma_request_slave_channel(dev_be, tx ? "tx" : "rx");212212+ if (!tmp_chan) {213213+ tmp_chan = dma_request_chan(dev_be, tx ? "tx" : "rx");214214+ if (IS_ERR(tmp_chan)) {215215+ dev_err(dev, "failed to request DMA channel for Back-End\n");216216+ return -EINVAL;217217+ }218218+ }214219215220 /*216221 * An EDMA DEV_TO_DEV channel is fixed and bound with DMA event of each217222 * peripheral, unlike SDMA channel that is allocated dynamically. So no218223 * need to configure dma_request and dma_request2, but get dma_chan of219219- * Back-End device directly via dma_request_slave_channel.224224+ * Back-End device directly via dma_request_chan.220225 */221226 if (!asrc->use_edma) {222227 /* Get DMA request of Back-End */
···23492349 }2350235023512351 if (!src_fw_module || !sink_fw_module) {23522352- /* The NULL module will print as "(efault)" */23532353- dev_err(sdev->dev, "source %s or sink %s widget weren't set up properly\n",23542354- src_fw_module->man4_module_entry.name,23552355- sink_fw_module->man4_module_entry.name);23522352+ dev_err(sdev->dev,23532353+ "cannot bind %s -> %s, no firmware module for: %s%s\n",23542354+ src_widget->widget->name, sink_widget->widget->name,23552355+ src_fw_module ? "" : " source",23562356+ sink_fw_module ? "" : " sink");23572357+23562358 return -ENODEV;23572359 }23582360
+7-1
sound/soc/sof/pm.c
···188188 const struct sof_ipc_tplg_ops *tplg_ops = sof_ipc_get_ops(sdev, tplg);189189 pm_message_t pm_state;190190 u32 target_state = snd_sof_dsp_power_target(sdev);191191+ u32 old_state = sdev->dsp_power_state.state;191192 int ret;192193193194 /* do nothing if dsp suspend callback is not set */···198197 if (runtime_suspend && !sof_ops(sdev)->runtime_suspend)199198 return 0;200199201201- if (tplg_ops && tplg_ops->tear_down_all_pipelines)200200+ /* we need to tear down pipelines only if the DSP hardware is201201+ * active, which happens for PCI devices. if the device is202202+ * suspended, it is brought back to full power and then203203+ * suspended again204204+ */205205+ if (tplg_ops && tplg_ops->tear_down_all_pipelines && (old_state == SOF_DSP_PM_D0))202206 tplg_ops->tear_down_all_pipelines(sdev, false);203207204208 if (sdev->fw_state != SOF_FW_BOOT_COMPLETE)