diff --git a/vpd-manager/include/utility/dbus_utility.hpp b/vpd-manager/include/utility/dbus_utility.hpp
index 4c81815..27014df 100644
--- a/vpd-manager/include/utility/dbus_utility.hpp
+++ b/vpd-manager/include/utility/dbus_utility.hpp
@@ -127,9 +127,9 @@
  *           success. If failed, empty map.
  */
 
-inline types::MapperGetSubTree
-    getObjectSubTree(const std::string& i_objectPath, const int& i_depth,
-                     const std::vector<std::string>& i_interfaces)
+inline types::MapperGetSubTree getObjectSubTree(
+    const std::string& i_objectPath, const int& i_depth,
+    const std::vector<std::string>& i_interfaces)
 {
     types::MapperGetSubTree l_subTreeMap;
 
@@ -343,8 +343,8 @@
  * @return Tuple of PLDM attribute Type, current attribute value and pending
  * attribute value.
  */
-inline types::BiosAttributeCurrentValue
-    biosGetAttributeMethodCall(const std::string& i_attributeName)
+inline types::BiosAttributeCurrentValue biosGetAttributeMethodCall(
+    const std::string& i_attributeName)
 {
     auto l_bus = sdbusplus::bus::new_default();
     auto l_method = l_bus.new_method_call(
diff --git a/vpd-manager/include/utility/json_utility.hpp b/vpd-manager/include/utility/json_utility.hpp
index a43682c..764fb66 100644
--- a/vpd-manager/include/utility/json_utility.hpp
+++ b/vpd-manager/include/utility/json_utility.hpp
@@ -730,8 +730,8 @@
  *
  * @return list of FRUs parameters that needs polling.
  */
-inline std::vector<std::string>
-    getListOfGpioPollingFrus(const nlohmann::json& i_sysCfgJsonObj)
+inline std::vector<std::string> getListOfGpioPollingFrus(
+    const nlohmann::json& i_sysCfgJsonObj)
 {
     if (i_sysCfgJsonObj.empty())
     {
@@ -1006,8 +1006,8 @@
  *
  * @return - List of FRUs replaceable at standby.
  */
-inline std::vector<std::string>
-    getListOfFrusReplaceableAtStandby(const nlohmann::json& i_sysCfgJsonObj)
+inline std::vector<std::string> getListOfFrusReplaceableAtStandby(
+    const nlohmann::json& i_sysCfgJsonObj)
 {
     std::vector<std::string> l_frusReplaceableAtStandby;
 
diff --git a/vpd-manager/include/utility/vpd_specific_utility.hpp b/vpd-manager/include/utility/vpd_specific_utility.hpp
index 9e679a7..3253105 100644
--- a/vpd-manager/include/utility/vpd_specific_utility.hpp
+++ b/vpd-manager/include/utility/vpd_specific_utility.hpp
@@ -225,9 +225,9 @@
  * @return Expanded location code. In case of any error, unexpanded is returned
  * as it is.
  */
-inline std::string
-    getExpandedLocationCode(const std::string& unexpandedLocationCode,
-                            const types::VPDMapVariant& parsedVpdMap)
+inline std::string getExpandedLocationCode(
+    const std::string& unexpandedLocationCode,
+    const types::VPDMapVariant& parsedVpdMap)
 {
     auto expanded{unexpandedLocationCode};
 
