History

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 ...

Linus Torvalds committed 17 years ago

Commit fbd81042 parents 18553c3 1522ac330 files · +226 −54Browse files

Unified · Split

30 files
  1. arch/arm/kernel/entry-common.S +4 −0
  2. arch/arm/kernel/fiq.c +2 −2
  3. arch/arm/mach-ep93xx/include/mach/platform.h +2 −0
  4. arch/arm/mach-mx1/devices.c +2 −0
  5. arch/arm/mach-mx1/mx1ads.c +1 −0
  6. arch/arm/mach-omap2/board-omap3beagle.c +3 −1
  7. arch/arm/mach-orion5x/common.c +7 −0
  8. arch/arm/mach-s3c6410/mach-smdk6410.c +2 −2
  9. arch/arm/mm/copypage-feroceon.c +1 −1
  10. arch/arm/mm/copypage-v3.c +1 −1
  11. arch/arm/mm/copypage-v4mc.c +1 −1
  12. arch/arm/mm/copypage-v4wb.c +1 −1
  13. arch/arm/mm/copypage-v4wt.c +1 −1
  14. arch/arm/mm/copypage-xsc3.c +1 −1
  15. arch/arm/mm/copypage-xscale.c +1 −1
  16. arch/arm/mm/dma-mapping.c +12 −8
  17. arch/arm/mm/init.c +1 −1
  18. arch/arm/mm/mmap.c +1 −1
  19. arch/arm/plat-omap/Makefile +2 −1
  20. arch/arm/plat-omap/common.c +5 −9
  21. arch/arm/plat-omap/include/mach/common.h +1 −1
  22. arch/arm/plat-omap/include/mach/pm.h +1 −1
  23. arch/arm/plat-s3c64xx/clock.c +1 −1
  24. arch/arm/plat-s3c64xx/gpiolib.c +1 −1
  25. arch/arm/plat-s3c64xx/include/plat/irqs.h +1 −1
  26. arch/arm/plat-s3c64xx/irq-eint.c +14 −1
  27. arch/arm/plat-s3c64xx/irq.c +1 −1
  28. arch/arm/plat-s3c64xx/s3c6400-clock.c +13 −11
  29. arch/arm/tools/mach-types +133 −3
  30. include/linux/compiler-gcc.h +9 −1
