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/hiomap.cpp b/hiomap.cpp
index 7e616ae..9c2e8cd 100644
--- a/hiomap.cpp
+++ b/hiomap.cpp
@@ -454,9 +454,9 @@
     return IPMI_CC_OK;
 }
 
-static ipmi_ret_t
-    hiomap_get_info(ipmi_request_t request, ipmi_response_t response,
-                    ipmi_data_len_t data_len, ipmi_context_t context)
+static ipmi_ret_t hiomap_get_info(
+    ipmi_request_t request, ipmi_response_t response, ipmi_data_len_t data_len,
+    ipmi_context_t context)
 {
     struct hiomap* ctx = static_cast<struct hiomap*>(context);
 
@@ -525,9 +525,9 @@
     return IPMI_CC_OK;
 }
 
-static ipmi_ret_t
-    hiomap_create_window(struct hiomap* ctx, bool ro, ipmi_request_t request,
-                         ipmi_response_t response, ipmi_data_len_t data_len)
+static ipmi_ret_t hiomap_create_window(
+    struct hiomap* ctx, bool ro, ipmi_request_t request,
+    ipmi_response_t response, ipmi_data_len_t data_len)
 {
     if (*data_len < 4)
     {
@@ -566,18 +566,18 @@
     return IPMI_CC_OK;
 }
 
-static ipmi_ret_t
-    hiomap_create_read_window(ipmi_request_t request, ipmi_response_t response,
-                              ipmi_data_len_t data_len, ipmi_context_t context)
+static ipmi_ret_t hiomap_create_read_window(
+    ipmi_request_t request, ipmi_response_t response, ipmi_data_len_t data_len,
+    ipmi_context_t context)
 {
     struct hiomap* ctx = static_cast<struct hiomap*>(context);
 
     return hiomap_create_window(ctx, true, request, response, data_len);
 }
 
-static ipmi_ret_t
-    hiomap_create_write_window(ipmi_request_t request, ipmi_response_t response,
-                               ipmi_data_len_t data_len, ipmi_context_t context)
+static ipmi_ret_t hiomap_create_write_window(
+    ipmi_request_t request, ipmi_response_t response, ipmi_data_len_t data_len,
+    ipmi_context_t context)
 {
     struct hiomap* ctx = static_cast<struct hiomap*>(context);
 
