aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2007-05-12 11:12:12 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-05-12 11:12:12 -0400
commit158304ef09a28c7f2dd37d78f536a4e09ba084a1 (patch)
tree2e6d808fef46d70268e547ccfc5926a865e3d2ea /arch/arm
parent641e79129a56a4c50be1aed0fa713f440b46a440 (diff)
parent25f4a81ef51b7c279786f5b81fe6d89510f46d99 (diff)
Merge branch 'fixes' into devel
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/kernel/armksyms.c1
-rw-r--r--arch/arm/kernel/stacktrace.c12
-rw-r--r--arch/arm/mach-at91/Makefile1
-rw-r--r--arch/arm/mach-at91/board-sam9261ek.c3
-rw-r--r--arch/arm/mach-ebsa110/io.c8
-rw-r--r--arch/arm/mach-omap1/board-h2.c2
-rw-r--r--arch/arm/mach-omap1/pm.c11
-rw-r--r--arch/arm/mach-omap2/mux.c33
-rw-r--r--arch/arm/plat-omap/dma.c4
-rw-r--r--arch/arm/plat-omap/mux.c19
11 files changed, 62 insertions, 33 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 35c5326311b3..e55bbd32dcac 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -357,7 +357,6 @@ config ARCH_SA1100
357config ARCH_S3C2410 357config ARCH_S3C2410
358 bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443" 358 bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443"
359 select GENERIC_GPIO 359 select GENERIC_GPIO
360 select GENERIC_TIME
361 help 360 help
362 Samsung S3C2410X CPU based systems, such as the Simtec Electronics 361 Samsung S3C2410X CPU based systems, such as the Simtec Electronics
363 BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or 362 BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
index 4779f474f911..9179e8220314 100644
--- a/arch/arm/kernel/armksyms.c
+++ b/arch/arm/kernel/armksyms.c
@@ -76,6 +76,7 @@ EXPORT_SYMBOL(__const_udelay);
76 76
77 /* networking */ 77 /* networking */
78EXPORT_SYMBOL(csum_partial); 78EXPORT_SYMBOL(csum_partial);
79EXPORT_SYMBOL(csum_partial_copy_from_user);
79EXPORT_SYMBOL(csum_partial_copy_nocheck); 80EXPORT_SYMBOL(csum_partial_copy_nocheck);
80EXPORT_SYMBOL(__csum_ipv6_magic); 81EXPORT_SYMBOL(__csum_ipv6_magic);
81 82
diff --git a/arch/arm/kernel/stacktrace.c b/arch/arm/kernel/stacktrace.c
index 77ef35efaa8d..398d0c0511eb 100644
--- a/arch/arm/kernel/stacktrace.c
+++ b/arch/arm/kernel/stacktrace.c
@@ -52,21 +52,15 @@ static int save_trace(struct stackframe *frame, void *d)
52 return trace->nr_entries >= trace->max_entries; 52 return trace->nr_entries >= trace->max_entries;
53} 53}
54 54
55void save_stack_trace(struct stack_trace *trace, struct task_struct *task) 55void save_stack_trace(struct stack_trace *trace)
56{ 56{
57 struct stack_trace_data data; 57 struct stack_trace_data data;
58 unsigned long fp, base; 58 unsigned long fp, base;
59 59
60 data.trace = trace; 60 data.trace = trace;
61 data.skip = trace->skip; 61 data.skip = trace->skip;
62 62 base = (unsigned long)task_stack_page(current);
63 if (task) { 63 asm("mov %0, fp" : "=r" (fp));
64 base = (unsigned long)task_stack_page(task);
65 fp = 0; /* FIXME */
66 } else {
67 base = (unsigned long)task_stack_page(current);
68 asm("mov %0, fp" : "=r" (fp));
69 }
70 64
71 walk_stackframe(fp, base, base + THREAD_SIZE, save_trace, &data); 65 walk_stackframe(fp, base, base + THREAD_SIZE, save_trace, &data);
72} 66}
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 56b0d06c764b..a4d80eb056ee 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -43,6 +43,7 @@ obj-$(CONFIG_MACH_AT91SAM9RLEK) += board-sam9rlek.o
43# LEDs support 43# LEDs support
44led-$(CONFIG_ARCH_AT91RM9200DK) += leds.o 44led-$(CONFIG_ARCH_AT91RM9200DK) += leds.o
45led-$(CONFIG_MACH_AT91RM9200EK) += leds.o 45led-$(CONFIG_MACH_AT91RM9200EK) += leds.o
46led-$(CONFIG_MACH_AT91SAM9261EK)+= leds.o
46led-$(CONFIG_MACH_CSB337) += leds.o 47led-$(CONFIG_MACH_CSB337) += leds.o
47led-$(CONFIG_MACH_CSB637) += leds.o 48led-$(CONFIG_MACH_CSB637) += leds.o
48led-$(CONFIG_MACH_KB9200) += leds.o 49led-$(CONFIG_MACH_KB9200) += leds.o
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c
index bcf71536cc6d..1f0c8a400b3a 100644
--- a/arch/arm/mach-at91/board-sam9261ek.c
+++ b/arch/arm/mach-at91/board-sam9261ek.c
@@ -60,6 +60,9 @@ static void __init ek_map_io(void)
60 /* Initialize processor: 18.432 MHz crystal */ 60 /* Initialize processor: 18.432 MHz crystal */
61 at91sam9261_initialize(18432000); 61 at91sam9261_initialize(18432000);
62 62
63 /* Setup the LEDs */
64 at91_init_leds(AT91_PIN_PA13, AT91_PIN_PA14);
65
63 /* Setup the serial ports and console */ 66 /* Setup the serial ports and console */
64 at91_init_serial(&ek_uart_config); 67 at91_init_serial(&ek_uart_config);
65} 68}
diff --git a/arch/arm/mach-ebsa110/io.c b/arch/arm/mach-ebsa110/io.c
index bbf0d332407e..6b2380e153ef 100644
--- a/arch/arm/mach-ebsa110/io.c
+++ b/arch/arm/mach-ebsa110/io.c
@@ -102,7 +102,7 @@ EXPORT_SYMBOL(__readb);
102EXPORT_SYMBOL(__readw); 102EXPORT_SYMBOL(__readw);
103EXPORT_SYMBOL(__readl); 103EXPORT_SYMBOL(__readl);
104 104
105void readsw(void __iomem *addr, void *data, int len) 105void readsw(const void __iomem *addr, void *data, int len)
106{ 106{
107 void __iomem *a = __isamem_convert_addr(addr); 107 void __iomem *a = __isamem_convert_addr(addr);
108 108
@@ -112,7 +112,7 @@ void readsw(void __iomem *addr, void *data, int len)
112} 112}
113EXPORT_SYMBOL(readsw); 113EXPORT_SYMBOL(readsw);
114 114
115void readsl(void __iomem *addr, void *data, int len) 115void readsl(const void __iomem *addr, void *data, int len)
116{ 116{
117 void __iomem *a = __isamem_convert_addr(addr); 117 void __iomem *a = __isamem_convert_addr(addr);
118 118
@@ -157,7 +157,7 @@ EXPORT_SYMBOL(__writeb);
157EXPORT_SYMBOL(__writew); 157EXPORT_SYMBOL(__writew);
158EXPORT_SYMBOL(__writel); 158EXPORT_SYMBOL(__writel);
159 159
160void writesw(void __iomem *addr, void *data, int len) 160void writesw(void __iomem *addr, const void *data, int len)
161{ 161{
162 void __iomem *a = __isamem_convert_addr(addr); 162 void __iomem *a = __isamem_convert_addr(addr);
163 163
@@ -167,7 +167,7 @@ void writesw(void __iomem *addr, void *data, int len)
167} 167}
168EXPORT_SYMBOL(writesw); 168EXPORT_SYMBOL(writesw);
169 169
170void writesl(void __iomem *addr, void *data, int len) 170void writesl(void __iomem *addr, const void *data, int len)
171{ 171{
172 void __iomem *a = __isamem_convert_addr(addr); 172 void __iomem *a = __isamem_convert_addr(addr);
173 173
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c
index ad519390dd58..48c8c9195dc3 100644
--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -326,7 +326,7 @@ static struct omap_lcd_config h2_lcd_config __initdata = {
326 .ctrl_name = "internal", 326 .ctrl_name = "internal",
327}; 327};
328 328
329static struct omap_board_config_kernel h2_config[] = { 329static struct omap_board_config_kernel h2_config[] __initdata = {
330 { OMAP_TAG_USB, &h2_usb_config }, 330 { OMAP_TAG_USB, &h2_usb_config },
331 { OMAP_TAG_MMC, &h2_mmc_config }, 331 { OMAP_TAG_MMC, &h2_mmc_config },
332 { OMAP_TAG_UART, &h2_uart_config }, 332 { OMAP_TAG_UART, &h2_uart_config },
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index 6f4ea4bda5e0..8caee68aa090 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -1,4 +1,3 @@
1//kernel/linux-omap-fsample/arch/arm/mach-omap1/pm.c#3 - integrate change 4545 (text)
2/* 1/*
3 * linux/arch/arm/mach-omap1/pm.c 2 * linux/arch/arm/mach-omap1/pm.c
4 * 3 *
@@ -377,7 +376,7 @@ void omap_pm_suspend(void)
377 * Jump to assembly code. The processor will stay there 376 * Jump to assembly code. The processor will stay there
378 * until wake up. 377 * until wake up.
379 */ 378 */
380 omap_sram_suspend(arg0, arg1); 379 omap_sram_suspend(arg0, arg1);
381 380
382 /* 381 /*
383 * If we are here, processor is woken up! 382 * If we are here, processor is woken up!
@@ -631,10 +630,6 @@ static int omap_pm_prepare(suspend_state_t state)
631 case PM_SUSPEND_STANDBY: 630 case PM_SUSPEND_STANDBY:
632 case PM_SUSPEND_MEM: 631 case PM_SUSPEND_MEM:
633 break; 632 break;
634
635 case PM_SUSPEND_DISK:
636 return -ENOTSUPP;
637
638 default: 633 default:
639 return -EINVAL; 634 return -EINVAL;
640 } 635 }
@@ -657,10 +652,6 @@ static int omap_pm_enter(suspend_state_t state)
657 case PM_SUSPEND_MEM: 652 case PM_SUSPEND_MEM:
658 omap_pm_suspend(); 653 omap_pm_suspend();
659 break; 654 break;
660
661 case PM_SUSPEND_DISK:
662 return -ENOTSUPP;
663
664 default: 655 default:
665 return -EINVAL; 656 return -EINVAL;
666 } 657 }
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index f538d0fdb13c..0439906d5da7 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -43,7 +43,7 @@ struct pin_config __initdata_or_module omap24xx_pins[] = {
43/* 24xx I2C */ 43/* 24xx I2C */
44MUX_CFG_24XX("M19_24XX_I2C1_SCL", 0x111, 0, 0, 0, 1) 44MUX_CFG_24XX("M19_24XX_I2C1_SCL", 0x111, 0, 0, 0, 1)
45MUX_CFG_24XX("L15_24XX_I2C1_SDA", 0x112, 0, 0, 0, 1) 45MUX_CFG_24XX("L15_24XX_I2C1_SDA", 0x112, 0, 0, 0, 1)
46MUX_CFG_24XX("J15_24XX_I2C2_SCL", 0x113, 0, 0, 0, 1) 46MUX_CFG_24XX("J15_24XX_I2C2_SCL", 0x113, 0, 0, 1, 1)
47MUX_CFG_24XX("H19_24XX_I2C2_SDA", 0x114, 0, 0, 0, 1) 47MUX_CFG_24XX("H19_24XX_I2C2_SDA", 0x114, 0, 0, 0, 1)
48 48
49/* Menelaus interrupt */ 49/* Menelaus interrupt */
@@ -52,7 +52,9 @@ MUX_CFG_24XX("W19_24XX_SYS_NIRQ", 0x12c, 0, 1, 1, 1)
52/* 24xx clocks */ 52/* 24xx clocks */
53MUX_CFG_24XX("W14_24XX_SYS_CLKOUT", 0x137, 0, 1, 1, 1) 53MUX_CFG_24XX("W14_24XX_SYS_CLKOUT", 0x137, 0, 1, 1, 1)
54 54
55/* 24xx GPMC wait pin monitoring */ 55/* 24xx GPMC chipselects, wait pin monitoring */
56MUX_CFG_24XX("E2_GPMC_NCS2", 0x08e, 0, 1, 1, 1)
57MUX_CFG_24XX("L2_GPMC_NCS7", 0x093, 0, 1, 1, 1)
56MUX_CFG_24XX("L3_GPMC_WAIT0", 0x09a, 0, 1, 1, 1) 58MUX_CFG_24XX("L3_GPMC_WAIT0", 0x09a, 0, 1, 1, 1)
57MUX_CFG_24XX("N7_GPMC_WAIT1", 0x09b, 0, 1, 1, 1) 59MUX_CFG_24XX("N7_GPMC_WAIT1", 0x09b, 0, 1, 1, 1)
58MUX_CFG_24XX("M1_GPMC_WAIT2", 0x09c, 0, 1, 1, 1) 60MUX_CFG_24XX("M1_GPMC_WAIT2", 0x09c, 0, 1, 1, 1)
@@ -66,6 +68,7 @@ MUX_CFG_24XX("V15_24XX_MCBSP2_DX", 0x127, 1, 1, 0, 1)
66 68
67/* 24xx GPIO */ 69/* 24xx GPIO */
68MUX_CFG_24XX("M21_242X_GPIO11", 0x0c9, 3, 1, 1, 1) 70MUX_CFG_24XX("M21_242X_GPIO11", 0x0c9, 3, 1, 1, 1)
71MUX_CFG_24XX("P21_242X_GPIO12", 0x0ca, 3, 0, 0, 1)
69MUX_CFG_24XX("AA10_242X_GPIO13", 0x0e5, 3, 0, 0, 1) 72MUX_CFG_24XX("AA10_242X_GPIO13", 0x0e5, 3, 0, 0, 1)
70MUX_CFG_24XX("AA6_242X_GPIO14", 0x0e6, 3, 0, 0, 1) 73MUX_CFG_24XX("AA6_242X_GPIO14", 0x0e6, 3, 0, 0, 1)
71MUX_CFG_24XX("AA4_242X_GPIO15", 0x0e7, 3, 0, 0, 1) 74MUX_CFG_24XX("AA4_242X_GPIO15", 0x0e7, 3, 0, 0, 1)
@@ -75,7 +78,9 @@ MUX_CFG_24XX("AA8_242X_GPIO58", 0x0ea, 3, 0, 0, 1)
75MUX_CFG_24XX("Y20_24XX_GPIO60", 0x12c, 3, 0, 0, 1) 78MUX_CFG_24XX("Y20_24XX_GPIO60", 0x12c, 3, 0, 0, 1)
76MUX_CFG_24XX("W4__24XX_GPIO74", 0x0f2, 3, 0, 0, 1) 79MUX_CFG_24XX("W4__24XX_GPIO74", 0x0f2, 3, 0, 0, 1)
77MUX_CFG_24XX("M15_24XX_GPIO92", 0x10a, 3, 0, 0, 1) 80MUX_CFG_24XX("M15_24XX_GPIO92", 0x10a, 3, 0, 0, 1)
81MUX_CFG_24XX("J15_24XX_GPIO99", 0x113, 3, 1, 1, 1)
78MUX_CFG_24XX("V14_24XX_GPIO117", 0x128, 3, 1, 0, 1) 82MUX_CFG_24XX("V14_24XX_GPIO117", 0x128, 3, 1, 0, 1)
83MUX_CFG_24XX("P14_24XX_GPIO125", 0x140, 3, 1, 1, 1)
79 84
80/* 242x DBG GPIO */ 85/* 242x DBG GPIO */
81MUX_CFG_24XX("V4_242X_GPIO49", 0xd3, 3, 0, 0, 1) 86MUX_CFG_24XX("V4_242X_GPIO49", 0xd3, 3, 0, 0, 1)
@@ -118,6 +123,30 @@ MUX_CFG_24XX("E18_24XX_MMC_DAT_DIR3", 0x0fc, 0, 0, 0, 1)
118MUX_CFG_24XX("G18_24XX_MMC_CMD_DIR", 0x0fd, 0, 0, 0, 1) 123MUX_CFG_24XX("G18_24XX_MMC_CMD_DIR", 0x0fd, 0, 0, 0, 1)
119MUX_CFG_24XX("H15_24XX_MMC_CLKI", 0x0fe, 0, 0, 0, 1) 124MUX_CFG_24XX("H15_24XX_MMC_CLKI", 0x0fe, 0, 0, 0, 1)
120 125
126/* Full speed USB */
127MUX_CFG_24XX("J20_24XX_USB0_PUEN", 0x11d, 0, 0, 0, 1)
128MUX_CFG_24XX("J19_24XX_USB0_VP", 0x11e, 0, 0, 0, 1)
129MUX_CFG_24XX("K20_24XX_USB0_VM", 0x11f, 0, 0, 0, 1)
130MUX_CFG_24XX("J18_24XX_USB0_RCV", 0x120, 0, 0, 0, 1)
131MUX_CFG_24XX("K19_24XX_USB0_TXEN", 0x121, 0, 0, 0, 1)
132MUX_CFG_24XX("J14_24XX_USB0_SE0", 0x122, 0, 0, 0, 1)
133MUX_CFG_24XX("K18_24XX_USB0_DAT", 0x123, 0, 0, 0, 1)
134
135MUX_CFG_24XX("N14_24XX_USB1_SE0", 0x0ed, 2, 0, 0, 1)
136MUX_CFG_24XX("W12_24XX_USB1_SE0", 0x0dd, 3, 0, 0, 1)
137MUX_CFG_24XX("P15_24XX_USB1_DAT", 0x0ee, 2, 0, 0, 1)
138MUX_CFG_24XX("R13_24XX_USB1_DAT", 0x0e0, 3, 0, 0, 1)
139MUX_CFG_24XX("W20_24XX_USB1_TXEN", 0x0ec, 2, 0, 0, 1)
140MUX_CFG_24XX("P13_24XX_USB1_TXEN", 0x0df, 3, 0, 0, 1)
141MUX_CFG_24XX("V19_24XX_USB1_RCV", 0x0eb, 2, 0, 0, 1)
142MUX_CFG_24XX("V12_24XX_USB1_RCV", 0x0de, 3, 0, 0, 1)
143
144MUX_CFG_24XX("AA10_24XX_USB2_SE0", 0x0e5, 2, 0, 0, 1)
145MUX_CFG_24XX("Y11_24XX_USB2_DAT", 0x0e8, 2, 0, 0, 1)
146MUX_CFG_24XX("AA12_24XX_USB2_TXEN", 0x0e9, 2, 0, 0, 1)
147MUX_CFG_24XX("AA6_24XX_USB2_RCV", 0x0e6, 2, 0, 0, 1)
148MUX_CFG_24XX("AA4_24XX_USB2_TLLSE0", 0x0e7, 2, 0, 0, 1)
149
121/* Keypad GPIO*/ 150/* Keypad GPIO*/
122MUX_CFG_24XX("T19_24XX_KBR0", 0x106, 3, 1, 1, 1) 151MUX_CFG_24XX("T19_24XX_KBR0", 0x106, 3, 1, 1, 1)
123MUX_CFG_24XX("R19_24XX_KBR1", 0x107, 3, 1, 1, 1) 152MUX_CFG_24XX("R19_24XX_KBR1", 0x107, 3, 1, 1, 1)
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 2d86b106ff3e..55a4d3be16b6 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -747,7 +747,7 @@ int omap_set_dma_callback(int lch,
747 */ 747 */
748dma_addr_t omap_get_dma_src_pos(int lch) 748dma_addr_t omap_get_dma_src_pos(int lch)
749{ 749{
750 dma_addr_t offset; 750 dma_addr_t offset = 0;
751 751
752 if (cpu_class_is_omap1()) 752 if (cpu_class_is_omap1())
753 offset = (dma_addr_t) (OMAP1_DMA_CSSA_L_REG(lch) | 753 offset = (dma_addr_t) (OMAP1_DMA_CSSA_L_REG(lch) |
@@ -769,7 +769,7 @@ dma_addr_t omap_get_dma_src_pos(int lch)
769 */ 769 */
770dma_addr_t omap_get_dma_dst_pos(int lch) 770dma_addr_t omap_get_dma_dst_pos(int lch)
771{ 771{
772 dma_addr_t offset; 772 dma_addr_t offset = 0;
773 773
774 if (cpu_class_is_omap1()) 774 if (cpu_class_is_omap1())
775 offset = (dma_addr_t) (OMAP1_DMA_CDSA_L_REG(lch) | 775 offset = (dma_addr_t) (OMAP1_DMA_CDSA_L_REG(lch) |
diff --git a/arch/arm/plat-omap/mux.c b/arch/arm/plat-omap/mux.c
index 6c798d288688..75211f20ccb3 100644
--- a/arch/arm/plat-omap/mux.c
+++ b/arch/arm/plat-omap/mux.c
@@ -83,10 +83,21 @@ int __init_or_module omap_cfg_reg(const unsigned long index)
83 reg |= OMAP24XX_PULL_ENA; 83 reg |= OMAP24XX_PULL_ENA;
84 if(cfg->pu_pd_val) 84 if(cfg->pu_pd_val)
85 reg |= OMAP24XX_PULL_UP; 85 reg |= OMAP24XX_PULL_UP;
86#ifdef CONFIG_OMAP_MUX_DEBUG 86#if defined(CONFIG_OMAP_MUX_DEBUG) || defined(CONFIG_OMAP_MUX_WARNINGS)
87 printk("Muxing %s (0x%08x): 0x%02x -> 0x%02x\n", 87 {
88 cfg->name, OMAP24XX_L4_BASE + cfg->mux_reg, 88 u8 orig = omap_readb(OMAP24XX_L4_BASE + cfg->mux_reg);
89 omap_readb(OMAP24XX_L4_BASE + cfg->mux_reg), reg); 89 u8 debug = 0;
90
91#ifdef CONFIG_OMAP_MUX_DEBUG
92 debug = cfg->debug;
93#endif
94 warn = (orig != reg);
95 if (debug || warn)
96 printk("MUX: setup %s (0x%08x): 0x%02x -> 0x%02x\n",
97 cfg->name,
98 OMAP24XX_L4_BASE + cfg->mux_reg,
99 orig, reg);
100 }
90#endif 101#endif
91 omap_writeb(reg, OMAP24XX_L4_BASE + cfg->mux_reg); 102 omap_writeb(reg, OMAP24XX_L4_BASE + cfg->mux_reg);
92 103