|
@@ -736,14 +736,14 @@ static bool icm_ar_is_supported(struct tb *tb)
|
|
|
static int icm_ar_get_mode(struct tb *tb)
|
|
|
{
|
|
|
struct tb_nhi *nhi = tb->nhi;
|
|
|
- int retries = 5;
|
|
|
+ int retries = 60;
|
|
|
u32 val;
|
|
|
|
|
|
do {
|
|
|
val = ioread32(nhi->iobase + REG_FW_STS);
|
|
|
if (val & REG_FW_STS_NVM_AUTH_DONE)
|
|
|
break;
|
|
|
- msleep(30);
|
|
|
+ msleep(50);
|
|
|
} while (--retries);
|
|
|
|
|
|
if (!retries) {
|
|
@@ -1063,6 +1063,9 @@ static int icm_firmware_init(struct tb *tb)
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+
|
|
|
tb_err(tb, "ICM firmware is in wrong mode: %u\n", ret);
|
|
|
return -ENODEV;
|
|
|
}
|