summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2010-06-28 19:40:41 -0700
committerGary King <gking@nvidia.com>2010-06-28 20:24:18 -0700
commita842bb9573d6f5b3caeb38ec61a5e8f63213d544 (patch)
tree916f1b24abac77d55a82a1da5d589ae6c69c3a57 /arch
parent5483d2805d0e072e0f3a09c064030282eb620c9a (diff)
[ARM/tegra] ODM: validated board info after recursive entry.
Made sure board info data is validated inside/after recursive re-entry. Without this change early invocation of rm open by regulator probe used non-initialized data. Change-Id: I8cf06ef8218214b2aee6efef5f90a5cbd8d9ca7b Reviewed-on: http://git-master/r/3289 Tested-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_discovery.c7
-rw-r--r--arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c7
2 files changed, 10 insertions, 4 deletions
diff --git a/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_discovery.c b/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_discovery.c
index 6b0b896d0cf3..51691c5294e7 100644
--- a/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_discovery.c
+++ b/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_discovery.c
@@ -485,9 +485,11 @@ NvOdmPeripheralGetBoardInfo(
static NvBool s_ReadBoardInfoDone = NV_FALSE;
if (!s_ReadBoardInfoDone)
+ hOdmI2c = NvOdmI2cOpen(NvOdmIoModule_I2c_Pmu, 0);
+
+ if (!s_ReadBoardInfoDone)
{
s_ReadBoardInfoDone = NV_TRUE;
- hOdmI2c = NvOdmI2cOpen(NvOdmIoModule_I2c_Pmu, 0);
if (!hOdmI2c)
{
// Exit
@@ -502,8 +504,9 @@ NvOdmPeripheralGetBoardInfo(
if (RetVal == NV_TRUE)
NumBoards++;
}
- NvOdmI2cClose(hOdmI2c);
}
+ if (hOdmI2c)
+ NvOdmI2cClose(hOdmI2c);
if (NumBoards)
{
diff --git a/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c b/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c
index 9cf5ddf199a2..738e5d5687ad 100644
--- a/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c
+++ b/arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c
@@ -614,9 +614,11 @@ NvOdmPeripheralGetBoardInfo(
static NvBool s_ReadBoardInfoDone = NV_FALSE;
if (!s_ReadBoardInfoDone)
+ hOdmI2c = NvOdmI2cOpen(NvOdmIoModule_I2c_Pmu, 0);
+
+ if (!s_ReadBoardInfoDone)
{
s_ReadBoardInfoDone = NV_TRUE;
- hOdmI2c = NvOdmI2cOpen(NvOdmIoModule_I2c_Pmu, 0);
if (!hOdmI2c)
{
// Exit
@@ -645,8 +647,9 @@ NvOdmPeripheralGetBoardInfo(
NumBoards++;
}
}
- NvOdmI2cClose(hOdmI2c);
}
+ if (hOdmI2c)
+ NvOdmI2cClose(hOdmI2c);
if (NumBoards)
{