Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
L
linux_grx
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Intel
linux_grx
Commits
7168f1bb
Commit
7168f1bb
authored
7 years ago
by
Felix Fietkau
Committed by
Kenneth Johansson
6 years ago
Browse files
Options
Downloads
Patches
Plain Diff
debloat: disable common USB quirks
Signed-off-by:
Felix Fietkau
<
nbd@nbd.name
>
parent
73c3f6fb
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
drivers/usb/host/pci-quirks.c
+17
-0
17 additions, 0 deletions
drivers/usb/host/pci-quirks.c
drivers/usb/host/pci-quirks.h
+16
-0
16 additions, 0 deletions
drivers/usb/host/pci-quirks.h
include/linux/usb/hcd.h
+7
-0
7 additions, 0 deletions
include/linux/usb/hcd.h
with
40 additions
and
0 deletions
drivers/usb/host/pci-quirks.c
+
17
−
0
View file @
7168f1bb
...
@@ -107,6 +107,8 @@ struct amd_chipset_type {
...
@@ -107,6 +107,8 @@ struct amd_chipset_type {
u8
rev
;
u8
rev
;
};
};
#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS
static
struct
amd_chipset_info
{
static
struct
amd_chipset_info
{
struct
pci_dev
*
nb_dev
;
struct
pci_dev
*
nb_dev
;
struct
pci_dev
*
smbus_dev
;
struct
pci_dev
*
smbus_dev
;
...
@@ -511,6 +513,10 @@ void usb_amd_dev_put(void)
...
@@ -511,6 +513,10 @@ void usb_amd_dev_put(void)
}
}
EXPORT_SYMBOL_GPL
(
usb_amd_dev_put
);
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
* Make sure the controller is completely inactive, unable to
* generate interrupts or do DMA.
* generate interrupts or do DMA.
...
@@ -590,8 +596,18 @@ reset_needed:
...
@@ -590,8 +596,18 @@ reset_needed:
uhci_reset_hc
(
pdev
,
base
);
uhci_reset_hc
(
pdev
,
base
);
return
1
;
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
);
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
)
static
inline
int
io_type_enabled
(
struct
pci_dev
*
pdev
,
unsigned
int
mask
)
{
{
u16
cmd
;
u16
cmd
;
...
@@ -1158,3 +1174,4 @@ static void quirk_usb_early_handoff(struct pci_dev *pdev)
...
@@ -1158,3 +1174,4 @@ static void quirk_usb_early_handoff(struct pci_dev *pdev)
}
}
DECLARE_PCI_FIXUP_CLASS_FINAL
(
PCI_ANY_ID
,
PCI_ANY_ID
,
DECLARE_PCI_FIXUP_CLASS_FINAL
(
PCI_ANY_ID
,
PCI_ANY_ID
,
PCI_CLASS_SERIAL_USB
,
8
,
quirk_usb_early_handoff
);
PCI_CLASS_SERIAL_USB
,
8
,
quirk_usb_early_handoff
);
#endif
This diff is collapsed.
Click to expand it.
drivers/usb/host/pci-quirks.h
+
16
−
0
View file @
7168f1bb
...
@@ -4,6 +4,9 @@
...
@@ -4,6 +4,9 @@
#ifdef CONFIG_PCI
#ifdef CONFIG_PCI
void
uhci_reset_hc
(
struct
pci_dev
*
pdev
,
unsigned
long
base
);
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
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
);
int
usb_amd_find_chipset_info
(
void
);
int
usb_hcd_amd_remote_wakeup_quirk
(
struct
pci_dev
*
pdev
);
int
usb_hcd_amd_remote_wakeup_quirk
(
struct
pci_dev
*
pdev
);
bool
usb_amd_hang_symptom_quirk
(
void
);
bool
usb_amd_hang_symptom_quirk
(
void
);
...
@@ -17,12 +20,25 @@ void usb_disable_xhci_ports(struct pci_dev *xhci_pdev);
...
@@ -17,12 +20,25 @@ void usb_disable_xhci_ports(struct pci_dev *xhci_pdev);
void
sb800_prefetch
(
struct
device
*
dev
,
int
on
);
void
sb800_prefetch
(
struct
device
*
dev
,
int
on
);
#else
#else
struct
pci_dev
;
struct
pci_dev
;
static
inline
int
usb_amd_find_chipset_info
(
void
)
{
return
0
;
}
static
inline
bool
usb_amd_hang_symptom_quirk
(
void
)
{
return
false
;
}
static
inline
bool
usb_amd_prefetch_quirk
(
void
)
{
return
false
;
}
static
inline
void
usb_amd_quirk_pll_disable
(
void
)
{}
static
inline
void
usb_amd_quirk_pll_disable
(
void
)
{}
static
inline
void
usb_amd_quirk_pll_enable
(
void
)
{}
static
inline
void
usb_amd_quirk_pll_enable
(
void
)
{}
static
inline
void
usb_asmedia_modifyflowcontrol
(
struct
pci_dev
*
pdev
)
{}
static
inline
void
usb_asmedia_modifyflowcontrol
(
struct
pci_dev
*
pdev
)
{}
static
inline
void
usb_amd_dev_put
(
void
)
{}
static
inline
void
usb_amd_dev_put
(
void
)
{}
static
inline
void
usb_disable_xhci_ports
(
struct
pci_dev
*
xhci_pdev
)
{}
static
inline
void
usb_disable_xhci_ports
(
struct
pci_dev
*
xhci_pdev
)
{}
static
inline
void
sb800_prefetch
(
struct
device
*
dev
,
int
on
)
{}
static
inline
void
sb800_prefetch
(
struct
device
*
dev
,
int
on
)
{}
static
inline
void
usb_enable_intel_xhci_ports
(
struct
pci_dev
*
xhci_pdev
)
{}
#endif
/* CONFIG_PCI */
#endif
/* CONFIG_PCI */
#endif
/* __LINUX_USB_PCI_QUIRKS_H */
#endif
/* __LINUX_USB_PCI_QUIRKS_H */
This diff is collapsed.
Click to expand it.
include/linux/usb/hcd.h
+
7
−
0
View file @
7168f1bb
...
@@ -461,7 +461,14 @@ extern int usb_hcd_pci_probe(struct pci_dev *dev,
...
@@ -461,7 +461,14 @@ extern int usb_hcd_pci_probe(struct pci_dev *dev,
extern
void
usb_hcd_pci_remove
(
struct
pci_dev
*
dev
);
extern
void
usb_hcd_pci_remove
(
struct
pci_dev
*
dev
);
extern
void
usb_hcd_pci_shutdown
(
struct
pci_dev
*
dev
);
extern
void
usb_hcd_pci_shutdown
(
struct
pci_dev
*
dev
);
#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS
extern
int
usb_hcd_amd_remote_wakeup_quirk
(
struct
pci_dev
*
dev
);
extern
int
usb_hcd_amd_remote_wakeup_quirk
(
struct
pci_dev
*
dev
);
#else
static
inline
int
usb_hcd_amd_remote_wakeup_quirk
(
struct
pci_dev
*
dev
)
{
return
0
;
}
#endif
#ifdef CONFIG_PM
#ifdef CONFIG_PM
extern
const
struct
dev_pm_ops
usb_hcd_pci_pm_ops
;
extern
const
struct
dev_pm_ops
usb_hcd_pci_pm_ops
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment