mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-03 03:31:41 +03:00
Merge branch 'fix/spi_buslock_unregister_issue_v5.3' into 'release/v5.3'
fix(hw_support): spi buslock fix unregister dev api issue (v5.3) See merge request espressif/esp-idf!51475
This commit is contained in:
@@ -577,6 +577,7 @@ esp_err_t spi_bus_remove_device(spi_device_handle_t handle)
|
||||
//catch design errors and aren't meant to be triggered during normal operation.
|
||||
SPI_CHECK(uxQueueMessagesWaiting(handle->trans_queue) == 0, "Have unfinished transactions", ESP_ERR_INVALID_STATE);
|
||||
SPI_CHECK(handle->host->cur_cs == DEV_NUM_MAX || handle->host->device[handle->host->cur_cs] != handle, "Have unfinished transactions", ESP_ERR_INVALID_STATE);
|
||||
SPI_CHECK(handle->host->device_acquiring_lock != handle, "Device has acquired the bus", ESP_ERR_INVALID_STATE);
|
||||
if (handle->ret_queue) {
|
||||
SPI_CHECK(uxQueueMessagesWaiting(handle->ret_queue) == 0, "Have unfinished transactions", ESP_ERR_INVALID_STATE);
|
||||
}
|
||||
|
||||
@@ -354,7 +354,7 @@ static void SPI_SLAVE_ISR_ATTR spi_slave_uninstall_priv_trans(spi_host_device_t
|
||||
if (trans->tx_buffer && (trans->tx_buffer != priv_trans->tx_buffer)) {
|
||||
free(priv_trans->tx_buffer);
|
||||
}
|
||||
if (trans->rx_buffer && (trans->rx_buffer != priv_trans->rx_buffer)) {
|
||||
if (priv_trans->rx_buffer && (trans->rx_buffer != priv_trans->rx_buffer)) {
|
||||
memcpy(trans->rx_buffer, priv_trans->rx_buffer, (trans->length + 7) / 8);
|
||||
free(priv_trans->rx_buffer);
|
||||
}
|
||||
|
||||
@@ -572,7 +572,7 @@ static void s_spi_slave_hd_destroy_priv_trans(spi_host_device_t host, spi_slave_
|
||||
{
|
||||
#if SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE
|
||||
spi_slave_hd_data_t *orig_trans = priv_trans->trans;
|
||||
if (priv_trans->aligned_buffer != orig_trans->data) {
|
||||
if (priv_trans->aligned_buffer && priv_trans->aligned_buffer != orig_trans->data) {
|
||||
if (chan == SPI_SLAVE_CHAN_RX) {
|
||||
memcpy(orig_trans->data, priv_trans->aligned_buffer, orig_trans->trans_len);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user