diff --git a/app/channel.cpp b/app/channel.cpp
index 7d51bfe..5da9739 100644
--- a/app/channel.cpp
+++ b/app/channel.cpp
@@ -5,14 +5,15 @@
 #include <arpa/inet.h>
 
 #include <boost/process/child.hpp>
-#include <fstream>
 #include <ipmid/types.hpp>
 #include <ipmid/utils.hpp>
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/log.hpp>
+#include <xyz/openbmc_project/Common/error.hpp>
+
+#include <fstream>
 #include <set>
 #include <string>
-#include <xyz/openbmc_project/Common/error.hpp>
 
 using namespace phosphor::logging;
 using namespace sdbusplus::xyz::openbmc_project::Common::Error;
@@ -139,8 +140,8 @@
     {
         try
         {
-            std::tie(cipherRecords, supportedAlgorithms) =
-                cipher::getCipherRecords();
+            std::tie(cipherRecords,
+                     supportedAlgorithms) = cipher::getCipherRecords();
             recordInit = true;
         }
         catch (const std::exception& e)
@@ -149,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.
@@ -166,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 e92cf81..3126c0c 100644
--- a/app/watchdog.cpp
+++ b/app/watchdog.cpp
@@ -4,15 +4,16 @@
 
 #include <endian.h>
 
-#include <bitset>
-#include <cstdint>
 #include <ipmid/api.hpp>
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/elog.hpp>
 #include <phosphor-logging/log.hpp>
-#include <string>
 #include <xyz/openbmc_project/Common/error.hpp>
 
+#include <bitset>
+#include <cstdint>
+#include <string>
+
 using phosphor::logging::commit;
 using phosphor::logging::level;
 using phosphor::logging::log;
@@ -356,15 +357,15 @@
  * - initialCountdown
  * - presentCountdown
  **/
-ipmi::RspType<uint3_t, // timerUse - timer use
-              uint3_t, // timerUse - reserved
-              bool,    // timerUse - timer is started
-              bool,    // timerUse - don't log
+ipmi::RspType<uint3_t,        // timerUse - timer use
+              uint3_t,        // timerUse - reserved
+              bool,           // timerUse - timer is started
+              bool,           // timerUse - don't log
 
-              uint3_t, // timerAction - timeout action
-              uint1_t, // timerAction - reserved
-              uint3_t, // timerAction - pre-timeout interrupt
-              uint1_t, // timerAction - reserved
+              uint3_t,        // timerAction - timeout action
+              uint1_t,        // timerAction - reserved
+              uint3_t,        // timerAction - pre-timeout interrupt
+              uint1_t,        // timerAction - reserved
 
               uint8_t,        // pretimeout
               std::bitset<8>, // expireFlags
diff --git a/app/watchdog_service.cpp b/app/watchdog_service.cpp
index 3534e89..09b700f 100644
--- a/app/watchdog_service.cpp
+++ b/app/watchdog_service.cpp
@@ -1,17 +1,18 @@
 #include "watchdog_service.hpp"
 
-#include <exception>
 #include <ipmid/api.hpp>
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/elog.hpp>
 #include <phosphor-logging/log.hpp>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/message.hpp>
-#include <stdexcept>
-#include <string>
 #include <xyz/openbmc_project/Common/error.hpp>
 #include <xyz/openbmc_project/State/Watchdog/server.hpp>
 
+#include <exception>
+#include <stdexcept>
+#include <string>
+
 using phosphor::logging::elog;
 using phosphor::logging::entry;
 using phosphor::logging::level;
@@ -26,9 +27,7 @@
 
 ipmi::ServiceCache WatchdogService::wd_service(wd_intf, wd_path);
 
-WatchdogService::WatchdogService() : bus(ipmid_get_sd_bus_connection())
-{
-}
+WatchdogService::WatchdogService() : bus(ipmid_get_sd_bus_connection()) {}
 
 void WatchdogService::resetTimeRemaining(bool enableWatchdog)
 {
