diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 469c903..594449c 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -520,7 +520,7 @@
                     interfaces2.end())
                 {
                     getIndicatorLedState(asyncResp);
-                    getLocationIndicatorActive(asyncResp);
+                    getSystemLocationIndicatorActive(asyncResp);
                     break;
                 }
             }
@@ -741,8 +741,8 @@
             {
                 if (indicatorChassis)
                 {
-                    setLocationIndicatorActive(asyncResp,
-                                               *locationIndicatorActive);
+                    setSystemLocationIndicatorActive(asyncResp,
+                                                     *locationIndicatorActive);
                 }
                 else
                 {
diff --git a/redfish-core/lib/led.hpp b/redfish-core/lib/led.hpp
index ff77ddc..b5d12fb 100644
--- a/redfish-core/lib/led.hpp
+++ b/redfish-core/lib/led.hpp
@@ -156,13 +156,13 @@
 }
 
 /**
- * @brief Retrieves identify led group properties over dbus
+ * @brief Retrieves identify system led group properties over dbus
  *
  * @param[in] asyncResp     Shared pointer for generating response message.
  *
  * @return None.
  */
-inline void getLocationIndicatorActive(
+inline void getSystemLocationIndicatorActive(
     const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
 {
     BMCWEB_LOG_DEBUG("Get LocationIndicatorActive");
@@ -214,14 +214,14 @@
 }
 
 /**
- * @brief Sets identify led group properties
+ * @brief Sets identify system led group properties
  *
  * @param[in] asyncResp     Shared pointer for generating response message.
  * @param[in] ledState  LED state passed from request
  *
  * @return None.
  */
-inline void setLocationIndicatorActive(
+inline void setSystemLocationIndicatorActive(
     const std::shared_ptr<bmcweb::AsyncResp>& asyncResp, const bool ledState)
 {
     BMCWEB_LOG_DEBUG("Set LocationIndicatorActive");
diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
index 3999898..e044c67 100644
--- a/redfish-core/lib/systems.hpp
+++ b/redfish-core/lib/systems.hpp
@@ -3331,7 +3331,7 @@
         aRsp->res.jsonValue["Links"]["Chassis"] = std::move(chassisArray);
     });
 
-    getLocationIndicatorActive(asyncResp);
+    getSystemLocationIndicatorActive(asyncResp);
     // TODO (Gunnar): Remove IndicatorLED after enough time has passed
     getIndicatorLedState(asyncResp);
     getComputerSystem(asyncResp, health);
@@ -3466,7 +3466,7 @@
 
     if (locationIndicatorActive)
     {
-        setLocationIndicatorActive(asyncResp, *locationIndicatorActive);
+        setSystemLocationIndicatorActive(asyncResp, *locationIndicatorActive);
     }
 
     // TODO (Gunnar): Remove IndicatorLED after enough time has
