From 4f73de4dd2d03e2caaf7bec1d5c7f3f474cacdc1 Mon Sep 17 00:00:00 2001 From: Wesley Cheng Date: Tue, 9 Feb 2021 12:38:05 -0800 Subject: [PATCH] usb: dwc3: dwc3-msm: Avoid overriding DBM_GEN_CFG register The current register write to DBM_GEN_CFG to update the current speed is overwriting the entire register. Avoid this, as this also disables ZLT support on DBM. During validation of QDSS, a QDSS data stall was seen, as the QDSS BAM generated a ZLT, while DBM did not enable it. DBM ZLT support is recommended to be enabled in the HPG. Change-Id: Ieef4a42d3ac6f2a836a5c25530492c95669047b0 Signed-off-by: Wesley Cheng --- drivers/usb/dwc3/dwc3-msm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c index 210cbfb7d71f..8227cc6c2d7a 100644 --- a/drivers/usb/dwc3/dwc3-msm.c +++ b/drivers/usb/dwc3/dwc3-msm.c @@ -97,6 +97,9 @@ /* USB DBM Hardware registers */ #define DBM_REG_OFFSET 0xF8000 +/* DBM_GEN_CFG */ +#define DBM_EN_USB3 0x00000001 + /* DBM_EP_CFG */ #define DBM_EN_EP 0x00000001 #define USB3_EPNUM 0x0000003E @@ -1136,7 +1139,7 @@ static int dwc3_msm_ep_queue(struct usb_ep *ep, spin_unlock_irqrestore(&dwc->lock, flags); - msm_dbm_write_reg(mdwc, DBM_GEN_CFG, + msm_dbm_write_reg_field(mdwc, DBM_GEN_CFG, DBM_EN_USB3, dwc3_msm_is_dev_superspeed(mdwc) ? 1 : 0); return 0;