diff --git a/server/cros/servo/pd_device.py b/server/cros/servo/pd_device.py
index 7f9d5c9..0d0d51a 100644
--- a/server/cros/servo/pd_device.py
+++ b/server/cros/servo/pd_device.py
@@ -91,10 +91,9 @@
         raise NotImplementedError(
                 'vbus_request should be implemented in derived class')
 
-    def soft_reset(self, states_list=None):
+    def soft_reset(self):
         """Initates a PD soft reset sequence
 
-        @param states_list: list of expected PD state transitions
         """
         raise NotImplementedError(
                 'soft_reset should be implemented in derived class')
@@ -277,7 +276,7 @@
             val = 'off'
         return bool(val == m[0][1])
 
-    def soft_reset(self, states_list=None):
+    def soft_reset(self):
         """Initates a PD soft reset sequence
 
         To verify that a soft reset sequence was initiated, the
@@ -285,8 +284,6 @@
         was acknowledged by its port pair. The connect state should
         be same as it was prior to issuing the reset command.
 
-        @param states_list: list of expected PD state transitions
-
         @returns True if the port pair acknowledges the the reset message
         and if following the command, the device returns to the same
         connected state. False otherwise.
@@ -480,13 +477,36 @@
         m = self.utils.send_pd_command_get_output(cmd, reply_exp)
         return self._verify_state_sequence(states_list, m[0][0])
 
-    def soft_reset(self, states_list):
+    def soft_reset(self):
         """Initates a PD soft reset sequence
 
-        @param states_list: list of expected PD state transitions
-
         @returns True if state transitions match, False otherwise
         """
+        snk_reset_states = [
+            'SOFT_RESET',
+            'SNK_DISCOVERY',
+            'SNK_REQUESTED',
+            'SNK_TRANSITION',
+            'SNK_READY'
+        ]
+
+        src_reset_states = [
+            'SOFT_RESET',
+            'SRC_DISCOVERY',
+            'SRC_NEGOCIATE',
+            'SRC_ACCEPTED',
+            'SRC_POWERED',
+            'SRC_TRANSITION',
+            'SRC_READY'
+        ]
+
+        if self.is_src():
+            states_list = src_reset_states
+        elif self.is_snk():
+            states_list = snk_reset_states
+        else:
+            raise error.TestFail('Port Pair not in a connected state')
+
         cmd = 'pd %d soft' % self.port
         return self._reset(cmd, states_list)
 
diff --git a/server/site_tests/firmware_PDResetSoft/firmware_PDResetSoft.py b/server/site_tests/firmware_PDResetSoft/firmware_PDResetSoft.py
index 72546d8..c53ace9 100644
--- a/server/site_tests/firmware_PDResetSoft/firmware_PDResetSoft.py
+++ b/server/site_tests/firmware_PDResetSoft/firmware_PDResetSoft.py
@@ -20,26 +20,8 @@
 
     """
     version = 1
-
     RESET_ITERATIONS = 5
 
-    snk_reset_states = [
-        'SOFT_RESET',
-        'SNK_DISCOVERY',
-        'SNK_REQUESTED',
-        'SNK_TRANSITION',
-        'SNK_READY'
-    ]
-
-    src_reset_states = [
-        'SOFT_RESET',
-        'SRC_DISCOVERY',
-        'SRC_NEGOCIATE',
-        'SRC_ACCEPTED',
-        'SRC_POWERED',
-        'SRC_TRANSITION',
-        'SRC_READY'
-    ]
 
     def _test_soft_reset(self, port_pair):
         """Tests soft reset initated by both Plankton and the DUT
@@ -48,15 +30,12 @@
         """
         for dev in port_pair:
             for _ in xrange(self.RESET_ITERATIONS):
-                # Select the appropriate state transition table
-                if dev.is_src():
-                    states_list = self.src_reset_states
-                elif dev.is_snk():
-                    states_list = self.snk_reset_states
-                else:
-                    raise error.TestFail('Port Pair not in a connected state')
-                if dev.soft_reset(states_list) == False:
-                    raise error.TestFail('Soft Reset Failed')
+                try:
+                    if dev.soft_reset() == False:
+                        raise error.TestFail('Soft Reset Failed')
+                except NotImplementedError:
+                    logging.warn('Device cant soft reset ... skipping')
+                    break
 
     def initialize(self, host, cmdline_args):
         super(firmware_PDResetSoft, self).initialize(host, cmdline_args)
@@ -92,9 +71,12 @@
         # Test soft resets initiated by both ends
         self._test_soft_reset(port_pair)
         # Attempt to swap power roles
-        if port_pair[0].pr_swap() == False:
-            logging.warn('Power role not swapped, ending test')
+        try:
+            if port_pair[0].pr_swap() == False:
+                logging.warn('Power role not swapped, ending test')
+                return
+        except NotImplementedError:
+            logging.warn('device cant send power role swap command, end test')
             return
         # Power role has been swapped, retest.
         self._test_soft_reset(port_pair)
-
