Some implementations need this limitation to work correctly. Signed-off-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx> --- drivers/usb/chipidea/ci13xxx_pci.c | 8 +++++++- drivers/usb/chipidea/host.c | 2 ++ include/linux/usb/chipidea.h | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/usb/chipidea/ci13xxx_pci.c b/drivers/usb/chipidea/ci13xxx_pci.c index 3e53ef1..70fd74a 100644 --- a/drivers/usb/chipidea/ci13xxx_pci.c +++ b/drivers/usb/chipidea/ci13xxx_pci.c @@ -33,6 +33,12 @@ struct ci13xxx_udc_driver langwell_pci_driver = { .capoffset = 0, }; +struct ci13xxx_udc_driver penwell_pci_driver = { + .name = UDC_DRIVER_NAME, + .capoffset = 0, + .power_budget = 200, +}; + /** * ci13xxx_pci_probe: PCI probe * @pdev: USB device controller being probed @@ -151,7 +157,7 @@ static DEFINE_PCI_DEVICE_TABLE(ci13xxx_pci_id_table) = { }, { 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 */ } }; diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c index 126753c..32ad418 100644 --- a/drivers/usb/chipidea/host.c +++ b/drivers/usb/chipidea/host.c @@ -117,6 +117,8 @@ static int host_start(struct ci13xxx *ci) hcd->regs = ci->hw_bank.abs; hcd->has_tt = 1; + hcd->power_budget = ci->udc_driver->power_budget; + ehci = hcd_to_ehci(hcd); ehci->caps = ci->hw_bank.cap; ehci->regs = ci->hw_bank.cap + diff --git a/include/linux/usb/chipidea.h b/include/linux/usb/chipidea.h index 86273ce..edb90d6 100644 --- a/include/linux/usb/chipidea.h +++ b/include/linux/usb/chipidea.h @@ -10,6 +10,7 @@ struct ci13xxx_udc_driver { const char *name; /* offset of the capability registers */ uintptr_t capoffset; + unsigned power_budget; unsigned long flags; #define CI13XXX_REGS_SHARED BIT(0) #define CI13XXX_REQUIRE_TRANSCEIVER BIT(1) -- 1.7.10 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html