Even if d3_test_pme_ptr is not available, d3_test can still
be useful, e.g. by manually triggering resume (with ctrl-c),
and reading the wakeup reasons.
Signed-off-by: Eliad Peller <eliad@wizery.com>
Reviewed-by: Luciano Coelho <luciano.coelho@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
        if (len >= sizeof(u32) * 2) {
                mvm->d3_test_pme_ptr =
                        le32_to_cpup((__le32 *)d3_cfg_cmd.resp_pkt->data);
-       } else if (test) {
-               /* in test mode we require the pointer */
-               ret = -EIO;
-               goto out;
        }
 #endif
        iwl_free_resp(&d3_cfg_cmd);
        u32 pme_asserted;
 
        while (true) {
-               pme_asserted = iwl_trans_read_mem32(mvm->trans,
-                                                   mvm->d3_test_pme_ptr);
-               if (pme_asserted)
-                       break;
+               /* read pme_ptr if available */
+               if (mvm->d3_test_pme_ptr) {
+                       pme_asserted = iwl_trans_read_mem32(mvm->trans,
+                                               mvm->d3_test_pme_ptr);
+                       if (pme_asserted)
+                               break;
+               }
+
                if (msleep_interruptible(100))
                        break;
        }