diff options
Diffstat (limited to 'drivers/usb/host/xhci-dbgcap.c')
| -rw-r--r-- | drivers/usb/host/xhci-dbgcap.c | 15 | 
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/usb/host/xhci-dbgcap.c b/drivers/usb/host/xhci-dbgcap.c index 63edf2d8f245..ecda964e018a 100644 --- a/drivers/usb/host/xhci-dbgcap.c +++ b/drivers/usb/host/xhci-dbgcap.c @@ -892,7 +892,8 @@ static enum evtreturn xhci_dbc_do_handle_events(struct xhci_dbc *dbc)  			dev_info(dbc->dev, "DbC configured\n");  			portsc = readl(&dbc->regs->portsc);  			writel(portsc, &dbc->regs->portsc); -			return EVT_GSER; +			ret = EVT_GSER; +			break;  		}  		return EVT_DONE; @@ -954,7 +955,8 @@ static enum evtreturn xhci_dbc_do_handle_events(struct xhci_dbc *dbc)  			break;  		case TRB_TYPE(TRB_TRANSFER):  			dbc_handle_xfer_event(dbc, evt); -			ret = EVT_XFER_DONE; +			if (ret != EVT_GSER) +				ret = EVT_XFER_DONE;  			break;  		default:  			break; @@ -1390,8 +1392,15 @@ int xhci_dbc_suspend(struct xhci_hcd *xhci)  	if (!dbc)  		return 0; -	if (dbc->state == DS_CONFIGURED) +	switch (dbc->state) { +	case DS_ENABLED: +	case DS_CONNECTED: +	case DS_CONFIGURED:  		dbc->resume_required = 1; +		break; +	default: +		break; +	}  	xhci_dbc_stop(dbc);  | 
