All of lore.kernel.org
 help / color / mirror / Atom feed
* usb: dwc2: Detecting cable disconnection in OTG mode?
@ 2021-12-11  9:55 Pavel Hofman
  2021-12-11  9:59 ` Pavel Hofman
  0 siblings, 1 reply; 5+ messages in thread
From: Pavel Hofman @ 2021-12-11  9:55 UTC (permalink / raw)
  To: Minas Harutyunyan; +Cc: linux-usb

Hi Minas,

I am trying to find if dwc2 in OTG mode can pass information to gadget 
functions that the host has been disconnected. I am testing on RPi4. In 
a datasheet for a different dwc2 implementation 
https://www.mouser.cn/datasheet/2/196/Infineon-xmc4500_rm_v1.6_2016-UM-v01_06-EN-598157.pdf 
- chapter "16.8.3 Device Disconnection" I found:


===========
The device session ends when the USB cable is disconnected or if the 
VBUS is switched off by the host.
The device disconnect flow is as follows:

1. When the USB cable is unplugged or when the VBUS is switched off by 
the host, the device core triggers GINTSTS.OTGInt [bit 2] interrupt bit
============

I put a printk to core_intr.c:dwc2_handle_otg_intr() which is called 
only from handling the OTGInt interrupt 
https://elixir.bootlin.com/linux/v5.1.9/source/drivers/usb/dwc2/core_intr.c#L803 
. But this method is not called at all when disconnecting the USB cable 
on RPi4 in gadget mode.

The reason I need to identigy the disconnection is my work on signalling 
that host has started/stopped audio playback/capture. Everything more or 
less works, but disconnecting the cable (which means stopped 
playback/capture on the gadget) is not identified in any way.

Thanks a lot,

Pavel.



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-12-13 13:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-11  9:55 usb: dwc2: Detecting cable disconnection in OTG mode? Pavel Hofman
2021-12-11  9:59 ` Pavel Hofman
2021-12-12 13:47   ` Pavel Hofman
2021-12-13 10:58     ` Minas Harutyunyan
2021-12-13 13:38       ` Pavel Hofman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.