nvadsp: Add provision to configure timeout

Provision is added to specify the OS load timeout
from DT, using property "nvidia,adsp_load_timeout".

Bug 200745795
Bug 200746669

Change-Id: Ie868a1528ad9d39200a0359f6a9d54a2832b0547
Signed-off-by: Viswanath L <viswanathl@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2622380
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Viswanath L
2021-11-08 16:35:16 +00:00
committed by Laxman Dewangan
parent 8036a9525f
commit ac60258ffd
3 changed files with 13 additions and 2 deletions

View File

@@ -296,6 +296,9 @@ static int __init nvadsp_parse_dt(struct platform_device *pdev)
of_property_read_u32(dev->of_node, "nvidia,tegra_platform",
&drv_data->tegra_platform);
of_property_read_u32(dev->of_node, "nvidia,adsp_load_timeout",
&drv_data->adsp_load_timeout);
if (drv_data->adsp_unit_fpga) {
for (iter = 0; iter < ADSP_UNIT_FPGA_RESET_END; iter++) {
if (of_property_read_u32_index(dev->of_node,

View File

@@ -241,6 +241,9 @@ struct nvadsp_drv_data {
/* enum tegra_platform */
u32 tegra_platform;
/* "nvidia,adsp_load_timeout" (in ms) */
u32 adsp_load_timeout;
};
#define ADSP_CONFIG 0x04

View File

@@ -1221,11 +1221,16 @@ end:
static int wait_for_adsp_os_load_complete(void)
{
struct device *dev = &priv.pdev->dev;
uint32_t data;
struct nvadsp_drv_data *drv_data = platform_get_drvdata(priv.pdev);
uint32_t timeout, data;
status_t ret;
timeout = drv_data->adsp_load_timeout;
if (!timeout)
timeout = ADSP_OS_LOAD_TIMEOUT;
ret = nvadsp_mbox_recv(&adsp_com_mbox, &data,
true, ADSP_OS_LOAD_TIMEOUT);
true, timeout);
if (ret) {
dev_err(dev, "ADSP OS loading timed out\n");
goto end;