Lines Matching refs:cdev
33 struct catpt_dev *cdev = dev_get_drvdata(dev);
37 chan = catpt_dma_request_config_chan(cdev);
41 memset(&cdev->dx_ctx, 0, sizeof(cdev->dx_ctx));
42 ret = catpt_ipc_enter_dxstate(cdev, CATPT_DX_STATE_D3, &cdev->dx_ctx);
48 ret = catpt_dsp_stall(cdev, true);
52 ret = catpt_store_memdumps(cdev, chan);
54 dev_err(cdev->dev, "store memdumps failed: %d\n", ret);
58 ret = catpt_store_module_states(cdev, chan);
60 dev_err(cdev->dev, "store module states failed: %d\n", ret);
64 ret = catpt_store_streams_context(cdev, chan);
66 dev_err(cdev->dev, "store streams ctx failed: %d\n", ret);
72 return catpt_dsp_power_down(cdev);
77 struct catpt_dev *cdev = dev_get_drvdata(dev);
80 ret = catpt_dsp_power_up(cdev);
90 ret = catpt_boot_firmware(cdev, true);
92 dev_err(cdev->dev, "boot firmware failed: %d\n", ret);
98 if (cdev->devfmt[i].iface == UINT_MAX)
101 ret = catpt_ipc_set_device_format(cdev, &cdev->devfmt[i]);
136 static int catpt_register_board(struct catpt_dev *cdev)
138 const struct catpt_spec *spec = cdev->spec;
144 dev_info(cdev->dev, "no machines present\n");
153 dev_err(cdev->dev, "board register failed\n");
157 return devm_add_action_or_reset(cdev->dev, board_pdev_unregister,
161 static int catpt_probe_components(struct catpt_dev *cdev)
165 ret = catpt_dsp_power_up(cdev);
169 ret = catpt_dmac_probe(cdev);
171 dev_err(cdev->dev, "DMAC probe failed: %d\n", ret);
175 ret = catpt_first_boot_firmware(cdev);
177 dev_err(cdev->dev, "first fw boot failed: %d\n", ret);
181 ret = catpt_register_plat_component(cdev);
183 dev_err(cdev->dev, "register plat comp failed: %d\n", ret);
187 ret = catpt_register_board(cdev);
189 dev_err(cdev->dev, "register board failed: %d\n", ret);
194 pm_runtime_set_active(cdev->dev);
196 pm_runtime_set_autosuspend_delay(cdev->dev, 2000);
197 pm_runtime_use_autosuspend(cdev->dev);
198 pm_runtime_mark_last_busy(cdev->dev);
199 pm_runtime_enable(cdev->dev);
203 snd_soc_unregister_component(cdev->dev);
205 catpt_dmac_remove(cdev);
207 catpt_dsp_power_down(cdev);
212 static void catpt_dev_init(struct catpt_dev *cdev, struct device *dev,
215 cdev->dev = dev;
216 cdev->spec = spec;
217 init_completion(&cdev->fw_ready);
218 INIT_LIST_HEAD(&cdev->stream_list);
219 spin_lock_init(&cdev->list_lock);
220 mutex_init(&cdev->clk_mutex);
226 cdev->devfmt[CATPT_SSP_IFACE_0].iface = UINT_MAX;
227 cdev->devfmt[CATPT_SSP_IFACE_1].iface = UINT_MAX;
229 catpt_ipc_init(&cdev->ipc, dev);
231 catpt_sram_init(&cdev->dram, spec->host_dram_offset,
232 catpt_dram_size(cdev));
233 catpt_sram_init(&cdev->iram, spec->host_iram_offset,
234 catpt_iram_size(cdev));
240 struct catpt_dev *cdev;
256 cdev = devm_kzalloc(dev, sizeof(*cdev), GFP_KERNEL);
257 if (!cdev)
261 catpt_dev_init(cdev, dev, spec);
264 cdev->lpe_ba = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
265 if (IS_ERR(cdev->lpe_ba))
266 return PTR_ERR(cdev->lpe_ba);
267 cdev->lpe_base = res->start;
270 cdev->pci_ba = devm_platform_ioremap_resource(pdev, 1);
271 if (IS_ERR(cdev->pci_ba))
272 return PTR_ERR(cdev->pci_ba);
275 cdev->dxbuf_vaddr = dmam_alloc_coherent(dev, catpt_dram_size(cdev),
276 &cdev->dxbuf_paddr, GFP_KERNEL);
277 if (!cdev->dxbuf_vaddr)
283 cdev->irq = ret;
285 platform_set_drvdata(pdev, cdev);
287 ret = devm_request_threaded_irq(dev, cdev->irq, catpt_dsp_irq_handler,
289 IRQF_SHARED, "AudioDSP", cdev);
293 return catpt_probe_components(cdev);
298 struct catpt_dev *cdev = platform_get_drvdata(pdev);
300 pm_runtime_disable(cdev->dev);
302 snd_soc_unregister_component(cdev->dev);
303 catpt_dmac_remove(cdev);
304 catpt_dsp_power_down(cdev);
306 catpt_sram_free(&cdev->iram);
307 catpt_sram_free(&cdev->dram);