Skip to content

Commit 90050df

Browse files
committed
fix(jpeg): only call esp_pm APIs when CONFIG_PM_ENABLE is enabled
1 parent 8555b6c commit 90050df

File tree

4 files changed

+16
-0
lines changed

4 files changed

+16
-0
lines changed

components/esp_driver_jpeg/jpeg_common.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,11 @@ esp_err_t jpeg_release_codec_handle(jpeg_codec_handle_t jpeg_codec)
9595
vSemaphoreDeleteWithCaps(jpeg_codec->codec_mutex);
9696
jpeg_codec->codec_mutex = NULL;
9797
}
98+
#if CONFIG_PM_ENABLE
9899
if (jpeg_codec->pm_lock) {
99100
esp_pm_lock_delete(jpeg_codec->pm_lock);
100101
}
102+
#endif
101103
PERIPH_RCC_ATOMIC() {
102104
jpeg_ll_enable_bus_clock(false);
103105
}

components/esp_driver_jpeg/jpeg_decode.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,9 +212,11 @@ esp_err_t jpeg_decoder_process(jpeg_decoder_handle_t decoder_engine, const jpeg_
212212

213213
esp_err_t ret = ESP_OK;
214214

215+
#if CONFIG_PM_ENABLE
215216
if (decoder_engine->codec_base->pm_lock) {
216217
ESP_RETURN_ON_ERROR(esp_pm_lock_acquire(decoder_engine->codec_base->pm_lock), TAG, "acquire pm_lock failed");
217218
}
219+
#endif
218220

219221
xSemaphoreTake(decoder_engine->codec_base->codec_mutex, portMAX_DELAY);
220222
/* Reset queue */
@@ -269,18 +271,22 @@ esp_err_t jpeg_decoder_process(jpeg_decoder_handle_t decoder_engine, const jpeg_
269271
}
270272

271273
xSemaphoreGive(decoder_engine->codec_base->codec_mutex);
274+
#if CONFIG_PM_ENABLE
272275
if (decoder_engine->codec_base->pm_lock) {
273276
ESP_RETURN_ON_ERROR(esp_pm_lock_release(decoder_engine->codec_base->pm_lock), TAG, "release pm_lock failed");
274277
}
278+
#endif
275279
return ESP_OK;
276280

277281
err1:
278282
dma2d_force_end(decoder_engine->trans_desc, &need_yield);
279283
err2:
280284
xSemaphoreGive(decoder_engine->codec_base->codec_mutex);
285+
#if CONFIG_PM_ENABLE
281286
if (decoder_engine->codec_base->pm_lock) {
282287
esp_pm_lock_release(decoder_engine->codec_base->pm_lock);
283288
}
289+
#endif
284290
return ret;
285291
}
286292

components/esp_driver_jpeg/jpeg_encode.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,11 @@ esp_err_t jpeg_encoder_process(jpeg_encoder_handle_t encoder_engine, const jpeg_
148148

149149
esp_err_t ret = ESP_OK;
150150

151+
#if CONFIG_PM_ENABLE
151152
if (encoder_engine->codec_base->pm_lock) {
152153
ESP_RETURN_ON_ERROR(esp_pm_lock_acquire(encoder_engine->codec_base->pm_lock), TAG, "acquire pm_lock failed");
153154
}
155+
#endif
154156
jpeg_hal_context_t *hal = &encoder_engine->codec_base->hal;
155157
uint8_t *raw_buffer = (uint8_t*)encode_inbuf;
156158
uint32_t compressed_size;
@@ -280,18 +282,22 @@ esp_err_t jpeg_encoder_process(jpeg_encoder_handle_t encoder_engine, const jpeg_
280282
*out_size = compressed_size;
281283

282284
xSemaphoreGive(encoder_engine->codec_base->codec_mutex);
285+
#if CONFIG_PM_ENABLE
283286
if (encoder_engine->codec_base->pm_lock) {
284287
ESP_RETURN_ON_ERROR(esp_pm_lock_release(encoder_engine->codec_base->pm_lock), TAG, "release pm_lock failed");
285288
}
289+
#endif
286290
return ESP_OK;
287291

288292
err1:
289293
dma2d_force_end(encoder_engine->trans_desc, &need_yield);
290294
err2:
291295
xSemaphoreGive(encoder_engine->codec_base->codec_mutex);
296+
#if CONFIG_PM_ENABLE
292297
if (encoder_engine->codec_base->pm_lock) {
293298
esp_pm_lock_release(encoder_engine->codec_base->pm_lock);
294299
}
300+
#endif
295301
return ret;
296302
}
297303

components/esp_driver_jpeg/jpeg_private.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ struct jpeg_codec_t {
5252
intr_handle_t intr_handle; // jpeg codec interrupt handler
5353
int intr_priority; // jpeg codec interrupt priority
5454
SLIST_HEAD(jpeg_isr_handler_list_, jpeg_isr_handler_) jpeg_isr_handler_list; // List for jpeg interrupt.
55+
#if CONFIG_PM_ENABLE
5556
esp_pm_lock_handle_t pm_lock; // power manage lock
57+
#endif
5658
};
5759

5860
typedef enum {

0 commit comments

Comments
 (0)