]> git.itanic.dy.fi Git - linux-stable/commit
usb: typec: tcpm: fix multiple times discover svids error
authorFrank Wang <frank.wang@rock-chips.com>
Thu, 16 Mar 2023 08:11:49 +0000 (16:11 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Apr 2023 09:04:42 +0000 (11:04 +0200)
commitdac3b192107b978198e89ec0f77375738352e0c8
tree84e05ee03343fc66628c706cd4c4fa0b24307b5e
parent9a4d7dd1990383df8ffa09d6879cecb0534405e1
usb: typec: tcpm: fix multiple times discover svids error

PD3.0 Spec 6.4.4.3.2 say that only Responder supports 12 or more SVIDs,
the Discover SVIDs Command Shall be executed multiple times until a
Discover SVIDs VDO is returned ending either with a SVID value of
0x0000 in the last part of the last VDO or with a VDO containing two
SVIDs with values of 0x0000.

In the current implementation, if the last VDO does not find that the
Discover SVIDs Command would be executed multiple times even if the
Responder SVIDs are less than 12, and we found some odd dockers just
meet this case. So fix it.

Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Link: https://lore.kernel.org/r/20230316081149.24519-1-frank.wang@rock-chips.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/tcpm/tcpm.c