[PATCH v2 0/2] Fix some VDM AMS handling

From: Kyle Tso
Date: Sat May 22 2021 - 21:59:20 EST


Changes since v1:
-----------------
usb: typec: tcpm: Properly interrupt VDM AMS
- fix the bug reported by "kernel test robot <lkp@xxxxxxxxx>"
- add Reviewed-by: tag from Guenter

usb: typec: tcpm: Respond Not_Supported if no snk_vdo
- no changes in code
- add Reviewed-by: tag from Guenter

v1 cover letter:
----------------
usb: typec: tcpm: Properly interrupt VDM AMS
- If VDM AMS is interrupted by Messages other than VDM, the current VDM
AMS should be finished before handling the just arrived request. I add
intercept code in the beginning of the handler of the three types of
requests (control/data/extended) to ensure that the AMS is finished
first.

usb: typec: tcpm: Respond Not_Supported if no snk_vdo
- The snk_vdo is for the responses to incoming VDM Discover Identity. If
there is no data in snk_vdo, it means that the port doesn't even
support it. According to PD3 Spec "Table 6-64 Response to an incoming
VDM", the port should send Not_Supported Message as the response. For
PD2 cases, it is defined in PD2 Spec "Table 6-41 Applicability of
Structured VDM Commands - Note 3" that the port should "Ignore" the
command.

Kyle Tso (2):
usb: typec: tcpm: Properly interrupt VDM AMS
usb: typec: tcpm: Respond Not_Supported if no snk_vdo

drivers/usb/typec/tcpm/tcpm.c | 35 ++++++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)

--
2.31.1.818.g46aad6cb9e-goog