Skip to content

Commit 30d41bf

Browse files
author
Linus Torvalds
committed
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 3473/1: Use numbers 0-15 for the VFP double registers [ARM] 3472/1: Use the D variants of FLDMIA/FSTMIA on ARMv6 [ARM] 3471/1: FTOSI functions should return 0 for NaN [ARM] 3470/1: Clear the HWCAP bits for the disabled kernel features [ARM] 3469/1: S3C24XX: clkout missing hclk selector [ARM] 3468/1: S3C2410: SMDK common include fix [ARM] 3461/1: ARM: OMAP: Fix clk_get() when using id and name [ARM] 3460/1: ARM: OMAP: Remove unnecessary nop_release() [ARM] 3459/1: ixp23xx: fix debug serial macros for big-endian operation [ARM] Allow decompressor to be built with -ffunction-sections [ARM] Fix SA110/SA1100 cache flushing [ARM] ebsa110: Fix incorrect serial port address [ARM] Fix ebsa110 debug macros [ARM] Move FLUSH_BASE macros to asm/arch/memory.h [ARM] Remove unnecessary extra parens in include/asm-arm/memory.h [ARM] arm's arch_local_page_offset() fix against 2.6.17-rc1
2 parents e38d557 + 1356c19 commit 30d41bf

File tree

35 files changed

+140
-161
lines changed

35 files changed

+140
-161
lines changed

arch/arm/boot/compressed/vmlinux.lds.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ SECTIONS
1818
_start = .;
1919
*(.start)
2020
*(.text)
21+
*(.text.*)
2122
*(.fixup)
2223
*(.gnu.warning)
2324
*(.rodata)

arch/arm/kernel/setup.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,12 @@ static void __init setup_processor(void)
322322
sprintf(system_utsname.machine, "%s%c", list->arch_name, ENDIANNESS);
323323
sprintf(elf_platform, "%s%c", list->elf_name, ENDIANNESS);
324324
elf_hwcap = list->elf_hwcap;
325+
#ifndef CONFIG_ARM_THUMB
326+
elf_hwcap &= ~HWCAP_THUMB;
327+
#endif
328+
#ifndef CONFIG_VFP
329+
elf_hwcap &= ~HWCAP_VFP;
330+
#endif
325331

326332
cpu_proc_init();
327333
}

arch/arm/mach-omap1/devices.c

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@
2525
#include <asm/arch/mux.h>
2626
#include <asm/arch/gpio.h>
2727

28-
extern void omap_nop_release(struct device *dev);
29-
30-
/*-------------------------------------------------------------------------*/
31-
3228
#if defined(CONFIG_OMAP1610_IR) || defined(CONFIG_OMAP161O_IR_MODULE)
3329

