linux/drivers/usb
Rajat Khandelwal afc0aea702 usb: typec: mux: Enter safe mode only when pins need to be reconfigured
commit 40bf8f162d upstream.

There is no point to enter safe mode during DP/TBT configuration
if the DP/TBT was already configured in mux. This is because safe
mode is only applicable when there is a need to reconfigure the
pins in order to avoid damage within/to port partner.

In some chrome systems, IOM/mux is already configured before OS
comes up. Thus, when driver is probed, it blindly enters safe
mode due to PD negotiations but only after gfx driver lowers
dp_phy_ownership, will the IOM complete safe mode and send an
ack to PMC.
Since, that never happens, we see IPC timeout.

Hence, allow safe mode only when pin reconfiguration is not
required, which makes sense.

Fixes: 43d596e322 ("usb: typec: intel_pmc_mux: Check the port status before connect")
Cc: stable <stable@kernel.org>
Signed-off-by: Rajat Khandelwal <rajat.khandelwal@linux.intel.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20221024171611.181468-1-rajat.khandelwal@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2022-11-26 09:24:45 +01:00
..
atm usb: atm: cxacru: Fix typo in comment 2021-05-21 20:05:40 +02:00
c67x00 usb/c67x00: Replace tasklet with work 2021-01-26 18:36:37 +01:00
cdns3 usb: cdns3: host: fix endless superspeed hub port reset 2022-11-26 09:24:45 +01:00
chipidea usb: chipidea: fix deadlock in ci_otg_del_timer 2022-11-26 09:24:45 +01:00
class USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020) 2022-09-08 12:28:06 +02:00
common usb: common: debug: Check non-standard control requests 2022-10-26 12:35:03 +02:00
core usb: add NO_LPM quirk for Realforce 87U Keyboard 2022-11-26 09:24:45 +01:00
dwc2 usb: dwc2: fix wrong order of phy_power_on and phy_init 2022-09-08 12:28:06 +02:00
dwc3 Revert "usb: dwc3: disable USB core PHY management" 2022-11-26 09:24:44 +01:00
early Revert "usb: early: convert to readl_poll_timeout_atomic()" 2021-12-22 09:32:45 +01:00
gadget usb: bdc: change state when port disconnected 2022-11-03 23:59:11 +09:00
host USB: bcma: Make GPIO explicitly optional 2022-11-26 09:24:44 +01:00
image USB: microtek: use set_host_byte() 2020-09-16 12:42:10 +02:00
isp1760 usb: isp1760: Fix out-of-bounds array access 2022-06-09 10:22:27 +02:00
misc usb: idmouse: fix an uninit-value in idmouse_open 2022-10-26 12:35:51 +02:00
mon usb: mon: make mmapped memory read only 2022-10-12 09:53:28 +02:00
mtu3 usb: mtu3: fix failed runtime suspend in host only mode 2022-10-26 12:35:19 +02:00
musb usb: musb: Fix musb_gadget.c rxstate overflow bug 2022-10-26 12:35:49 +02:00
phy extcon: Fix extcon_get_extcon_dev() error handling 2022-06-14 18:36:21 +02:00
renesas_usbhs usb: renesas: Fix refcount leak bug 2022-08-25 11:40:33 +02:00
roles usb: roles: add helper usb_role_string() 2021-05-27 09:17:18 +02:00
serial USB: serial: option: add Fibocom FM160 0x0111 composition 2022-11-26 09:24:45 +01:00
storage Revert "usb: storage: Add quirk for Samsung Fit flash" 2022-10-26 12:35:50 +02:00
typec usb: typec: mux: Enter safe mode only when pins need to be reconfigured 2022-11-26 09:24:45 +01:00
usbip usb: usbip: add missing device lock on tweak configuration cmd 2022-06-14 18:36:04 +02:00
Kconfig usb: remove reference to deleted config STB03xxx 2021-08-18 15:32:19 +02:00
Makefile usb: host: remove line for obsolete config USB_HWA_HCD 2021-08-18 15:32:19 +02:00
usb-skeleton.c USB: usb-skeleton: drop redundant in-urb check 2019-10-10 12:41:19 +02:00