mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 14:19:09 -04:00
dwc3-msm: Move override usb speed functionality outside edev check
Currently usb speed override functionality doesn't work as expected when usb role switch based notification is used. Hence move usb speed override functionality out side edev check within dwc3_resume_work() API. Also update maximum_speed as max hw supported speed out side edev check. Change-Id: I69b066721490277b77333d2caf820b6c87703501 Signed-off-by: Mayank Rana <mrana@codeaurora.org>
This commit is contained in:
parent
e5734f3793
commit
a05993824c
1 changed files with 12 additions and 12 deletions
|
|
@ -3238,26 +3238,15 @@ static void dwc3_resume_work(struct work_struct *w)
|
|||
goto skip_update;
|
||||
}
|
||||
|
||||
dwc->maximum_speed = dwc->max_hw_supp_speed;
|
||||
/* Check speed and Type-C polarity values in order to configure PHY */
|
||||
if (edev && extcon_get_state(edev, extcon_id)) {
|
||||
dwc->maximum_speed = dwc->max_hw_supp_speed;
|
||||
|
||||
ret = extcon_get_property(edev, extcon_id,
|
||||
EXTCON_PROP_USB_SS, &val);
|
||||
|
||||
if (!ret && val.intval == 0)
|
||||
dwc->maximum_speed = USB_SPEED_HIGH;
|
||||
|
||||
if (mdwc->override_usb_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, "override_speed",
|
||||
mdwc->override_usb_speed);
|
||||
}
|
||||
|
||||
dbg_event(0xFF, "speed", dwc->maximum_speed);
|
||||
|
||||
ret = extcon_get_property(edev, extcon_id,
|
||||
EXTCON_PROP_USB_TYPEC_POLARITY, &val);
|
||||
if (ret)
|
||||
|
|
@ -3270,6 +3259,17 @@ static void dwc3_resume_work(struct work_struct *w)
|
|||
}
|
||||
|
||||
skip_update:
|
||||
dbg_log_string("max_speed:%d hw_supp_speed:%d override_speed:%d",
|
||||
dwc->maximum_speed, dwc->max_hw_supp_speed,
|
||||
mdwc->override_usb_speed);
|
||||
if (mdwc->override_usb_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);
|
||||
|
||||
/*
|
||||
* Skip scheduling sm work if no work is pending. When boot-up
|
||||
* with USB cable connected, usb state m/c is skipped to avoid
|
||||
|
|
|
|||
Loading…
Reference in a new issue