]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
arm: tegra: use fuse check rev api and init soctherm
authorDiwakar Tundlam <dtundlam@nvidia.com>
Thu, 29 Aug 2013 00:47:49 +0000 (17:47 -0700)
committerDan Willemsen <dwillemsen@nvidia.com>
Sat, 14 Sep 2013 20:44:41 +0000 (13:44 -0700)
Bug 1291108

Change-Id: Ic833e7618fc1f97dc79e7a060543960aa3844f75
Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
Reviewed-on: http://git-master/r/267648

arch/arm/mach-tegra/board-ardbeg-power.c
arch/arm/mach-tegra/tegra11_soctherm.c

index 20c9d675a1df302d596159e1c9d7b9a8d4185fe9..cc2147a8354345d2f8bcb7a66c2068fb669858b5 100644 (file)
@@ -40,6 +40,7 @@
 #include <linux/regulator/tegra-dfll-bypass-regulator.h>
 
 #include <asm/mach-types.h>
+#include <mach/tegra_fuse.h>
 
 #include "pm.h"
 #include "dvfs.h"
@@ -1275,5 +1276,10 @@ static struct soctherm_platform_data ardbeg_soctherm_data = {
 
 int __init ardbeg_soctherm_init(void)
 {
-       return tegra11_soctherm_init(&ardbeg_soctherm_data);
+       /* do this only for supported CP,FT fuses */
+       if (!tegra_fuse_calib_base_get_cp(NULL, NULL) &&
+           !tegra_fuse_calib_base_get_ft(NULL, NULL))
+               return tegra11_soctherm_init(&ardbeg_soctherm_data);
+
+       return -EINVAL;
 }
index 61dd5708d4487efe13f53cf343ee34cfffd033fd..3d91d630641903a8d1bd86f7949eed4e4f535443 100644 (file)
@@ -1715,8 +1715,11 @@ static int soctherm_fuse_read_calib_base(void)
        s32 calib_cp, calib_ft;
        s32 nominal_calib_cp, nominal_calib_ft;
 
-       tegra_fuse_calib_base_get_cp(&fuse_calib_base_cp, &calib_cp);
-       tegra_fuse_calib_base_get_ft(&fuse_calib_base_ft, &calib_ft);
+       if (tegra_fuse_calib_base_get_cp(&fuse_calib_base_cp, &calib_cp) ||
+           tegra_fuse_calib_base_get_ft(&fuse_calib_base_ft, &calib_ft)) {
+               pr_err("soctherm: ERROR: Improper CP or FT calib fuse.\n");
+               return -EINVAL;
+       }
 
        nominal_calib_cp = 25;
        if (tegra_chip_id == TEGRA_CHIPID_TEGRA11)