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
This commit is contained in:
Russell King
2008-10-09 21:33:02 +01:00
committed by Russell King
193 changed files with 15252 additions and 5410 deletions
+2 -10
View File
@@ -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.
/* 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;
} }
+7 -1
View File
@@ -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
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
+1 -1
View File
@@ -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
+3 -11
View File
@@ -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)
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);
} }
} }
+8 -18
View File
@@ -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)
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 = {
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 = {
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)
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 = {
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 = {
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);
} }
} }
} }
+2
View File
@@ -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 @@
#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)
{ {
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -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 */
+2 -4
View File
@@ -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)
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)
* 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);
+5 -6
View File
@@ -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);
+1 -2
View File
@@ -404,7 +404,6 @@ static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
} }
pin = bank->chipbase; pin = bank->chipbase;
gpio = &irq_desc[pin];
while (isr) { while (isr) {
if (isr & 1) { if (isr & 1) {
@@ -417,7 +416,7 @@ static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
gpio_irq_mask(pin); gpio_irq_mask(pin);
} }
else else
desc_handle_irq(pin, gpio); generic_handle_irq(pin);
} }
pin++; pin++;
gpio++; gpio++;
+1 -4
View File
@@ -201,7 +201,6 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
desc->chip->ack(irq); desc->chip->ack(irq);
while (1) { while (1) {
u32 status; u32 status;
struct irq_desc *gpio;
int n; int n;
int res; int res;
@@ -215,12 +214,10 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
/* now demux them to the right lowlevel handler */ /* now demux them to the right lowlevel handler */
n = (int)get_irq_data(irq); n = (int)get_irq_data(irq);
gpio = &irq_desc[n];
while (status) { while (status) {
res = ffs(status); res = ffs(status);
n += res; n += res;
gpio += res; generic_handle_irq(n - 1);
desc_handle_irq(n - 1, gpio - 1);
status >>= res; status >>= res;
} }
} }
+3 -4
View File
@@ -192,8 +192,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc)
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
if (status & (1 << i)) { if (status & (1 << i)) {
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_A(0)) + i; int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_A(0)) + i;
desc = irq_desc + gpio_irq; generic_handle_irq(gpio_irq);
desc_handle_irq(gpio_irq, desc);
} }
} }
@@ -202,7 +201,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc)
if (status & (1 << i)) { if (status & (1 << i)) {
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i; int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i;
desc = irq_desc + gpio_irq; desc = irq_desc + gpio_irq;
desc_handle_irq(gpio_irq, desc); generic_handle_irq(gpio_irq);
} }
} }
} }
@@ -217,7 +216,7 @@ static void ep93xx_gpio_f_irq_handler(unsigned int irq, struct irq_desc *desc)
int port_f_idx = ((irq + 1) & 7) ^ 4; /* {19..22,47..50} -> {0..7} */ int port_f_idx = ((irq + 1) & 7) ^ 4; /* {19..22,47..50} -> {0..7} */
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_F(0)) + port_f_idx; int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_F(0)) + port_f_idx;
desc_handle_irq(gpio_irq, irq_desc + gpio_irq); generic_handle_irq(gpio_irq);
} }
static void ep93xx_gpio_irq_ack(unsigned int irq) static void ep93xx_gpio_irq_ack(unsigned int irq)
+1 -2
View File
@@ -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 = {
+1 -3
View File
@@ -104,14 +104,12 @@ h720x_gpio_handler(unsigned int mask, unsigned int irq,
struct irq_desc *desc) struct irq_desc *desc)
{ {
IRQDBG("%s irq: %d\n", __func__, irq); IRQDBG("%s irq: %d\n", __func__, irq);
desc = irq_desc + irq;
while (mask) { while (mask) {
if (mask & 1) { if (mask & 1) {
IRQDBG("handling irq %d\n", irq); IRQDBG("handling irq %d\n", irq);
desc_handle_irq(irq, desc); generic_handle_irq(irq);
} }
irq++; irq++;
desc++;
mask >>= 1; mask >>= 1;
} }
} }
+1 -3
View File
@@ -120,12 +120,10 @@ h7202_timerx_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
mask >>= 1; mask >>= 1;
irq = IRQ_TIMER1; irq = IRQ_TIMER1;
desc = irq_desc + irq;
while (mask) { while (mask) {
if (mask & 1) if (mask & 1)
desc_handle_irq(irq, desc); generic_handle_irq(irq);
irq++; irq++;
desc++;
mask >>= 1; mask >>= 1;
} }
} }
+1 -3
View File
@@ -182,14 +182,12 @@ static void
imx_gpio_handler(unsigned int mask, unsigned int irq, imx_gpio_handler(unsigned int mask, unsigned int irq,
struct irq_desc *desc) struct irq_desc *desc)
{ {
desc = irq_desc + irq;
while (mask) { while (mask) {
if (mask & 1) { if (mask & 1) {
DEBUG_IRQ("handling irq %d\n", irq); DEBUG_IRQ("handling irq %d\n", irq);
desc_handle_irq(irq, desc); generic_handle_irq(irq);
} }
irq++; irq++;
desc++;
mask >>= 1; mask >>= 1;
} }
} }

Some files were not shown because too many files have changed in this diff Show More