OpenWrt – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | From: Felix Fietkau <nbd@nbd.name> |
2 | Subject: debloat: disable common USB quirks |
||
3 | |||
4 | Signed-off-by: Felix Fietkau <nbd@nbd.name> |
||
5 | --- |
||
6 | drivers/usb/host/pci-quirks.c | 16 ++++++++++++++++ |
||
7 | drivers/usb/host/pci-quirks.h | 18 +++++++++++++++++- |
||
8 | include/linux/usb/hcd.h | 7 +++++++ |
||
9 | 3 files changed, 40 insertions(+), 1 deletion(-) |
||
10 | |||
11 | --- a/drivers/usb/host/pci-quirks.c |
||
12 | +++ b/drivers/usb/host/pci-quirks.c |
||
13 | @@ -125,6 +125,8 @@ struct amd_chipset_type { |
||
14 | u8 rev; |
||
15 | }; |
||
16 | |||
17 | +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS |
||
18 | + |
||
19 | static struct amd_chipset_info { |
||
20 | struct pci_dev *nb_dev; |
||
21 | struct pci_dev *smbus_dev; |
||
22 | @@ -621,6 +623,10 @@ bool usb_amd_pt_check_port(struct device |
||
23 | } |
||
24 | EXPORT_SYMBOL_GPL(usb_amd_pt_check_port); |
||
25 | |||
26 | +#endif /* CONFIG_PCI_DISABLE_COMMON_QUIRKS */ |
||
27 | + |
||
28 | +#if IS_ENABLED(CONFIG_USB_UHCI_HCD) |
||
29 | + |
||
30 | /* |
||
31 | * Make sure the controller is completely inactive, unable to |
||
32 | * generate interrupts or do DMA. |
||
33 | @@ -700,8 +706,17 @@ reset_needed: |
||
34 | uhci_reset_hc(pdev, base); |
||
35 | return 1; |
||
36 | } |
||
37 | +#else |
||
38 | +int uhci_check_and_reset_hc(struct pci_dev *pdev, unsigned long base) |
||
39 | +{ |
||
40 | + return 0; |
||
41 | +} |
||
42 | + |
||
43 | +#endif |
||
44 | EXPORT_SYMBOL_GPL(uhci_check_and_reset_hc); |
||
45 | |||
46 | +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS |
||
47 | + |
||
48 | static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask) |
||
49 | { |
||
50 | u16 cmd; |
||
51 | @@ -1268,3 +1283,4 @@ static void quirk_usb_early_handoff(stru |
||
52 | } |
||
53 | DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID, |
||
54 | PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff); |
||
55 | +#endif |
||
56 | --- a/drivers/usb/host/pci-quirks.h |
||
57 | +++ b/drivers/usb/host/pci-quirks.h |
||
58 | @@ -5,6 +5,9 @@ |
||
59 | #ifdef CONFIG_USB_PCI |
||
60 | void uhci_reset_hc(struct pci_dev *pdev, unsigned long base); |
||
61 | int uhci_check_and_reset_hc(struct pci_dev *pdev, unsigned long base); |
||
62 | +#endif /* CONFIG_USB_PCI */ |
||
63 | + |
||
64 | +#if defined(CONFIG_USB_PCI) && !defined(CONFIG_PCI_DISABLE_COMMON_QUIRKS) |
||
65 | int usb_amd_find_chipset_info(void); |
||
66 | int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *pdev); |
||
67 | bool usb_amd_hang_symptom_quirk(void); |
||
68 | @@ -19,6 +22,18 @@ void sb800_prefetch(struct device *dev, |
||
69 | bool usb_amd_pt_check_port(struct device *device, int port); |
||
70 | #else |
||
71 | struct pci_dev; |
||
72 | +static inline int usb_amd_find_chipset_info(void) |
||
73 | +{ |
||
74 | + return 0; |
||
75 | +} |
||
76 | +static inline bool usb_amd_hang_symptom_quirk(void) |
||
77 | +{ |
||
78 | + return false; |
||
79 | +} |
||
80 | +static inline bool usb_amd_prefetch_quirk(void) |
||
81 | +{ |
||
82 | + return false; |
||
83 | +} |
||
84 | static inline void usb_amd_quirk_pll_disable(void) {} |
||
85 | static inline void usb_amd_quirk_pll_enable(void) {} |
||
86 | static inline void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) {} |
||
87 | @@ -29,6 +44,11 @@ static inline bool usb_amd_pt_check_port |
||
88 | { |
||
89 | return false; |
||
90 | } |
||
91 | +static inline void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev) {} |
||
92 | +static inline bool usb_xhci_needs_pci_reset(struct pci_dev *pdev) |
||
93 | +{ |
||
94 | + return false; |
||
95 | +} |
||
96 | #endif /* CONFIG_USB_PCI */ |
||
97 | |||
98 | #endif /* __LINUX_USB_PCI_QUIRKS_H */ |
||
99 | --- a/include/linux/usb/hcd.h |
||
100 | +++ b/include/linux/usb/hcd.h |
||
101 | @@ -473,7 +473,14 @@ extern int usb_hcd_pci_probe(struct pci_ |
||
102 | extern void usb_hcd_pci_remove(struct pci_dev *dev); |
||
103 | extern void usb_hcd_pci_shutdown(struct pci_dev *dev); |
||
104 | |||
105 | +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS |
||
106 | extern int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *dev); |
||
107 | +#else |
||
108 | +static inline int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *dev) |
||
109 | +{ |
||
110 | + return 0; |
||
111 | +} |
||
112 | +#endif |
||
113 | |||
114 | #ifdef CONFIG_PM |
||
115 | extern const struct dev_pm_ops usb_hcd_pci_pm_ops; |