Skip to content

Commit 5599fd4

Browse files
committed
fix(sdm): only call esp_pm APIs when CONFIG_PM_ENABLE is enabled
1 parent 70e5042 commit 5599fd4

File tree

1 file changed

+8
-2
lines changed
  • components/esp_driver_sdm/src

1 file changed

+8
-2
lines changed

components/esp_driver_sdm/src/sdm.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -70,9 +70,9 @@ struct sdm_channel_t {
7070
int gpio_num; // GPIO number
7171
uint32_t sample_rate_hz; // Sample rate, in Hz
7272
portMUX_TYPE spinlock; // to protect per-channels resources concurrently accessed by task and ISR handler
73-
esp_pm_lock_handle_t pm_lock; // PM lock, for glitch filter, as that module can only be functional under APB
7473
sdm_fsm_t fsm; // FSM state
7574
#if CONFIG_PM_ENABLE
75+
esp_pm_lock_handle_t pm_lock; // PM lock, for glitch filter, as that module can only be functional under APB
7676
char pm_lock_name[SDM_PM_LOCK_NAME_LEN_MAX]; // pm lock name
7777
#endif
7878
};
@@ -181,9 +181,11 @@ static void sdm_unregister_from_group(sdm_channel_t *chan)
181181

182182
static esp_err_t sdm_destroy(sdm_channel_t *chan)
183183
{
184+
#if CONFIG_PM_ENABLE
184185
if (chan->pm_lock) {
185186
ESP_RETURN_ON_ERROR(esp_pm_lock_delete(chan->pm_lock), TAG, "delete pm lock failed");
186187
}
188+
#endif
187189
if (chan->group) {
188190
sdm_unregister_from_group(chan);
189191
}
@@ -292,10 +294,12 @@ esp_err_t sdm_channel_enable(sdm_channel_handle_t chan)
292294
ESP_RETURN_ON_FALSE(chan, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
293295
ESP_RETURN_ON_FALSE(chan->fsm == SDM_FSM_INIT, ESP_ERR_INVALID_STATE, TAG, "channel not in init state");
294296

297+
#if CONFIG_PM_ENABLE
295298
// acquire power manager lock
296299
if (chan->pm_lock) {
297300
ESP_RETURN_ON_ERROR(esp_pm_lock_acquire(chan->pm_lock), TAG, "acquire pm_lock failed");
298301
}
302+
#endif
299303
chan->fsm = SDM_FSM_ENABLE;
300304
return ESP_OK;
301305
}
@@ -305,10 +309,12 @@ esp_err_t sdm_channel_disable(sdm_channel_handle_t chan)
305309
ESP_RETURN_ON_FALSE(chan, ESP_ERR_INVALID_ARG, TAG, "invalid argument");
306310
ESP_RETURN_ON_FALSE(chan->fsm == SDM_FSM_ENABLE, ESP_ERR_INVALID_STATE, TAG, "channel not in enable state");
307311

312+
#if CONFIG_PM_ENABLE
308313
// release power manager lock
309314
if (chan->pm_lock) {
310315
ESP_RETURN_ON_ERROR(esp_pm_lock_release(chan->pm_lock), TAG, "release pm_lock failed");
311316
}
317+
#endif
312318
chan->fsm = SDM_FSM_INIT;
313319
return ESP_OK;
314320
}

0 commit comments

Comments
 (0)