summaryrefslogtreecommitdiff
path: root/drivers/firmware/scmi/mailbox_agent.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/firmware/scmi/mailbox_agent.c')
-rw-r--r--drivers/firmware/scmi/mailbox_agent.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/firmware/scmi/mailbox_agent.c b/drivers/firmware/scmi/mailbox_agent.c
index 6d4497f4b92..16a82f55ab7 100644
--- a/drivers/firmware/scmi/mailbox_agent.c
+++ b/drivers/firmware/scmi/mailbox_agent.c
@@ -16,7 +16,7 @@
#include "smt.h"
-#define TIMEOUT_US_10MS 10000
+#define TIMEOUT_30MS 30
/**
* struct scmi_mbox_channel - Description of an SCMI mailbox transport
@@ -73,6 +73,7 @@ out:
static int setup_channel(struct udevice *dev, struct scmi_mbox_channel *chan)
{
+ struct scmi_mbox_channel *base_chan = dev_get_plat(dev);
int ret;
ret = mbox_get_by_index(dev, 0, &chan->mbox);
@@ -87,7 +88,7 @@ static int setup_channel(struct udevice *dev, struct scmi_mbox_channel *chan)
return ret;
}
- chan->timeout_us = TIMEOUT_US_10MS;
+ chan->timeout_us = base_chan->timeout_us;
return 0;
}
@@ -127,6 +128,9 @@ int scmi_mbox_of_to_plat(struct udevice *dev)
{
struct scmi_mbox_channel *chan = dev_get_plat(dev);
+ chan->timeout_us = dev_read_u32_default(dev, "arm,max-rx-timeout-ms",
+ TIMEOUT_30MS) * 1000;
+
return setup_channel(dev, chan);
}