drivers: vendor_storage: add retry when emmc initialize failed

Change-Id: I28202c5e3a4eb9ab58a430f40ff5e969fd110f54
Signed-off-by: Wu Liangqing <wlq@rock-chips.com>
This commit is contained in:
wlq 2017-05-23 19:32:42 +08:00 committed by Huang, Tao
parent 9a1e40fa7f
commit 31ced208e2

View File

@ -99,7 +99,7 @@ static int emmc_vendor_storage_init(void)
g_vendor = kmalloc(sizeof(*g_vendor), GFP_KERNEL | GFP_DMA);
if (!g_vendor)
return -1;
return -ENOMEM;
max_ver = 0;
max_index = 0;
@ -149,7 +149,7 @@ static int emmc_vendor_read(u32 id, void *pbuf, u32 size)
u32 i;
if (!g_vendor)
return -1;
return -ENOMEM;
for (i = 0; i < g_vendor->item_num; i++) {
if (g_vendor->item[i].id == id) {
@ -560,11 +560,17 @@ static struct miscdevice vender_storage_dev = {
static int vendor_init_thread(void *arg)
{
int ret;
int ret, try_count = 5;
do {
ret = emmc_vendor_storage_init();
if (!ret) {
break;
}
/* sleep 500ms wait emmc initialize completed */
msleep(500);
} while (try_count--);
/* sleep 500ms wait emmc initialize completed */
msleep(500);
ret = emmc_vendor_storage_init();
if (!ret) {
ret = misc_register(&vender_storage_dev);
rk_vendor_register(emmc_vendor_read, emmc_vendor_write);