diff options
author | Olof Johansson <olof@lixom.net> | 2017-05-25 19:59:43 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2017-05-25 19:59:43 -0400 |
commit | 3616aa198fdc3c673ce920a138913b933c1f31a7 (patch) | |
tree | b0af44c81d1fd522ef84017bce0b352d66cf14e1 | |
parent | 6bf1c2d26716dcd483699cc62474e49d164c5563 (diff) | |
parent | 95d7c1f18bf8ac03b0fc48eac1f1b11f867765b8 (diff) |
Merge tag 'davinci-fixes-for-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into fixes
These fix issues with power management initialization code
on DaVinci. Some resources were getting freed prematurely.
And there was an issue with resources not being on error.
* tag 'davinci-fixes-for-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
ARM: davinci: PM: Do not free useful resources in normal path in 'davinci_pm_init'
ARM: davinci: PM: Free resources in error handling path in 'davinci_pm_init'
Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r-- | arch/arm/mach-davinci/pm.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-davinci/pm.c b/arch/arm/mach-davinci/pm.c index efb80354f303..b5cc05dc2cb2 100644 --- a/arch/arm/mach-davinci/pm.c +++ b/arch/arm/mach-davinci/pm.c | |||
@@ -153,7 +153,8 @@ int __init davinci_pm_init(void) | |||
153 | davinci_sram_suspend = sram_alloc(davinci_cpu_suspend_sz, NULL); | 153 | davinci_sram_suspend = sram_alloc(davinci_cpu_suspend_sz, NULL); |
154 | if (!davinci_sram_suspend) { | 154 | if (!davinci_sram_suspend) { |
155 | pr_err("PM: cannot allocate SRAM memory\n"); | 155 | pr_err("PM: cannot allocate SRAM memory\n"); |
156 | return -ENOMEM; | 156 | ret = -ENOMEM; |
157 | goto no_sram_mem; | ||
157 | } | 158 | } |
158 | 159 | ||
159 | davinci_sram_push(davinci_sram_suspend, davinci_cpu_suspend, | 160 | davinci_sram_push(davinci_sram_suspend, davinci_cpu_suspend, |
@@ -161,6 +162,10 @@ int __init davinci_pm_init(void) | |||
161 | 162 | ||
162 | suspend_set_ops(&davinci_pm_ops); | 163 | suspend_set_ops(&davinci_pm_ops); |
163 | 164 | ||
165 | return 0; | ||
166 | |||
167 | no_sram_mem: | ||
168 | iounmap(pm_config.ddrpsc_reg_base); | ||
164 | no_ddrpsc_mem: | 169 | no_ddrpsc_mem: |
165 | iounmap(pm_config.ddrpll_reg_base); | 170 | iounmap(pm_config.ddrpll_reg_base); |
166 | no_ddrpll_mem: | 171 | no_ddrpll_mem: |