3430
static u64 irda_dmamask = 0xffffffff;
@@ -37,7 +33,6 @@ static struct platform_device omap1610ir_device = {
3733
.name = "omap1610-ir",
3834
.id = -1,
3935
.dev = {
40-
.release = omap_nop_release,
4136
.dma_mask = &irda_dmamask,
4237
},
4338
};
@@ -84,9 +79,6 @@ static struct resource rtc_resources[] = {
8479
static struct platform_device omap_rtc_device = {
8580
.name = "omap_rtc",
8681
.id = -1,
87-
.dev = {
88-
.release = omap_nop_release,
89-
},
9082
.num_resources = ARRAY_SIZE(rtc_resources),
9183
.resource = rtc_resources,
9284
};
@@ -124,9 +116,6 @@ static struct resource sti_resources[] = {
124116
static struct platform_device sti_device = {
125117
.name = "sti",
126118
.id = -1,
127-
.dev = {
128-
.release = omap_nop_release,
129-
},
130119
.num_resources = ARRAY_SIZE(sti_resources),
131120
.resource = sti_resources,
132121
};

arch/arm/mach-omap2/devices.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@
2525
#include <asm/arch/mux.h>
2626
#include <asm/arch/gpio.h>
2727

28-
extern void omap_nop_release(struct device *dev);
29-
30-
/*-------------------------------------------------------------------------*/
31-
3228
#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
3329

3430
#define OMAP2_I2C_BASE2 0x48072000
@@ -49,9 +45,6 @@ static struct resource i2c_resources2[] = {
4945
static struct platform_device omap_i2c_device2 = {
5046
.name = "i2c_omap",
5147
.id = 2,
52-
.dev = {
53-
.release = omap_nop_release,
54-
},
5548
.num_resources = ARRAY_SIZE(i2c_resources2),
5649
.resource = i2c_resources2,
5750
};
@@ -100,9 +93,6 @@ static struct resource sti_resources[] = {
10093
static struct platform_device sti_device = {
10194
.name = "sti",
10295
.id = -1,
103-
.dev = {
104-
.release = omap_nop_release,
105-
},
10696
.num_resources = ARRAY_SIZE(sti_resources),
10797
.resource = sti_resources,
10898
};

arch/arm/mach-s3c2410/clock.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,8 @@ static int s3c24xx_clkout_setparent(struct clk *clk, struct clk *parent)
367367
source = S3C2410_MISCCR_CLK0_UPLL;
368368
else if (parent == &clk_f)
369369
source = S3C2410_MISCCR_CLK0_FCLK;
370+
else if (parent == &clk_h)
371+
source = S3C2410_MISCCR_CLK0_HCLK;
370372
else if (parent == &clk_p)
371373
source = S3C2410_MISCCR_CLK0_PCLK;
372374
else if (clk == &s3c24xx_clkout0 && parent == &s3c24xx_dclk0)
@@ -376,6 +378,8 @@ static int s3c24xx_clkout_setparent(struct clk *clk, struct clk *parent)
376378
else
377379
return -EINVAL;
378380

381+
clk->parent = parent;
382+
379383
if (clk == &s3c24xx_dclk0)
380384
mask = S3C2410_MISCCR_CLK0_MASK;
381385
else {

arch/arm/mach-s3c2410/common-smdk.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
#include <asm/arch/nand.h>
3939

40+
#include "common-smdk.h"
4041
#include "devs.h"
4142
#include "pm.h"
4243

arch/arm/mm/cache-v4wb.S

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#include <linux/config.h>
1111
#include <linux/linkage.h>
1212
#include <linux/init.h>
13-
#include <asm/hardware.h>
13+
#include <asm/memory.h>
1414
#include <asm/page.h>
1515
#include "proc-macros.S"
1616

@@ -46,6 +46,11 @@
4646
*/
4747
#define CACHE_DLIMIT (CACHE_DSIZE * 4)
4848

49+
.data
50+
flush_base:
51+
.long FLUSH_BASE
52+
.text
53+
4954
/*
5055
* flush_user_cache_all()
5156
*
@@ -63,11 +68,21 @@ ENTRY(v4wb_flush_kern_cache_all)
6368
mov ip, #0
6469
mcr p15, 0, ip, c7, c5, 0 @ invalidate I cache
6570
__flush_whole_cache:
66-
mov r0, #FLUSH_BASE
67-
add r1, r0, #CACHE_DSIZE
68-
1: ldr r2, [r0], #32
69-
cmp r0, r1
71+
ldr r3, =flush_base
72+
ldr r1, [r3, #0]
73+
eor r1, r1, #CACHE_DSIZE
74+
str r1, [r3, #0]
75+
add r2, r1, #CACHE_DSIZE
76+
1: ldr r3, [r1], #32
77+
cmp r1, r2
78+
blo 1b
79+
#ifdef FLUSH_BASE_MINICACHE
80+
add r2, r2, #FLUSH_BASE_MINICACHE - FLUSH_BASE
81+
sub r1, r2, #512 @ only 512 bytes
82+
1: ldr r3, [r1], #32
83+
cmp r1, r2
7084
blo 1b
85+
#endif
7186
mcr p15, 0, ip, c7, c10, 4 @ drain write buffer
7287
mov pc, lr
7388

@@ -82,6 +97,7 @@ __flush_whole_cache:
8297
* - flags - vma_area_struct flags describing address space
8398
*/
8499
ENTRY(v4wb_flush_user_cache_range)
100+
mov ip, #0
85101
sub r3, r1, r0 @ calculate total size
86102
tst r2, #VM_EXEC @ executable region?
87103
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache

arch/arm/mm/init.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
#include <asm/mach-types.h>
2222
#include <asm/setup.h>
23+
#include <asm/sizes.h>
2324
#include <asm/tlb.h>
2425

2526
#include <asm/mach/arch.h>
@@ -455,14 +456,14 @@ static void __init devicemaps_init(struct machine_desc *mdesc)
455456
#ifdef FLUSH_BASE
456457
map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS);
457458
map.virtual = FLUSH_BASE;
458-
map.length = PGDIR_SIZE;
459+
map.length = SZ_1M;
459460
map.type = MT_CACHECLEAN;
460461
create_mapping(&map);
461462
#endif
462463
#ifdef FLUSH_BASE_MINICACHE
463-
map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS + PGDIR_SIZE);
464+
map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS + SZ_1M);
464465
map.virtual = FLUSH_BASE_MINICACHE;
465-
map.length = PGDIR_SIZE;
466+
map.length = SZ_1M;
466467
map.type = MT_MINICLEAN;
467468
create_mapping(&map);
468469
#endif

arch/arm/mm/proc-sa110.S

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,7 @@
2626
* the cache line size of the I and D cache
2727
*/
2828
#define DCACHELINESIZE 32
29-
#define FLUSH_OFFSET 32768
3029

31-
.macro flush_110_dcache rd, ra, re
32-
ldr \rd, =flush_base
33-
ldr \ra, [\rd]
34-
eor \ra, \ra, #FLUSH_OFFSET
35-
str \ra, [\rd]
36-
add \re, \ra, #16384 @ only necessary for 16k
37-
1001: ldr \rd, [\ra], #DCACHELINESIZE
38-
teq \re, \ra
39-
bne 1001b
40-
.endm
41-
42-
.data
43-
flush_base:
44-
.long FLUSH_BASE
4530
.text
4631

4732
/*
@@ -145,13 +130,11 @@ ENTRY(cpu_sa110_dcache_clean_area)
145130
*/
146131
.align 5
147132
ENTRY(cpu_sa110_switch_mm)
148-
flush_110_dcache r3, ip, r1
149-
mov r1, #0
150-
mcr p15, 0, r1, c7, c5, 0 @ invalidate I cache
151-
mcr p15, 0, r1, c7, c10, 4 @ drain WB
133+
str lr, [sp, #-4]!
134+
bl v4wb_flush_kern_cache_all @ clears IP
152135
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
153-
mcr p15, 0, r1, c8, c7, 0 @ invalidate I & D TLBs
154-
mov pc, lr
136+
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
137+
ldr pc, [sp], #4
155138

156139
/*
157140
* cpu_sa110_set_pte(ptep, pte)

arch/arm/mm/proc-sa1100.S

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -30,30 +30,6 @@
3030
* the cache line size of the I and D cache
3131
*/
3232
#define DCACHELINESIZE 32
33-
#define FLUSH_OFFSET 32768
34-
35-
.macro flush_1100_dcache rd, ra, re
36-
ldr \rd, =flush_base
37-
ldr \ra, [\rd]
38-
eor \ra, \ra, #FLUSH_OFFSET
39-
str \ra, [\rd]
40-
add \re, \ra, #8192 @ only necessary for 8k
41-
1001: ldr \rd, [\ra], #DCACHELINESIZE
42-
teq \re, \ra
43-
bne 1001b
44-
#ifdef FLUSH_BASE_MINICACHE
45-
add \ra, \ra, #FLUSH_BASE_MINICACHE - FLUSH_BASE
46-
add \re, \ra, #512 @ only 512 bytes
47-
1002: ldr \rd, [\ra], #DCACHELINESIZE
48-
teq \re, \ra
49-
bne 1002b
50-
#endif
51-
.endm
52-
53-
.data
54-
flush_base:
55-
.long FLUSH_BASE
56-
.text
5733

5834
__INIT
5935

@@ -79,9 +55,8 @@ ENTRY(cpu_sa1100_proc_fin)
7955
stmfd sp!, {lr}
8056
mov ip, #PSR_F_BIT | PSR_I_BIT | SVC_MODE
8157
msr cpsr_c, ip
82-
flush_1100_dcache r0, r1, r2 @ clean caches
83-
mov r0, #0
84-
mcr p15, 0, r0, c15, c2, 2 @ Disable clock switching
58+
bl v4wb_flush_kern_cache_all
59+
mcr p15, 0, ip, c15, c2, 2 @ Disable clock switching
8560
mrc p15, 0, r0, c1, c0, 0 @ ctrl register
8661
bic r0, r0, #0x1000 @ ...i............
8762
bic r0, r0, #0x000e @ ............wca.
@@ -167,14 +142,12 @@ ENTRY(cpu_sa1100_dcache_clean_area)
167142
*/
168143
.align 5
169144
ENTRY(cpu_sa1100_switch_mm)
170-
flush_1100_dcache r3, ip, r1
171-
mov ip, #0
172-
mcr p15, 0, ip, c7, c5, 0 @ invalidate I cache
145+
str lr, [sp, #-4]!
146+
bl v4wb_flush_kern_cache_all @ clears IP
173147
mcr p15, 0, ip, c9, c0, 0 @ invalidate RB
174-
mcr p15, 0, ip, c7, c10, 4 @ drain WB
175148
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
176149
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
177-
mov pc, lr
150+
ldr pc, [sp], #4
178151

179152
/*
180153
* cpu_sa1100_set_pte(ptep, pte)

arch/arm/plat-omap/clock.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ struct clk * clk_get(struct device *dev, const char *id)
5858
if (p->id == idno &&
5959
strcmp(id, p->name) == 0 && try_module_get(p->owner)) {
6060
clk = p;
61-
break;
61+
goto found;
6262
}
6363
}
6464

@@ -69,6 +69,7 @@ struct clk * clk_get(struct device *dev, const char *id)
6969
}
7070
}
7171

72+
found:
7273
mutex_unlock(&clocks_mutex);
7374

7475
return clk;

arch/arm/plat-omap/devices.c

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,6 @@
2626
#include <asm/arch/gpio.h>
2727
#include <asm/arch/menelaus.h>
2828

29-
30-
void omap_nop_release(struct device *dev)
31-
{
32-
/* Nothing */
33-
}
34-
35-
/*-------------------------------------------------------------------------*/
36-
3729
#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
3830

3931
#define OMAP1_I2C_BASE 0xfffb3800
@@ -59,9 +51,6 @@ static struct resource i2c_resources1[] = {
5951
static struct platform_device omap_i2c_device1 = {
6052
.name = "i2c_omap",
6153
.id = 1,
62-
.dev = {
63-
.release = omap_nop_release,
64-
},
6554
.num_resources = ARRAY_SIZE(i2c_resources1),
6655
.resource = i2c_resources1,
6756
};
@@ -187,7 +176,6 @@ static struct platform_device mmc_omap_device1 = {
187176
.name = "mmci-omap",
188177
.id = 1,
189178
.dev = {
190-
.release = omap_nop_release,
191179
.dma_mask = &mmc1_dmamask,
192180
.platform_data = &mmc1_conf,
193181
},
@@ -217,7 +205,6 @@ static struct platform_device mmc_omap_device2 = {
217205
.name = "mmci-omap",
218206
.id = 2,
219207
.dev = {
220-
.release = omap_nop_release,
221208
.dma_mask = &mmc2_dmamask,
222209
.platform_data = &mmc2_conf,
223210
},
@@ -321,9 +308,6 @@ static struct resource uwire_resources[] = {
321308
static struct platform_device omap_uwire_device = {
322309
.name = "omap_uwire",
323310
.id = -1,
324-
.dev = {
325-
.release = omap_nop_release,
326-
},
327311
.num_resources = ARRAY_SIZE(uwire_resources),
328312
.resource = uwire_resources,
329313
};
@@ -365,9 +349,6 @@ static struct resource wdt_resources[] = {
365349
static struct platform_device omap_wdt_device = {
366350
.name = "omap_wdt",
367351
.id = -1,
368-
.dev = {
369-
.release = omap_nop_release,
370-
},
371352
.num_resources = ARRAY_SIZE(wdt_resources),
372353
.resource = wdt_resources,
373354
};
@@ -401,9 +382,6 @@ static struct resource rng_resources[] = {
401382
static struct platform_device omap_rng_device = {
402383
.name = "omap_rng",
403384
.id = -1,
404-
.dev = {
405-
.release = omap_nop_release,
406-
},
407385
.num_resources = ARRAY_SIZE(rng_resources),
408386
.resource = rng_resources,
409387
};

0 commit comments

Comments
 (0)