I propose the included patch to the OTG USB ethernet gadget code: Report default of bus powered and 500mA bMaxPower consumption. Reason: The USB spec requires all devices consuming more than 100mA from the bus to report in this manner. Devices such as Rpi Zero can operate in this mode and will then falsly report being self-powered when they are not. The more sane default is to report being 500mA bus-powered than being self-powered This patch was born from an issue within the Raspberry Pi Zero ecosystem, therefore I would invite comment regarding other usage of this OTG code. Best regards, Andreas $ diff -u linux-5.14.2/drivers/usb/gadget/legacy/ether.c.orig linux-5.14.2/drivers/usb/gadget/legacy/ether.c --- linux-5.14.2/drivers/usb/gadget/legacy/ether.c.orig 2021-09-08 13:52:41.000000000 +0700 +++ linux-5.14.2/drivers/usb/gadget/legacy/ether.c 2021-09-16 21:25:06.782958554 +0700 @@ -296,7 +296,8 @@ /* .label = f(hardware) */ .bConfigurationValue = 1, /* .iConfiguration = DYNAMIC */ - .bmAttributes = USB_CONFIG_ATT_SELFPOWER, + .bmAttributes = 0, /* bus powered implied */ + .bMaxPower = 250, /* 500mA in 2mA units */ }; /*-------------------------------------------------------------------------*/