Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de2b9b13 authored by Manu Gautam's avatar Manu Gautam
Browse files

usb: gadget: Don't override config->MaxPower if specified



For various reasons, user may want to specify lower bMaxPower
using following sysfs attribute for a configuration:
"configs/c.1/MaxPower"

Driver currently ignores that and selects 500mA or 900mA based
on the connection speed. Fix this by no overriding bMaxPower
if config->MaxPower is non-zero.

Change-Id: I10b499b327d5c4e332df2ce435211144637c48d0
Signed-off-by: default avatarManu Gautam <mgautam@codeaurora.org>
parent e2a4721c
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -486,14 +486,19 @@ done:
static u8 encode_bMaxPower(enum usb_device_speed speed,
		struct usb_configuration *c)
{
	unsigned val = CONFIG_USB_GADGET_VBUS_DRAW;
	unsigned val = c->MaxPower;

	switch (speed) {
	case USB_SPEED_SUPER:
		/* with super-speed report 900mA */
		/* with super-speed report 900mA if user hasn't specified */
		if (!val)
			val = SSUSB_GADGET_VBUS_DRAW;

		return (u8)(val / SSUSB_GADGET_VBUS_DRAW_UNITS);
	default:
		if (!val)
			val = CONFIG_USB_GADGET_VBUS_DRAW;

		return DIV_ROUND_UP(val, HSUSB_GADGET_VBUS_DRAW_UNITS);
	}
}