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

Commit 013be6c7 authored by Pavankumar Kondeti's avatar Pavankumar Kondeti Committed by Gerrit - the friendly Code Review server
Browse files

usb: dwc3: Don't touch gadget->max_speed while limiting the speed



The gadget->max_speed should not be changed dynamically as it can
mess up the descriptor preparation. Let it be the max supported
by the hardware and changed the dwc3->maximum_speed to force
the controller to enumerate at lower speed when needed. This makes
sure that the descriptors for all speeds are cached during bind
of the function drivers.

Change-Id: Id7fd8f23bb84f7396a6e3b62c5e61c4536522d82
Signed-off-by: default avatarPavankumar Kondeti <quic_pkondeti@quicinc.com>
parent 37a3bfb6
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -3752,10 +3752,8 @@ static void dwc3_resume_work(struct work_struct *w)
		dwc->maximum_speed, dwc->max_hw_supp_speed,
		mdwc->override_usb_speed);
	if (mdwc->override_usb_speed &&
			mdwc->override_usb_speed <= dwc->maximum_speed) {
			mdwc->override_usb_speed <= dwc->maximum_speed)
		dwc->maximum_speed = mdwc->override_usb_speed;
		dwc->gadget.max_speed = dwc->maximum_speed;
	}

	dbg_event(0xFF, "speed", dwc->maximum_speed);

+1 −1
Original line number Diff line number Diff line
@@ -4431,7 +4431,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
		dev_info(dwc->dev, "changing max_speed on rev %08x\n",
				dwc->revision);

	dwc->gadget.max_speed		= dwc->maximum_speed;
	dwc->gadget.max_speed		= dwc->max_hw_supp_speed;

	/*
	 * REVISIT: Here we should clear all pending IRQs to be