From e44a671c9b7b7ae42fdd6ef2d4972e22d3a0c65c Mon Sep 17 00:00:00 2001 From: Deepak Bhosale Date: Mon, 23 Jul 2018 17:24:09 -0700 Subject: [PATCH] video: tegra: host: probe engines based on SKUs - Xavier has different SKUs based on which different engines are enabled or disabled based on fuse setttings. - This patch probes engines only if they are actually enabled in SKU by reading SKU INFO. - This makes sure that we dont access engines if they are enabled inadvertently in DT Bug 200428527 JIRA VFND-5075 Change-Id: I4d3a4c84452237fdab0426980282cd9c39cc2a28 Signed-off-by: Deepak Bhosale Reviewed-on: https://git-master.nvidia.com/r/1784306 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Damian Halas GVS: Gerrit_Virtual_Submit Reviewed-by: Mikko Perttunen Reviewed-by: Nirav Patel Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/video/tegra/host/nvdla/nvdla.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/video/tegra/host/nvdla/nvdla.c b/drivers/video/tegra/host/nvdla/nvdla.c index f67ce75e..9c091b7e 100644 --- a/drivers/video/tegra/host/nvdla/nvdla.c +++ b/drivers/video/tegra/host/nvdla/nvdla.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "dev.h" #include "bus_client.h" @@ -722,6 +723,13 @@ static int nvdla_probe(struct platform_device *pdev) goto err_get_pdata; } + if (tegra_get_chipid() == TEGRA_CHIPID_TEGRA19 && + tegra_get_sku_id() == 0x9E) { + dev_err(dev, "NVDLA IP is disabled in SKU\n"); + err = -ENODEV; + goto err_no_ip; + } + dma_set_mask(dev, DMA_BIT_MASK(40)); nvdla_dev = devm_kzalloc(dev, sizeof(*nvdla_dev), GFP_KERNEL); @@ -789,6 +797,7 @@ err_module_init: err_get_resources: devm_kfree(dev, nvdla_dev); err_alloc_nvdla: +err_no_ip: err_get_pdata: return err;