Tegra: bpmp: Increase timeout to 2ms
To deal with upcoming EMC periodic compensation, increase the BPMP timeout
to 2ms.
Change-Id: I8572c031168defd15504d905c4d625f44dd7fa3d
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
diff --git a/plat/nvidia/tegra/common/drivers/bpmp/bpmp.c b/plat/nvidia/tegra/common/drivers/bpmp/bpmp.c
index 8b3e642..1867511 100644
--- a/plat/nvidia/tegra/common/drivers/bpmp/bpmp.c
+++ b/plat/nvidia/tegra/common/drivers/bpmp/bpmp.c
@@ -16,7 +16,7 @@
#include <string.h>
#include <tegra_def.h>
-#define BPMP_TIMEOUT_10US 10
+#define BPMP_TIMEOUT 2
static uint32_t channel_base[NR_CHANNELS];
static uint32_t bpmp_init_state = BPMP_INIT_PENDING;
@@ -58,15 +58,15 @@
if (bpmp_init_state == BPMP_INIT_COMPLETE) {
/* loop until BPMP is free */
- for (timeout = 0; timeout < BPMP_TIMEOUT_10US; timeout++) {
+ for (timeout = 0; timeout < BPMP_TIMEOUT; timeout++) {
if (master_free(ch) == true) {
break;
}
- udelay(1);
+ mdelay(1);
}
- if (timeout != BPMP_TIMEOUT_10US) {
+ if (timeout != BPMP_TIMEOUT) {
/* generate the command struct */
p->code = mrq;
@@ -79,15 +79,15 @@
(1U << INT_SHR_SEM_OUTBOX_FULL));
/* loop until the command is executed */
- for (timeout = 0; timeout < BPMP_TIMEOUT_10US; timeout++) {
+ for (timeout = 0; timeout < BPMP_TIMEOUT; timeout++) {
if (master_acked(ch) == true) {
break;
}
- udelay(1);
+ mdelay(1);
}
- if (timeout != BPMP_TIMEOUT_10US) {
+ if (timeout != BPMP_TIMEOUT) {
/* get the command response */
(void)memcpy(ib_data, (const void *)p->data,
@@ -106,8 +106,8 @@
ret = -EINVAL;
}
- if (timeout == BPMP_TIMEOUT_10US) {
- ERROR("Timed out waiting for bpmp's response");
+ if (timeout == BPMP_TIMEOUT) {
+ ERROR("Timed out waiting for bpmp's response\n");
}
return ret;