Commit bd841986 authored by Alexander Shishkin's avatar Alexander Shishkin Committed by Greg Kroah-Hartman

usb: chipidea: add power_budget limit for ehci to platform data

Some implementations need this limitation to work correctly.
Signed-off-by: default avatarAlexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent eb70e5ab
...@@ -33,6 +33,12 @@ struct ci13xxx_udc_driver langwell_pci_driver = { ...@@ -33,6 +33,12 @@ struct ci13xxx_udc_driver langwell_pci_driver = {
.capoffset = 0, .capoffset = 0,
}; };
struct ci13xxx_udc_driver penwell_pci_driver = {
.name = UDC_DRIVER_NAME,
.capoffset = 0,
.power_budget = 200,
};
/** /**
* ci13xxx_pci_probe: PCI probe * ci13xxx_pci_probe: PCI probe
* @pdev: USB device controller being probed * @pdev: USB device controller being probed
...@@ -153,7 +159,7 @@ static DEFINE_PCI_DEVICE_TABLE(ci13xxx_pci_id_table) = { ...@@ -153,7 +159,7 @@ static DEFINE_PCI_DEVICE_TABLE(ci13xxx_pci_id_table) = {
}, },
{ {
PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0829), PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0829),
.driver_data = (kernel_ulong_t)&langwell_pci_driver, .driver_data = (kernel_ulong_t)&penwell_pci_driver,
}, },
{ 0, 0, 0, 0, 0, 0, 0 /* end: all zeroes */ } { 0, 0, 0, 0, 0, 0, 0 /* end: all zeroes */ }
}; };
......
...@@ -116,6 +116,8 @@ static int host_start(struct ci13xxx *ci) ...@@ -116,6 +116,8 @@ static int host_start(struct ci13xxx *ci)
hcd->regs = ci->hw_bank.abs; hcd->regs = ci->hw_bank.abs;
hcd->has_tt = 1; hcd->has_tt = 1;
hcd->power_budget = ci->udc_driver->power_budget;
ehci = hcd_to_ehci(hcd); ehci = hcd_to_ehci(hcd);
ehci->caps = ci->hw_bank.cap; ehci->caps = ci->hw_bank.cap;
ehci->has_hostpc = ci->hw_bank.lpm; ehci->has_hostpc = ci->hw_bank.lpm;
......
...@@ -10,6 +10,7 @@ struct ci13xxx_udc_driver { ...@@ -10,6 +10,7 @@ struct ci13xxx_udc_driver {
const char *name; const char *name;
/* offset of the capability registers */ /* offset of the capability registers */
uintptr_t capoffset; uintptr_t capoffset;
unsigned power_budget;
unsigned long flags; unsigned long flags;
#define CI13XXX_REGS_SHARED BIT(0) #define CI13XXX_REGS_SHARED BIT(0)
#define CI13XXX_REQUIRE_TRANSCEIVER BIT(1) #define CI13XXX_REQUIRE_TRANSCEIVER BIT(1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment