fuel_gauge: composite: fix unreleased PM constraint
Fix the PM constraint not being released when the sample fetch API call
fails.
Signed-off-by: Jordan Yates <jordan@embeint.com>
diff --git a/drivers/fuel_gauge/composite/fuel_gauge_composite.c b/drivers/fuel_gauge/composite/fuel_gauge_composite.c
index b0350be..e4b6796 100644
--- a/drivers/fuel_gauge/composite/fuel_gauge_composite.c
+++ b/drivers/fuel_gauge/composite/fuel_gauge_composite.c
@@ -28,17 +28,19 @@
static int composite_fetch(const struct device *dev)
{
- int rc;
+ int rc, rc2;
rc = pm_device_runtime_get(dev);
if (rc < 0) {
return rc;
}
rc = sensor_sample_fetch(dev);
- if (rc < 0) {
- return rc;
+ /* Unconditionally release the PM constraint */
+ rc2 = pm_device_runtime_put(dev);
+ if (rc == 0) {
+ rc = rc2;
}
- return pm_device_runtime_put(dev);
+ return rc;
}
static int composite_channel_get(const struct device *dev, enum sensor_channel chan,