瀏覽代碼

[DeviceDrivers] Fix sdio drv issue

Bernard Xiong 9 年之前
父節點
當前提交
540d6ebf54
共有 3 個文件被更改,包括 9 次插入2 次删除
  1. 6 0
      components/drivers/include/drivers/sdio.h
  2. 1 1
      components/drivers/sdio/block_dev.c
  3. 2 1
      components/drivers/sdio/sdio.c

+ 6 - 0
components/drivers/include/drivers/sdio.h

@@ -181,6 +181,12 @@ rt_int32_t sdio_io_rw_extended(struct rt_mmcsd_card *card,
                                rt_uint8_t           *buf,
                                rt_uint8_t           *buf,
                                rt_uint32_t           blocks,
                                rt_uint32_t           blocks,
                                rt_uint32_t           blksize);
                                rt_uint32_t           blksize);
+rt_int32_t sdio_io_rw_extended_block(struct rt_sdio_function *func,
+                              rt_int32_t               rw,
+                              rt_uint32_t              addr,
+                              rt_int32_t               op_code,
+                              rt_uint8_t              *buf,
+                              rt_uint32_t              len);
 rt_uint8_t sdio_io_readb(struct rt_sdio_function *func, 
 rt_uint8_t sdio_io_readb(struct rt_sdio_function *func, 
                          rt_uint32_t              reg,
                          rt_uint32_t              reg,
                          rt_int32_t              *err);
                          rt_int32_t              *err);

+ 1 - 1
components/drivers/sdio/block_dev.c

@@ -149,7 +149,7 @@ static rt_err_t rt_mmcsd_req_blk(struct rt_mmcsd_card *card,
     }
     }
     else
     else
     {
     {
-        req.stop = NULL;
+        req.stop = RT_NULL;
         r_cmd = READ_SINGLE_BLOCK;
         r_cmd = READ_SINGLE_BLOCK;
         w_cmd = WRITE_BLOCK;
         w_cmd = WRITE_BLOCK;
     }
     }

+ 2 - 1
components/drivers/sdio/sdio.c

@@ -244,7 +244,7 @@ rt_inline rt_uint32_t sdio_max_block_size(struct rt_sdio_function *func)
     return MIN(size, 512u); /* maximum size for byte mode */
     return MIN(size, 512u); /* maximum size for byte mode */
 }
 }
 
 
-static rt_int32_t sdio_io_rw_extended_block(struct rt_sdio_function *func,
+rt_int32_t sdio_io_rw_extended_block(struct rt_sdio_function *func,
                                             rt_int32_t               rw,
                                             rt_int32_t               rw,
                                             rt_uint32_t              addr,
                                             rt_uint32_t              addr,
                                             rt_int32_t               op_code,
                                             rt_int32_t               op_code,
@@ -1325,6 +1325,7 @@ rt_int32_t sdio_register_driver(struct rt_sdio_driver *driver)
         return -RT_ENOMEM;
         return -RT_ENOMEM;
     }
     }
 
 
+    sd->drv = driver;
     rt_list_insert_after(&sdio_drivers, &sd->list);
     rt_list_insert_after(&sdio_drivers, &sd->list);
 
 
     if (!rt_list_isempty(&sdio_cards))
     if (!rt_list_isempty(&sdio_cards))