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 cdev->spec->power_down(cdev);
77 struct catpt_dev *cdev = dev_get_drvdata(dev);
80 ret = cdev->spec->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 = cdev->spec->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 cdev->spec->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;
249 cdev = devm_kzalloc(dev, sizeof(*cdev), GFP_KERNEL);
250 if (!cdev)
253 catpt_dev_init(cdev, dev, spec);
256 cdev->lpe_ba = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
257 if (IS_ERR(cdev->lpe_ba))
258 return PTR_ERR(cdev->lpe_ba);
259 cdev->lpe_base = res->start;
262 cdev->pci_ba = devm_platform_ioremap_resource(pdev, 1);
263 if (IS_ERR(cdev->pci_ba))
264 return PTR_ERR(cdev->pci_ba);
267 cdev->dxbuf_vaddr = dmam_alloc_coherent(dev, catpt_dram_size(cdev),
268 &cdev->dxbuf_paddr, GFP_KERNEL);
269 if (!cdev->dxbuf_vaddr)
275 cdev->irq = ret;
277 platform_set_drvdata(pdev, cdev);
279 ret = devm_request_threaded_irq(dev, cdev->irq, catpt_dsp_irq_handler,
281 IRQF_SHARED, "AudioDSP", cdev);
285 return catpt_probe_components(cdev);
290 struct catpt_dev *cdev = platform_get_drvdata(pdev);
292 pm_runtime_disable(cdev->dev);
294 snd_soc_unregister_component(cdev->dev);
295 catpt_dmac_remove(cdev);
296 cdev->spec->power_down(cdev);
298 catpt_sram_free(&cdev->iram);
299 catpt_sram_free(&cdev->dram);