diff --git a/control/zone.cpp b/control/zone.cpp
index d569aa8..5ed0c3a 100644
--- a/control/zone.cpp
+++ b/control/zone.cpp
@@ -110,11 +110,6 @@
         {
             speed = _floorSpeed;
         }
-        //TODO openbmc/openbmc#1626 Move to control algorithm function
-        if (speed > _ceilingSpeed)
-        {
-            speed = _ceilingSpeed;
-        }
         fan->setSpeed(speed);
     }
 }
@@ -136,6 +131,34 @@
     }
 }
 
+void Zone::requestSpeedIncrease(uint64_t targetDelta)
+{
+    // Only increase speed when delta is higher than
+    // the current increase delta for the zone and currently under ceiling
+    if (targetDelta > _incSpeedDelta &&
+        _targetSpeed < _ceilingSpeed)
+    {
+        _targetSpeed = (targetDelta - _incSpeedDelta) + _targetSpeed;
+        _incSpeedDelta = targetDelta;
+        //TODO openbmc/openbmc#1625 Cancel current timer countdown
+        //TODO Floor speed above target, update target to floor speed
+        if (_targetSpeed < _floorSpeed)
+        {
+            _targetSpeed = _floorSpeed;
+        }
+        // Target speed can not go above a defined ceiling speed
+        if (_targetSpeed > _ceilingSpeed)
+        {
+            _targetSpeed = _ceilingSpeed;
+        }
+
+        setSpeed(_targetSpeed);
+        //TODO openbmc/openbmc#1625 Start timer countdown for fan speed increase
+    }
+    //TODO openbmc/openbmc#1625 Clear increase delta when timer expires
+    _incSpeedDelta = 0;
+}
+
 void Zone::getProperty(sdbusplus::bus::bus& bus,
                        const std::string& path,
                        const std::string& iface,
