diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-15 12:51:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-15 12:51:09 -0400 |
commit | 723e9db7a46e328527cc3da2b478b831184fe828 (patch) | |
tree | cdeda255633057dcb4c84097bed27b2bbf76970f /arch/powerpc/sysdev/qe_lib | |
parent | ada3fa15057205b7d3f727bba5cd26b5912e350f (diff) | |
parent | d331d8305cba713605854aab63a000fb892353a7 (diff) |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (134 commits)
powerpc/nvram: Enable use Generic NVRAM driver for different size chips
powerpc/iseries: Fix oops reading from /proc/iSeries/mf/*/cmdline
powerpc/ps3: Workaround for flash memory I/O error
powerpc/booke: Don't set DABR on 64-bit BookE, use DAC1 instead
powerpc/perf_counters: Reduce stack usage of power_check_constraints
powerpc: Fix bug where perf_counters breaks oprofile
powerpc/85xx: Fix SMP compile error and allow NULL for smp_ops
powerpc/irq: Improve nanodoc
powerpc: Fix some late PowerMac G5 with PCIe ATI graphics
powerpc/fsl-booke: Use HW PTE format if CONFIG_PTE_64BIT
powerpc/book3e: Add missing page sizes
powerpc/pseries: Fix to handle slb resize across migration
powerpc/powermac: Thermal control turns system off too eagerly
powerpc/pci: Merge ppc32 and ppc64 versions of phb_scan()
powerpc/405ex: support cuImage via included dtb
powerpc/405ex: provide necessary fixup function to support cuImage
powerpc/40x: Add support for the ESTeem 195E (PPC405EP) SBC
powerpc/44x: Add Eiger AMCC (AppliedMicro) PPC460SX evaluation board support.
powerpc/44x: Update Arches defconfig
powerpc/44x: Update Arches dts
...
Fix up conflicts in drivers/char/agp/uninorth-agp.c
Diffstat (limited to 'arch/powerpc/sysdev/qe_lib')
-rw-r--r-- | arch/powerpc/sysdev/qe_lib/gpio.c | 4 | ||||
-rw-r--r-- | arch/powerpc/sysdev/qe_lib/qe_ic.c | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/arch/powerpc/sysdev/qe_lib/gpio.c b/arch/powerpc/sysdev/qe_lib/gpio.c index 3485288dce31..8e7a7767dd5c 100644 --- a/arch/powerpc/sysdev/qe_lib/gpio.c +++ b/arch/powerpc/sysdev/qe_lib/gpio.c | |||
@@ -105,14 +105,14 @@ static int qe_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) | |||
105 | struct qe_gpio_chip *qe_gc = to_qe_gpio_chip(mm_gc); | 105 | struct qe_gpio_chip *qe_gc = to_qe_gpio_chip(mm_gc); |
106 | unsigned long flags; | 106 | unsigned long flags; |
107 | 107 | ||
108 | qe_gpio_set(gc, gpio, val); | ||
109 | |||
108 | spin_lock_irqsave(&qe_gc->lock, flags); | 110 | spin_lock_irqsave(&qe_gc->lock, flags); |
109 | 111 | ||
110 | __par_io_config_pin(mm_gc->regs, gpio, QE_PIO_DIR_OUT, 0, 0, 0); | 112 | __par_io_config_pin(mm_gc->regs, gpio, QE_PIO_DIR_OUT, 0, 0, 0); |
111 | 113 | ||
112 | spin_unlock_irqrestore(&qe_gc->lock, flags); | 114 | spin_unlock_irqrestore(&qe_gc->lock, flags); |
113 | 115 | ||
114 | qe_gpio_set(gc, gpio, val); | ||
115 | |||
116 | return 0; | 116 | return 0; |
117 | } | 117 | } |
118 | 118 | ||
diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.c b/arch/powerpc/sysdev/qe_lib/qe_ic.c index 074905c3ee5a..3faa42e03a85 100644 --- a/arch/powerpc/sysdev/qe_lib/qe_ic.c +++ b/arch/powerpc/sysdev/qe_lib/qe_ic.c | |||
@@ -339,8 +339,10 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags, | |||
339 | 339 | ||
340 | qe_ic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR, | 340 | qe_ic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR, |
341 | NR_QE_IC_INTS, &qe_ic_host_ops, 0); | 341 | NR_QE_IC_INTS, &qe_ic_host_ops, 0); |
342 | if (qe_ic->irqhost == NULL) | 342 | if (qe_ic->irqhost == NULL) { |
343 | kfree(qe_ic); | ||
343 | return; | 344 | return; |
345 | } | ||
344 | 346 | ||
345 | qe_ic->regs = ioremap(res.start, res.end - res.start + 1); | 347 | qe_ic->regs = ioremap(res.start, res.end - res.start + 1); |
346 | 348 | ||
@@ -352,6 +354,7 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags, | |||
352 | 354 | ||
353 | if (qe_ic->virq_low == NO_IRQ) { | 355 | if (qe_ic->virq_low == NO_IRQ) { |
354 | printk(KERN_ERR "Failed to map QE_IC low IRQ\n"); | 356 | printk(KERN_ERR "Failed to map QE_IC low IRQ\n"); |
357 | kfree(qe_ic); | ||
355 | return; | 358 | return; |
356 | } | 359 | } |
357 | 360 | ||