usb: dwc2: gadget: don't modify pullup state in host mode
Modifying the pullup state during host mode trig a new enumeration of attached device. Thus, avoid modifying pullup in host mode. Signed-off-by: Gregory Herrero <gregory.herrero@intel.com> Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com> Tested-by: Robert Baldyga <r.baldyga@samsung.com> Tested-by: Dinh Nguyen <dinguyen@opensource.altera.com> Tested-by: John Youn <johnyoun@synopsys.com> Acked-by: John Youn <johnyoun@synopsys.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
Родитель
857512d0eb
Коммит
77ba9119ad
|
@ -3170,7 +3170,14 @@ static int dwc2_hsotg_pullup(struct usb_gadget *gadget, int is_on)
|
||||||
struct dwc2_hsotg *hsotg = to_hsotg(gadget);
|
struct dwc2_hsotg *hsotg = to_hsotg(gadget);
|
||||||
unsigned long flags = 0;
|
unsigned long flags = 0;
|
||||||
|
|
||||||
dev_dbg(hsotg->dev, "%s: is_on: %d\n", __func__, is_on);
|
dev_dbg(hsotg->dev, "%s: is_on: %d op_state: %d\n", __func__, is_on,
|
||||||
|
hsotg->op_state);
|
||||||
|
|
||||||
|
/* Don't modify pullup state while in host mode */
|
||||||
|
if (hsotg->op_state != OTG_STATE_B_PERIPHERAL) {
|
||||||
|
hsotg->enabled = is_on;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
mutex_lock(&hsotg->init_mutex);
|
mutex_lock(&hsotg->init_mutex);
|
||||||
spin_lock_irqsave(&hsotg->lock, flags);
|
spin_lock_irqsave(&hsotg->lock, flags);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче