linux/drivers/usb/typec
Hans de Goede 976daf9d11 usb: typec: tcpm: Try PD-2.0 if sink does not respond to 3.0 source-caps
PD 2.0 sinks are supposed to accept src-capabilities with a 3.0 header and
simply ignore any src PDOs which the sink does not understand such as PPS
but some 2.0 sinks instead ignore the entire PD_DATA_SOURCE_CAP message,
causing contract negotiation to fail.

This commit fixes such sinks not working by re-trying the contract
negotiation with PD-2.0 source-caps messages if we don't have a contract
after PD_N_HARD_RESET_COUNT hard-reset attempts.

The problem fixed by this commit was noticed with a Type-C to VGA dongle.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-19 14:57:31 +01:00
..
altmodes usb: typec: displayport: Move the Configuration VDO helpers to the header 2019-02-08 10:25:12 +01:00
mux USB: add missing SPDX lines to Kconfig and Makefiles 2019-01-22 09:08:17 +01:00
tcpm usb: typec: tcpm: Try PD-2.0 if sink does not respond to 3.0 source-caps 2019-03-19 14:57:31 +01:00
ucsi usb: typec: ucsi: Remove debug.h file 2019-02-08 10:25:12 +01:00
Kconfig USB: add missing SPDX lines to Kconfig and Makefiles 2019-01-22 09:08:17 +01:00
Makefile usb: typec: Group all TCPCI/TCPM code together 2018-09-20 13:37:29 +02:00
bus.c usb/typec: fix kernel-doc notation warning for typec_match_altmode 2018-09-05 14:36:53 +02:00
bus.h usb: typec: avoid format-overflow warning 2018-07-06 16:36:19 +02:00
class.c usb: typec: Find the ports by also matching against the device node 2019-02-14 10:52:25 +01:00
mux.c usb: typec: mux: remove redundant check on variable match 2019-02-20 11:29:01 +01:00
tps6598x.c usb: typec: tps6598x: handle block writes separately with plain-I2C adapters 2019-02-21 10:54:23 +01:00