Lines Matching full:pci

3  * AMD Yellow Carp ACP PCI Driver
8 #include <linux/pci.h>
144 static int snd_acp6x_probe(struct pci_dev *pci, in snd_acp6x_probe() argument
158 flag = snd_amd_acp_find_config(pci); in snd_acp6x_probe()
163 switch (pci->revision) { in snd_acp6x_probe()
169 dev_dbg(&pci->dev, "acp6x pci device not found\n"); in snd_acp6x_probe()
172 if (pci_enable_device(pci)) { in snd_acp6x_probe()
173 dev_err(&pci->dev, "pci_enable_device failed\n"); in snd_acp6x_probe()
177 ret = pci_request_regions(pci, "AMD ACP3x audio"); in snd_acp6x_probe()
179 dev_err(&pci->dev, "pci_request_regions failed\n"); in snd_acp6x_probe()
183 adata = devm_kzalloc(&pci->dev, sizeof(struct acp6x_dev_data), in snd_acp6x_probe()
190 addr = pci_resource_start(pci, 0); in snd_acp6x_probe()
191 adata->acp6x_base = devm_ioremap(&pci->dev, addr, in snd_acp6x_probe()
192 pci_resource_len(pci, 0)); in snd_acp6x_probe()
197 pci_set_master(pci); in snd_acp6x_probe()
198 pci_set_drvdata(pci, adata); in snd_acp6x_probe()
210 dev_info(&pci->dev, "Audio Mode %d\n", val); in snd_acp6x_probe()
213 adata->res = devm_kzalloc(&pci->dev, in snd_acp6x_probe()
231 pdevinfo[0].parent = &pci->dev; in snd_acp6x_probe()
237 pdevinfo[1].parent = &pci->dev; in snd_acp6x_probe()
241 pdevinfo[2].parent = &pci->dev; in snd_acp6x_probe()
247 dev_err(&pci->dev, "cannot register %s device\n", in snd_acp6x_probe()
255 ret = devm_request_irq(&pci->dev, pci->irq, acp6x_irq_handler, in snd_acp6x_probe()
258 dev_err(&pci->dev, "ACP PCI IRQ request failed\n"); in snd_acp6x_probe()
261 pm_runtime_set_autosuspend_delay(&pci->dev, ACP_SUSPEND_DELAY_MS); in snd_acp6x_probe()
262 pm_runtime_use_autosuspend(&pci->dev); in snd_acp6x_probe()
263 pm_runtime_put_noidle(&pci->dev); in snd_acp6x_probe()
264 pm_runtime_allow(&pci->dev); in snd_acp6x_probe()
272 dev_err(&pci->dev, "ACP de-init failed\n"); in snd_acp6x_probe()
274 pci_release_regions(pci); in snd_acp6x_probe()
276 pci_disable_device(pci); in snd_acp6x_probe()
310 static void snd_acp6x_remove(struct pci_dev *pci) in snd_acp6x_remove() argument
315 adata = pci_get_drvdata(pci); in snd_acp6x_remove()
322 dev_err(&pci->dev, "ACP de-init failed\n"); in snd_acp6x_remove()
323 pm_runtime_forbid(&pci->dev); in snd_acp6x_remove()
324 pm_runtime_get_noresume(&pci->dev); in snd_acp6x_remove()
325 pci_release_regions(pci); in snd_acp6x_remove()
326 pci_disable_device(pci); in snd_acp6x_remove()
335 MODULE_DEVICE_TABLE(pci, snd_acp6x_ids);
350 MODULE_DESCRIPTION("AMD ACP Yellow Carp PCI driver");