diff options
Diffstat (limited to 'mboxd_msg.c')
-rw-r--r-- | mboxd_msg.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/mboxd_msg.c b/mboxd_msg.c index d02e0bf..0cc1cd2 100644 --- a/mboxd_msg.c +++ b/mboxd_msg.c @@ -147,6 +147,20 @@ static int mbox_handle_reset(struct mbox_context *context, } /* + * get_suggested_timeout() - get the suggested timeout value in seconds + * @context: The mbox context pointer + * + * Return: Suggested timeout in seconds + */ +static uint16_t get_suggested_timeout(struct mbox_context *context) +{ + struct window_context *window = find_largest_window(context); + uint32_t max_size_mb = window ? (window->size >> 20) : 0; + + return align_up(max_size_mb * FLASH_ACCESS_MS_PER_MB, 1000) / 1000; +} + +/* * Command: GET_MBOX_INFO * Get the API version, default window size and block size * We also set the LPC mapping to point to the reserved memory region here so @@ -229,6 +243,7 @@ static int mbox_handle_mbox_info(struct mbox_context *context, } if (context->version >= API_VERSION_2) { resp->args[5] = context->block_size_shift; + put_u16(&resp->args[6], get_suggested_timeout(context)); } return 0; |