From 5e4a95f54d434c70a9d24ac14df83421364b615f Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Fri, 12 May 2023 12:11:28 +0800 Subject: [PATCH] [components/drivers] add result check for configure in `rt_spi_configure` (#7474) Signed-off-by: a1012112796 <1012112796@qq.com> Co-authored-by: Man, Jianting (Meco) <920369182@qq.com> --- components/drivers/spi/spi_core.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/components/drivers/spi/spi_core.c b/components/drivers/spi/spi_core.c index c5e769db10..9cff697b32 100644 --- a/components/drivers/spi/spi_core.c +++ b/components/drivers/spi/spi_core.c @@ -90,7 +90,7 @@ rt_err_t rt_spi_bus_attach_device(struct rt_spi_device *device, rt_err_t rt_spi_configure(struct rt_spi_device *device, struct rt_spi_configuration *cfg) { - rt_err_t result; + rt_err_t result = -RT_ERROR; RT_ASSERT(device != RT_NULL); @@ -114,15 +114,25 @@ rt_err_t rt_spi_configure(struct rt_spi_device *device, { if (device->bus->owner == device) { - device->bus->ops->configure(device, &device->config); + /* current device is using, re-configure SPI bus */ + result = device->bus->ops->configure(device, &device->config); + if (result != RT_EOK) + { + /* configure SPI bus failed */ + LOG_E("SPI device %s configuration failed", device->parent.parent.name); + } } /* release lock */ rt_mutex_release(&(device->bus->lock)); } } + else + { + result = RT_EOK; + } - return RT_EOK; + return result; } rt_err_t rt_spi_send_then_send(struct rt_spi_device *device,