diff --git a/components/drivers/include/drivers/mmcsd_core.h b/components/drivers/include/drivers/mmcsd_core.h index 1f7b38795ceabef54c35ab81b3c11fb29b6175dc..5326425bfdf44a003c60053ee8038c2bfb566e68 100644 --- a/components/drivers/include/drivers/mmcsd_core.h +++ b/components/drivers/include/drivers/mmcsd_core.h @@ -210,37 +210,6 @@ rt_inline rt_uint32_t fls(rt_uint32_t val) return bit; } -#if !defined(__GNUC__) || defined(__CC_ARM) -rt_inline rt_uint32_t ffs(rt_uint32_t x) -{ - int r = 1; - - if (!x) - return 0; - if (!(x & 0xffff)) { - x >>= 16; - r += 16; - } - if (!(x & 0xff)) { - x >>= 8; - r += 8; - } - if (!(x & 0xf)) { - x >>= 4; - r += 4; - } - if (!(x & 3)) { - x >>= 2; - r += 2; - } - if (!(x & 1)) { - x >>= 1; - r += 1; - } - return r; -} -#endif - void mmcsd_host_lock(struct rt_mmcsd_host *host); void mmcsd_host_unlock(struct rt_mmcsd_host *host); void mmcsd_req_complete(struct rt_mmcsd_host *host); diff --git a/components/drivers/sdio/mmcsd_core.c b/components/drivers/sdio/mmcsd_core.c index e9a2e49115aab13761fe7d1c31cf53f986c2eaac..db93cdb10cd6114f9e76997b4d33c9b457142f7f 100644 --- a/components/drivers/sdio/mmcsd_core.c +++ b/components/drivers/sdio/mmcsd_core.c @@ -493,7 +493,7 @@ rt_uint32_t mmcsd_select_voltage(struct rt_mmcsd_host *host, rt_uint32_t ocr) ocr &= host->valid_ocr; - bit = ffs(ocr); + bit = __rt_ffs(ocr); if (bit) { bit -= 1;