Commit 3f30a09a authored by Russell King's avatar Russell King Committed by Russell King

Merge branch 'pxa-all' into devel

Conflicts:

	arch/arm/mach-pxa/Kconfig
	arch/arm/mach-pxa/corgi.c
	arch/arm/mach-pxa/include/mach/hardware.h
	arch/arm/mach-pxa/spitz.c
parents 9e165acf fda50a1c
...@@ -135,11 +135,7 @@ when the Mic is inserted:- ...@@ -135,11 +135,7 @@ when the Mic is inserted:-
static int spitz_mic_bias(struct snd_soc_dapm_widget* w, int event) static int spitz_mic_bias(struct snd_soc_dapm_widget* w, int event)
{ {
if(SND_SOC_DAPM_EVENT_ON(event)) gpio_set_value(SPITZ_GPIO_MIC_BIAS, SND_SOC_DAPM_EVENT_ON(event));
set_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_MIC_BIAS);
else
reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_MIC_BIAS);
return 0; return 0;
} }
...@@ -269,11 +265,7 @@ powered only when the spk is in use. ...@@ -269,11 +265,7 @@ powered only when the spk is in use.
/* turn speaker amplifier on/off depending on use */ /* turn speaker amplifier on/off depending on use */
static int corgi_amp_event(struct snd_soc_dapm_widget *w, int event) static int corgi_amp_event(struct snd_soc_dapm_widget *w, int event)
{ {
if (SND_SOC_DAPM_EVENT_ON(event)) gpio_set_value(CORGI_GPIO_APM_ON, SND_SOC_DAPM_EVENT_ON(event));
set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON);
else
reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON);
return 0; return 0;
} }
......
...@@ -497,7 +497,7 @@ M: kernel@wantstofly.org ...@@ -497,7 +497,7 @@ M: kernel@wantstofly.org
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
S: Maintained S: Maintained
ARM/COMPULAB CM-X270/EM-X270 MACHINE SUPPORT ARM/COMPULAB CM-X270/EM-X270 and CM-X300 MACHINE SUPPORT
P: Mike Rapoport P: Mike Rapoport
M: mike@compulab.co.il M: mike@compulab.co.il
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
...@@ -629,6 +629,12 @@ M: marek.vasut@gmail.com ...@@ -629,6 +629,12 @@ M: marek.vasut@gmail.com
W: http://hackndev.com W: http://hackndev.com
S: Maintained S: Maintained
ARM/PALMZ72 SUPPORT
P: Sergey Lapin
M: slapin@ossfans.org
W: http://hackndev.com
S: Maintained
ARM/PLEB SUPPORT ARM/PLEB SUPPORT
P: Peter Chubb P: Peter Chubb
M: pleb@gelato.unsw.edu.au M: pleb@gelato.unsw.edu.au
......
...@@ -876,7 +876,7 @@ config LEDS ...@@ -876,7 +876,7 @@ config LEDS
ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \ ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \ ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \ ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
ARCH_AT91 || MACH_TRIZEPS4 || ARCH_DAVINCI || \ ARCH_AT91 || ARCH_DAVINCI || \
ARCH_KS8695 || MACH_RD88F5182 ARCH_KS8695 || MACH_RD88F5182
help help
If you say Y here, the LEDs on your machine will be used If you say Y here, the LEDs on your machine will be used
......
...@@ -66,14 +66,6 @@ static void it8152_unmask_irq(unsigned int irq) ...@@ -66,14 +66,6 @@ static void it8152_unmask_irq(unsigned int irq)
} }
} }
static inline void it8152_irq(int irq)
{
struct irq_desc *desc;
desc = irq_desc + irq;
desc_handle_irq(irq, desc);
}
static struct irq_chip it8152_irq_chip = { static struct irq_chip it8152_irq_chip = {
.name = "it8152", .name = "it8152",
.ack = it8152_mask_irq, .ack = it8152_mask_irq,
...@@ -128,21 +120,21 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc) ...@@ -128,21 +120,21 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
bits_pd &= ((1 << IT8152_PD_IRQ_COUNT) - 1); bits_pd &= ((1 << IT8152_PD_IRQ_COUNT) - 1);
while (bits_pd) { while (bits_pd) {
i = __ffs(bits_pd); i = __ffs(bits_pd);
it8152_irq(IT8152_PD_IRQ(i)); generic_handle_irq(IT8152_PD_IRQ(i));
bits_pd &= ~(1 << i); bits_pd &= ~(1 << i);
} }
bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1); bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1);
while (bits_lp) { while (bits_lp) {
i = __ffs(bits_lp); i = __ffs(bits_lp);
it8152_irq(IT8152_LP_IRQ(i)); generic_handle_irq(IT8152_LP_IRQ(i));
bits_lp &= ~(1 << i); bits_lp &= ~(1 << i);
} }
bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1); bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1);
while (bits_ld) { while (bits_ld) {
i = __ffs(bits_ld); i = __ffs(bits_ld);
it8152_irq(IT8152_LD_IRQ(i)); generic_handle_irq(IT8152_LD_IRQ(i));
bits_ld &= ~(1 << i); bits_ld &= ~(1 << i);
} }
} }
......
...@@ -169,7 +169,6 @@ static struct locomo_dev_info locomo_devices[] = { ...@@ -169,7 +169,6 @@ static struct locomo_dev_info locomo_devices[] = {
static void locomo_handler(unsigned int irq, struct irq_desc *desc) static void locomo_handler(unsigned int irq, struct irq_desc *desc)
{ {
int req, i; int req, i;
struct irq_desc *d;
void __iomem *mapbase = get_irq_chip_data(irq); void __iomem *mapbase = get_irq_chip_data(irq);
/* Acknowledge the parent IRQ */ /* Acknowledge the parent IRQ */
...@@ -181,10 +180,9 @@ static void locomo_handler(unsigned int irq, struct irq_desc *desc) ...@@ -181,10 +180,9 @@ static void locomo_handler(unsigned int irq, struct irq_desc *desc)
if (req) { if (req) {
/* generate the next interrupt(s) */ /* generate the next interrupt(s) */
irq = LOCOMO_IRQ_START; irq = LOCOMO_IRQ_START;
d = irq_desc + irq; for (i = 0; i <= 3; i++, irq++) {
for (i = 0; i <= 3; i++, d++, irq++) {
if (req & (0x0100 << i)) { if (req & (0x0100 << i)) {
desc_handle_irq(irq, d); generic_handle_irq(irq);
} }
} }
...@@ -222,12 +220,10 @@ static struct irq_chip locomo_chip = { ...@@ -222,12 +220,10 @@ static struct irq_chip locomo_chip = {
static void locomo_key_handler(unsigned int irq, struct irq_desc *desc) static void locomo_key_handler(unsigned int irq, struct irq_desc *desc)
{ {
struct irq_desc *d;
void __iomem *mapbase = get_irq_chip_data(irq); void __iomem *mapbase = get_irq_chip_data(irq);
if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) { if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) {
d = irq_desc + LOCOMO_IRQ_KEY_START; generic_handle_irq(LOCOMO_IRQ_KEY_START);
desc_handle_irq(LOCOMO_IRQ_KEY_START, d);
} }
} }
...@@ -268,7 +264,6 @@ static struct irq_chip locomo_key_chip = { ...@@ -268,7 +264,6 @@ static struct irq_chip locomo_key_chip = {
static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc) static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
{ {
int req, i; int req, i;
struct irq_desc *d;
void __iomem *mapbase = get_irq_chip_data(irq); void __iomem *mapbase = get_irq_chip_data(irq);
req = locomo_readl(mapbase + LOCOMO_GIR) & req = locomo_readl(mapbase + LOCOMO_GIR) &
...@@ -277,10 +272,9 @@ static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc) ...@@ -277,10 +272,9 @@ static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
if (req) { if (req) {
irq = LOCOMO_IRQ_GPIO_START; irq = LOCOMO_IRQ_GPIO_START;
d = irq_desc + LOCOMO_IRQ_GPIO_START; for (i = 0; i <= 15; i++, irq++) {
for (i = 0; i <= 15; i++, irq++, d++) {
if (req & (0x0001 << i)) { if (req & (0x0001 << i)) {
desc_handle_irq(irq, d); generic_handle_irq(irq);
} }
} }
} }
...@@ -361,12 +355,10 @@ static struct irq_chip locomo_gpio_chip = { ...@@ -361,12 +355,10 @@ static struct irq_chip locomo_gpio_chip = {
static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc) static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc)
{ {
struct irq_desc *d;
void __iomem *mapbase = get_irq_chip_data(irq); void __iomem *mapbase = get_irq_chip_data(irq);
if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) { if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
d = irq_desc + LOCOMO_IRQ_LT_START; generic_handle_irq(LOCOMO_IRQ_LT_START);
desc_handle_irq(LOCOMO_IRQ_LT_START, d);
} }
} }
...@@ -407,17 +399,15 @@ static struct irq_chip locomo_lt_chip = { ...@@ -407,17 +399,15 @@ static struct irq_chip locomo_lt_chip = {
static void locomo_spi_handler(unsigned int irq, struct irq_desc *desc) static void locomo_spi_handler(unsigned int irq, struct irq_desc *desc)
{ {
int req, i; int req, i;
struct irq_desc *d;
void __iomem *mapbase = get_irq_chip_data(irq); void __iomem *mapbase = get_irq_chip_data(irq);
req = locomo_readl(mapbase + LOCOMO_SPI + LOCOMO_SPIIR) & 0x000F; req = locomo_readl(mapbase + LOCOMO_SPI + LOCOMO_SPIIR) & 0x000F;
if (req) { if (req) {
irq = LOCOMO_IRQ_SPI_START; irq = LOCOMO_IRQ_SPI_START;
d = irq_desc + irq;
for (i = 0; i <= 3; i++, irq++, d++) { for (i = 0; i <= 3; i++, irq++) {
if (req & (0x0001 << i)) { if (req & (0x0001 << i)) {
desc_handle_irq(irq, d); generic_handle_irq(irq);
} }
} }
} }
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h>
#include <linux/string.h> #include <linux/string.h>
#include <asm/mach/sharpsl_param.h> #include <asm/mach/sharpsl_param.h>
...@@ -36,6 +37,7 @@ ...@@ -36,6 +37,7 @@
#define PHAD_MAGIC MAGIC_CHG('P','H','A','D') #define PHAD_MAGIC MAGIC_CHG('P','H','A','D')
struct sharpsl_param_info sharpsl_param; struct sharpsl_param_info sharpsl_param;
EXPORT_SYMBOL(sharpsl_param);
void sharpsl_save_param(void) void sharpsl_save_param(void)
{ {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -18,8 +18,7 @@ struct pxa2xx_udc_mach_info { ...@@ -18,8 +18,7 @@ struct pxa2xx_udc_mach_info {
/* Boards following the design guidelines in the developer's manual, /* Boards following the design guidelines in the developer's manual,
* with on-chip GPIOs not Lubbock's weird hardware, can have a sane * with on-chip GPIOs not Lubbock's weird hardware, can have a sane
* VBUS IRQ and omit the methods above. Store the GPIO number * VBUS IRQ and omit the methods above. Store the GPIO number
* here; for GPIO 0, also mask in one of the pxa_gpio_mode() bits. * here. Note that sometimes the signals go through inverters...
* Note that sometimes the signals go through inverters...
*/ */
bool gpio_vbus_inverted; bool gpio_vbus_inverted;
u16 gpio_vbus; /* high == vbus present */ u16 gpio_vbus; /* high == vbus present */
......
...@@ -587,8 +587,7 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -587,8 +587,7 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc)
pending = ecard_default_ops.irqpending(ec); pending = ecard_default_ops.irqpending(ec);
if (pending) { if (pending) {
struct irq_desc *d = irq_desc + ec->irq; generic_handle_irq(ec->irq);
desc_handle_irq(ec->irq, d);
called ++; called ++;
} }
} }
...@@ -622,7 +621,6 @@ ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc) ...@@ -622,7 +621,6 @@ ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc)
ecard_t *ec = slot_to_ecard(slot); ecard_t *ec = slot_to_ecard(slot);
if (ec->claimed) { if (ec->claimed) {
struct irq_desc *d = irq_desc + ec->irq;
/* /*
* this ugly code is so that we can operate a * this ugly code is so that we can operate a
* prioritorising system: * prioritorising system:
...@@ -635,7 +633,7 @@ ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc) ...@@ -635,7 +633,7 @@ ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc)
* Serial cards should go in 0/1, ethernet/scsi in 2/3 * Serial cards should go in 0/1, ethernet/scsi in 2/3
* otherwise you will lose serial data at high speeds! * otherwise you will lose serial data at high speeds!
*/ */
desc_handle_irq(ec->irq, d); generic_handle_irq(ec->irq);
} else { } else {
printk(KERN_WARNING "card%d: interrupt from unclaimed " printk(KERN_WARNING "card%d: interrupt from unclaimed "
"card???\n", slot); "card???\n", slot);
......
...@@ -112,18 +112,17 @@ static struct irq_desc bad_irq_desc = { ...@@ -112,18 +112,17 @@ static struct irq_desc bad_irq_desc = {
asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs) asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
{ {
struct pt_regs *old_regs = set_irq_regs(regs); struct pt_regs *old_regs = set_irq_regs(regs);
struct irq_desc *desc = irq_desc + irq;
irq_enter();
/* /*
* Some hardware gives randomly wrong interrupts. Rather * Some hardware gives randomly wrong interrupts. Rather
* than crashing, do something sensible. * than crashing, do something sensible.
*/ */
if (irq >= NR_IRQS) if (irq >= NR_IRQS)
desc = &bad_irq_desc; handle_bad_irq(irq, &bad_irq_desc);
else
irq_enter(); generic_handle_irq(irq);
desc_handle_irq(irq, desc);
/* AT91 specific workaround */ /* AT91 specific workaround */
irq_finish(irq); irq_finish(irq);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -94,8 +94,7 @@ isa_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -94,8 +94,7 @@ isa_irq_handler(unsigned int irq, struct irq_desc *desc)
return; return;
} }
desc = irq_desc + isa_irq; generic_handle_irq(isa_irq);
desc_handle_irq(isa_irq, desc);
} }
static struct irqaction irq_cascade = { static struct irqaction irq_cascade = {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment