diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-11-17 12:19:54 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-11-17 12:19:54 -0500 |
| commit | a044a1b147a1c967e1a4b797c3e24c395f3d878a (patch) | |
| tree | 00d5f49c02f178e7312b8fe98f62030d5c3aca51 | |
| parent | b1219e24c09c60b903c422861378c3b99bfbbde1 (diff) | |
| parent | 112a674f2f68b17ae253fe7312afc38c3e75be7a (diff) | |
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] pxa: ensure mfp is in correct range in mfp_{read,write}
[ARM] pxa/hx4700: fix hx4700 touchscreen pressure values
ARM: 5787/1: U300 COH 901 331 fixes
ARM: Fix warning in sa1100-flash.c
[ARM] Kirkwood: disable propagation of mbus error to the CPU local bus
[ARM] pxa: fix incorrect mfp_to_gpio() conversion
[ARM] pxa/colibri: fix AC97 ifdefs and add missing include
[ARM] pxa: fix missing underscores in mfp-pxa910.h
[ARM] pxa: fix interrupts number calculation when CONFIG_PXA_HAVE_ISA_IRQS=y
| -rw-r--r-- | arch/arm/mach-kirkwood/common.c | 8 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/include/mach/bridge-regs.h | 3 | ||||
| -rw-r--r-- | arch/arm/mach-mmp/include/mach/mfp-pxa910.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/colibri-pxa320.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/hx4700.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/include/mach/entry-macro.S | 1 | ||||
| -rw-r--r-- | arch/arm/mach-u300/core.c | 2 | ||||
| -rw-r--r-- | arch/arm/plat-pxa/include/plat/mfp.h | 2 | ||||
| -rw-r--r-- | arch/arm/plat-pxa/mfp.c | 4 | ||||
| -rw-r--r-- | drivers/mtd/maps/sa1100-flash.c | 4 | ||||
| -rw-r--r-- | drivers/rtc/rtc-coh901331.c | 11 |
11 files changed, 34 insertions, 9 deletions
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index 7177c4aa6342..242dd0775343 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
| @@ -915,6 +915,14 @@ void __init kirkwood_init(void) | |||
| 915 | kirkwood_uart0_data[0].uartclk = kirkwood_tclk; | 915 | kirkwood_uart0_data[0].uartclk = kirkwood_tclk; |
| 916 | kirkwood_uart1_data[0].uartclk = kirkwood_tclk; | 916 | kirkwood_uart1_data[0].uartclk = kirkwood_tclk; |
| 917 | 917 | ||
| 918 | /* | ||
| 919 | * Disable propagation of mbus errors to the CPU local bus, | ||
| 920 | * as this causes mbus errors (which can occur for example | ||
| 921 | * for PCI aborts) to throw CPU aborts, which we're not set | ||
| 922 | * up to deal with. | ||
| 923 | */ | ||
| 924 | writel(readl(CPU_CONFIG) & ~CPU_CONFIG_ERROR_PROP, CPU_CONFIG); | ||
| 925 | |||
| 918 | kirkwood_setup_cpu_mbus(); | 926 | kirkwood_setup_cpu_mbus(); |
| 919 | 927 | ||
| 920 | #ifdef CONFIG_CACHE_FEROCEON_L2 | 928 | #ifdef CONFIG_CACHE_FEROCEON_L2 |
diff --git a/arch/arm/mach-kirkwood/include/mach/bridge-regs.h b/arch/arm/mach-kirkwood/include/mach/bridge-regs.h index 9e80d9232c83..418f5017c50e 100644 --- a/arch/arm/mach-kirkwood/include/mach/bridge-regs.h +++ b/arch/arm/mach-kirkwood/include/mach/bridge-regs.h | |||
| @@ -13,6 +13,9 @@ | |||
| 13 | 13 | ||
| 14 | #include <mach/kirkwood.h> | 14 | #include <mach/kirkwood.h> |
| 15 | 15 | ||
| 16 | #define CPU_CONFIG (BRIDGE_VIRT_BASE | 0x0100) | ||
| 17 | #define CPU_CONFIG_ERROR_PROP 0x00000004 | ||
| 18 | |||
| 16 | #define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104) | 19 | #define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104) |
| 17 | #define CPU_RESET 0x00000002 | 20 | #define CPU_RESET 0x00000002 |
| 18 | 21 | ||
diff --git a/arch/arm/mach-mmp/include/mach/mfp-pxa910.h b/arch/arm/mach-mmp/include/mach/mfp-pxa910.h index bf1189ff9a34..7e8a80f25ddc 100644 --- a/arch/arm/mach-mmp/include/mach/mfp-pxa910.h +++ b/arch/arm/mach-mmp/include/mach/mfp-pxa910.h | |||
| @@ -160,7 +160,7 @@ | |||
| 160 | #define MMC1_WP_MMC1_WP MFP_CFG_DRV(MMC1_WP, AF0, MEDIUM) | 160 | #define MMC1_WP_MMC1_WP MFP_CFG_DRV(MMC1_WP, AF0, MEDIUM) |
| 161 | 161 | ||
| 162 | /* PWM */ | 162 | /* PWM */ |
| 163 | #define GPIO27 PWM3 AF2 MFP_CFG(GPIO27, AF2) | 163 | #define GPIO27_PWM3_AF2 MFP_CFG(GPIO27, AF2) |
| 164 | #define GPIO51_PWM2_OUT MFP_CFG(GPIO51, AF2) | 164 | #define GPIO51_PWM2_OUT MFP_CFG(GPIO51, AF2) |
| 165 | #define GPIO117_PWM1_OUT MFP_CFG(GPIO117, AF2) | 165 | #define GPIO117_PWM1_OUT MFP_CFG(GPIO117, AF2) |
| 166 | #define GPIO118_PWM2_OUT MFP_CFG(GPIO118, AF2) | 166 | #define GPIO118_PWM2_OUT MFP_CFG(GPIO118, AF2) |
diff --git a/arch/arm/mach-pxa/colibri-pxa320.c b/arch/arm/mach-pxa/colibri-pxa320.c index 494572825c7d..ec0e14b96682 100644 --- a/arch/arm/mach-pxa/colibri-pxa320.c +++ b/arch/arm/mach-pxa/colibri-pxa320.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <mach/colibri.h> | 27 | #include <mach/colibri.h> |
| 28 | #include <mach/pxafb.h> | 28 | #include <mach/pxafb.h> |
| 29 | #include <mach/ohci.h> | 29 | #include <mach/ohci.h> |
| 30 | #include <mach/audio.h> | ||
| 30 | 31 | ||
| 31 | #include "generic.h" | 32 | #include "generic.h" |
| 32 | #include "devices.h" | 33 | #include "devices.h" |
| @@ -145,7 +146,8 @@ static void __init colibri_pxa320_init_lcd(void) | |||
| 145 | static inline void colibri_pxa320_init_lcd(void) {} | 146 | static inline void colibri_pxa320_init_lcd(void) {} |
| 146 | #endif | 147 | #endif |
| 147 | 148 | ||
| 148 | #if defined(SND_AC97_CODEC) || defined(SND_AC97_CODEC_MODULE) | 149 | #if defined(CONFIG_SND_AC97_CODEC) || \ |
| 150 | defined(CONFIG_SND_AC97_CODEC_MODULE) | ||
| 149 | static mfp_cfg_t colibri_pxa320_ac97_pin_config[] __initdata = { | 151 | static mfp_cfg_t colibri_pxa320_ac97_pin_config[] __initdata = { |
| 150 | GPIO34_AC97_SYSCLK, | 152 | GPIO34_AC97_SYSCLK, |
| 151 | GPIO35_AC97_SDATA_IN_0, | 153 | GPIO35_AC97_SDATA_IN_0, |
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c index abff9e132749..83bd3c6e3884 100644 --- a/arch/arm/mach-pxa/hx4700.c +++ b/arch/arm/mach-pxa/hx4700.c | |||
| @@ -604,7 +604,7 @@ static struct platform_device gpio_vbus = { | |||
| 604 | static const struct ads7846_platform_data tsc2046_info = { | 604 | static const struct ads7846_platform_data tsc2046_info = { |
| 605 | .model = 7846, | 605 | .model = 7846, |
| 606 | .vref_delay_usecs = 100, | 606 | .vref_delay_usecs = 100, |
| 607 | .pressure_max = 512, | 607 | .pressure_max = 1024, |
| 608 | .debounce_max = 10, | 608 | .debounce_max = 10, |
| 609 | .debounce_tol = 3, | 609 | .debounce_tol = 3, |
| 610 | .debounce_rep = 1, | 610 | .debounce_rep = 1, |
diff --git a/arch/arm/mach-pxa/include/mach/entry-macro.S b/arch/arm/mach-pxa/include/mach/entry-macro.S index 241880608ac6..a73bc86a3c26 100644 --- a/arch/arm/mach-pxa/include/mach/entry-macro.S +++ b/arch/arm/mach-pxa/include/mach/entry-macro.S | |||
| @@ -46,5 +46,6 @@ | |||
| 46 | beq 1001f | 46 | beq 1001f |
| 47 | bic \irqstat, \irqstat, #0x80000000 | 47 | bic \irqstat, \irqstat, #0x80000000 |
| 48 | mov \irqnr, \irqstat, lsr #16 | 48 | mov \irqnr, \irqstat, lsr #16 |
| 49 | add \irqnr, \irqnr, #(PXA_IRQ(0)) | ||
| 49 | 1001: | 50 | 1001: |
| 50 | .endm | 51 | .endm |
diff --git a/arch/arm/mach-u300/core.c b/arch/arm/mach-u300/core.c index be60d6deee8b..653e25be3dd8 100644 --- a/arch/arm/mach-u300/core.c +++ b/arch/arm/mach-u300/core.c | |||
| @@ -408,7 +408,7 @@ static struct platform_device keypad_device = { | |||
| 408 | }; | 408 | }; |
| 409 | 409 | ||
| 410 | static struct platform_device rtc_device = { | 410 | static struct platform_device rtc_device = { |
| 411 | .name = "rtc0", | 411 | .name = "rtc-coh901331", |
| 412 | .id = -1, | 412 | .id = -1, |
| 413 | .num_resources = ARRAY_SIZE(rtc_resources), | 413 | .num_resources = ARRAY_SIZE(rtc_resources), |
| 414 | .resource = rtc_resources, | 414 | .resource = rtc_resources, |
diff --git a/arch/arm/plat-pxa/include/plat/mfp.h b/arch/arm/plat-pxa/include/plat/mfp.h index 22086e696e8e..857a6839071c 100644 --- a/arch/arm/plat-pxa/include/plat/mfp.h +++ b/arch/arm/plat-pxa/include/plat/mfp.h | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | #ifndef __ASM_PLAT_MFP_H | 16 | #ifndef __ASM_PLAT_MFP_H |
| 17 | #define __ASM_PLAT_MFP_H | 17 | #define __ASM_PLAT_MFP_H |
| 18 | 18 | ||
| 19 | #define mfp_to_gpio(m) ((m) % 128) | 19 | #define mfp_to_gpio(m) ((m) % 256) |
| 20 | 20 | ||
| 21 | /* list of all the configurable MFP pins */ | 21 | /* list of all the configurable MFP pins */ |
| 22 | enum { | 22 | enum { |
diff --git a/arch/arm/plat-pxa/mfp.c b/arch/arm/plat-pxa/mfp.c index 9405d0379c85..be58f9fe65b0 100644 --- a/arch/arm/plat-pxa/mfp.c +++ b/arch/arm/plat-pxa/mfp.c | |||
| @@ -207,7 +207,7 @@ unsigned long mfp_read(int mfp) | |||
| 207 | { | 207 | { |
| 208 | unsigned long val, flags; | 208 | unsigned long val, flags; |
| 209 | 209 | ||
| 210 | BUG_ON(mfp >= MFP_PIN_MAX); | 210 | BUG_ON(mfp < 0 || mfp >= MFP_PIN_MAX); |
| 211 | 211 | ||
| 212 | spin_lock_irqsave(&mfp_spin_lock, flags); | 212 | spin_lock_irqsave(&mfp_spin_lock, flags); |
| 213 | val = mfpr_readl(mfp_table[mfp].mfpr_off); | 213 | val = mfpr_readl(mfp_table[mfp].mfpr_off); |
| @@ -220,7 +220,7 @@ void mfp_write(int mfp, unsigned long val) | |||
| 220 | { | 220 | { |
| 221 | unsigned long flags; | 221 | unsigned long flags; |
| 222 | 222 | ||
| 223 | BUG_ON(mfp >= MFP_PIN_MAX); | 223 | BUG_ON(mfp < 0 || mfp >= MFP_PIN_MAX); |
| 224 | 224 | ||
| 225 | spin_lock_irqsave(&mfp_spin_lock, flags); | 225 | spin_lock_irqsave(&mfp_spin_lock, flags); |
| 226 | mfpr_writel(mfp_table[mfp].mfpr_off, val); | 226 | mfpr_writel(mfp_table[mfp].mfpr_off, val); |
diff --git a/drivers/mtd/maps/sa1100-flash.c b/drivers/mtd/maps/sa1100-flash.c index fdb97f3d30e9..d7a47574d21e 100644 --- a/drivers/mtd/maps/sa1100-flash.c +++ b/drivers/mtd/maps/sa1100-flash.c | |||
| @@ -209,8 +209,8 @@ static int sa1100_probe_subdev(struct sa_subdev_info *subdev, struct resource *r | |||
| 209 | } | 209 | } |
| 210 | subdev->mtd->owner = THIS_MODULE; | 210 | subdev->mtd->owner = THIS_MODULE; |
| 211 | 211 | ||
| 212 | printk(KERN_INFO "SA1100 flash: CFI device at 0x%08lx, %dMiB, " | 212 | printk(KERN_INFO "SA1100 flash: CFI device at 0x%08lx, %uMiB, %d-bit\n", |
| 213 | "%d-bit\n", phys, subdev->mtd->size >> 20, | 213 | phys, (unsigned)(subdev->mtd->size >> 20), |
| 214 | subdev->map.bankwidth * 8); | 214 | subdev->map.bankwidth * 8); |
| 215 | 215 | ||
| 216 | return 0; | 216 | return 0; |
diff --git a/drivers/rtc/rtc-coh901331.c b/drivers/rtc/rtc-coh901331.c index 7fe1fa26c52c..03ea530981d1 100644 --- a/drivers/rtc/rtc-coh901331.c +++ b/drivers/rtc/rtc-coh901331.c | |||
| @@ -58,7 +58,16 @@ static irqreturn_t coh901331_interrupt(int irq, void *data) | |||
| 58 | clk_enable(rtap->clk); | 58 | clk_enable(rtap->clk); |
| 59 | /* Ack IRQ */ | 59 | /* Ack IRQ */ |
| 60 | writel(1, rtap->virtbase + COH901331_IRQ_EVENT); | 60 | writel(1, rtap->virtbase + COH901331_IRQ_EVENT); |
| 61 | /* | ||
| 62 | * Disable the interrupt. This is necessary because | ||
| 63 | * the RTC lives on a lower-clocked line and will | ||
| 64 | * not release the IRQ line until after a few (slower) | ||
| 65 | * clock cycles. The interrupt will be re-enabled when | ||
| 66 | * a new alarm is set anyway. | ||
| 67 | */ | ||
| 68 | writel(0, rtap->virtbase + COH901331_IRQ_MASK); | ||
| 61 | clk_disable(rtap->clk); | 69 | clk_disable(rtap->clk); |
| 70 | |||
| 62 | /* Set alarm flag */ | 71 | /* Set alarm flag */ |
| 63 | rtc_update_irq(rtap->rtc, 1, RTC_AF); | 72 | rtc_update_irq(rtap->rtc, 1, RTC_AF); |
| 64 | 73 | ||
| @@ -128,6 +137,8 @@ static int coh901331_alarm_irq_enable(struct device *dev, unsigned int enabled) | |||
| 128 | else | 137 | else |
| 129 | writel(0, rtap->virtbase + COH901331_IRQ_MASK); | 138 | writel(0, rtap->virtbase + COH901331_IRQ_MASK); |
| 130 | clk_disable(rtap->clk); | 139 | clk_disable(rtap->clk); |
| 140 | |||
| 141 | return 0; | ||
| 131 | } | 142 | } |
| 132 | 143 | ||
| 133 | static struct rtc_class_ops coh901331_ops = { | 144 | static struct rtc_class_ops coh901331_ops = { |
