From 42f8b6c53011ea64be935f730250f7537940d4e1 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date: Thu, 1 Nov 2018 15:03:45 -0500
Subject: [PATCH] Make M125 work with SDSUPPORT (#12289)

---
 Marlin/src/gcode/feature/pause/M125.cpp | 25 ++++++++-----------------
 Marlin/src/sd/cardreader.h              | 20 ++++++++------------
 2 files changed, 16 insertions(+), 29 deletions(-)

diff --git a/Marlin/src/gcode/feature/pause/M125.cpp b/Marlin/src/gcode/feature/pause/M125.cpp
index 7143392465..1f19f7016f 100644
--- a/Marlin/src/gcode/feature/pause/M125.cpp
+++ b/Marlin/src/gcode/feature/pause/M125.cpp
@@ -28,10 +28,8 @@
 #include "../../parser.h"
 #include "../../../feature/pause.h"
 #include "../../../module/motion.h"
-
-#if DISABLED(SDSUPPORT)
-  #include "../../../module/printcounter.h"
-#endif
+#include "../../../sd/cardreader.h"
+#include "../../../module/printcounter.h"
 
 /**
  * M125: Store current position and move to filament change position.
@@ -70,21 +68,14 @@ void GcodeSuite::M125() {
     park_point.y += (active_extruder ? hotend_offset[Y_AXIS][active_extruder] : 0);
   #endif
 
-  #if DISABLED(SDSUPPORT)
-    const bool job_running = print_job_timer.isRunning();
-  #endif
+  const bool job_running = print_job_timer.isRunning();
 
-  if (pause_print(retract, park_point)) {
-    #if DISABLED(SDSUPPORT)
-      // Wait for lcd click or M108
-      wait_for_filament_reload();
-
-      // Return to print position and continue
-      resume_print();
-
-      if (job_running) print_job_timer.start();
-    #endif
+  if (pause_print(retract, park_point) && !IS_SD_PRINTING()) {
+    wait_for_filament_reload(); // Wait for lcd click or M108
+    resume_print();             // Return to print position and continue
   }
+
+  if (job_running) print_job_timer.start();
 }
 
 #endif // PARK_HEAD_ON_PAUSE
diff --git a/Marlin/src/sd/cardreader.h b/Marlin/src/sd/cardreader.h
index b4e04fe7f2..a1653753f1 100644
--- a/Marlin/src/sd/cardreader.h
+++ b/Marlin/src/sd/cardreader.h
@@ -19,9 +19,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  */
-
-#ifndef _CARDREADER_H_
-#define _CARDREADER_H_
+#pragma once
 
 #include "../inc/MarlinConfig.h"
 
@@ -265,16 +263,14 @@ private:
   #define IS_SD_INSERTED() true
 #endif
 
+#define IS_SD_PRINTING()  card.sdprinting
+#define IS_SD_FILE_OPEN() card.isFileOpen()
+
 extern CardReader card;
 
-#endif // SDSUPPORT
+#else // !SDSUPPORT
 
-#if ENABLED(SDSUPPORT)
-  #define IS_SD_PRINTING()  card.sdprinting
-  #define IS_SD_FILE_OPEN() card.isFileOpen()
-#else
-  #define IS_SD_PRINTING()  false
-  #define IS_SD_FILE_OPEN() false
-#endif
+#define IS_SD_PRINTING()  false
+#define IS_SD_FILE_OPEN() false
 
-#endif // _CARDREADER_H_
+#endif // !SDSUPPORT