]> sigrok.org Git - libsigrokdecode.git/commit
usb_power_delivery: Handle extended message type in PD 3.0
authorFlorian Larysch <redacted>
Sun, 22 Mar 2020 21:11:15 +0000 (22:11 +0100)
committerSoeren Apel <redacted>
Tue, 1 Oct 2024 15:04:37 +0000 (17:04 +0200)
commitfe4815eb27504c48e4acccfc0eca046d8c5a3a00
tree3b379761ba3bb51cc8e9dda38829983d0618cee2
parent80e993bab984143e645efe789fec35882063ace7
usb_power_delivery: Handle extended message type in PD 3.0

The Message Type field of USB PD 3.0 messages has been extended from 4
to 5 bits[1]. While the protocol decoder already knows about the newly
defined message types (such as Get_Source_Cap_Extended), it does not
handle them correctly, because only the lower 4 bits of the header are
masked off (resulting, for example, in GoodCRC being detected, instead
of Get_Source_Cap_Extended).

Fix this by increasing the size of the Message Type field depending on
the value of the Specification Revision field.

[1] See Tables 6-1 of the USB Power Delivery Specification Revision 2.0
and Revision 3.0, respectively.
decoders/usb_power_delivery/pd.py