diff --git a/.clang-format b/.clang-format
index a75a2c2..e5530e6 100644
--- a/.clang-format
+++ b/.clang-format
@@ -104,7 +104,7 @@
 PenaltyBreakString: 1000
 PenaltyBreakTemplateDeclaration: 10
 PenaltyExcessCharacter: 1000000
-PenaltyReturnTypeOnItsOwnLine: 60
+PenaltyReturnTypeOnItsOwnLine: 150
 PenaltyIndentedWhitespace: 1
 PointerAlignment: Left
 QualifierAlignment: Left
diff --git a/subprojects/libcr51sign/src/libcr51sign.c b/subprojects/libcr51sign/src/libcr51sign.c
index 6632f8e..77f5812 100644
--- a/subprojects/libcr51sign/src/libcr51sign.c
+++ b/subprojects/libcr51sign/src/libcr51sign.c
@@ -478,8 +478,8 @@
 // Check if the given signature_scheme is supported.
 // Returns nonzero on error, zero on success
 
-static failure_reason
-    is_signature_scheme_supported(enum signature_scheme scheme)
+static failure_reason is_signature_scheme_supported(
+    enum signature_scheme scheme)
 {
     switch (scheme)
     {
@@ -496,8 +496,8 @@
 // Returns size of signature struct size in |size|
 // Returns nonzero on error, zero on success
 
-static failure_reason
-    get_signature_struct_size(enum signature_scheme scheme, uint32_t* size)
+static failure_reason get_signature_struct_size(enum signature_scheme scheme,
+                                                uint32_t* size)
 {
     switch (scheme)
     {
@@ -516,8 +516,8 @@
     }
 }
 
-static failure_reason
-    get_signature_field_offset(enum signature_scheme scheme, uint32_t* offset)
+static failure_reason get_signature_field_offset(enum signature_scheme scheme,
+                                                 uint32_t* offset)
 {
     switch (scheme)
     {
diff --git a/subprojects/libcr51sign/src/libcr51sign_mauv.c b/subprojects/libcr51sign/src/libcr51sign_mauv.c
index 653a37e..365f776 100644
--- a/subprojects/libcr51sign/src/libcr51sign_mauv.c
+++ b/subprojects/libcr51sign/src/libcr51sign_mauv.c
@@ -40,10 +40,10 @@
 //                                 payload's image descriptor
 //
 // @return `failure_reason`
-static failure_reason
-    verify_payload_blob_magic(const struct libcr51sign_ctx* const ctx,
-                              const struct libcr51sign_intf* const intf,
-                              const uint32_t payload_blob_offset)
+static failure_reason verify_payload_blob_magic(
+    const struct libcr51sign_ctx* const ctx,
+    const struct libcr51sign_intf* const intf,
+    const uint32_t payload_blob_offset)
 {
     int irv = 0;
     struct blob payload_blob = {0};
diff --git a/subprojects/metrics-ipmi-blobs/metric.cpp b/subprojects/metrics-ipmi-blobs/metric.cpp
index d3fe0e2..6f09fce 100644
--- a/subprojects/metrics-ipmi-blobs/metric.cpp
+++ b/subprojects/metrics-ipmi-blobs/metric.cpp
@@ -350,8 +350,8 @@
     return ret;
 }
 
-static bmcmetrics_metricproto_BmcUptimeMetric
-    getUptimeMetric(bool& use) noexcept
+static bmcmetrics_metricproto_BmcUptimeMetric getUptimeMetric(
+    bool& use) noexcept
 {
     bmcmetrics_metricproto_BmcUptimeMetric ret = {};
 
@@ -405,8 +405,8 @@
     return ret;
 }
 
-static bmcmetrics_metricproto_BmcDiskSpaceMetric
-    getStorageMetric(bool& use) noexcept
+static bmcmetrics_metricproto_BmcDiskSpaceMetric getStorageMetric(
+    bool& use) noexcept
 {
     bmcmetrics_metricproto_BmcDiskSpaceMetric ret = {};
     struct statvfs rwFiData, tmpFiData;
