Hello Selvarasu, > -----Original Message----- > From: Selvarasu Ganesan <selvarasu.g@xxxxxxxxxxx> > Sent: Saturday, January 18, 2025 11:32 AM > To: gregkh@xxxxxxxxxxxxxxxxxxx; m.grzeschik@xxxxxxxxxxxxxx; > kees@xxxxxxxxxx; abdul.rahim@xxxxxxxxxxx; quic_jjohnson@xxxxxxxxxxx; > quic_linyyuan@xxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx > Cc: alim.akhtar@xxxxxxxxxxx; thiagu.r@xxxxxxxxxxx; > jh0801.jung@xxxxxxxxxxx; dh10.jung@xxxxxxxxxxx; > naushad@xxxxxxxxxxx; akash.m5@xxxxxxxxxxx; > rc93.raju@xxxxxxxxxxx; taehyun.cho@xxxxxxxxxxx; > hongpooh.kim@xxxxxxxxxxx; eomji.oh@xxxxxxxxxxx; > shijie.cai@xxxxxxxxxxx; Selvarasu Ganesan <selvarasu.g@xxxxxxxxxxx>; > stable@xxxxxxxxxxxxxxx > Subject: [PATCH v2] usb: gadget: f_midi: Fixing wMaxPacketSize exceeded > issue during MIDI bind retries > > The current implementation sets the wMaxPacketSize of bulk in/out > endpoints to 1024 bytes at the end of the f_midi_bind function. However, in > cases where there is a failure in the first midi bind attempt, consider > rebinding. This scenario may encounter an f_midi_bind issue due to the > previous bind setting the bulk endpoint's wMaxPacketSize to 1024 bytes, > which exceeds the ep->maxpacket_limit where configured dwc3 TX/RX > FIFO's maxpacket size of 512 bytes for IN/OUT endpoints in support HS > speed only. > > Here the term "rebind" in this context refers to attempting to bind the MIDI > function a second time in certain scenarios. The situations where rebinding is > considered include: > > * When there is a failure in the first UDC write attempt, which may be > caused by other functions bind along with MIDI. > * Runtime composition change : Example : MIDI,ADB to MIDI. Or MIDI to > MIDI,ADB. > > This commit addresses this issue by resetting the wMaxPacketSize before > endpoint claim. And here there is no need to reset all values in the usb > endpoint descriptor structure, as all members except wMaxPacketSize and > bEndpointAddress have predefined values. > > This ensures that restores the endpoint to its expected configuration, and > preventing conflicts with value of ep->maxpacket_limit. It also aligns with the > approach used in other function drivers, which treat endpoint descriptors as > if they were full speed before endpoint claim. > > Fixes: 46decc82ffd5 ("usb: gadget: unconditionally allocate hs/ss descriptor in > bind operation") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Selvarasu Ganesan <selvarasu.g@xxxxxxxxxxx> > --- Reviewed-by: Alim Akhtar <alim.akhtar@xxxxxxxxxxx> [Snip] > 2.17.1