Expose `SetManualPwm` in store

Google-Bug-Id:555225021,555226212
PiperOrigin-RevId: 974787630
Change-Id: I771320f943d345abd26811bf701659d627769e68
diff --git a/tlbmc/store/octeon10_evk_store.cc b/tlbmc/store/octeon10_evk_store.cc
index 7c35b5f..fb164f7 100644
--- a/tlbmc/store/octeon10_evk_store.cc
+++ b/tlbmc/store/octeon10_evk_store.cc
@@ -918,6 +918,9 @@
 void Octeon10EvkStore::SetManualMode([[maybe_unused]] bool enable_manual_mode) {
 }
 
+void Octeon10EvkStore::SetManualPwm([[maybe_unused]] absl::string_view fan_name,
+                                    [[maybe_unused]] double pwm) {}
+
 absl::Status Octeon10EvkStore::SetPidControllerCoefficients(
     [[maybe_unused]] absl::string_view controller_id,
     [[maybe_unused]] const thermal::PidController::PidControllerCoefficients&
diff --git a/tlbmc/store/octeon10_evk_store.h b/tlbmc/store/octeon10_evk_store.h
index 9510684..3a32f08 100644
--- a/tlbmc/store/octeon10_evk_store.h
+++ b/tlbmc/store/octeon10_evk_store.h
@@ -210,6 +210,7 @@
       const std::string& service_name) const override;
 
   void SetManualMode(bool enable_manual_mode) override;
+  void SetManualPwm(absl::string_view fan_name, double pwm) override;
 
   absl::Status SetPidControllerCoefficients(
       absl::string_view controller_id,
diff --git a/tlbmc/store/store.h b/tlbmc/store/store.h
index 56a430d..14b0976 100644
--- a/tlbmc/store/store.h
+++ b/tlbmc/store/store.h
@@ -289,6 +289,8 @@
 
   // Set manual fan mode
   virtual void SetManualMode(bool enable_manual_mode) = 0;
+  // Set manual PWM for a fan
+  virtual void SetManualPwm(absl::string_view fan_name, double pwm) = 0;
 
   // Thermal controller coefficient setters (e.g., for tuning purposes).
   // PID controller setters.
@@ -698,6 +700,8 @@
   }
 
   void SetManualMode([[maybe_unused]] bool enable_manual_mode) override {}
+  void SetManualPwm([[maybe_unused]] absl::string_view fan_name,
+                    [[maybe_unused]] double pwm) override {}
 
   absl::Status SetPidControllerCoefficients(
       [[maybe_unused]] absl::string_view controller_id,
diff --git a/tlbmc/store/store_impl.cc b/tlbmc/store/store_impl.cc
index 78434e5..5a5d46f 100644
--- a/tlbmc/store/store_impl.cc
+++ b/tlbmc/store/store_impl.cc
@@ -1254,6 +1254,12 @@
   }
 }
 
+void StoreImpl::SetManualPwm(absl::string_view fan_name, double pwm) {
+  if (all_collectors_.thermal_collector != nullptr) {
+    all_collectors_.thermal_collector->SetManualPwm(fan_name, pwm);
+  }
+}
+
 PowerFaultLogEntries StoreImpl::GetPowerFaultLogEntries() const {
   return all_collectors_.power_fault_log_collector->GetCollectedEntries();
 }
diff --git a/tlbmc/store/store_impl.h b/tlbmc/store/store_impl.h
index 37e56a8..03bdf47 100644
--- a/tlbmc/store/store_impl.h
+++ b/tlbmc/store/store_impl.h
@@ -281,6 +281,8 @@
 
   // Enable/Disable fan manual mode for all thermal zones.
   void SetManualMode(bool enable_manual_mode) override;
+  // Set manual PWM for a fan.
+  void SetManualPwm(absl::string_view fan_name, double pwm) override;
 
   // Returns the list of sensor names contained by the given config key.
   std::vector<std::string> GetAllSensorKeysByConfigKey(