diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/include/asm/tlb.h | 25 | ||||
-rw-r--r-- | arch/arm/kernel/sys_oabi-compat.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/core.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/em-x270.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-pxa/generic.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-pxa/include/mach/colibri.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-pxa/include/mach/palmt5.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/include/mach/palmtx.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-pxa/palmt5.c | 11 | ||||
-rw-r--r-- | arch/arm/mach-pxa/palmtx.c | 11 |
10 files changed, 43 insertions, 22 deletions
diff --git a/arch/arm/include/asm/tlb.h b/arch/arm/include/asm/tlb.h index 857f1dfac794..321c83e43a1e 100644 --- a/arch/arm/include/asm/tlb.h +++ b/arch/arm/include/asm/tlb.h | |||
@@ -36,6 +36,8 @@ | |||
36 | struct mmu_gather { | 36 | struct mmu_gather { |
37 | struct mm_struct *mm; | 37 | struct mm_struct *mm; |
38 | unsigned int fullmm; | 38 | unsigned int fullmm; |
39 | unsigned long range_start; | ||
40 | unsigned long range_end; | ||
39 | }; | 41 | }; |
40 | 42 | ||
41 | DECLARE_PER_CPU(struct mmu_gather, mmu_gathers); | 43 | DECLARE_PER_CPU(struct mmu_gather, mmu_gathers); |
@@ -63,7 +65,19 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) | |||
63 | put_cpu_var(mmu_gathers); | 65 | put_cpu_var(mmu_gathers); |
64 | } | 66 | } |
65 | 67 | ||
66 | #define tlb_remove_tlb_entry(tlb,ptep,address) do { } while (0) | 68 | /* |
69 | * Memorize the range for the TLB flush. | ||
70 | */ | ||
71 | static inline void | ||
72 | tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, unsigned long addr) | ||
73 | { | ||
74 | if (!tlb->fullmm) { | ||
75 | if (addr < tlb->range_start) | ||
76 | tlb->range_start = addr; | ||
77 | if (addr + PAGE_SIZE > tlb->range_end) | ||
78 | tlb->range_end = addr + PAGE_SIZE; | ||
79 | } | ||
80 | } | ||
67 | 81 | ||
68 | /* | 82 | /* |
69 | * In the case of tlb vma handling, we can optimise these away in the | 83 | * In the case of tlb vma handling, we can optimise these away in the |
@@ -73,15 +87,18 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) | |||
73 | static inline void | 87 | static inline void |
74 | tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) | 88 | tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) |
75 | { | 89 | { |
76 | if (!tlb->fullmm) | 90 | if (!tlb->fullmm) { |
77 | flush_cache_range(vma, vma->vm_start, vma->vm_end); | 91 | flush_cache_range(vma, vma->vm_start, vma->vm_end); |
92 | tlb->range_start = TASK_SIZE; | ||
93 | tlb->range_end = 0; | ||
94 | } | ||
78 | } | 95 | } |
79 | 96 | ||
80 | static inline void | 97 | static inline void |
81 | tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) | 98 | tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) |
82 | { | 99 | { |
83 | if (!tlb->fullmm) | 100 | if (!tlb->fullmm && tlb->range_end > 0) |
84 | flush_tlb_range(vma, vma->vm_start, vma->vm_end); | 101 | flush_tlb_range(vma, tlb->range_start, tlb->range_end); |
85 | } | 102 | } |
86 | 103 | ||
87 | #define tlb_remove_page(tlb,page) free_page_and_swap_cache(page) | 104 | #define tlb_remove_page(tlb,page) free_page_and_swap_cache(page) |
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c index 42623db7f870..e04173c7e621 100644 --- a/arch/arm/kernel/sys_oabi-compat.c +++ b/arch/arm/kernel/sys_oabi-compat.c | |||
@@ -83,6 +83,7 @@ | |||
83 | #include <linux/net.h> | 83 | #include <linux/net.h> |
84 | #include <linux/ipc.h> | 84 | #include <linux/ipc.h> |
85 | #include <linux/uaccess.h> | 85 | #include <linux/uaccess.h> |
86 | #include <linux/slab.h> | ||
86 | 87 | ||
87 | struct oldabi_stat64 { | 88 | struct oldabi_stat64 { |
88 | unsigned long long st_dev; | 89 | unsigned long long st_dev; |
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c index 6d9152de6074..ae24486f858a 100644 --- a/arch/arm/mach-ep93xx/core.c +++ b/arch/arm/mach-ep93xx/core.c | |||
@@ -100,7 +100,7 @@ static unsigned int last_jiffy_time; | |||
100 | 100 | ||
101 | #define TIMER4_TICKS_PER_JIFFY ((CLOCK_TICK_RATE + (HZ/2)) / HZ) | 101 | #define TIMER4_TICKS_PER_JIFFY ((CLOCK_TICK_RATE + (HZ/2)) / HZ) |
102 | 102 | ||
103 | static int ep93xx_timer_interrupt(int irq, void *dev_id) | 103 | static irqreturn_t ep93xx_timer_interrupt(int irq, void *dev_id) |
104 | { | 104 | { |
105 | __raw_writel(1, EP93XX_TIMER1_CLEAR); | 105 | __raw_writel(1, EP93XX_TIMER1_CLEAR); |
106 | while ((signed long) | 106 | while ((signed long) |
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c index 67611dadb44e..bc0f73fbd4ca 100644 --- a/arch/arm/mach-pxa/em-x270.c +++ b/arch/arm/mach-pxa/em-x270.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/spi/libertas_spi.h> | 28 | #include <linux/spi/libertas_spi.h> |
29 | #include <linux/power_supply.h> | 29 | #include <linux/power_supply.h> |
30 | #include <linux/apm-emulation.h> | 30 | #include <linux/apm-emulation.h> |
31 | #include <linux/delay.h> | ||
32 | 31 | ||
33 | #include <media/soc_camera.h> | 32 | #include <media/soc_camera.h> |
34 | 33 | ||
@@ -644,8 +643,9 @@ static struct pxa2xx_spi_master em_x270_spi_info = { | |||
644 | }; | 643 | }; |
645 | 644 | ||
646 | static struct pxa2xx_spi_chip em_x270_tdo24m_chip = { | 645 | static struct pxa2xx_spi_chip em_x270_tdo24m_chip = { |
647 | .rx_threshold = 1, | 646 | .rx_threshold = 1, |
648 | .tx_threshold = 1, | 647 | .tx_threshold = 1, |
648 | .gpio_cs = -1, | ||
649 | }; | 649 | }; |
650 | 650 | ||
651 | static struct tdo24m_platform_data em_x270_tdo24m_pdata = { | 651 | static struct tdo24m_platform_data em_x270_tdo24m_pdata = { |
diff --git a/arch/arm/mach-pxa/generic.h b/arch/arm/mach-pxa/generic.h index 3465268ca716..485fede83d97 100644 --- a/arch/arm/mach-pxa/generic.h +++ b/arch/arm/mach-pxa/generic.h | |||
@@ -15,6 +15,9 @@ extern struct sys_timer pxa_timer; | |||
15 | extern void __init pxa_init_irq(int irq_nr, | 15 | extern void __init pxa_init_irq(int irq_nr, |
16 | int (*set_wake)(unsigned int, unsigned int)); | 16 | int (*set_wake)(unsigned int, unsigned int)); |
17 | extern void __init pxa25x_init_irq(void); | 17 | extern void __init pxa25x_init_irq(void); |
18 | #ifdef CONFIG_CPU_PXA26x | ||
19 | extern void __init pxa26x_init_irq(void); | ||
20 | #endif | ||
18 | extern void __init pxa27x_init_irq(void); | 21 | extern void __init pxa27x_init_irq(void); |
19 | extern void __init pxa3xx_init_irq(void); | 22 | extern void __init pxa3xx_init_irq(void); |
20 | extern void __init pxa_map_io(void); | 23 | extern void __init pxa_map_io(void); |
diff --git a/arch/arm/mach-pxa/include/mach/colibri.h b/arch/arm/mach-pxa/include/mach/colibri.h index 90230c6f9925..a88d7caff0d1 100644 --- a/arch/arm/mach-pxa/include/mach/colibri.h +++ b/arch/arm/mach-pxa/include/mach/colibri.h | |||
@@ -10,13 +10,13 @@ | |||
10 | #if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE) | 10 | #if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE) |
11 | extern void colibri_pxa3xx_init_mmc(mfp_cfg_t *pins, int len, int detect_pin); | 11 | extern void colibri_pxa3xx_init_mmc(mfp_cfg_t *pins, int len, int detect_pin); |
12 | #else | 12 | #else |
13 | static inline void colibri_pxa3xx_init_mmc(mfp_cfg_t *, int, int) {} | 13 | static inline void colibri_pxa3xx_init_mmc(mfp_cfg_t *pins, int len, int detect_pin) {} |
14 | #endif | 14 | #endif |
15 | 15 | ||
16 | #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE) | 16 | #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE) |
17 | extern void colibri_pxa3xx_init_lcd(int bl_pin); | 17 | extern void colibri_pxa3xx_init_lcd(int bl_pin); |
18 | #else | 18 | #else |
19 | static inline void colibri_pxa3xx_init_lcd(int) {} | 19 | static inline void colibri_pxa3xx_init_lcd(int bl_pin) {} |
20 | #endif | 20 | #endif |
21 | 21 | ||
22 | #if defined(CONFIG_AX88796) | 22 | #if defined(CONFIG_AX88796) |
diff --git a/arch/arm/mach-pxa/include/mach/palmt5.h b/arch/arm/mach-pxa/include/mach/palmt5.h index 052bfe788ada..d15662aba008 100644 --- a/arch/arm/mach-pxa/include/mach/palmt5.h +++ b/arch/arm/mach-pxa/include/mach/palmt5.h | |||
@@ -37,7 +37,6 @@ | |||
37 | 37 | ||
38 | /* USB */ | 38 | /* USB */ |
39 | #define GPIO_NR_PALMT5_USB_DETECT_N 15 | 39 | #define GPIO_NR_PALMT5_USB_DETECT_N 15 |
40 | #define GPIO_NR_PALMT5_USB_POWER 95 | ||
41 | #define GPIO_NR_PALMT5_USB_PULLUP 93 | 40 | #define GPIO_NR_PALMT5_USB_PULLUP 93 |
42 | 41 | ||
43 | /* LCD/BACKLIGHT */ | 42 | /* LCD/BACKLIGHT */ |
diff --git a/arch/arm/mach-pxa/include/mach/palmtx.h b/arch/arm/mach-pxa/include/mach/palmtx.h index 9f7d62fb4cbb..e74082c872e1 100644 --- a/arch/arm/mach-pxa/include/mach/palmtx.h +++ b/arch/arm/mach-pxa/include/mach/palmtx.h | |||
@@ -38,7 +38,6 @@ | |||
38 | 38 | ||
39 | /* USB */ | 39 | /* USB */ |
40 | #define GPIO_NR_PALMTX_USB_DETECT_N 13 | 40 | #define GPIO_NR_PALMTX_USB_DETECT_N 13 |
41 | #define GPIO_NR_PALMTX_USB_POWER 95 | ||
42 | #define GPIO_NR_PALMTX_USB_PULLUP 93 | 41 | #define GPIO_NR_PALMTX_USB_PULLUP 93 |
43 | 42 | ||
44 | /* LCD/BACKLIGHT */ | 43 | /* LCD/BACKLIGHT */ |
diff --git a/arch/arm/mach-pxa/palmt5.c b/arch/arm/mach-pxa/palmt5.c index 0680f1a575a3..d7f81068c613 100644 --- a/arch/arm/mach-pxa/palmt5.c +++ b/arch/arm/mach-pxa/palmt5.c | |||
@@ -64,6 +64,7 @@ static unsigned long palmt5_pin_config[] __initdata = { | |||
64 | GPIO29_AC97_SDATA_IN_0, | 64 | GPIO29_AC97_SDATA_IN_0, |
65 | GPIO30_AC97_SDATA_OUT, | 65 | GPIO30_AC97_SDATA_OUT, |
66 | GPIO31_AC97_SYNC, | 66 | GPIO31_AC97_SYNC, |
67 | GPIO95_AC97_nRESET, | ||
67 | 68 | ||
68 | /* IrDA */ | 69 | /* IrDA */ |
69 | GPIO40_GPIO, /* ir disable */ | 70 | GPIO40_GPIO, /* ir disable */ |
@@ -72,7 +73,7 @@ static unsigned long palmt5_pin_config[] __initdata = { | |||
72 | 73 | ||
73 | /* USB */ | 74 | /* USB */ |
74 | GPIO15_GPIO, /* usb detect */ | 75 | GPIO15_GPIO, /* usb detect */ |
75 | GPIO95_GPIO, /* usb power */ | 76 | GPIO93_GPIO, /* usb power */ |
76 | 77 | ||
77 | /* MATRIX KEYPAD */ | 78 | /* MATRIX KEYPAD */ |
78 | GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH, | 79 | GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH, |
@@ -344,7 +345,7 @@ static struct pxaficp_platform_data palmt5_ficp_platform_data = { | |||
344 | static struct pxa2xx_udc_mach_info palmt5_udc_info __initdata = { | 345 | static struct pxa2xx_udc_mach_info palmt5_udc_info __initdata = { |
345 | .gpio_vbus = GPIO_NR_PALMT5_USB_DETECT_N, | 346 | .gpio_vbus = GPIO_NR_PALMT5_USB_DETECT_N, |
346 | .gpio_vbus_inverted = 1, | 347 | .gpio_vbus_inverted = 1, |
347 | .gpio_pullup = GPIO_NR_PALMT5_USB_POWER, | 348 | .gpio_pullup = GPIO_NR_PALMT5_USB_PULLUP, |
348 | .gpio_pullup_inverted = 0, | 349 | .gpio_pullup_inverted = 0, |
349 | }; | 350 | }; |
350 | 351 | ||
@@ -490,9 +491,9 @@ static struct platform_device *devices[] __initdata = { | |||
490 | /* setup udc GPIOs initial state */ | 491 | /* setup udc GPIOs initial state */ |
491 | static void __init palmt5_udc_init(void) | 492 | static void __init palmt5_udc_init(void) |
492 | { | 493 | { |
493 | if (!gpio_request(GPIO_NR_PALMT5_USB_POWER, "UDC Vbus")) { | 494 | if (!gpio_request(GPIO_NR_PALMT5_USB_PULLUP, "UDC Vbus")) { |
494 | gpio_direction_output(GPIO_NR_PALMT5_USB_POWER, 1); | 495 | gpio_direction_output(GPIO_NR_PALMT5_USB_PULLUP, 1); |
495 | gpio_free(GPIO_NR_PALMT5_USB_POWER); | 496 | gpio_free(GPIO_NR_PALMT5_USB_PULLUP); |
496 | } | 497 | } |
497 | } | 498 | } |
498 | 499 | ||
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c index 59d0c1cba556..14393d0ad8b8 100644 --- a/arch/arm/mach-pxa/palmtx.c +++ b/arch/arm/mach-pxa/palmtx.c | |||
@@ -64,6 +64,7 @@ static unsigned long palmtx_pin_config[] __initdata = { | |||
64 | GPIO29_AC97_SDATA_IN_0, | 64 | GPIO29_AC97_SDATA_IN_0, |
65 | GPIO30_AC97_SDATA_OUT, | 65 | GPIO30_AC97_SDATA_OUT, |
66 | GPIO31_AC97_SYNC, | 66 | GPIO31_AC97_SYNC, |
67 | GPIO95_AC97_nRESET, | ||
67 | 68 | ||
68 | /* IrDA */ | 69 | /* IrDA */ |
69 | GPIO40_GPIO, /* ir disable */ | 70 | GPIO40_GPIO, /* ir disable */ |
@@ -75,7 +76,7 @@ static unsigned long palmtx_pin_config[] __initdata = { | |||
75 | 76 | ||
76 | /* USB */ | 77 | /* USB */ |
77 | GPIO13_GPIO, /* usb detect */ | 78 | GPIO13_GPIO, /* usb detect */ |
78 | GPIO95_GPIO, /* usb power */ | 79 | GPIO93_GPIO, /* usb power */ |
79 | 80 | ||
80 | /* PCMCIA */ | 81 | /* PCMCIA */ |
81 | GPIO48_nPOE, | 82 | GPIO48_nPOE, |
@@ -359,7 +360,7 @@ static struct pxaficp_platform_data palmtx_ficp_platform_data = { | |||
359 | static struct pxa2xx_udc_mach_info palmtx_udc_info __initdata = { | 360 | static struct pxa2xx_udc_mach_info palmtx_udc_info __initdata = { |
360 | .gpio_vbus = GPIO_NR_PALMTX_USB_DETECT_N, | 361 | .gpio_vbus = GPIO_NR_PALMTX_USB_DETECT_N, |
361 | .gpio_vbus_inverted = 1, | 362 | .gpio_vbus_inverted = 1, |
362 | .gpio_pullup = GPIO_NR_PALMTX_USB_POWER, | 363 | .gpio_pullup = GPIO_NR_PALMTX_USB_PULLUP, |
363 | .gpio_pullup_inverted = 0, | 364 | .gpio_pullup_inverted = 0, |
364 | }; | 365 | }; |
365 | 366 | ||
@@ -514,9 +515,9 @@ static void __init palmtx_map_io(void) | |||
514 | /* setup udc GPIOs initial state */ | 515 | /* setup udc GPIOs initial state */ |
515 | static void __init palmtx_udc_init(void) | 516 | static void __init palmtx_udc_init(void) |
516 | { | 517 | { |
517 | if (!gpio_request(GPIO_NR_PALMTX_USB_POWER, "UDC Vbus")) { | 518 | if (!gpio_request(GPIO_NR_PALMTX_USB_PULLUP, "UDC Vbus")) { |
518 | gpio_direction_output(GPIO_NR_PALMTX_USB_POWER, 1); | 519 | gpio_direction_output(GPIO_NR_PALMTX_USB_PULLUP, 1); |
519 | gpio_free(GPIO_NR_PALMTX_USB_POWER); | 520 | gpio_free(GPIO_NR_PALMTX_USB_PULLUP); |
520 | } | 521 | } |
521 | } | 522 | } |
522 | 523 | ||