fix(hw_support): spi buslock fix unregister dev api issue

This commit is contained in:
wanckl
2026-07-10 11:58:47 +08:00
parent 1ab734eb44
commit 971ba6f765
6 changed files with 30 additions and 5 deletions
+7 -1
View File
@@ -488,9 +488,15 @@ esp_err_t esp_flash_init_os_functions(esp_flash_t *chip, int host_id, spi_bus_lo
esp_err_t esp_flash_deinit_os_functions(esp_flash_t* chip, spi_bus_lock_dev_handle_t* out_dev_handle)
{
*out_dev_handle = NULL;
if (chip->os_func_data) {
app_func_arg_t *ctx = (app_func_arg_t*)chip->os_func_data;
spi_bus_lock_dev_handle_t dev_handle = ctx->dev_lock;
if (dev_handle && spi_bus_lock_get_acquiring_dev(spi_bus_lock_get_parent(dev_handle)) == dev_handle) {
return ESP_ERR_INVALID_STATE;
}
// SPI bus lock is possibly not used on SPI1 bus
*out_dev_handle = ((app_func_arg_t*)chip->os_func_data)->dev_lock;
*out_dev_handle = dev_handle;
free(chip->os_func_data);
}
chip->os_func = NULL;