瀏覽代碼

[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>
a1012112796 2 年之前
父節點
當前提交
5e4a95f54d
共有 1 個文件被更改,包括 13 次插入3 次删除
  1. 13 3
      components/drivers/spi/spi_core.c

+ 13 - 3
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,