forked from Minki/linux
9da5a1092b
When USB Ethernet is plugged in ASMEDIA ASM1042A xHCI host, bad performance was manifesting in Web browser use (like download large file such as ISO image). It is known limitation of ASM1042A that is not compatible with driver scheduling, As a workaround we can modify flow control handling of ASM1042A. The register we modify is changes the behavior [use quirk bit 28, usleep_range 40-60us, empty non-pci function -Mathias] Cc: <stable@vger.kernel.org> Signed-off-by: Jiahau Chang <Lars_chang@asmedia.com.tw> Signed-off-by: Ian Pilcher <arequipeno@gmail.com> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
29 lines
1.1 KiB
C
29 lines
1.1 KiB
C
#ifndef __LINUX_USB_PCI_QUIRKS_H
|
|
#define __LINUX_USB_PCI_QUIRKS_H
|
|
|
|
#ifdef CONFIG_USB_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);
|
|
int usb_amd_find_chipset_info(void);
|
|
int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *pdev);
|
|
bool usb_amd_hang_symptom_quirk(void);
|
|
bool usb_amd_prefetch_quirk(void);
|
|
void usb_amd_dev_put(void);
|
|
void usb_amd_quirk_pll_disable(void);
|
|
void usb_amd_quirk_pll_enable(void);
|
|
void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev);
|
|
void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev);
|
|
void usb_disable_xhci_ports(struct pci_dev *xhci_pdev);
|
|
void sb800_prefetch(struct device *dev, int on);
|
|
#else
|
|
struct pci_dev;
|
|
static inline void usb_amd_quirk_pll_disable(void) {}
|
|
static inline void usb_amd_quirk_pll_enable(void) {}
|
|
static inline void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) {}
|
|
static inline void usb_amd_dev_put(void) {}
|
|
static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {}
|
|
static inline void sb800_prefetch(struct device *dev, int on) {}
|
|
#endif /* CONFIG_USB_PCI */
|
|
|
|
#endif /* __LINUX_USB_PCI_QUIRKS_H */
|