Loading drivers/usb/gadget/ci13xxx_udc.c +6 −0 Original line number Diff line number Diff line Loading @@ -3789,6 +3789,12 @@ static irqreturn_t udc_irq(void) spin_lock(udc->lock); if ((udc->udc_driver->flags & CI13XXX_PULLUP_ON_VBUS) && !udc->vbus_active) { spin_unlock(udc->lock); return IRQ_NONE; } if (udc->udc_driver->flags & CI13XXX_REGS_SHARED) { if (hw_cread(CAP_USBMODE, USBMODE_CM) != USBMODE_CM_DEVICE) { Loading drivers/usb/phy/phy-msm-usb.c +8 −1 Original line number Diff line number Diff line Loading @@ -946,6 +946,8 @@ phcd_retry: if ((test_bit(B_SESS_VLD, &motg->inputs) && !device_bus_suspend && !dcp && !prop_charger && !floated_charger) || test_bit(A_BUS_REQ, &motg->inputs) || sm_work_busy) { if (test_bit(A_BUS_REQ, &motg->inputs)) motg->pm_done = 1; motg->ui_enabled = 1; enable_irq(motg->irq); return -EBUSY; Loading Loading @@ -1321,6 +1323,8 @@ skip_phy_resume: /* Match the disable_irq call from ISR */ enable_irq(motg->async_int); motg->async_int = 0; if (phy->state >= OTG_STATE_A_IDLE) set_bit(A_BUS_REQ, &motg->inputs); } motg->ui_enabled = 1; enable_irq(motg->irq); Loading Loading @@ -3247,8 +3251,11 @@ static irqreturn_t msm_otg_irq(int irq, void *data) pr_debug("OTG IRQ: %d in LPM\n", irq); disable_irq_nosync(irq); motg->async_int = irq; if (!atomic_read(&motg->pm_suspended)) if (!atomic_read(&motg->pm_suspended)) { if (otg->phy->state >= OTG_STATE_A_IDLE) set_bit(A_BUS_REQ, &motg->inputs); pm_request_resume(otg->phy->dev); } return IRQ_HANDLED; } Loading Loading
drivers/usb/gadget/ci13xxx_udc.c +6 −0 Original line number Diff line number Diff line Loading @@ -3789,6 +3789,12 @@ static irqreturn_t udc_irq(void) spin_lock(udc->lock); if ((udc->udc_driver->flags & CI13XXX_PULLUP_ON_VBUS) && !udc->vbus_active) { spin_unlock(udc->lock); return IRQ_NONE; } if (udc->udc_driver->flags & CI13XXX_REGS_SHARED) { if (hw_cread(CAP_USBMODE, USBMODE_CM) != USBMODE_CM_DEVICE) { Loading
drivers/usb/phy/phy-msm-usb.c +8 −1 Original line number Diff line number Diff line Loading @@ -946,6 +946,8 @@ phcd_retry: if ((test_bit(B_SESS_VLD, &motg->inputs) && !device_bus_suspend && !dcp && !prop_charger && !floated_charger) || test_bit(A_BUS_REQ, &motg->inputs) || sm_work_busy) { if (test_bit(A_BUS_REQ, &motg->inputs)) motg->pm_done = 1; motg->ui_enabled = 1; enable_irq(motg->irq); return -EBUSY; Loading Loading @@ -1321,6 +1323,8 @@ skip_phy_resume: /* Match the disable_irq call from ISR */ enable_irq(motg->async_int); motg->async_int = 0; if (phy->state >= OTG_STATE_A_IDLE) set_bit(A_BUS_REQ, &motg->inputs); } motg->ui_enabled = 1; enable_irq(motg->irq); Loading Loading @@ -3247,8 +3251,11 @@ static irqreturn_t msm_otg_irq(int irq, void *data) pr_debug("OTG IRQ: %d in LPM\n", irq); disable_irq_nosync(irq); motg->async_int = irq; if (!atomic_read(&motg->pm_suspended)) if (!atomic_read(&motg->pm_suspended)) { if (otg->phy->state >= OTG_STATE_A_IDLE) set_bit(A_BUS_REQ, &motg->inputs); pm_request_resume(otg->phy->dev); } return IRQ_HANDLED; } Loading