Merge "usb: dwc3: Avoid CLR block DB if run/stop is cleared"

This commit is contained in:
qctecmdr 2020-10-08 21:56:19 -07:00 • committed by Gerrit - the friendly Code Review server
commit 3148d29a40

View file

@ -1673,6 +1673,7 @@ static void gsi_set_clear_dbell(struct usb_ep *ep,
struct dwc3 *dwc = dep->dwc;
struct dwc3_msm *mdwc = dev_get_drvdata(dwc->dev->parent);
dbg_log_string("block_db(%d)", block_db);
dwc3_msm_write_reg_field(mdwc->base, GSI_GENERAL_CFG_REG(mdwc->gsi_reg),
BLOCK_GSI_WR_GO_MASK, block_db);
}
@ -1807,6 +1808,14 @@ int usb_gsi_ep_op(struct usb_ep *ep, void *op_data, enum gsi_ep_op op)
break;
case GSI_EP_OP_SET_CLR_BLOCK_DBL:
block_db = *((bool *)op_data);
spin_lock_irqsave(&dwc->lock, flags);
if (!dwc->pullups_connected && !block_db) {
dbg_log_string("No Pullup\n");
spin_unlock_irqrestore(&dwc->lock, flags);
return -ESHUTDOWN;
}
spin_unlock_irqrestore(&dwc->lock, flags);
gsi_set_clear_dbell(ep, block_db);
break;
case GSI_EP_OP_CHECK_FOR_SUSPEND: