diff --git a/Marlin/src/gcode/config/M304.cpp b/Marlin/src/gcode/config/M304.cpp
index a27adfc64a..3bc645903f 100644
--- a/Marlin/src/gcode/config/M304.cpp
+++ b/Marlin/src/gcode/config/M304.cpp
@@ -32,8 +32,6 @@ void GcodeSuite::M304() {
   if (parser.seen('I')) thermalManager.bedKi = scalePID_i(parser.value_float());
   if (parser.seen('D')) thermalManager.bedKd = scalePID_d(parser.value_float());
 
-  thermalManager.updatePID();
-
   SERIAL_ECHO_START();
   SERIAL_ECHOPAIR(" p:", thermalManager.bedKp);
   SERIAL_ECHOPAIR(" i:", unscalePID_i(thermalManager.bedKi));
diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp
index 34f18858c2..f92cd815dd 100644
--- a/Marlin/src/module/temperature.cpp
+++ b/Marlin/src/module/temperature.cpp
@@ -217,6 +217,12 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS],
 
 #if HAS_PID_HEATING
 
+  /**
+   * PID Autotuning (M303)
+   *
+   * Alternately heat and cool the nozzle, observing its behavior to
+   * determine the best PID values to achieve a stable temperature.
+   */
   void Temperature::PID_autotune(const float temp, const int8_t hotend, const int8_t ncycles, const bool set_result/*=false*/) {
     float input = 0.0;
     int cycles = 0;
@@ -466,7 +472,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS],
           bedKp = workKp; \
           bedKi = scalePID_i(workKi); \
           bedKd = scalePID_d(workKd); \
-          updatePID(); }while(0)
+        }while(0)
 
         #define _SET_EXTRUDER_PID() do { \
           PID_PARAM(Kp, hotend) = workKp; \
@@ -502,14 +508,6 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS],
 
 Temperature::Temperature() { }
 
-void Temperature::updatePID() {
-  #if ENABLED(PIDTEMP)
-    #if ENABLED(PID_EXTRUSION_SCALING)
-      last_e_position = 0;
-    #endif
-  #endif
-}
-
 int Temperature::getHeaterPower(int heater) {
   return heater < 0 ? soft_pwm_amount_bed : soft_pwm_amount[heater];
 }
diff --git a/Marlin/src/module/temperature.h b/Marlin/src/module/temperature.h
index 51a9038d28..4fad317597 100644
--- a/Marlin/src/module/temperature.h
+++ b/Marlin/src/module/temperature.h
@@ -430,12 +430,19 @@ class Temperature {
      */
     #if HAS_PID_HEATING
       static void PID_autotune(const float temp, const int8_t hotend, const int8_t ncycles, const bool set_result=false);
-    #endif
 
-    /**
-     * Update the temp manager when PID values change
-     */
-    static void updatePID();
+      #if ENABLED(PIDTEMP)
+        /**
+         * Update the temp manager when PID values change
+         */
+        FORCE_INLINE static void updatePID() {
+          #if ENABLED(PID_EXTRUSION_SCALING)
+            last_e_position = 0;
+          #endif
+        }
+      #endif
+
+    #endif
 
     #if ENABLED(BABYSTEPPING)