arch/arm/kernel/entry-common.S+4−0
@@ -111,6 +111,7 @@ ENTRY(mcount) · 110 unmodified lines
111111 .globl mcount_call
112112 mcount_call:
113113 bl ftrace_stub
114+ ldr lr, [fp, #-4] @ restore lr
114115 ldmia sp!, {r0-r3, pc}
115116
116117 ENTRY(ftrace_caller)
@@ -122,6 +123,7 @@ ENTRY(ftrace_caller) · 5 unmodified lines
122123 .globl ftrace_call
123124 ftrace_call:
124125 bl ftrace_stub
126+ ldr lr, [fp, #-4] @ restore lr
125127 ldmia sp!, {r0-r3, pc}
126128
127129 #else
@@ -133,6 +135,7 @@ ENTRY(mcount) · 5 unmodified lines
133135 adr r0, ftrace_stub
134136 cmp r0, r2
135137 bne trace
138+ ldr lr, [fp, #-4] @ restore lr
136139 ldmia sp!, {r0-r3, pc}
137140
138141 trace:
@@ -141,6 +144,7 @@ trace: · 2 unmodified lines
141144 sub r0, r0, #MCOUNT_INSN_SIZE
142145 mov lr, pc
143146 mov pc, r2
147+ mov lr, r1 @ restore lr
144148 ldmia sp!, {r0-r3, pc}
145149
146150 #endif /* CONFIG_DYNAMIC_FTRACE */
arch/arm/kernel/fiq.c+2−2
@@ -88,7 +88,7 @@ void set_fiq_handler(void *start, unsigned int length) · 87 unmodified lines
8888 * disable irqs for the duration. Note - these functions are almost
8989 * entirely coded in assembly.
9090 */
91−void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs)
91+void __naked set_fiq_regs(struct pt_regs *regs)
9292 {
9393 register unsigned long tmp;
9494 asm volatile (
@@ -106,7 +106,7 @@ void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) · 11 unmodified lines
106106 : "r" (&regs->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE));
107107 }
108108
109−void __attribute__((naked)) get_fiq_regs(struct pt_regs *regs)
109+void __naked get_fiq_regs(struct pt_regs *regs)
110110 {
111111 register unsigned long tmp;
112112 asm volatile (
arch/arm/mach-ep93xx/include/mach/platform.h+2−0
@@ -4,6 +4,8 @@ · 3 unmodified lines
44
55 #ifndef __ASSEMBLY__
66
7+struct i2c_board_info;
8+
79 struct ep93xx_eth_data
810 {
911 unsigned char dev_addr[6];
arch/arm/mach-mx1/devices.c+2−0
@@ -23,6 +23,8 @@ · 22 unmodified lines
2323 #include <linux/init.h>
2424 #include <linux/platform_device.h>
2525 #include <linux/gpio.h>
26+
27+#include <mach/irqs.h>
2628 #include <mach/hardware.h>
2729
2830 static struct resource imx_csi_resources[] = {
arch/arm/mach-mx1/mx1ads.c+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
2121 #include <asm/mach/arch.h>
2222 #include <asm/mach/time.h>
2323
24+#include <mach/irqs.h>
2425 #include <mach/hardware.h>
2526 #include <mach/common.h>
2627 #include <mach/imx-uart.h>
arch/arm/mach-omap2/board-omap3beagle.c+3−1
@@ -178,7 +178,9 @@ static int __init omap3_beagle_i2c_init(void) · 177 unmodified lines
178178 #ifdef CONFIG_I2C2_OMAP_BEAGLE
179179 omap_register_i2c_bus(2, 400, NULL, 0);
180180 #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);
182184 return 0;
183185 }
184186
arch/arm/mach-orion5x/common.c+7−0
@@ -431,6 +431,10 @@ void __init orion5x_uart1_init(void) · 430 unmodified lines
431431 /*****************************************************************************
432432 * XOR engine
433433 ****************************************************************************/
434+struct mv_xor_platform_shared_data orion5x_xor_shared_data = {
435+ .dram = &orion5x_mbus_dram_info,
436+};
437+
434438 static struct resource orion5x_xor_shared_resources[] = {
435439 {
436440 .name = "xor low",
@@ -448,6 +452,9 @@ static struct resource orion5x_xor_shared_resources[] = { · 11 unmodified lines
448452 static struct platform_device orion5x_xor_shared = {
449453 .name = MV_XOR_SHARED_NAME,
450454 .id = 0,
455+ .dev = {
456+ .platform_data = &orion5x_xor_shared_data,
457+ },
451458 .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources),
452459 .resource = orion5x_xor_shared_resources,
453460 };
arch/arm/mach-s3c6410/mach-smdk6410.c+2−2
@@ -129,7 +129,7 @@ static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = { · 128 unmodified lines
129129 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
130130 };
131131
132−struct map_desc smdk6410_iodesc[] = {};
132+static struct map_desc smdk6410_iodesc[] = {};
133133
134134 static struct platform_device *smdk6410_devices[] __initdata = {
135135 #ifdef CONFIG_SMDK6410_SD_CH0
@@ -146,7 +146,7 @@ static struct platform_device *smdk6410_devices[] __initdata = { · 10 unmodified lines
146146
147147 static struct i2c_board_info i2c_devs0[] __initdata = {
148148 { I2C_BOARD_INFO("24c08", 0x50), },
149− { I2C_BOARD_INFO("WM8580", 0X1b), },
149+ { I2C_BOARD_INFO("wm8580", 0x1b), },
150150 };
151151
152152 static struct i2c_board_info i2c_devs1[] __initdata = {
arch/arm/mm/copypage-feroceon.c+1−1
@@ -13,7 +13,7 @@ · 12 unmodified lines
1313 #include <linux/init.h>
1414 #include <linux/highmem.h>
1515
16−static void __attribute__((naked))
16+static void __naked
1717 feroceon_copy_user_page(void *kto, const void *kfrom)
1818 {
1919 asm("\
arch/arm/mm/copypage-v3.c+1−1
@@ -15,7 +15,7 @@ · 14 unmodified lines
1515 *
1616 * FIXME: do we need to handle cache stuff...
1717 */
18−static void __attribute__((naked))
18+static void __naked
1919 v3_copy_user_page(void *kto, const void *kfrom)
2020 {
2121 asm("\n\
arch/arm/mm/copypage-v4mc.c+1−1
@@ -44,7 +44,7 @@ static DEFINE_SPINLOCK(minicache_lock); · 43 unmodified lines
4444 * instruction. If your processor does not supply this, you have to write your
4545 * own copy_user_highpage that does the right thing.
4646 */
47−static void __attribute__((naked))
47+static void __naked
4848 mc_copy_user_page(void *from, void *to)
4949 {
5050 asm volatile(
arch/arm/mm/copypage-v4wb.c+1−1
@@ -22,7 +22,7 @@ · 21 unmodified lines
2222 * instruction. If your processor does not supply this, you have to write your
2323 * own copy_user_highpage that does the right thing.
2424 */
25−static void __attribute__((naked))
25+static void __naked
2626 v4wb_copy_user_page(void *kto, const void *kfrom)
2727 {
2828 asm("\
arch/arm/mm/copypage-v4wt.c+1−1
@@ -20,7 +20,7 @@ · 19 unmodified lines
2020 * dirty data in the cache. However, we do have to ensure that
2121 * subsequent reads are up to date.
2222 */
23−static void __attribute__((naked))
23+static void __naked
2424 v4wt_copy_user_page(void *kto, const void *kfrom)
2525 {
2626 asm("\
arch/arm/mm/copypage-xsc3.c+1−1
@@ -29,7 +29,7 @@ · 28 unmodified lines
2929 * if we eventually end up using our copied page.
3030 *
3131 */
32−static void __attribute__((naked))
32+static void __naked
3333 xsc3_mc_copy_user_page(void *kto, const void *kfrom)
3434 {
3535 asm("\
arch/arm/mm/copypage-xscale.c+1−1
@@ -42,7 +42,7 @@ static DEFINE_SPINLOCK(minicache_lock); · 41 unmodified lines
4242 * Dcache aliasing issue. The writes will be forwarded to the write buffer,
4343 * and merged as appropriate.
4444 */
45−static void __attribute__((naked))
45+static void __naked
4646 mc_copy_user_page(void *from, void *to)
4747 {
4848 /*
arch/arm/mm/dma-mapping.c+12−8
@@ -490,26 +490,30 @@ core_initcall(consistent_init); · 489 unmodified lines
490490 */
491491 void dma_cache_maint(const void *start, size_t size, int direction)
492492 {
493− const void *end = start + size;
493+ void (*inner_op)(const void *, const void *);
494+ void (*outer_op)(unsigned long, unsigned long);
494495
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));
496497
497498 switch (direction) {
498499 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;
501502 break;
502503 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;
505506 break;
506507 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;
509510 break;
510511 default:
511512 BUG();
512513 }
514+
515+ inner_op(start, start + size);
516+ outer_op(__pa(start), __pa(start) + size);
513517 }
514518 EXPORT_SYMBOL(dma_cache_maint);
515519
arch/arm/mm/init.c+1−1
@@ -382,7 +382,7 @@ void __init bootmem_init(void) · 381 unmodified lines
382382 for_each_node(node)
383383 bootmem_free_node(node, mi);
384384
385− high_memory = __va(memend_pfn << PAGE_SHIFT);
385+ high_memory = __va((memend_pfn << PAGE_SHIFT) - 1) + 1;
386386
387387 /*
388388 * This doesn't seem to be used by the Linux memory manager any
arch/arm/mm/mmap.c+1−1
@@ -124,7 +124,7 @@ int valid_phys_addr_range(unsigned long addr, size_t size) · 123 unmodified lines
124124 {
125125 if (addr < PHYS_OFFSET)
126126 return 0;
127− if (addr + size > __pa(high_memory))
127+ if (addr + size >= __pa(high_memory - 1))
128128 return 0;
129129
130130 return 1;
arch/arm/plat-omap/Makefile+2−1
@@ -18,7 +18,8 @@ obj-$(CONFIG_CPU_FREQ) += cpu-omap.o · 17 unmodified lines
1818 obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
1919 obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
2020 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)
2223
2324 # OMAP mailbox framework
2425 obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
arch/arm/plat-omap/common.c+5−9
@@ -199,21 +199,17 @@ static struct clocksource clocksource_32k = { · 198 unmodified lines
199199 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
200200 };
201201
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−
210202 /*
211203 * Returns current time from boot in nsecs. It's OK for this to wrap
212204 * around for now, as it's just a relative time stamp.
213205 */
214206 unsigned long long sched_clock(void)
215207 {
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;
217213 }
218214
219215 static int __init omap_init_clocksource_32k(void)
arch/arm/plat-omap/include/mach/common.h+1−1
@@ -35,7 +35,7 @@ extern void omap_map_common_io(void); · 34 unmodified lines
3535 extern struct sys_timer omap_timer;
3636 extern void omap_serial_init(void);
3737 extern void omap_serial_enable_clocks(int enable);
38−#ifdef CONFIG_I2C_OMAP
38+#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
3939 extern int omap_register_i2c_bus(int bus_id, u32 clkrate,
4040 struct i2c_board_info const *info,
4141 unsigned len);
arch/arm/plat-omap/include/mach/pm.h+1−1
@@ -108,7 +108,7 @@ · 107 unmodified lines
108108 !defined(CONFIG_ARCH_OMAP15XX) && \
109109 !defined(CONFIG_ARCH_OMAP16XX) && \
110110 !defined(CONFIG_ARCH_OMAP24XX)
111−#error "Power management for this processor not implemented yet"
111+#warning "Power management for this processor not implemented yet"
112112 #endif
113113
114114 #ifndef __ASSEMBLER__
arch/arm/plat-s3c64xx/clock.c+1−1
@@ -248,7 +248,7 @@ static struct clk *clks[] __initdata = { · 247 unmodified lines
248248 &clk_48m,
249249 };
250250
251−void s3c64xx_register_clocks(void)
251+void __init s3c64xx_register_clocks(void)
252252 {
253253 struct clk *clkp;
254254 int ret;
arch/arm/plat-s3c64xx/gpiolib.c+1−1
@@ -417,4 +417,4 @@ static __init int s3c64xx_gpiolib_init(void) · 416 unmodified lines
417417 return 0;
418418 }
419419
420−arch_initcall(s3c64xx_gpiolib_init);
420+core_initcall(s3c64xx_gpiolib_init);
arch/arm/plat-s3c64xx/include/plat/irqs.h+1−1
@@ -117,7 +117,7 @@ · 116 unmodified lines
117117 #define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12)
118118 #define IRQ_NFC S3C64XX_IRQ_VIC1(13)
119119 #define IRQ_CFCON S3C64XX_IRQ_VIC1(14)
120−#define IRQ_UHOST S3C64XX_IRQ_VIC1(15)
120+#define IRQ_USBH S3C64XX_IRQ_VIC1(15)
121121 #define IRQ_SPI0 S3C64XX_IRQ_VIC1(16)
122122 #define IRQ_SPI1 S3C64XX_IRQ_VIC1(17)
123123 #define IRQ_IIC S3C64XX_IRQ_VIC1(18)
arch/arm/plat-s3c64xx/irq-eint.c+14−1
@@ -14,12 +14,15 @@ · 13 unmodified lines
1414
1515 #include <linux/kernel.h>
1616 #include <linux/interrupt.h>
17+#include <linux/gpio.h>
1718 #include <linux/irq.h>
1819 #include <linux/io.h>
1920
2021 #include <asm/hardware/vic.h>
2122
2223 #include <plat/regs-irqtype.h>
24+#include <plat/regs-gpio.h>
25+#include <plat/gpio-cfg.h>
2326
2427 #include <mach/map.h>
2528 #include <plat/cpu.h>
@@ -74,6 +77,7 @@ static void s3c_irq_eint_maskack(unsigned int irq) · 48 unmodified lines
7477 static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type)
7578 {
7679 int offs = eint_offset(irq);
80+ int pin;
7781 int shift;
7882 u32 ctrl, mask;
7983 u32 newvalue = 0;
@@ -125,6 +129,15 @@ static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) · 45 unmodified lines
125129 ctrl |= newvalue << shift;
126130 __raw_writel(ctrl, reg);
127131
132+ /* set the GPIO pin appropriately */
133+
134+ if (offs < 23)
135+ pin = S3C64XX_GPN(offs);
136+ else
137+ pin = S3C64XX_GPM(offs - 23);
138+
139+ s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(2));
140+
128141 return 0;
129142 }
130143
@@ -181,7 +194,7 @@ static void s3c_irq_demux_eint20_27(unsigned int irq, struct irq_desc *desc) · 50 unmodified lines
181194 s3c_irq_demux_eint(20, 27);
182195 }
183196
184−int __init s3c64xx_init_irq_eint(void)
197+static int __init s3c64xx_init_irq_eint(void)
185198 {
186199 int irq;
187200
arch/arm/plat-s3c64xx/irq.c+1−1
@@ -207,7 +207,7 @@ static struct irq_chip s3c_irq_uart = { · 206 unmodified lines
207207
208208 static void __init s3c64xx_uart_irq(struct uart_irq *uirq)
209209 {
210− void *reg_base = uirq->regs;
210+ void __iomem *reg_base = uirq->regs;
211211 unsigned int irq;
212212 int offs;
213213
arch/arm/plat-s3c64xx/s3c6400-clock.c+13−11
@@ -36,7 +36,7 @@ · 35 unmodified lines
3636 * ext_xtal_mux for want of an actual name from the manual.
3737 */
3838
39−struct clk clk_ext_xtal_mux = {
39+static struct clk clk_ext_xtal_mux = {
4040 .name = "ext_xtal",
4141 .id = -1,
4242 };
@@ -63,7 +63,7 @@ struct clksrc_clk { · 20 unmodified lines
6363 void __iomem *reg_divider;
6464 };
6565
66−struct clk clk_fout_apll = {
66+static struct clk clk_fout_apll = {
6767 .name = "fout_apll",
6868 .id = -1,
6969 };
@@ -78,7 +78,7 @@ static struct clk_sources clk_src_apll = { · 8 unmodified lines
7878 .nr_sources = ARRAY_SIZE(clk_src_apll_list),
7979 };
8080
81−struct clksrc_clk clk_mout_apll = {
81+static struct clksrc_clk clk_mout_apll = {
8282 .clk = {
8383 .name = "mout_apll",
8484 .id = -1,
@@ -88,7 +88,7 @@ struct clksrc_clk clk_mout_apll = { · 3 unmodified lines
8888 .sources = &clk_src_apll,
8989 };
9090
91−struct clk clk_fout_epll = {
91+static struct clk clk_fout_epll = {
9292 .name = "fout_epll",
9393 .id = -1,
9494 };
@@ -103,7 +103,7 @@ static struct clk_sources clk_src_epll = { · 8 unmodified lines
103103 .nr_sources = ARRAY_SIZE(clk_src_epll_list),
104104 };
105105
106−struct clksrc_clk clk_mout_epll = {
106+static struct clksrc_clk clk_mout_epll = {
107107 .clk = {
108108 .name = "mout_epll",
109109 .id = -1,
@@ -123,7 +123,7 @@ static struct clk_sources clk_src_mpll = { · 13 unmodified lines
123123 .nr_sources = ARRAY_SIZE(clk_src_mpll_list),
124124 };
125125
126−struct clksrc_clk clk_mout_mpll = {
126+static struct clksrc_clk clk_mout_mpll = {
127127 .clk = {
128128 .name = "mout_mpll",
129129 .id = -1,
@@ -145,7 +145,7 @@ static unsigned long s3c64xx_clk_doutmpll_get_rate(struct clk *clk) · 15 unmodified lines
145145 return rate;
146146 }
147147
148−struct clk clk_dout_mpll = {
148+static struct clk clk_dout_mpll = {
149149 .name = "dout_mpll",
150150 .id = -1,
151151 .parent = &clk_mout_mpll.clk,
@@ -189,10 +189,10 @@ static struct clk_sources clkset_uart = { · 37 unmodified lines
189189 };
190190
191191 static struct clk *clkset_uhost_list[] = {
192+ &clk_48m,
192193 &clk_mout_epll.clk,
193194 &clk_dout_mpll,
194195 &clk_fin_epll,
195− &clk_48m,
196196 };
197197
198198 static struct clk_sources clkset_uhost = {
@@ -239,10 +239,12 @@ static int s3c64xx_setrate_clksrc(struct clk *clk, unsigned long rate) · 40 unmodified lines
239239
240240 rate = clk_round_rate(clk, rate);
241241 div = clk_get_rate(clk->parent) / rate;
242+ if (div > 16)
243+ return -EINVAL;
242244
243245 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;
246248 __raw_writel(val, reg);
247249
248250 return 0;
@@ -351,7 +353,7 @@ static struct clksrc_clk clk_mmc2 = { · 102 unmodified lines
351353
352354 static struct clksrc_clk clk_usbhost = {
353355 .clk = {
354− .name = "usb-host-bus",
356+ .name = "usb-bus-host",
355357 .id = -1,
356358 .ctrlbit = S3C_CLKCON_SCLK_UHOST,
357359 .enable = s3c64xx_sclk_ctrl,
arch/arm/tools/mach-types+133−3
@@ -12,7 +12,7 @@ · 11 unmodified lines
1212 #
1313 # http://www.arm.linux.org.uk/developer/machines/?action=new
1414 #
15−# Last update: Sun Nov 30 16:39:36 2008
15+# Last update: Thu Mar 12 18:01:45 2009
1616 #
1717 # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
1818 #
@@ -1811,7 +1811,7 @@ pilz_pmi5 MACH_PILZ_PMI5 PILZ_PMI5 1820 · 1792 unmodified lines
18111811 jade MACH_JADE JADE 1821
18121812 ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822
18131813 gprisc3 MACH_GPRISC3 GPRISC3 1823
1814−stamp9260 MACH_STAMP9260 STAMP9260 1824
1814+stamp9g20 MACH_STAMP9G20 STAMP9G20 1824
18151815 smdk6430 MACH_SMDK6430 SMDK6430 1825
18161816 smdkc100 MACH_SMDKC100 SMDKC100 1826
18171817 tavorevb MACH_TAVOREVB TAVOREVB 1827
@@ -1993,4 +1993,134 @@ spark MACH_SPARK SPARK 2002 · 175 unmodified lines
19931993 benzina MACH_BENZINA BENZINA 2003
19941994 blaze MACH_BLAZE BLAZE 2004
19951995 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
include/linux/compiler-gcc.h+9−1
@@ -52,7 +52,15 @@ · 51 unmodified lines
5252 #define __deprecated __attribute__((deprecated))
5353 #define __packed __attribute__((packed))
5454 #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+
5664 #define __noreturn __attribute__((noreturn))
5765
5866 /*