]> sigrok.org Git - libsigrokdecode.git/commitdiff
usb_{packet,request}: handle PREamble transmissions
authorStefan Brüns <redacted>
Tue, 1 Dec 2015 04:53:32 +0000 (05:53 +0100)
committerStefan Brüns <redacted>
Tue, 1 Dec 2015 05:46:27 +0000 (06:46 +0100)
decoders/usb_packet/pd.py
decoders/usb_request/pd.py

index 3e061c9ccf3edad7a4cac625c30cd00ae74ecac2..8d1de65bc33460a5605e77036a492134047a23c3 100644 (file)
@@ -113,7 +113,7 @@ pids = {
 
     # Special
     '00111100': ['PRE', 'Host-issued preamble; enables downstream bus traffic to low-speed devices'],
-    '00111100': ['ERR', 'Split transaction error handshake'],
+    #'00111100': ['ERR', 'Split transaction error handshake'],
     '00011110': ['SPLIT', 'HS split transaction token'],
     '00101101': ['PING', 'HS flow control probe for a bulk/control EP'],
     '00001111': ['Reserved', 'Reserved PID'],
@@ -281,7 +281,7 @@ class Decoder(srd.Decoder):
         self.packet.append(pid)
         self.packet_summary += pidname
 
-        if pidname in ('OUT', 'IN', 'SOF', 'SETUP', 'PRE', 'PING'):
+        if pidname in ('OUT', 'IN', 'SOF', 'SETUP', 'PING'):
             if len(packet) < 32:
                 self.putp([28, ['Invalid packet (shorter than 32 bits)']])
                 return
@@ -357,6 +357,8 @@ class Decoder(srd.Decoder):
             self.packet.append(crc16)
         elif pidname in ('ACK', 'NAK', 'STALL', 'NYET', 'ERR'):
             pass # Nothing to do, these only have SYNC+PID+EOP fields.
+        elif pidname in ('PRE'):
+            pass # Nothing to do, PRE  only has SYNC+PID fields.
         else:
             pass # TODO: Handle 'SPLIT' and possibly 'Reserved' packets.
 
index 4227856a2d394b08b29e33eede08f5c0f9347ada..4526e693fd1abb255551152557d28fe269300a70 100644 (file)
@@ -350,6 +350,9 @@ class Decoder(srd.Decoder):
             self.transaction_es = es
             self.handle_transfer()
 
+        elif pname == 'PRE':
+            return
+
         else:
             self.putr(ss, es, [4, ['ERR: received unhandled %s token in state %s' %
                 (pname, self.transaction_state)]])