diff --git a/drivers/platform/tegra/nvadsp/dev.c b/drivers/platform/tegra/nvadsp/dev.c index 5e8c07c4..a9f505b0 100644 --- a/drivers/platform/tegra/nvadsp/dev.c +++ b/drivers/platform/tegra/nvadsp/dev.c @@ -293,6 +293,9 @@ static int __init nvadsp_parse_dt(struct platform_device *pdev) drv_data->adsp_os_secload = of_property_read_bool(dev->of_node, "nvidia,adsp_os_secload"); + of_property_read_u32(dev->of_node, "nvidia,tegra_platform", + &drv_data->tegra_platform); + 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, diff --git a/drivers/platform/tegra/nvadsp/dev.h b/drivers/platform/tegra/nvadsp/dev.h index ab0e1b67..f05cd10d 100644 --- a/drivers/platform/tegra/nvadsp/dev.h +++ b/drivers/platform/tegra/nvadsp/dev.h @@ -238,6 +238,9 @@ struct nvadsp_drv_data { /* CO mem in backdoor boot */ struct resource co_mem; + + /* enum tegra_platform */ + u32 tegra_platform; }; #define ADSP_CONFIG 0x04 diff --git a/drivers/platform/tegra/nvadsp/os.c b/drivers/platform/tegra/nvadsp/os.c index ab465b8d..da1356ba 100644 --- a/drivers/platform/tegra/nvadsp/os.c +++ b/drivers/platform/tegra/nvadsp/os.c @@ -797,6 +797,13 @@ static void nvadsp_set_shared_mem(struct platform_device *pdev, */ os_args->chip_id = chip_id; + /* + * Tegra platform is encoded in the upper 16 bits + * of chip_id; can be improved to make this a + * separate member in nvadsp_os_args + */ + os_args->chip_id |= (drv_data->tegra_platform << 16); + drv_data->shared_adsp_os_data = shared_mem; }