Browse Source

[DeviceDrivers] fix sd->drv issue in sdio

Bernard Xiong 9 years ago
parent
commit
e029f14b46
2 changed files with 8 additions and 1 deletions
  1. 6 0
      components/drivers/include/drivers/sdio.h
  2. 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_uint32_t           blocks,
                                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_uint32_t              reg,
                          rt_int32_t              *err);

+ 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 */
 }
 
-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_uint32_t              addr,
                                             rt_int32_t               op_code,
@@ -1325,6 +1325,7 @@ rt_int32_t sdio_register_driver(struct rt_sdio_driver *driver)
         return -RT_ENOMEM;
     }
 
+    sd->drv = driver;
     rt_list_insert_after(&sdio_drivers, &sd->list);
 
     if (!rt_list_isempty(&sdio_cards))