Re: [PATCH] usb: gadget: Increase the limit of USB_GADGET_VBUS_DRAW to 900mA

From: Alan Stern
Date: Mon Jan 20 2025 - 09:48:06 EST


On Mon, Jan 20, 2025 at 04:47:02PM +0530, Prashanth K wrote:
> Currently CONFIG_USB_GADGET_VBUS_DRAW limits the maximum current
> drawn from Vbus to be up to 500mA. However USB gadget operating
> in SuperSpeed or higher can draw up to 900mA. Also, MaxPower in
> ConfigFS takes its default value from this config. Hence increase
> the allowed range of CONFIG_USB_GADGET_VBUS_DRAW to 900mA.

Is this the sort of thing that really needs to be a Kconfig option? Why
not make the decision at runtime, based on the needs of the gadget or
function drivers and the connection speed?

Alan Stern

> Signed-off-by: Prashanth K <prashanth.k@xxxxxxxxxxxxxxxx>
> ---
> drivers/usb/gadget/Kconfig | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
> index 76521555e3c1..904652c37385 100644
> --- a/drivers/usb/gadget/Kconfig
> +++ b/drivers/usb/gadget/Kconfig
> @@ -97,8 +97,8 @@ config USB_GADGET_DEBUG_FS
> to conserve kernel memory, say "N".
>
> config USB_GADGET_VBUS_DRAW
> - int "Maximum VBUS Power usage (2-500 mA)"
> - range 2 500
> + int "Maximum VBUS Power usage (2-900 mA)"
> + range 2 900
> default 2
> help
> Some devices need to draw power from USB when they are
> @@ -107,8 +107,11 @@ config USB_GADGET_VBUS_DRAW
> such as an AC adapter or batteries.
>
> Enter the maximum power your device draws through USB, in
> - milliAmperes. The permitted range of values is 2 - 500 mA;
> - 0 mA would be legal, but can make some hosts misbehave.
> + milliAmperes. The permitted range of values depends on the
> + connection speed, for SuperSpeed and higher it's 2 - 900 mA,
> + but connections with High-Speed or slower can draw power
> + ranging from 2 - 500 mA; 0 mA would be legal, but can make
> + some hosts misbehave.
>
> This value will be used except for system-specific gadget
> drivers that have more specific information.
> --
> 2.25.1
>
>