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

Commit e9e128b5 authored by Mayank Rana's avatar Mayank Rana Committed by Gerrit - the friendly Code Review server
Browse files

usb: composite: Adjust MaxPower based on enumerated USB speed



USB device is trying to draw 900mA when enumerated in USB high speed
mode although reporting bMaxPower as 500mA to host. Fix this issue by
adjusting MaxPower based on enumerated USB speed before reporting
current to draw to linux charger driver.

Change-Id: I37032c83be6403004ee8d107cb8d7cae04fa0ffa
Signed-off-by: default avatarMayank Rana <mrana@codeaurora.org>
parent 9af99ae9
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -954,6 +954,9 @@ static int set_config(struct usb_composite_dev *cdev,


	/* when we return, be sure our power usage is valid */
	/* when we return, be sure our power usage is valid */
	power = c->MaxPower ? c->MaxPower : CONFIG_USB_GADGET_VBUS_DRAW;
	power = c->MaxPower ? c->MaxPower : CONFIG_USB_GADGET_VBUS_DRAW;
	if (gadget->speed < USB_SPEED_SUPER)
		power = min(power, 500U);

done:
done:
	usb_gadget_vbus_draw(gadget, power);
	usb_gadget_vbus_draw(gadget, power);
	if (result >= 0 && cdev->delayed_status)
	if (result >= 0 && cdev->delayed_status)