spi: Factor out reset_decoder_state().
authorUwe Hermann <uwe@hermann-uwe.de>
Sun, 2 Feb 2014 14:54:15 +0000 (15:54 +0100)
committerUwe Hermann <uwe@hermann-uwe.de>
Sun, 9 Feb 2014 18:38:20 +0000 (19:38 +0100)
decoders/spi/pd.py

index 1a90c00c3339c95785b891a9d2cfcc31f33755c7..0d35c0be8ef9deb741edff19d74824ec24b043ad 100644 (file)
@@ -140,6 +140,13 @@ class Decoder(srd.Decoder):
     def putmosibit(self, i, data):
         self.put(self.mosibits[i][1], self.mosibits[i][2], self.out_ann, data)
 
+    def reset_decoder_state(self):
+        self.misodata = 0 if self.have_miso else None
+        self.mosidata = 0 if self.have_mosi else None
+        self.misobits = [] if self.have_miso else None
+        self.mosibits = [] if self.have_mosi else None
+        self.bitcount = 0
+
     def handle_bit(self, miso, mosi, clk, cs):
         # If this is the first bit of a dataword, save its sample number.
         if self.bitcount == 0:
@@ -207,12 +214,7 @@ class Decoder(srd.Decoder):
         if self.have_cs and self.cs_was_deasserted_during_data_word:
             self.putw([4, ['CS# was deasserted during this data word!']])
 
-        # Reset decoder state.
-        self.misodata = 0 if self.have_miso else None
-        self.mosidata = 0 if self.have_mosi else None
-        self.misobits = [] if self.have_miso else None
-        self.mosibits = [] if self.have_mosi else None
-        self.bitcount = 0
+        self.reset_decoder_state()
 
     def find_clk_edge(self, miso, mosi, clk, cs):
         if self.have_cs and self.oldcs != cs:
@@ -221,9 +223,7 @@ class Decoder(srd.Decoder):
                      ['CS-CHANGE', self.oldcs, cs])
             self.oldcs = cs
             # Reset decoder state when CS# changes (and the CS# pin is used).
-            self.misodata = 0 if self.have_miso else None
-            self.mosidata = 0 if self.have_mosi else None
-            self.bitcount = 0
+            self.reset_decoder_state()
 
         # Ignore sample if the clock pin hasn't changed.
         if clk == self.oldclk: