diff --git a/recipes-phosphor/fans/phosphor-pid-control/0001-Implementing-the-TempToMargin-feature.patch b/recipes-phosphor/fans/phosphor-pid-control/0001-Implementing-the-TempToMargin-feature.patch
index 651ea32..2e9a3bd 100644
--- a/recipes-phosphor/fans/phosphor-pid-control/0001-Implementing-the-TempToMargin-feature.patch
+++ b/recipes-phosphor/fans/phosphor-pid-control/0001-Implementing-the-TempToMargin-feature.patch
@@ -34,13 +34,12 @@
  pid/pidcontroller.hpp                   |  1 +
  pid/thermalcontroller.cpp               | 39 ++++++++++++-
  pid/thermalcontroller.hpp               | 14 ++---
- test/Makefile.am                        |  3 +-
  test/meson.build                        |  3 +-
  test/pid_json_unittest.cpp              | 73 +++++++++++++++++++++++--
  test/pid_thermalcontroller_unittest.cpp | 47 ++++++++++++----
  util.cpp                                | 54 +++++++++++++++++-
  util.hpp                                | 14 +++++
- 14 files changed, 309 insertions(+), 53 deletions(-)
+ 13 files changed, 307 insertions(+), 52 deletions(-)
 
 diff --git a/conf.hpp b/conf.hpp
 index d7d34f5..486e2e5 100644
@@ -94,10 +93,10 @@
 +
  } // namespace pid_control
 diff --git a/dbus/dbusconfiguration.cpp b/dbus/dbusconfiguration.cpp
-index 66ef7f8..f02b79f 100644
+index 96d2b4b..c20f1e0 100644
 --- a/dbus/dbusconfiguration.cpp
 +++ b/dbus/dbusconfiguration.cpp
