Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm: (23 commits)
[ARM] Fix virtual to physical translation macro corner cases
[ARM] update mach-types
[ARM] 5421/1: ftrace: fix crash due to tracing of __naked functions
MX1 fix include
[ARM] 5419/1: ep93xx: fix build warnings about struct i2c_board_info
[ARM] 5418/1: restore lr before leaving mcount
ARM: OMAP: board-omap3beagle: set i2c-3 to 100kHz
ARM: OMAP: Allow I2C bus driver to be compiled as a module
ARM: OMAP: sched_clock() corrected
ARM: OMAP: Fix compile error if pm.h is included
[ARM] orion5x: pass dram mbus data to xor driver
[ARM] S3C64XX: Fix s3c64xx_setrate_clksrc
[ARM] S3C64XX: sparse warnings in arch/arm/plat-s3c64xx/irq.c
[ARM] S3C64XX: sparse warnings in arch/arm/plat-s3c64xx/s3c6400-clock.c
[ARM] S3C64XX: Fix USB host clock mux list
[ARM] S3C64XX: Fix name of USB host clock.
[ARM] S3C64XX: Rename IRQ_UHOST to IRQ_USBH
[ARM] S3C64XX: Do gpiolib configuration earlier
[ARM] S3C64XX: Staticise s3c64xx_init_irq_eint()
[ARM] SMDK6410: Declare iodesc table static
...

