Thread (12 messages) 12 messages, 5 authors, 2021-01-08

Re: [PATCH 2/3] usb: gadget: composite: Split composite reset and disconnect

From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date: 2021-01-08 22:05:54
Also in: lkml

Jack Pham wrote:
Hi Thinh,

On Fri, Jan 08, 2021 at 02:19:30AM +0000, Thinh Nguyen wrote:
quoted
Hi Wesley,

Felipe Balbi wrote:
quoted
Hi,

Wesley Cheng [off-list ref] writes:
quoted
+void composite_reset(struct usb_gadget *gadget)
+{
+	/*
+	 * Section 1.4.13 Standard Downstream Port of the USB battery charging
+	 * specification v1.2 states that a device connected on a SDP shall only
+	 * draw at max 100mA while in a connected, but unconfigured state.
The requirements are different, though. I think OTG spec has some extra
requirements where only 8mA can be drawn max. You need to check for the
otg flag. Moreover, USB3+ spec has units of 150mA meaning the device
can't draw 100mA (IIRC).
We see issue with this patch series. For our device running at SSP, the
device couldn't recover from a port reset and remained in eSS.Inactive
state.

This patch series is already in Greg's usb-testing. Please review and
help fix it.

We can see the failure once the patch "usb: gadget: configfs: Add a
specific configFS reset callback" is introduced.
Hmm. Does your device use a legacy USB2 PHY (not generic PHY) driver,
and does it implement the usb_phy_set_power() callback? Because
otherwise this new configfs_composite_reset() callback would not have
changed from the original behavior since the newly introduced (in patch
1/3) dwc3_gadget_vbus_draw() callback would simply be a no-op if
dwc->usb2_phy is not present.

If it does turn out to be something with your PHY driver's set_power(),
it's still puzzling since it's directed to only the usb2_phy, so I'm
curious how telling it to draw 100mA could affect SSP operation at all.

Thanks,
Jack
So, I ran some more tests. It seems like this new change affects some
timing in my setup that triggers this failure. I tried to add some
printouts to look into it further, but somehow that reduces the failure
rate significantly. This doesn't seem related to power drawing as it
doesn't update usb2_phy for SSP as you said.

After switching my HW setup, the problem seems to go away. I guess we
can ignore this since the code path looks to be the same as previous.

BR,
Thinh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help