diff --git a/phalerror/phal_error.hpp b/phalerror/phal_error.hpp
index 055cf35..b132b8f 100644
--- a/phalerror/phal_error.hpp
+++ b/phalerror/phal_error.hpp
@@ -1,49 +1,49 @@
-#pragma once
-
-#include <cstdarg>
-namespace openpower
-{
-namespace pel
-{
-namespace detail
-{
-
-/**
- * @brief Process debug traces
- *
- * Function adds debug traces to the list so that it will be added to the
- * PEL upon failure
- *
- * @param[in] private_data - pointer to private data, unused now
- * @param[in] fmt - format for variable list arguments
- * @param[in] ap - object of va_list, holds information needed to retrieve
- *                 the additional arguments
- */
-
-void processLogTraceCallback(void* private_data, const char* fmt, va_list ap);
-
-/**
- * @brief Process boot failure/success status
- *
- * If status is success log traces are cleared else used in the
- * creation of failure
- *
- * @param[in] status - Boot execution status
- */
-void processBootErrorCallback(bool status);
-
-/**
- * @brief Reset trace log list
- */
-void reset();
-} // namespace detail
-
-/**
- * @brief Add callbacks for debug traces and boot errors
- *
- * This function adds callback for debug traces and for boot
- * errors
- */
-void addBootErrorCallbacks();
-} // namespace pel
-} // namespace openpower
+#pragma once
+
+#include <cstdarg>
+namespace openpower
+{
+namespace pel
+{
+namespace detail
+{
+
+/**
+ * @brief Process debug traces
+ *
+ * Function adds debug traces to the list so that it will be added to the
+ * PEL upon failure
+ *
+ * @param[in] private_data - pointer to private data, unused now
+ * @param[in] fmt - format for variable list arguments
+ * @param[in] ap - object of va_list, holds information needed to retrieve
+ *                 the additional arguments
+ */
+
+void processLogTraceCallback(void* private_data, const char* fmt, va_list ap);
+
+/**
+ * @brief Process boot failure/success status
+ *
+ * If status is success log traces are cleared else used in the
+ * creation of failure
+ *
+ * @param[in] status - Boot execution status
+ */
+void processBootErrorCallback(bool status);
+
+/**
+ * @brief Reset trace log list
+ */
+void reset();
+} // namespace detail
+
+/**
+ * @brief Add callbacks for debug traces and boot errors
+ *
+ * This function adds callback for debug traces and for boot
+ * errors
+ */
+void addBootErrorCallbacks();
+} // namespace pel
+} // namespace openpower
