--- a/drivers/usb/host/pci-quirks.c +++ b/drivers/usb/host/pci-quirks.c @@ -79,6 +79,8 @@ #define USB_INTEL_USB3_PSSEN 0xD8 #define USB_INTEL_USB3PRM 0xDC +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS + static struct amd_chipset_info { struct pci_dev *nb_dev; struct pci_dev *smbus_dev; @@ -353,6 +355,10 @@ void usb_amd_dev_put(void) } EXPORT_SYMBOL_GPL(usb_amd_dev_put); +#endif /* CONFIG_PCI_DISABLE_COMMON_QUIRKS */ + +#if IS_ENABLED(CONFIG_USB_UHCI_HCD) + /* * Make sure the controller is completely inactive, unable to * generate interrupts or do DMA. @@ -432,8 +438,17 @@ reset_needed: uhci_reset_hc(pdev, base); return 1; } +#else +int uhci_check_and_reset_hc(struct pci_dev *pdev, unsigned long base) +{ + return 0; +} + +#endif EXPORT_SYMBOL_GPL(uhci_check_and_reset_hc); +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS + static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask) { u16 cmd; @@ -987,3 +1002,4 @@ static void quirk_usb_early_handoff(stru } DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff); +#endif /* CONFIG_PCI_DISABLE_COMMON_QUIRKS */ --- a/drivers/usb/host/pci-quirks.h +++ b/drivers/usb/host/pci-quirks.h @@ -4,6 +4,9 @@ #ifdef CONFIG_PCI void uhci_reset_hc(struct pci_dev *pdev, unsigned long base); int uhci_check_and_reset_hc(struct pci_dev *pdev, unsigned long base); +#endif /* CONFIG_PCI */ + +#if defined(CONFIG_PCI) && !defined(CONFIG_PCI_DISABLE_COMMON_QUIRKS) int usb_amd_find_chipset_info(void); void usb_amd_dev_put(void); void usb_amd_quirk_pll_disable(void); @@ -12,10 +15,20 @@ bool usb_is_intel_switchable_xhci(struct void usb_enable_xhci_ports(struct pci_dev *xhci_pdev); void usb_disable_xhci_ports(struct pci_dev *xhci_pdev); #else +static inline int usb_amd_find_chipset_info(void) +{ + return 0; +} static inline void usb_amd_quirk_pll_disable(void) {} static inline void usb_amd_quirk_pll_enable(void) {} static inline void usb_amd_dev_put(void) {} + +static inline bool usb_is_intel_switchable_xhci(struct pci_dev *pdev) +{ + return false; +} +static inline void usb_enable_xhci_ports(struct pci_dev *xhci_pdev) {} static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {} -#endif /* CONFIG_PCI */ +#endif #endif /* __LINUX_USB_PCI_QUIRKS_H */