linux/drivers/usb
Macpaul Lin 456244aeec usb: mtu3: fix USB 3.0 dual-role-switch from device to host
Issue description:
  When an OTG port has been switched to device role and then switch back
  to host role again, the USB 3.0 Host (XHCI) will not be able to detect
  "plug in event of a connected USB 2.0/1.0 ((Highspeed and Fullspeed)
  devices until system reboot.

Root cause and Solution:
  There is a condition checking flag "ssusb->otg_switch.is_u3_drd" in
  toggle_opstate(). At the end of role switch procedure, toggle_opstate()
  will be called to set DC_SESSION and SOFT_CONN bit. If "is_u3_drd" was
  set and switched the role to USB host 3.0, bit DC_SESSION and SOFT_CONN
  will be skipped hence caused the port cannot detect connected USB 2.0
  (Highspeed and Fullspeed) devices. Simply remove the condition check to
  solve this issue.

Fixes: d0ed062a8b ("usb: mtu3: dual-role mode support")
Cc: stable@vger.kernel.org
Tested-by: Fabien Parent <fparent@baylibre.com>
Reviewed-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
Signed-off-by: Tainping Fang <tianping.fang@mediatek.com>
Link: https://lore.kernel.org/r/20220419081245.21015-1-macpaul.lin@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-21 19:06:41 +02:00
..
atm exit: Rename complete_and_exit to kthread_complete_and_exit 2021-12-13 12:04:45 -06:00
c67x00
cdns3 usb: cdns3: Fix issue for clear halt endpoint 2022-04-09 17:18:00 +02:00
chipidea usb: udc: Fix typo in comment 2022-01-31 14:24:39 +01:00
class usb: usbtmc: Fix bug in pipe direction for control transfers 2022-03-15 18:45:31 +01:00
common usb: common: usb-conn-gpio: Make VBUS supply completely optional 2022-03-15 18:22:15 +01:00
core USB: quirks: add STRING quirk for VCOM device 2022-04-14 18:03:45 +02:00
dwc2 Merge 5.17-rc6 into usb-next 2022-02-28 21:42:36 +01:00
dwc3 usb: dwc3: fix backwards compat with rockchip devices 2022-04-21 18:58:35 +02:00
early usb: early: xhci-dbc: Fix xdbc number parsing 2022-03-15 18:20:34 +01:00
gadget usb: gadget: uvc: Fix crash when encoding data for usb request 2022-04-19 16:22:20 +02:00
host xhci: Enable runtime PM on second Alderlake controller 2022-04-21 18:58:54 +02:00
image scsi: Remove drivers/scsi/scsi.h 2022-02-22 21:11:02 -05:00
isp1760 usb: isp1760: remove redundant max_packet() macro 2022-03-15 18:24:02 +01:00
misc usb: misc: fix improper handling of refcount in uss720_probe() 2022-04-21 18:57:31 +02:00
mon
mtu3 usb: mtu3: fix USB 3.0 dual-role-switch from device to host 2022-04-21 19:06:41 +02:00
musb partially Revert "usb: musb: Set the DT node on the child device" 2022-03-15 15:49:15 +01:00
phy usb: Remove redundant 'flush_workqueue()' calls 2021-11-17 14:36:57 +01:00
renesas_usbhs usb: renesas_usbhs: Use platform_get_irq() to get the interrupt 2021-12-21 08:51:57 +01:00
roles
serial TTY/Serial driver changes for 5.18-rc1 2022-03-28 13:00:51 -07:00
storage USB/Thunderbolt patches for 5.18-rc1 2022-03-26 13:08:25 -07:00
typec usb: typec: rt1719: Fix build error without CONFIG_POWER_SUPPLY 2022-04-21 18:33:45 +02:00
usbip usb: usbip: eliminate anonymous module_init & module_exit 2022-03-18 12:52:56 +01:00
Kconfig
Makefile
usb-skeleton.c usb: usb-skeleton: Update min() to min_t() 2021-10-05 12:56:48 +02:00