Lines Matching refs:dwc

206 static int dwc3_pci_quirks(struct dwc3_pci *dwc,  in dwc3_pci_quirks()  argument
209 struct pci_dev *pdev = dwc->pci; in dwc3_pci_quirks()
215 guid_parse(PCI_INTEL_BXT_DSM_GUID, &dwc->guid); in dwc3_pci_quirks()
216 dwc->has_dsm_for_pm = true; in dwc3_pci_quirks()
267 dwc->dwc3->id = PLATFORM_DEVID_NONE; in dwc3_pci_quirks()
284 return device_add_software_node(&dwc->dwc3->dev, swnode); in dwc3_pci_quirks()
290 struct dwc3_pci *dwc = container_of(work, struct dwc3_pci, wakeup_work); in dwc3_pci_resume_work() local
291 struct platform_device *dwc3 = dwc->dwc3; in dwc3_pci_resume_work()
307 struct dwc3_pci *dwc; in dwc3_pci_probe() local
320 dwc = devm_kzalloc(dev, sizeof(*dwc), GFP_KERNEL); in dwc3_pci_probe()
321 if (!dwc) in dwc3_pci_probe()
324 dwc->dwc3 = platform_device_alloc("dwc3", PLATFORM_DEVID_AUTO); in dwc3_pci_probe()
325 if (!dwc->dwc3) in dwc3_pci_probe()
339 ret = platform_device_add_resources(dwc->dwc3, res, ARRAY_SIZE(res)); in dwc3_pci_probe()
345 dwc->pci = pci; in dwc3_pci_probe()
346 dwc->dwc3->dev.parent = dev; in dwc3_pci_probe()
347 ACPI_COMPANION_SET(&dwc->dwc3->dev, ACPI_COMPANION(dev)); in dwc3_pci_probe()
349 ret = dwc3_pci_quirks(dwc, (void *)id->driver_data); in dwc3_pci_probe()
353 ret = platform_device_add(dwc->dwc3); in dwc3_pci_probe()
360 pci_set_drvdata(pci, dwc); in dwc3_pci_probe()
363 INIT_WORK(&dwc->wakeup_work, dwc3_pci_resume_work); in dwc3_pci_probe()
368 device_remove_software_node(&dwc->dwc3->dev); in dwc3_pci_probe()
369 platform_device_put(dwc->dwc3); in dwc3_pci_probe()
375 struct dwc3_pci *dwc = pci_get_drvdata(pci); in dwc3_pci_remove() local
376 struct pci_dev *pdev = dwc->pci; in dwc3_pci_remove()
381 cancel_work_sync(&dwc->wakeup_work); in dwc3_pci_remove()
385 device_remove_software_node(&dwc->dwc3->dev); in dwc3_pci_remove()
386 platform_device_unregister(dwc->dwc3); in dwc3_pci_remove()
494 static int dwc3_pci_dsm(struct dwc3_pci *dwc, int param) in dwc3_pci_dsm() argument
500 if (!dwc->has_dsm_for_pm) in dwc3_pci_dsm()
506 obj = acpi_evaluate_dsm(ACPI_HANDLE(&dwc->pci->dev), &dwc->guid, in dwc3_pci_dsm()
509 dev_err(&dwc->pci->dev, "failed to evaluate _DSM\n"); in dwc3_pci_dsm()
522 struct dwc3_pci *dwc = dev_get_drvdata(dev); in dwc3_pci_runtime_suspend() local
525 return dwc3_pci_dsm(dwc, PCI_INTEL_BXT_STATE_D3); in dwc3_pci_runtime_suspend()
532 struct dwc3_pci *dwc = dev_get_drvdata(dev); in dwc3_pci_runtime_resume() local
535 ret = dwc3_pci_dsm(dwc, PCI_INTEL_BXT_STATE_D0); in dwc3_pci_runtime_resume()
539 queue_work(pm_wq, &dwc->wakeup_work); in dwc3_pci_runtime_resume()
548 struct dwc3_pci *dwc = dev_get_drvdata(dev); in dwc3_pci_suspend() local
550 return dwc3_pci_dsm(dwc, PCI_INTEL_BXT_STATE_D3); in dwc3_pci_suspend()
555 struct dwc3_pci *dwc = dev_get_drvdata(dev); in dwc3_pci_resume() local
557 return dwc3_pci_dsm(dwc, PCI_INTEL_BXT_STATE_D0); in dwc3_pci_resume()