+226 -54
+4
arch/arm/kernel/entry-common.S
··· 111 111 .globl mcount_call 112 112 mcount_call: 113 113 bl ftrace_stub 114 + ldr lr, [fp, #-4] @ restore lr 114 115 ldmia sp!, {r0-r3, pc} 115 116 116 117 ENTRY(ftrace_caller) ··· 123 122 .globl ftrace_call 124 123 ftrace_call: 125 124 bl ftrace_stub 125 + ldr lr, [fp, #-4] @ restore lr 126 126 ldmia sp!, {r0-r3, pc} 127 127 128 128 #else ··· 135 133 adr r0, ftrace_stub 136 134 cmp r0, r2 137 135 bne trace 136 + ldr lr, [fp, #-4] @ restore lr 138 137 ldmia sp!, {r0-r3, pc} 139 138 140 139 trace: ··· 144 141 sub r0, r0, #MCOUNT_INSN_SIZE 145 142 mov lr, pc 146 143 mov pc, r2 144 + mov lr, r1 @ restore lr 147 145 ldmia sp!, {r0-r3, pc} 148 146 149 147 #endif /* CONFIG_DYNAMIC_FTRACE */
+2 -2
arch/arm/kernel/fiq.c
··· 88 88 * disable irqs for the duration. Note - these functions are almost 89 89 * entirely coded in assembly. 90 90 */ 91 - void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) 91 + void __naked set_fiq_regs(struct pt_regs *regs) 92 92 { 93 93 register unsigned long tmp; 94 94 asm volatile ( ··· 106 106 : "r" (&regs->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); 107 107 } 108 108 109 - void __attribute__((naked)) get_fiq_regs(struct pt_regs *regs) 109 + void __naked get_fiq_regs(struct pt_regs *regs) 110 110 { 111 111 register unsigned long tmp; 112 112 asm volatile (
+2
arch/arm/mach-ep93xx/include/mach/platform.h
··· 4 4 5 5 #ifndef __ASSEMBLY__ 6 6 7 + struct i2c_board_info; 8 + 7 9 struct ep93xx_eth_data 8 10 { 9 11 unsigned char dev_addr[6];
+2
arch/arm/mach-mx1/devices.c
··· 23 23 #include <linux/init.h> 24 24 #include <linux/platform_device.h> 25 25 #include <linux/gpio.h> 26 + 27 + #include <mach/irqs.h> 26 28 #include <mach/hardware.h> 27 29 28 30 static struct resource imx_csi_resources[] = {
+1
arch/arm/mach-mx1/mx1ads.c
··· 21 21 #include <asm/mach/arch.h> 22 22 #include <asm/mach/time.h> 23 23 24 + #include <mach/irqs.h> 24 25 #include <mach/hardware.h> 25 26 #include <mach/common.h> 26 27 #include <mach/imx-uart.h>
+3 -1
arch/arm/mach-omap2/board-omap3beagle.c
··· 178 178 #ifdef CONFIG_I2C2_OMAP_BEAGLE 179 179 omap_register_i2c_bus(2, 400, NULL, 0); 180 180 #endif 181 - omap_register_i2c_bus(3, 400, NULL, 0); 181 + /* Bus 3 is attached to the DVI port where devices like the pico DLP 182 + * projector don't work reliably with 400kHz */ 183 + omap_register_i2c_bus(3, 100, NULL, 0); 182 184 return 0; 183 185 } 184 186
+7
arch/arm/mach-orion5x/common.c
··· 431 431 /***************************************************************************** 432 432 * XOR engine 433 433 ****************************************************************************/ 434 + struct mv_xor_platform_shared_data orion5x_xor_shared_data = { 435 + .dram = &orion5x_mbus_dram_info, 436 + }; 437 + 434 438 static struct resource orion5x_xor_shared_resources[] = { 435 439 { 436 440 .name = "xor low", ··· 452 448 static struct platform_device orion5x_xor_shared = { 453 449 .name = MV_XOR_SHARED_NAME, 454 450 .id = 0, 451 + .dev = { 452 + .platform_data = &orion5x_xor_shared_data, 453 + }, 455 454 .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources), 456 455 .resource = orion5x_xor_shared_resources, 457 456 };
+2 -2
arch/arm/mach-s3c6410/mach-smdk6410.c
··· 129 129 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 130 130 }; 131 131 132 - struct map_desc smdk6410_iodesc[] = {}; 132 + static struct map_desc smdk6410_iodesc[] = {}; 133 133 134 134 static struct platform_device *smdk6410_devices[] __initdata = { 135 135 #ifdef CONFIG_SMDK6410_SD_CH0 ··· 146 146 147 147 static struct i2c_board_info i2c_devs0[] __initdata = { 148 148 { I2C_BOARD_INFO("24c08", 0x50), }, 149 - { I2C_BOARD_INFO("WM8580", 0X1b), }, 149 + { I2C_BOARD_INFO("wm8580", 0x1b), }, 150 150 }; 151 151 152 152 static struct i2c_board_info i2c_devs1[] __initdata = {
+1 -1
arch/arm/mm/copypage-feroceon.c
··· 13 13 #include <linux/init.h> 14 14 #include <linux/highmem.h> 15 15 16 - static void __attribute__((naked)) 16 + static void __naked 17 17 feroceon_copy_user_page(void *kto, const void *kfrom) 18 18 { 19 19 asm("\
+1 -1
arch/arm/mm/copypage-v3.c
··· 15 15 * 16 16 * FIXME: do we need to handle cache stuff... 17 17 */ 18 - static void __attribute__((naked)) 18 + static void __naked 19 19 v3_copy_user_page(void *kto, const void *kfrom) 20 20 { 21 21 asm("\n\
+1 -1
arch/arm/mm/copypage-v4mc.c
··· 44 44 * instruction. If your processor does not supply this, you have to write your 45 45 * own copy_user_highpage that does the right thing. 46 46 */ 47 - static void __attribute__((naked)) 47 + static void __naked 48 48 mc_copy_user_page(void *from, void *to) 49 49 { 50 50 asm volatile(
+1 -1
arch/arm/mm/copypage-v4wb.c
··· 22 22 * instruction. If your processor does not supply this, you have to write your 23 23 * own copy_user_highpage that does the right thing. 24 24 */ 25 - static void __attribute__((naked)) 25 + static void __naked 26 26 v4wb_copy_user_page(void *kto, const void *kfrom) 27 27 { 28 28 asm("\
+1 -1
arch/arm/mm/copypage-v4wt.c
··· 20 20 * dirty data in the cache. However, we do have to ensure that 21 21 * subsequent reads are up to date. 22 22 */ 23 - static void __attribute__((naked)) 23 + static void __naked 24 24 v4wt_copy_user_page(void *kto, const void *kfrom) 25 25 { 26 26 asm("\
+1 -1
arch/arm/mm/copypage-xsc3.c
··· 29 29 * if we eventually end up using our copied page. 30 30 * 31 31 */ 32 - static void __attribute__((naked)) 32 + static void __naked 33 33 xsc3_mc_copy_user_page(void *kto, const void *kfrom) 34 34 { 35 35 asm("\
+1 -1
arch/arm/mm/copypage-xscale.c
··· 42 42 * Dcache aliasing issue. The writes will be forwarded to the write buffer, 43 43 * and merged as appropriate. 44 44 */ 45 - static void __attribute__((naked)) 45 + static void __naked 46 46 mc_copy_user_page(void *from, void *to) 47 47 { 48 48 /*
+12 -8
arch/arm/mm/dma-mapping.c
··· 490 490 */ 491 491 void dma_cache_maint(const void *start, size_t size, int direction) 492 492 { 493 - const void *end = start + size; 493 + void (*inner_op)(const void *, const void *); 494 + void (*outer_op)(unsigned long, unsigned long); 494 495 495 - BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(end - 1)); 496 + BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(start + size - 1)); 496 497 497 498 switch (direction) { 498 499 case DMA_FROM_DEVICE: /* invalidate only */ 499 - dmac_inv_range(start, end); 500 - outer_inv_range(__pa(start), __pa(end)); 500 + inner_op = dmac_inv_range; 501 + outer_op = outer_inv_range; 501 502 break; 502 503 case DMA_TO_DEVICE: /* writeback only */ 503 - dmac_clean_range(start, end); 504 - outer_clean_range(__pa(start), __pa(end)); 504 + inner_op = dmac_clean_range; 505 + outer_op = outer_clean_range; 505 506 break; 506 507 case DMA_BIDIRECTIONAL: /* writeback and invalidate */ 507 - dmac_flush_range(start, end); 508 - outer_flush_range(__pa(start), __pa(end)); 508 + inner_op = dmac_flush_range; 509 + outer_op = outer_flush_range; 509 510 break; 510 511 default: 511 512 BUG(); 512 513 } 514 + 515 + inner_op(start, start + size); 516 + outer_op(__pa(start), __pa(start) + size); 513 517 } 514 518 EXPORT_SYMBOL(dma_cache_maint); 515 519
+1 -1
arch/arm/mm/init.c
··· 382 382 for_each_node(node) 383 383 bootmem_free_node(node, mi); 384 384 385 - high_memory = __va(memend_pfn << PAGE_SHIFT); 385 + high_memory = __va((memend_pfn << PAGE_SHIFT) - 1) + 1; 386 386 387 387 /* 388 388 * This doesn't seem to be used by the Linux memory manager any
+1 -1
arch/arm/mm/mmap.c
··· 124 124 { 125 125 if (addr < PHYS_OFFSET) 126 126 return 0; 127 - if (addr + size > __pa(high_memory)) 127 + if (addr + size >= __pa(high_memory - 1)) 128 128 return 0; 129 129 130 130 return 1;
+2 -1
arch/arm/plat-omap/Makefile
··· 18 18 obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o 19 19 obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o 20 20 obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o 21 - obj-$(CONFIG_I2C_OMAP) += i2c.o 21 + i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o 22 + obj-y += $(i2c-omap-m) $(i2c-omap-y) 22 23 23 24 # OMAP mailbox framework 24 25 obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
+5 -9
arch/arm/plat-omap/common.c
··· 200 200 }; 201 201 202 202 /* 203 - * Rounds down to nearest nsec. 204 - */ 205 - unsigned long long omap_32k_ticks_to_nsecs(unsigned long ticks_32k) 206 - { 207 - return cyc2ns(&clocksource_32k, ticks_32k); 208 - } 209 - 210 - /* 211 203 * Returns current time from boot in nsecs. It's OK for this to wrap 212 204 * around for now, as it's just a relative time stamp. 213 205 */ 214 206 unsigned long long sched_clock(void) 215 207 { 216 - return omap_32k_ticks_to_nsecs(omap_32k_read()); 208 + unsigned long long ret; 209 + 210 + ret = (unsigned long long)omap_32k_read(); 211 + ret = (ret * clocksource_32k.mult_orig) >> clocksource_32k.shift; 212 + return ret; 217 213 } 218 214 219 215 static int __init omap_init_clocksource_32k(void)
+1 -1
arch/arm/plat-omap/include/mach/common.h
··· 35 35 extern struct sys_timer omap_timer; 36 36 extern void omap_serial_init(void); 37 37 extern void omap_serial_enable_clocks(int enable); 38 - #ifdef CONFIG_I2C_OMAP 38 + #if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE) 39 39 extern int omap_register_i2c_bus(int bus_id, u32 clkrate, 40 40 struct i2c_board_info const *info, 41 41 unsigned len);
+1 -1
arch/arm/plat-omap/include/mach/pm.h
··· 108 108 !defined(CONFIG_ARCH_OMAP15XX) && \ 109 109 !defined(CONFIG_ARCH_OMAP16XX) && \ 110 110 !defined(CONFIG_ARCH_OMAP24XX) 111 - #error "Power management for this processor not implemented yet" 111 + #warning "Power management for this processor not implemented yet" 112 112 #endif 113 113 114 114 #ifndef __ASSEMBLER__
+1 -1
arch/arm/plat-s3c64xx/clock.c
··· 248 248 &clk_48m, 249 249 }; 250 250 251 - void s3c64xx_register_clocks(void) 251 + void __init s3c64xx_register_clocks(void) 252 252 { 253 253 struct clk *clkp; 254 254 int ret;
+1 -1
arch/arm/plat-s3c64xx/gpiolib.c
··· 417 417 return 0; 418 418 } 419 419 420 - arch_initcall(s3c64xx_gpiolib_init); 420 + core_initcall(s3c64xx_gpiolib_init);
+1 -1
arch/arm/plat-s3c64xx/include/plat/irqs.h
··· 117 117 #define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12) 118 118 #define IRQ_NFC S3C64XX_IRQ_VIC1(13) 119 119 #define IRQ_CFCON S3C64XX_IRQ_VIC1(14) 120 - #define IRQ_UHOST S3C64XX_IRQ_VIC1(15) 120 + #define IRQ_USBH S3C64XX_IRQ_VIC1(15) 121 121 #define IRQ_SPI0 S3C64XX_IRQ_VIC1(16) 122 122 #define IRQ_SPI1 S3C64XX_IRQ_VIC1(17) 123 123 #define IRQ_IIC S3C64XX_IRQ_VIC1(18)
+14 -1
arch/arm/plat-s3c64xx/irq-eint.c
··· 14 14 15 15 #include <linux/kernel.h> 16 16 #include <linux/interrupt.h> 17 + #include <linux/gpio.h> 17 18 #include <linux/irq.h> 18 19 #include <linux/io.h> 19 20 20 21 #include <asm/hardware/vic.h> 21 22 22 23 #include <plat/regs-irqtype.h> 24 + #include <plat/regs-gpio.h> 25 + #include <plat/gpio-cfg.h> 23 26 24 27 #include <mach/map.h> 25 28 #include <plat/cpu.h> ··· 77 74 static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) 78 75 { 79 76 int offs = eint_offset(irq); 77 + int pin; 80 78 int shift; 81 79 u32 ctrl, mask; 82 80 u32 newvalue = 0; ··· 128 124 ctrl &= ~mask; 129 125 ctrl |= newvalue << shift; 130 126 __raw_writel(ctrl, reg); 127 + 128 + /* set the GPIO pin appropriately */ 129 + 130 + if (offs < 23) 131 + pin = S3C64XX_GPN(offs); 132 + else 133 + pin = S3C64XX_GPM(offs - 23); 134 + 135 + s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(2)); 131 136 132 137 return 0; 133 138 } ··· 194 181 s3c_irq_demux_eint(20, 27); 195 182 } 196 183 197 - int __init s3c64xx_init_irq_eint(void) 184 + static int __init s3c64xx_init_irq_eint(void) 198 185 { 199 186 int irq; 200 187
+1 -1
arch/arm/plat-s3c64xx/irq.c
··· 207 207 208 208 static void __init s3c64xx_uart_irq(struct uart_irq *uirq) 209 209 { 210 - void *reg_base = uirq->regs; 210 + void __iomem *reg_base = uirq->regs; 211 211 unsigned int irq; 212 212 int offs; 213 213
+13 -11
arch/arm/plat-s3c64xx/s3c6400-clock.c
··· 36 36 * ext_xtal_mux for want of an actual name from the manual. 37 37 */ 38 38 39 - struct clk clk_ext_xtal_mux = { 39 + static struct clk clk_ext_xtal_mux = { 40 40 .name = "ext_xtal", 41 41 .id = -1, 42 42 }; ··· 63 63 void __iomem *reg_divider; 64 64 }; 65 65 66 - struct clk clk_fout_apll = { 66 + static struct clk clk_fout_apll = { 67 67 .name = "fout_apll", 68 68 .id = -1, 69 69 }; ··· 78 78 .nr_sources = ARRAY_SIZE(clk_src_apll_list), 79 79 }; 80 80 81 - struct clksrc_clk clk_mout_apll = { 81 + static struct clksrc_clk clk_mout_apll = { 82 82 .clk = { 83 83 .name = "mout_apll", 84 84 .id = -1, ··· 88 88 .sources = &clk_src_apll, 89 89 }; 90 90 91 - struct clk clk_fout_epll = { 91 + static struct clk clk_fout_epll = { 92 92 .name = "fout_epll", 93 93 .id = -1, 94 94 }; ··· 103 103 .nr_sources = ARRAY_SIZE(clk_src_epll_list), 104 104 }; 105 105 106 - struct clksrc_clk clk_mout_epll = { 106 + static struct clksrc_clk clk_mout_epll = { 107 107 .clk = { 108 108 .name = "mout_epll", 109 109 .id = -1, ··· 123 123 .nr_sources = ARRAY_SIZE(clk_src_mpll_list), 124 124 }; 125 125 126 - struct clksrc_clk clk_mout_mpll = { 126 + static struct clksrc_clk clk_mout_mpll = { 127 127 .clk = { 128 128 .name = "mout_mpll", 129 129 .id = -1, ··· 145 145 return rate; 146 146 } 147 147 148 - struct clk clk_dout_mpll = { 148 + static struct clk clk_dout_mpll = { 149 149 .name = "dout_mpll", 150 150 .id = -1, 151 151 .parent = &clk_mout_mpll.clk, ··· 189 189 }; 190 190 191 191 static struct clk *clkset_uhost_list[] = { 192 + &clk_48m, 192 193 &clk_mout_epll.clk, 193 194 &clk_dout_mpll, 194 195 &clk_fin_epll, 195 - &clk_48m, 196 196 }; 197 197 198 198 static struct clk_sources clkset_uhost = { ··· 239 239 240 240 rate = clk_round_rate(clk, rate); 241 241 div = clk_get_rate(clk->parent) / rate; 242 + if (div > 16) 243 + return -EINVAL; 242 244 243 245 val = __raw_readl(reg); 244 - val &= ~sclk->mask; 245 - val |= (rate - 1) << sclk->shift; 246 + val &= ~(0xf << sclk->shift); 247 + val |= (div - 1) << sclk->shift; 246 248 __raw_writel(val, reg); 247 249 248 250 return 0; ··· 353 351 354 352 static struct clksrc_clk clk_usbhost = { 355 353 .clk = { 356 - .name = "usb-host-bus", 354 + .name = "usb-bus-host", 357 355 .id = -1, 358 356 .ctrlbit = S3C_CLKCON_SCLK_UHOST, 359 357 .enable = s3c64xx_sclk_ctrl,
+133 -3
arch/arm/tools/mach-types
··· 12 12 # 13 13 # http://www.arm.linux.org.uk/developer/machines/?action=new 14 14 # 15 - # Last update: Sun Nov 30 16:39:36 2008 15 + # Last update: Thu Mar 12 18:01:45 2009 16 16 # 17 17 # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 18 18 # ··· 1811 1811 jade MACH_JADE JADE 1821 1812 1812 ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822 1813 1813 gprisc3 MACH_GPRISC3 GPRISC3 1823 1814 - stamp9260 MACH_STAMP9260 STAMP9260 1824 1814 + stamp9g20 MACH_STAMP9G20 STAMP9G20 1824 1815 1815 smdk6430 MACH_SMDK6430 SMDK6430 1825 1816 1816 smdkc100 MACH_SMDKC100 SMDKC100 1826 1817 1817 tavorevb MACH_TAVOREVB TAVOREVB 1827 ··· 1993 1993 benzina MACH_BENZINA BENZINA 2003 1994 1994 blaze MACH_BLAZE BLAZE 2004 1995 1995 linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005 1996 - htcvenus MACH_HTCVENUS HTCVENUS 2006 1996 + htckovsky MACH_HTCVENUS HTCVENUS 2006 1997 + sony_prs505 MACH_SONY_PRS505 SONY_PRS505 2007 1998 + hanlin_v3 MACH_HANLIN_V3 HANLIN_V3 2008 1999 + sapphira MACH_SAPPHIRA SAPPHIRA 2009 2000 + dack_sda_01 MACH_DACK_SDA_01 DACK_SDA_01 2010 2001 + armbox MACH_ARMBOX ARMBOX 2011 2002 + harris_rvp MACH_HARRIS_RVP HARRIS_RVP 2012 2003 + ribaldo MACH_RIBALDO RIBALDO 2013 2004 + agora MACH_AGORA AGORA 2014 2005 + omap3_mini MACH_OMAP3_MINI OMAP3_MINI 2015 2006 + a9sam6432_b MACH_A9SAM6432_B A9SAM6432_B 2016 2007 + usg2410 MACH_USG2410 USG2410 2017 2008 + pc72052_i10_revb MACH_PC72052_I10_REVB PC72052_I10_REVB 2018 2009 + mx35_exm32 MACH_MX35_EXM32 MX35_EXM32 2019 2010 + topas910 MACH_TOPAS910 TOPAS910 2020 2011 + hyena MACH_HYENA HYENA 2021 2012 + pospax MACH_POSPAX POSPAX 2022 2013 + hdl_gx MACH_HDL_GX HDL_GX 2023 2014 + ctera_4bay MACH_CTERA_4BAY CTERA_4BAY 2024 2015 + ctera_plug_c MACH_CTERA_PLUG_C CTERA_PLUG_C 2025 2016 + crwea_plug_i MACH_CRWEA_PLUG_I CRWEA_PLUG_I 2026 2017 + egauge2 MACH_EGAUGE2 EGAUGE2 2027 2018 + didj MACH_DIDJ DIDJ 2028 2019 + m_s3c2443 MACH_MEISTER MEISTER 2029 2020 + htcblackstone MACH_HTCBLACKSTONE HTCBLACKSTONE 2030 2021 + cpuat9g20 MACH_CPUAT9G20 CPUAT9G20 2031 2022 + smdk6440 MACH_SMDK6440 SMDK6440 2032 2023 + omap_35xx_mvp MACH_OMAP_35XX_MVP OMAP_35XX_MVP 2033 2024 + ctera_plug_i MACH_CTERA_PLUG_I CTERA_PLUG_I 2034 2025 + pvg610_100 MACH_PVG610 PVG610 2035 2026 + hprw6815 MACH_HPRW6815 HPRW6815 2036 2027 + omap3_oswald MACH_OMAP3_OSWALD OMAP3_OSWALD 2037 2028 + nas4220b MACH_NAS4220B NAS4220B 2038 2029 + htcraphael_cdma MACH_HTCRAPHAEL_CDMA HTCRAPHAEL_CDMA 2039 2030 + htcdiamond_cdma MACH_HTCDIAMOND_CDMA HTCDIAMOND_CDMA 2040 2031 + scaler MACH_SCALER SCALER 2041 2032 + zylonite2 MACH_ZYLONITE2 ZYLONITE2 2042 2033 + aspenite MACH_ASPENITE ASPENITE 2043 2034 + teton MACH_TETON TETON 2044 2035 + ttc_dkb MACH_TTC_DKB TTC_DKB 2045 2036 + bishop2 MACH_BISHOP2 BISHOP2 2046 2037 + ippv5 MACH_IPPV5 IPPV5 2047 2038 + farm926 MACH_FARM926 FARM926 2048 2039 + mmccpu MACH_MMCCPU MMCCPU 2049 2040 + sgmsfl MACH_SGMSFL SGMSFL 2050 2041 + tt8000 MACH_TT8000 TT8000 2051 2042 + zrn4300lp MACH_ZRN4300LP ZRN4300LP 2052 2043 + mptc MACH_MPTC MPTC 2053 2044 + h6051 MACH_H6051 H6051 2054 2045 + pvg610_101 MACH_PVG610_101 PVG610_101 2055 2046 + stamp9261_pc_evb MACH_STAMP9261_PC_EVB STAMP9261_PC_EVB 2056 2047 + pelco_odysseus MACH_PELCO_ODYSSEUS PELCO_ODYSSEUS 2057 2048 + tny_a9260 MACH_TNY_A9260 TNY_A9260 2058 2049 + tny_a9g20 MACH_TNY_A9G20 TNY_A9G20 2059 2050 + aesop_mp2530f MACH_AESOP_MP2530F AESOP_MP2530F 2060 2051 + dx900 MACH_DX900 DX900 2061 2052 + cpodc2 MACH_CPODC2 CPODC2 2062 2053 + tilt_8925 MACH_TILT_8925 TILT_8925 2063 2054 + davinci_dm357_evm MACH_DAVINCI_DM357_EVM DAVINCI_DM357_EVM 2064 2055 + swordfish MACH_SWORDFISH SWORDFISH 2065 2056 + corvus MACH_CORVUS CORVUS 2066 2057 + taurus MACH_TAURUS TAURUS 2067 2058 + axm MACH_AXM AXM 2068 2059 + axc MACH_AXC AXC 2069 2060 + baby MACH_BABY BABY 2070 2061 + mp200 MACH_MP200 MP200 2071 2062 + pcm043 MACH_PCM043 PCM043 2072 2063 + hanlin_v3c MACH_HANLIN_V3C HANLIN_V3C 2073 2064 + kbk9g20 MACH_KBK9G20 KBK9G20 2074 2065 + adsturbog5 MACH_ADSTURBOG5 ADSTURBOG5 2075 2066 + avenger_lite1 MACH_AVENGER_LITE1 AVENGER_LITE1 2076 2067 + suc82x MACH_SUC SUC 2077 2068 + at91sam7s256 MACH_AT91SAM7S256 AT91SAM7S256 2078 2069 + mendoza MACH_MENDOZA MENDOZA 2079 2070 + kira MACH_KIRA KIRA 2080 2071 + mx1hbm MACH_MX1HBM MX1HBM 2081 2072 + quatro43xx MACH_QUATRO43XX QUATRO43XX 2082 2073 + quatro4230 MACH_QUATRO4230 QUATRO4230 2083 2074 + nsb400 MACH_NSB400 NSB400 2084 2075 + drp255 MACH_DRP255 DRP255 2085 2076 + thoth MACH_THOTH THOTH 2086 2077 + firestone MACH_FIRESTONE FIRESTONE 2087 2078 + asusp750 MACH_ASUSP750 ASUSP750 2088 2079 + ctera_dl MACH_CTERA_DL CTERA_DL 2089 2080 + socr MACH_SOCR SOCR 2090 2081 + htcoxygen MACH_HTCOXYGEN HTCOXYGEN 2091 2082 + heroc MACH_HEROC HEROC 2092 2083 + zeno6800 MACH_ZENO6800 ZENO6800 2093 2084 + sc2mcs MACH_SC2MCS SC2MCS 2094 2085 + gene100 MACH_GENE100 GENE100 2095 2086 + as353x MACH_AS353X AS353X 2096 2087 + sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097 2088 + at91sam9g20 MACH_AT91SAM9G20 AT91SAM9G20 2098 2089 + mv88f6192gtw_fe MACH_MV88F6192GTW_FE MV88F6192GTW_FE 2099 2090 + cc9200 MACH_CC9200 CC9200 2100 2091 + sm9200 MACH_SM9200 SM9200 2101 2092 + tp9200 MACH_TP9200 TP9200 2102 2093 + snapperdv MACH_SNAPPERDV SNAPPERDV 2103 2094 + avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104 2095 + avengers_lite1 MACH_AVENGERS_LITE1 AVENGERS_LITE1 2105 2096 + omap3axon MACH_OMAP3AXON OMAP3AXON 2106 2097 + ma8xx MACH_MA8XX MA8XX 2107 2098 + mp201ek MACH_MP201EK MP201EK 2108 2099 + davinci_tux MACH_DAVINCI_TUX DAVINCI_TUX 2109 2100 + mpa1600 MACH_MPA1600 MPA1600 2110 2101 + pelco_troy MACH_PELCO_TROY PELCO_TROY 2111 2102 + nsb667 MACH_NSB667 NSB667 2112 2103 + rovers5_4mpix MACH_ROVERS5_4MPIX ROVERS5_4MPIX 2113 2104 + twocom MACH_TWOCOM TWOCOM 2114 2105 + ubisys_p9_rcu3r2 MACH_UBISYS_P9_RCU3R2 UBISYS_P9_RCU3R2 2115 2106 + hero_espresso MACH_HERO_ESPRESSO HERO_ESPRESSO 2116 2107 + afeusb MACH_AFEUSB AFEUSB 2117 2108 + t830 MACH_T830 T830 2118 2109 + spd8020_cc MACH_SPD8020_CC SPD8020_CC 2119 2110 + om_3d7k MACH_OM_3D7K OM_3D7K 2120 2111 + picocom2 MACH_PICOCOM2 PICOCOM2 2121 2112 + uwg4mx27 MACH_UWG4MX27 UWG4MX27 2122 2113 + uwg4mx31 MACH_UWG4MX31 UWG4MX31 2123 2114 + cherry MACH_CHERRY CHERRY 2124 2115 + mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125 2116 + s3c2440turkiye MACH_S3C2440TURKIYE S3C2440TURKIYE 2126 2117 + tx37 MACH_TX37 TX37 2127 2118 + sbc2800_9g20 MACH_SBC2800_9G20 SBC2800_9G20 2128 2119 + benzglb MACH_BENZGLB BENZGLB 2129 2120 + benztd MACH_BENZTD BENZTD 2130 2121 + cartesio_plus MACH_CARTESIO_PLUS CARTESIO_PLUS 2131 2122 + solrad_g20 MACH_SOLRAD_G20 SOLRAD_G20 2132 2123 + mx27wallace MACH_MX27WALLACE MX27WALLACE 2133 2124 + fmzwebmodul MACH_FMZWEBMODUL FMZWEBMODUL 2134 2125 + rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135 2126 + smallogger MACH_SMALLOGGER SMALLOGGER 2136
+9 -1
include/linux/compiler-gcc.h
··· 52 52 #define __deprecated __attribute__((deprecated)) 53 53 #define __packed __attribute__((packed)) 54 54 #define __weak __attribute__((weak)) 55 - #define __naked __attribute__((naked)) 55 + 56 + /* 57 + * it doesn't make sense on ARM (currently the only user of __naked) to trace 58 + * naked functions because then mcount is called without stack and frame pointer 59 + * being set up and there is no chance to restore the lr register to the value 60 + * before mcount was called. 61 + */ 62 + #define __naked __attribute__((naked)) notrace 63 + 56 64 #define __noreturn __attribute__((noreturn)) 57 65 58 66 /*