diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-20 17:34:58 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-20 17:34:58 -0500 |
commit | bb893d15b564f7711b60e0bc12966d049980582d (patch) | |
tree | a8606472dc0594451f0e2afffc612e96e973613c /drivers/spi | |
parent | 2d360fcbd851b7f9f8c23b1c30b2f3c060fa43e6 (diff) | |
parent | e5489847d6fc0ff176048b6e1cf5034507bf703a (diff) |
Merge branch 'fixes' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm
* 'fixes' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:
ARM: wire up process_vm_writev and process_vm_readv syscalls
ARM: 7160/1: setup: avoid overflowing {elf,arch}_name from proc_info_list
ARM: 7158/1: add new MFP implement for NUC900
ARM: 7157/1: fix a building WARNING for nuc900
ARM: 7156/1: l2x0: fix compile error on !CONFIG_USE_OF
ARM: 7155/1: arch.h: Declare 'pt_regs' locally
ARM: 7154/1: mach-bcmring: fix build error in dma.c
ARM: 7153/1: mach-bcmring: fix build error in core.c
ARM: 7152/1: distclean: Remove generated .dtb files
ARM: 7150/1: Allow kernel unaligned accesses on ARMv6+ processors
ARM: 7149/1: spi/pl022: Enable clock in probe
Revert "ARM: 7098/1: kdump: copy kernel relocation code at the kexec prepare stage"
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi-pl022.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index f103e470cb6..5559b229919 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c | |||
@@ -2184,6 +2184,12 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id) | |||
2184 | goto err_clk_prep; | 2184 | goto err_clk_prep; |
2185 | } | 2185 | } |
2186 | 2186 | ||
2187 | status = clk_enable(pl022->clk); | ||
2188 | if (status) { | ||
2189 | dev_err(&adev->dev, "could not enable SSP/SPI bus clock\n"); | ||
2190 | goto err_no_clk_en; | ||
2191 | } | ||
2192 | |||
2187 | /* Disable SSP */ | 2193 | /* Disable SSP */ |
2188 | writew((readw(SSP_CR1(pl022->virtbase)) & (~SSP_CR1_MASK_SSE)), | 2194 | writew((readw(SSP_CR1(pl022->virtbase)) & (~SSP_CR1_MASK_SSE)), |
2189 | SSP_CR1(pl022->virtbase)); | 2195 | SSP_CR1(pl022->virtbase)); |
@@ -2237,6 +2243,8 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id) | |||
2237 | 2243 | ||
2238 | free_irq(adev->irq[0], pl022); | 2244 | free_irq(adev->irq[0], pl022); |
2239 | err_no_irq: | 2245 | err_no_irq: |
2246 | clk_disable(pl022->clk); | ||
2247 | err_no_clk_en: | ||
2240 | clk_unprepare(pl022->clk); | 2248 | clk_unprepare(pl022->clk); |
2241 | err_clk_prep: | 2249 | err_clk_prep: |
2242 | clk_put(pl022->clk); | 2250 | clk_put(pl022->clk); |