diff --git a/app/channel.cpp b/app/channel.cpp
index a1e42fa..0b3b73d 100644
--- a/app/channel.cpp
+++ b/app/channel.cpp
@@ -140,8 +140,8 @@
     {
         try
         {
-            std::tie(cipherRecords,
-                     supportedAlgorithms) = cipher::getCipherRecords();
+            std::tie(cipherRecords, supportedAlgorithms) =
+                cipher::getCipherRecords();
             recordInit = true;
         }
         catch (const std::exception& e)
@@ -150,8 +150,8 @@
         }
     }
 
-    const std::vector<uint8_t>& records = algoSelectBit ? cipherRecords
-                                                        : supportedAlgorithms;
+    const std::vector<uint8_t>& records =
+        algoSelectBit ? cipherRecords : supportedAlgorithms;
     static constexpr auto respSize = 16;
 
     // Session support is available in active LAN channels.
@@ -167,8 +167,8 @@
     // set of 16 and so on.
 
     // Calculate the number of record data bytes to be returned.
-    auto start = std::min(static_cast<size_t>(listIndex) * respSize,
-                          records.size());
+    auto start =
+        std::min(static_cast<size_t>(listIndex) * respSize, records.size());
     auto end = std::min((static_cast<size_t>(listIndex) * respSize) + respSize,
                         records.size());
     auto size = end - start;
diff --git a/app/watchdog.cpp b/app/watchdog.cpp
index dd65e45..99e4c40 100644
--- a/app/watchdog.cpp
+++ b/app/watchdog.cpp
@@ -192,12 +192,11 @@
  *
  * @return completion code on success.
  **/
-ipmi::RspType<>
-    ipmiSetWatchdogTimer(uint3_t timerUse, uint3_t reserved, bool dontStopTimer,
-                         bool dontLog, uint3_t timeoutAction, uint1_t reserved1,
-                         uint3_t preTimeoutInterrupt, uint1_t reserved2,
-                         uint8_t preTimeoutInterval,
-                         std::bitset<8> expFlagValue, uint16_t initialCountdown)
+ipmi::RspType<> ipmiSetWatchdogTimer(
+    uint3_t timerUse, uint3_t reserved, bool dontStopTimer, bool dontLog,
+    uint3_t timeoutAction, uint1_t reserved1, uint3_t preTimeoutInterrupt,
+    uint1_t reserved2, uint8_t preTimeoutInterval, std::bitset<8> expFlagValue,
+    uint16_t initialCountdown)
 {
     if ((timerUse == wdTimerUseResTimer1) ||
         (timerUse == wdTimerUseResTimer2) ||
