diff --git a/oem/ibm/libpldmresponder/collect_slot_vpd.cpp b/oem/ibm/libpldmresponder/collect_slot_vpd.cpp
index ff5e705..3e62aff 100644
--- a/oem/ibm/libpldmresponder/collect_slot_vpd.cpp
+++ b/oem/ibm/libpldmresponder/collect_slot_vpd.cpp
@@ -131,8 +131,8 @@
     }
 }
 
-std::optional<std::string>
-    SlotHandler::getAdapterObjPath(const std::string& slotObjPath)
+std::optional<std::string> SlotHandler::getAdapterObjPath(
+    const std::string& slotObjPath)
 {
     static constexpr auto searchpath = "/xyz/openbmc_project/inventory";
     int depth = 0;
diff --git a/oem/ibm/libpldmresponder/collect_slot_vpd.hpp b/oem/ibm/libpldmresponder/collect_slot_vpd.hpp
index 0d398ce..104a473 100644
--- a/oem/ibm/libpldmresponder/collect_slot_vpd.hpp
+++ b/oem/ibm/libpldmresponder/collect_slot_vpd.hpp
@@ -104,8 +104,8 @@
      *  @param[in] slotObjPath - The slot dbus object path
      *  @return - if Successfull, returns the adapter dbus object path
      */
-    std::optional<std::string>
-        getAdapterObjPath(const std::string& slotObjPath);
+    std::optional<std::string> getAdapterObjPath(
+        const std::string& slotObjPath);
 
     /** @brief Method to call VPD collection & VPD removal API's
      *  @param[in] adapterObjectPath - The adapter D-Bus object path
diff --git a/oem/ibm/libpldmresponder/file_io_by_type.cpp b/oem/ibm/libpldmresponder/file_io_by_type.cpp
index 388f866..e233160 100644
--- a/oem/ibm/libpldmresponder/file_io_by_type.cpp
+++ b/oem/ibm/libpldmresponder/file_io_by_type.cpp
@@ -123,8 +123,8 @@
     return transferFileData(fd(), upstream, offset, length, address);
 }
 
-std::unique_ptr<FileHandler>
-    getHandlerByType(uint16_t fileType, uint32_t fileHandle)
+std::unique_ptr<FileHandler> getHandlerByType(uint16_t fileType,
+                                              uint32_t fileHandle)
 {
     switch (fileType)
     {
diff --git a/oem/ibm/libpldmresponder/file_io_by_type.hpp b/oem/ibm/libpldmresponder/file_io_by_type.hpp
index cf4a82c..c9056e9 100644
--- a/oem/ibm/libpldmresponder/file_io_by_type.hpp
+++ b/oem/ibm/libpldmresponder/file_io_by_type.hpp
@@ -130,7 +130,7 @@
  *  @param[in] fileHandle - file handle
  */
 
-std::unique_ptr<FileHandler>
-    getHandlerByType(uint16_t fileType, uint32_t fileHandle);
+std::unique_ptr<FileHandler> getHandlerByType(uint16_t fileType,
+                                              uint32_t fileHandle);
 } // namespace responder
 } // namespace pldm
diff --git a/oem/ibm/libpldmresponder/utils.hpp b/oem/ibm/libpldmresponder/utils.hpp
index 4e849f5..bb111a4 100644
--- a/oem/ibm/libpldmresponder/utils.hpp
+++ b/oem/ibm/libpldmresponder/utils.hpp
@@ -73,9 +73,9 @@
      *  @param[in] entityMaps - the mapping of entity to DBus string
      *
      */
-    virtual int
-        setCoreCount(const pldm::utils::EntityAssociations& associations,
-                     const pldm::utils::EntityMaps entityMaps);
+    virtual int setCoreCount(
+        const pldm::utils::EntityAssociations& associations,
+        const pldm::utils::EntityMaps entityMaps);
 
     virtual ~Handler() = default;
 