-@@ -312,7 +312,13 @@ void populatePidInfo(
+@@ -326,7 +326,13 @@ void populatePidInfo(
          {
              interface = thresholds::criticalInterface;
          }
@@ -112,7 +111,7 @@
  
          DbusHelper helper(sdbusplus::bus::new_system());
          std::string service = helper.getService(interface, path);
-@@ -816,20 +822,33 @@ bool init(sdbusplus::bus_t& bus, boost::asio::steady_timer& timer,
+@@ -830,20 +836,33 @@ bool init(sdbusplus::bus_t& bus, boost::asio::steady_timer& timer,
                      }
                  }
  
@@ -149,7 +148,7 @@
                          info.inputs.emplace_back(input);
                          populatePidInfo(bus, base, info, &offsetType,
                                          sensorConfig);
-@@ -900,7 +919,17 @@ bool init(sdbusplus::bus_t& bus, boost::asio::steady_timer& timer,
+@@ -914,7 +933,17 @@ bool init(sdbusplus::bus_t& bus, boost::asio::steady_timer& timer,
                  }
                  conf::ControllerInfo& info =
                      conf[std::get<std::string>(base.at("Name"))];
@@ -462,20 +461,6 @@
      ThermalType type;
  };
  
-diff --git a/test/Makefile.am b/test/Makefile.am
-index d7d4d9d..e749f8c 100644
---- a/test/Makefile.am
-+++ b/test/Makefile.am
-@@ -79,7 +79,8 @@ sensors_json_unittest_SOURCES = sensors_json_unittest.cpp
- sensors_json_unittest_LDADD = $(top_builddir)/sensors/buildjson.o
- 
- pid_json_unittest_SOURCES = pid_json_unittest.cpp
--pid_json_unittest_LDADD = $(top_builddir)/pid/buildjson.o
-+pid_json_unittest_LDADD = $(top_builddir)/pid/buildjson.o \
-+ $(top_builddir)/util.o
- 
- json_parse_unittest_SOURCES = json_parse_unittest.cpp
- json_parse_unittest_LDADD = $(top_builddir)/buildjson/buildjson.o
 diff --git a/test/meson.build b/test/meson.build
 index 966334e..2513278 100644
 --- a/test/meson.build
@@ -811,5 +796,5 @@
   * Dump active configuration.
   */
 -- 
-2.39.0.246.g2a6d74b583-goog
+2.40.0.348.gf938b09366-goog
 
diff --git a/recipes-phosphor/fans/phosphor-pid-control/0001-Skipping-over-Association-Definitions-messages.patch b/recipes-phosphor/fans/phosphor-pid-control/0001-Skipping-over-Association-Definitions-messages.patch
deleted file mode 100644
index d62f7a8..0000000
--- a/recipes-phosphor/fans/phosphor-pid-control/0001-Skipping-over-Association-Definitions-messages.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 10e46efabf262d99cd457e97bd8c9ad6f90f834a Mon Sep 17 00:00:00 2001
-From: Josh Lehan <krellan@google.com>
-Date: Wed, 1 Feb 2023 18:25:58 -0800
-Subject: [PATCH] Skipping over Association Definitions messages
-
-Patch Tracking Bug: b/267556082
-Upstream info / review: https://gerrit.openbmc.org/c/openbmc/phosphor-pid-control/+/60580
-Upstream-Status: Submitted
-Justification: Awaiting upstream review and merging
-
-These incoming messages cause problems, for the same reason Assocation
-is skipped over. They are not relevant to PID control, because they
-are maintained by Object Mapper for another purpose. Treating
-Association Definitions similarly to Associations, namely, skipping
-them over. It looks like this was simply omitted in the past, perhaps
-Definitions did not exist then, only Associations.
-Also adding some optional logging.
-
-Thanks to Chu Lin for originally discovering this bug and creating
-this fix.
-
-Tested: It works, and avoids the problem of unwanted messages causing
-swampd to needlessly restart itself internally.
-
-Change-Id: I2f9cb123990d240b515d08138dd919312aac5a30
-Signed-off-by: Josh Lehan <krellan@google.com>
----
- dbus/dbusconfiguration.cpp | 18 ++++++++++++++++--
- 1 file changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/dbus/dbusconfiguration.cpp b/dbus/dbusconfiguration.cpp
-index 66ef7f8..96d2b4b 100644
---- a/dbus/dbusconfiguration.cpp
-+++ b/dbus/dbusconfiguration.cpp
-@@ -158,8 +158,9 @@ int eventHandler(sd_bus_message* m, void* context, sd_bus_error*)
-     }
- 
-     // we skip associations because the mapper populates these, not the sensors
--    const std::array<const char*, 1> skipList = {
--        "xyz.openbmc_project.Association"};
-+    const std::array<const char*, 2> skipList = {
-+        "xyz.openbmc_project.Association",
-+        "xyz.openbmc_project.Association.Definitions"};
- 
-     sdbusplus::message_t message(m);
-     if (std::string(message.get_member()) == "InterfacesAdded")
-@@ -184,6 +185,19 @@ int eventHandler(sd_bus_message* m, void* context, sd_bus_error*)
-                 }
-             }
-         }
-+
-+        if constexpr (pid_control::conf::DEBUG)
-+        {
-+            std::cout << "New config detected: " << path.str << std::endl;
-+            for (auto& d : data)
-+            {
-+                std::cout << "\tdata is " << d.first << std::endl;
-+                for (auto& second : d.second)
-+                {
-+                    std::cout << "\t\tdata is " << second.first << std::endl;
-+                }
-+            }
-+        }
-     }
- 
-     boost::asio::steady_timer* timer =
--- 
-2.39.1.519.gcb327c4b5f-goog
-
diff --git a/recipes-phosphor/fans/phosphor-pid-control/0001-pid-reuse-the-code-for-processing-sensors-input.patch b/recipes-phosphor/fans/phosphor-pid-control/0001-pid-reuse-the-code-for-processing-sensors-input.patch
deleted file mode 100644
index c01ba60..0000000
--- a/recipes-phosphor/fans/phosphor-pid-control/0001-pid-reuse-the-code-for-processing-sensors-input.patch
+++ /dev/null
@@ -1,266 +0,0 @@
-From df1f183fb4c850c71abb6ea940a9ed2e9c7b9d23 Mon Sep 17 00:00:00 2001
-From: Tom Tung <shes050117@gmail.com>
-Date: Mon, 14 Nov 2022 19:26:52 +0800
-Subject: [PATCH] pid: reuse the code for processing sensors input
-
-The code for processing sensors' inputs are the same in updateFanTelemetry() and
-updateSensors(). This patch extract the similar code out as a private
-function and make it be called in these two functions.
-
-Tested:
-- Can still build phosphor-pid-control.
-- Copy built image to the system and it works fine.
-
-Change-Id: I6249053e788bfa14bb7bdf2a880be5403c20029b
-Signed-off-by: Tom Tung <shes050117@gmail.com>
-
-Patch Tracking Bug: b/269669082
-Upstream info / review:
-https://gerrit.openbmc.org/c/openbmc/phosphor-pid-control/+/58664
-Upstream-Status: Accepted.
-Justification: cherry-pick the patch before the next rebase gets pulled
-in.
-
----
- pid/zone.cpp | 119 ++-------------------------------------------------
- pid/zone.hpp |  73 +++++++++++++++++++++++++++++++
- 2 files changed, 77 insertions(+), 115 deletions(-)
-
-diff --git a/pid/zone.cpp b/pid/zone.cpp
-index e9aaafc..c88f41b 100644
---- a/pid/zone.cpp
-+++ b/pid/zone.cpp
-@@ -348,7 +348,7 @@ void DbusPidZone::updateFanTelemetry(void)
-      * is disabled?  I think it's a waste to try and log things even if the
-      * data is just being dropped though.
-      */
--    tstamp now = std::chrono::high_resolution_clock::now();
-+    const auto now = std::chrono::high_resolution_clock::now();
-     if (loggingEnabled)
-     {
-         _log << std::chrono::duration_cast<std::chrono::milliseconds>(
-@@ -358,67 +358,7 @@ void DbusPidZone::updateFanTelemetry(void)
-         _log << "," << _maximumSetPointName;
-     }
- 
--    for (const auto& f : _fanInputs)
--    {
--        auto sensor = _mgr.getSensor(f);
--        ReadReturn r = sensor->read();
--        _cachedValuesByName[f] = {r.value, r.unscaled};
--        int64_t timeout = sensor->getTimeout();
--        tstamp then = r.updated;
--
--        auto duration =
--            std::chrono::duration_cast<std::chrono::seconds>(now - then)
--                .count();
--        auto period = std::chrono::seconds(timeout).count();
--        /*
--         * TODO(venture): We should check when these were last read.
--         * However, these are the fans, so if I'm not getting updated values
--         * for them... what should I do?
--         */
--        if (loggingEnabled)
--        {
--            const auto& v = _cachedValuesByName[f];
--            _log << "," << v.scaled << "," << v.unscaled;
--            const auto& p = _cachedFanOutputs[f];
--            _log << "," << p.scaled << "," << p.unscaled;
--        }
--
--        if (debugEnabled)
--        {
--            std::cerr << f << " fan sensor reading: " << r.value << "\n";
--        }
--
--        // check if fan fail.
--        if (sensor->getFailed())
--        {
--            _failSafeSensors.insert(f);
--            if (debugEnabled)
--            {
--                std::cerr << f << " fan sensor get failed\n";
--            }
--        }
--        else if (timeout != 0 && duration >= period)
--        {
--            _failSafeSensors.insert(f);
--            if (debugEnabled)
--            {
--                std::cerr << f << " fan sensor timeout\n";
--            }
--        }
--        else
--        {
--            // Check if it's in there: remove it.
--            auto kt = _failSafeSensors.find(f);
--            if (kt != _failSafeSensors.end())
--            {
--                if (debugEnabled)
--                {
--                    std::cerr << f << " is erased from failsafe sensor set\n";
--                }
--                _failSafeSensors.erase(kt);
--            }
--        }
--    }
-+    processSensorInputs</* fanSensorLogging */ true>(_fanInputs, now);
- 
-     if (loggingEnabled)
-     {
-@@ -434,59 +374,8 @@ void DbusPidZone::updateFanTelemetry(void)
- 
- void DbusPidZone::updateSensors(void)
- {
--    using namespace std::chrono;
--    /* margin and temp are stored as temp */
--    tstamp now = high_resolution_clock::now();
--
--    for (const auto& t : _thermalInputs)
--    {
--        auto sensor = _mgr.getSensor(t);
--        ReadReturn r = sensor->read();
--        int64_t timeout = sensor->getTimeout();
--
--        _cachedValuesByName[t] = {r.value, r.unscaled};
--        tstamp then = r.updated;
--
--        auto duration = duration_cast<std::chrono::seconds>(now - then).count();
--        auto period = std::chrono::seconds(timeout).count();
--
--        if (debugEnabled)
--        {
--            std::cerr << t << " temperature sensor reading: " << r.value
--                      << "\n";
--        }
--
--        if (sensor->getFailed())
--        {
--            _failSafeSensors.insert(t);
--            if (debugEnabled)
--            {
--                std::cerr << t << " temperature sensor get failed\n";
--            }
--        }
--        else if (timeout != 0 && duration >= period)
--        {
--            // std::cerr << "Entering fail safe mode.\n";
--            _failSafeSensors.insert(t);
--            if (debugEnabled)
--            {
--                std::cerr << t << " temperature sensor get timeout\n";
--            }
--        }
--        else
--        {
--            // Check if it's in there: remove it.
--            auto kt = _failSafeSensors.find(t);
--            if (kt != _failSafeSensors.end())
--            {
--                if (debugEnabled)
--                {
--                    std::cerr << t << " is erased from failsafe sensor set\n";
--                }
--                _failSafeSensors.erase(kt);
--            }
--        }
--    }
-+    processSensorInputs</* fanSensorLogging */ false>(
-+        _thermalInputs, std::chrono::high_resolution_clock::now());
- 
-     return;
- }
-diff --git a/pid/zone.hpp b/pid/zone.hpp
-index 0504a6d..b985f5f 100644
---- a/pid/zone.hpp
-+++ b/pid/zone.hpp
-@@ -13,6 +13,7 @@
- #include <xyz/openbmc_project/Control/Mode/server.hpp>
- 
- #include <fstream>
-+#include <iostream>
- #include <map>
- #include <memory>
- #include <set>
-@@ -99,6 +100,78 @@ class DbusPidZone : public ZoneInterface, public ModeObject
-     bool failSafe() const override;
- 
-   private:
-+    template <bool fanSensorLogging>
-+    void processSensorInputs(const std::vector<std::string>& sensorInputs,
-+                             std::chrono::high_resolution_clock::time_point now)
-+    {
-+        for (const auto& sensorInput : sensorInputs)
-+        {
-+            auto sensor = _mgr.getSensor(sensorInput);
-+            ReadReturn r = sensor->read();
-+            _cachedValuesByName[sensorInput] = {r.value, r.unscaled};
-+            int64_t timeout = sensor->getTimeout();
-+            std::chrono::high_resolution_clock::time_point then = r.updated;
-+
-+            auto duration =
-+                std::chrono::duration_cast<std::chrono::seconds>(now - then)
-+                    .count();
-+            auto period = std::chrono::seconds(timeout).count();
-+            /*
-+             * TODO(venture): We should check when these were last read.
-+             * However, these are the fans, so if I'm not getting updated values
-+             * for them... what should I do?
-+             */
-+            if constexpr (fanSensorLogging)
-+            {
-+                if (loggingEnabled)
-+                {
-+                    const auto& v = _cachedValuesByName[sensorInput];
-+                    _log << "," << v.scaled << "," << v.unscaled;
-+                    const auto& p = _cachedFanOutputs[sensorInput];
-+                    _log << "," << p.scaled << "," << p.unscaled;
-+                }
-+            }
-+
-+            if (debugEnabled)
-+            {
-+                std::cerr << sensorInput << " sensor reading: " << r.value
-+                          << "\n";
-+            }
-+
-+            // check if fan fail.
-+            if (sensor->getFailed())
-+            {
-+                _failSafeSensors.insert(sensorInput);
-+                if (debugEnabled)
-+                {
-+                    std::cerr << sensorInput << " sensor get failed\n";
-+                }
-+            }
-+            else if (timeout != 0 && duration >= period)
-+            {
-+                _failSafeSensors.insert(sensorInput);
-+                if (debugEnabled)
-+                {
-+                    std::cerr << sensorInput << " sensor timeout\n";
-+                }
-+            }
-+            else
-+            {
-+                // Check if it's in there: remove it.
-+                auto kt = _failSafeSensors.find(sensorInput);
-+                if (kt != _failSafeSensors.end())
-+                {
-+                    if (debugEnabled)
-+                    {
-+                        std::cerr << sensorInput
-+                                  << " is erased from failsafe sensor set\n";
-+                    }
-+                    _failSafeSensors.erase(kt);
-+                }
-+            }
-+        }
-+    }
-+
-     std::ofstream _log;
- 
-     const int64_t _zoneId;
--- 
-2.39.1.581.gbfd45094c4-goog
-
diff --git a/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
index 6ed8f0f..6019858 100644
--- a/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
+++ b/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
@@ -2,7 +2,5 @@
 
 SRC_URI:append:gbmc = " \
   file://0001-Implementing-the-TempToMargin-feature.patch \
-  file://0001-Skipping-over-Association-Definitions-messages.patch \
-  file://0001-pid-reuse-the-code-for-processing-sensors-input.patch \
   file://0002-Add-MissingIsAcceptable-feature-to-avoid-failsafe.patch \
 "
