1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __LINUX_USB_PCI_QUIRKS_H
3#define __LINUX_USB_PCI_QUIRKS_H
4
5#ifdef CONFIG_USB_PCI_AMD
6int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *pdev);
7bool usb_amd_hang_symptom_quirk(void);
8bool usb_amd_prefetch_quirk(void);
9void usb_amd_dev_put(void);
10bool usb_amd_quirk_pll_check(void);
11void usb_amd_quirk_pll_disable(void);
12void usb_amd_quirk_pll_enable(void);
13void sb800_prefetch(struct device *dev, int on);
14bool usb_amd_pt_check_port(struct device *device, int port);
15#else
16static inline bool usb_amd_hang_symptom_quirk(void)
17{
18	return false;
19};
20static inline bool usb_amd_prefetch_quirk(void)
21{
22	return false;
23}
24static inline void usb_amd_quirk_pll_disable(void) {}
25static inline void usb_amd_quirk_pll_enable(void) {}
26static inline void usb_amd_dev_put(void) {}
27static inline bool usb_amd_quirk_pll_check(void)
28{
29	return false;
30}
31static inline void sb800_prefetch(struct device *dev, int on) {}
32static inline bool usb_amd_pt_check_port(struct device *device, int port)
33{
34	return false;
35}
36#endif /* CONFIG_USB_PCI_AMD */
37
38#ifdef CONFIG_USB_PCI
39void uhci_reset_hc(struct pci_dev *pdev, unsigned long base);
40int uhci_check_and_reset_hc(struct pci_dev *pdev, unsigned long base);
41void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev);
42void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev);
43void usb_disable_xhci_ports(struct pci_dev *xhci_pdev);
44#else
45struct pci_dev;
46static inline void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) {}
47static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {}
48#endif  /* CONFIG_USB_PCI */
49
50#endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
51