X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=carlfw%2Finclude%2Fio.h;h=4ccdc6e4c8f78df780c282979cf9f1ed8e66912b;hb=69f7043e7a2223e25cc525161a2de45d293d21d0;hp=1186af61aa1a372814155b4d988b5a392a33e1b1;hpb=774528bd28331a1f3dd26ed8976f03cf224dfd4e;p=carl9170fw.git diff --git a/carlfw/include/io.h b/carlfw/include/io.h index 1186af6..4ccdc6e 100644 --- a/carlfw/include/io.h +++ b/carlfw/include/io.h @@ -81,13 +81,11 @@ static inline __inline uint32_t readl_async(const volatile void *addr) uint32_t i = 0, read, tmp; read = readl(addr); - while (i++ < 10) { + do { + tmp = read; tmp = readl(addr); - if (tmp == read) - break; - else - read = tmp; - } + i++; + } while (tmp != read && i <= 10); return read; }