From dd5ac17fc8dc2c9dd166833b31ff08e7d9b316fb Mon Sep 17 00:00:00 2001 From: weety Date: Thu, 19 Oct 2017 19:14:06 +0800 Subject: [bsp][dm365] Using component initial; [drv][mmcsd] Add component initial. --- components/drivers/include/drivers/mmcsd_core.h | 4 ++-- components/drivers/sdio/block_dev.c | 6 +++++- components/drivers/sdio/mmcsd_core.c | 7 ++++++- components/drivers/sdio/sdio.c | 7 +++---- 4 files changed, 16 insertions(+), 8 deletions(-) (limited to 'components/drivers') diff --git a/components/drivers/include/drivers/mmcsd_core.h b/components/drivers/include/drivers/mmcsd_core.h index e474fa28a8..36d71efeb2 100644 --- a/components/drivers/include/drivers/mmcsd_core.h +++ b/components/drivers/include/drivers/mmcsd_core.h @@ -247,9 +247,9 @@ void mmcsd_change(struct rt_mmcsd_host *host); void mmcsd_detect(void *param); struct rt_mmcsd_host *mmcsd_alloc_host(void); void mmcsd_free_host(struct rt_mmcsd_host *host); -void rt_mmcsd_core_init(void); +int rt_mmcsd_core_init(void); -void rt_mmcsd_blk_init(void); +int rt_mmcsd_blk_init(void); rt_int32_t rt_mmcsd_blk_probe(struct rt_mmcsd_card *card); void rt_mmcsd_blk_remove(struct rt_mmcsd_card *card); diff --git a/components/drivers/sdio/block_dev.c b/components/drivers/sdio/block_dev.c index 3e142ee6e4..e6998f4fe3 100644 --- a/components/drivers/sdio/block_dev.c +++ b/components/drivers/sdio/block_dev.c @@ -479,7 +479,11 @@ void rt_mmcsd_blk_remove(struct rt_mmcsd_card *card) * @deprecated since 2.1.0, this function does not need to be invoked * in the system initialization. */ -void rt_mmcsd_blk_init(void) +int rt_mmcsd_blk_init(void) { /* nothing */ + return 0; } + +INIT_PREV_EXPORT(rt_mmcsd_blk_init); + diff --git a/components/drivers/sdio/mmcsd_core.c b/components/drivers/sdio/mmcsd_core.c index 02063efdd2..3e98444b71 100644 --- a/components/drivers/sdio/mmcsd_core.c +++ b/components/drivers/sdio/mmcsd_core.c @@ -655,6 +655,7 @@ void mmcsd_detect(void *param) if (init_sd(host, ocr)) mmcsd_power_off(host); mmcsd_host_unlock(host); + rt_mb_send(&mmcsd_hotpluge_mb, (rt_uint32_t)host); continue; } @@ -726,7 +727,7 @@ void mmcsd_free_host(struct rt_mmcsd_host *host) rt_free(host); } -void rt_mmcsd_core_init(void) +int rt_mmcsd_core_init(void) { rt_err_t ret; @@ -749,5 +750,9 @@ void rt_mmcsd_core_init(void) } rt_sdio_init(); + + return 0; } +INIT_PREV_EXPORT(rt_mmcsd_core_init); + diff --git a/components/drivers/sdio/sdio.c b/components/drivers/sdio/sdio.c index 496765854e..dc0cd1eb96 100644 --- a/components/drivers/sdio/sdio.c +++ b/components/drivers/sdio/sdio.c @@ -33,8 +33,8 @@ #define RT_SDIO_THREAD_PRIORITY 0x40 #endif -static rt_list_t sdio_cards; -static rt_list_t sdio_drivers; +static rt_list_t sdio_cards = RT_LIST_OBJECT_INIT(sdio_cards); +static rt_list_t sdio_drivers = RT_LIST_OBJECT_INIT(sdio_drivers); struct sdio_card { @@ -1397,7 +1397,6 @@ rt_int32_t sdio_unregister_driver(struct rt_sdio_driver *driver) void rt_sdio_init(void) { - rt_list_init(&sdio_cards); - rt_list_init(&sdio_drivers); + } -- cgit v1.3.1