diff options
author | Alex Frid <afrid@nvidia.com> | 2010-06-28 19:40:41 -0700 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-06-28 20:24:18 -0700 |
commit | a842bb9573d6f5b3caeb38ec61a5e8f63213d544 (patch) | |
tree | 916f1b24abac77d55a82a1da5d589ae6c69c3a57 /arch/arm/mach-tegra | |
parent | 5483d2805d0e072e0f3a09c064030282eb620c9a (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/arm/mach-tegra')
-rw-r--r-- | arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_discovery.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query_discovery.c | 7 |
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) { |