Skip to content

Commit c6c9171

Browse files
author
Alex Shi
committed
Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android
2 parents ef380b2 + c0426cc commit c6c9171

58 files changed

Lines changed: 450 additions & 216 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
VERSION = 4
22
PATCHLEVEL = 4
3-
SUBLEVEL = 99
3+
SUBLEVEL = 100
44
EXTRAVERSION =
55
NAME = Blurry Fish Butt
66

arch/arm/boot/dts/am33xx.dtsi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,11 @@
142142
};
143143

144144
scm_conf: scm_conf@0 {
145-
compatible = "syscon";
145+
compatible = "syscon", "simple-bus";
146146
reg = <0x0 0x800>;
147147
#address-cells = <1>;
148148
#size-cells = <1>;
149+
ranges = <0 0 0x800>;
149150

150151
scm_clocks: clocks {
151152
#address-cells = <1>;

arch/arm/boot/dts/dm814x.dtsi

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
};
139139

140140
uart1: uart@20000 {
141-
compatible = "ti,omap3-uart";
141+
compatible = "ti,am3352-uart", "ti,omap3-uart";
142142
ti,hwmods = "uart1";
143143
reg = <0x20000 0x2000>;
144144
clock-frequency = <48000000>;
@@ -148,7 +148,7 @@
148148
};
149149

150150
uart2: uart@22000 {
151-
compatible = "ti,omap3-uart";
151+
compatible = "ti,am3352-uart", "ti,omap3-uart";
152152
ti,hwmods = "uart2";
153153
reg = <0x22000 0x2000>;
154154
clock-frequency = <48000000>;
@@ -158,7 +158,7 @@
158158
};
159159

160160
uart3: uart@24000 {
161-
compatible = "ti,omap3-uart";
161+
compatible = "ti,am3352-uart", "ti,omap3-uart";
162162
ti,hwmods = "uart3";
163163
reg = <0x24000 0x2000>;
164164
clock-frequency = <48000000>;
@@ -189,10 +189,11 @@
189189
ranges = <0 0x160000 0x16d000>;
190190

191191
scm_conf: scm_conf@0 {
192-
compatible = "syscon";
192+
compatible = "syscon", "simple-bus";
193193
reg = <0x0 0x800>;
194194
#address-cells = <1>;
195195
#size-cells = <1>;
196+
ranges = <0 0 0x800>;
196197

197198
scm_clocks: clocks {
198199
#address-cells = <1>;

arch/arm/boot/dts/dm816x.dtsi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@
347347
};
348348

349349
uart1: uart@48020000 {
350-
compatible = "ti,omap3-uart";
350+
compatible = "ti,am3352-uart", "ti,omap3-uart";
351351
ti,hwmods = "uart1";
352352
reg = <0x48020000 0x2000>;
353353
clock-frequency = <48000000>;
@@ -357,7 +357,7 @@
357357
};
358358

359359
uart2: uart@48022000 {
360-
compatible = "ti,omap3-uart";
360+
compatible = "ti,am3352-uart", "ti,omap3-uart";
361361
ti,hwmods = "uart2";
362362
reg = <0x48022000 0x2000>;
363363
clock-frequency = <48000000>;
@@ -367,7 +367,7 @@
367367
};
368368

369369
uart3: uart@48024000 {
370-
compatible = "ti,omap3-uart";
370+
compatible = "ti,am3352-uart", "ti,omap3-uart";
371371
ti,hwmods = "uart3";
372372
reg = <0x48024000 0x2000>;
373373
clock-frequency = <48000000>;

arch/arm/crypto/aesbs-glue.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ static struct crypto_alg aesbs_algs[] = { {
357357
}, {
358358
.cra_name = "cbc(aes)",
359359
.cra_driver_name = "cbc-aes-neonbs",
360-
.cra_priority = 300,
360+
.cra_priority = 250,
361361
.cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER|CRYPTO_ALG_ASYNC,
362362
.cra_blocksize = AES_BLOCK_SIZE,
363363
.cra_ctxsize = sizeof(struct async_helper_ctx),
@@ -377,7 +377,7 @@ static struct crypto_alg aesbs_algs[] = { {
377377
}, {
378378
.cra_name = "ctr(aes)",
379379
.cra_driver_name = "ctr-aes-neonbs",
380-
.cra_priority = 300,
380+
.cra_priority = 250,
381381
.cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER|CRYPTO_ALG_ASYNC,
382382
.cra_blocksize = 1,
383383
.cra_ctxsize = sizeof(struct async_helper_ctx),
@@ -397,7 +397,7 @@ static struct crypto_alg aesbs_algs[] = { {
397397
}, {
398398
.cra_name = "xts(aes)",
399399
.cra_driver_name = "xts-aes-neonbs",
400-
.cra_priority = 300,
400+
.cra_priority = 250,
401401
.cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER|CRYPTO_ALG_ASYNC,
402402
.cra_blocksize = AES_BLOCK_SIZE,
403403
.cra_ctxsize = sizeof(struct async_helper_ctx),

arch/arm/mach-omap2/pdata-quirks.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,6 @@ static void pdata_quirks_check(struct pdata_init *quirks)
522522
if (of_machine_is_compatible(quirks->compatible)) {
523523
if (quirks->fn)
524524
quirks->fn();
525-
break;
526525
}
527526
quirks++;
528527
}

arch/arm64/boot/dts/broadcom/ns2.dtsi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3131
*/
3232

33+
/memreserve/ 0x81000000 0x00200000;
34+
3335
#include <dt-bindings/interrupt-controller/arm-gic.h>
3436

3537
/memreserve/ 0x84b00000 0x00000008;

arch/mips/include/asm/asm.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@
5454
.align 2; \
5555
.type symbol, @function; \
5656
.ent symbol, 0; \
57-
symbol: .frame sp, 0, ra
57+
symbol: .frame sp, 0, ra; \
58+
.insn
5859

5960
/*
6061
* NESTED - declare nested routine entry point
@@ -63,8 +64,9 @@ symbol: .frame sp, 0, ra
6364
.globl symbol; \
6465
.align 2; \
6566
.type symbol, @function; \
66-
.ent symbol, 0; \
67-
symbol: .frame sp, framesize, rpc
67+
.ent symbol, 0; \
68+
symbol: .frame sp, framesize, rpc; \
69+
.insn
6870

6971
/*
7072
* END - mark end of function
@@ -86,7 +88,7 @@ symbol: .frame sp, framesize, rpc
8688
#define FEXPORT(symbol) \
8789
.globl symbol; \
8890
.type symbol, @function; \
89-
symbol:
91+
symbol: .insn
9092

9193
/*
9294
* ABS - export absolute symbol

arch/mips/kernel/setup.c

Lines changed: 75 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,35 @@ void __init detect_memory_region(phys_addr_t start, phys_addr_t sz_min, phys_add
152152
add_memory_region(start, size, BOOT_MEM_RAM);
153153
}
154154

155+
bool __init memory_region_available(phys_addr_t start, phys_addr_t size)
156+
{
157+
int i;
158+
bool in_ram = false, free = true;
159+
160+
for (i = 0; i < boot_mem_map.nr_map; i++) {
161+
phys_addr_t start_, end_;
162+
163+
start_ = boot_mem_map.map[i].addr;
164+
end_ = boot_mem_map.map[i].addr + boot_mem_map.map[i].size;
165+
166+
switch (boot_mem_map.map[i].type) {
167+
case BOOT_MEM_RAM:
168+
if (start >= start_ && start + size <= end_)
169+
in_ram = true;
170+
break;
171+
case BOOT_MEM_RESERVED:
172+
if ((start >= start_ && start < end_) ||
173+
(start < start_ && start + size >= start_))
174+
free = false;
175+
break;
176+
default:
177+
continue;
178+
}
179+
}
180+
181+
return in_ram && free;
182+
}
183+
155184
static void __init print_memory_map(void)
156185
{
157186
int i;
@@ -300,11 +329,19 @@ static void __init bootmem_init(void)
300329

301330
#else /* !CONFIG_SGI_IP27 */
302331

332+
static unsigned long __init bootmap_bytes(unsigned long pages)
333+
{
334+
unsigned long bytes = DIV_ROUND_UP(pages, 8);
335+
336+
return ALIGN(bytes, sizeof(long));
337+
}
338+
303339
static void __init bootmem_init(void)
304340
{
305341
unsigned long reserved_end;
306342
unsigned long mapstart = ~0UL;
307343
unsigned long bootmap_size;
344+
bool bootmap_valid = false;
308345
int i;
309346

310347
/*
@@ -385,11 +422,42 @@ static void __init bootmem_init(void)
385422
#endif
386423

387424
/*
388-
* Initialize the boot-time allocator with low memory only.
425+
* check that mapstart doesn't overlap with any of
426+
* memory regions that have been reserved through eg. DTB
389427
*/
390-
bootmap_size = init_bootmem_node(NODE_DATA(0), mapstart,
391-
min_low_pfn, max_low_pfn);
428+
bootmap_size = bootmap_bytes(max_low_pfn - min_low_pfn);
429+
430+
bootmap_valid = memory_region_available(PFN_PHYS(mapstart),
431+
bootmap_size);
432+
for (i = 0; i < boot_mem_map.nr_map && !bootmap_valid; i++) {
433+
unsigned long mapstart_addr;
434+
435+
switch (boot_mem_map.map[i].type) {
436+
case BOOT_MEM_RESERVED:
437+
mapstart_addr = PFN_ALIGN(boot_mem_map.map[i].addr +
438+
boot_mem_map.map[i].size);
439+
if (PHYS_PFN(mapstart_addr) < mapstart)
440+
break;
441+
442+
bootmap_valid = memory_region_available(mapstart_addr,
443+
bootmap_size);
444+
if (bootmap_valid)
445+
mapstart = PHYS_PFN(mapstart_addr);
446+
break;
447+
default:
448+
break;
449+
}
450+
}
392451

452+
if (!bootmap_valid)
453+
panic("No memory area to place a bootmap bitmap");
454+
455+
/*
456+
* Initialize the boot-time allocator with low memory only.
457+
*/
458+
if (bootmap_size != init_bootmem_node(NODE_DATA(0), mapstart,
459+
min_low_pfn, max_low_pfn))
460+
panic("Unexpected memory size required for bootmap");
393461

394462
for (i = 0; i < boot_mem_map.nr_map; i++) {
395463
unsigned long start, end;
@@ -438,6 +506,10 @@ static void __init bootmem_init(void)
438506
continue;
439507
default:
440508
/* Not usable memory */
509+
if (start > min_low_pfn && end < max_low_pfn)
510+
reserve_bootmem(boot_mem_map.map[i].addr,
511+
boot_mem_map.map[i].size,
512+
BOOTMEM_DEFAULT);
441513
continue;
442514
}
443515

arch/mips/netlogic/common/irq.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ asmlinkage void plat_irq_dispatch(void)
275275
do_IRQ(nlm_irq_to_xirq(node, i));
276276
}
277277

278-
#ifdef CONFIG_OF
278+
#ifdef CONFIG_CPU_XLP
279279
static const struct irq_domain_ops xlp_pic_irq_domain_ops = {
280280
.xlate = irq_domain_xlate_onetwocell,
281281
};
@@ -348,7 +348,7 @@ void __init arch_init_irq(void)
348348
#if defined(CONFIG_CPU_XLR)
349349
nlm_setup_fmn_irq();
350350
#endif
351-
#if defined(CONFIG_OF)
351+
#ifdef CONFIG_CPU_XLP
352352
of_irq_init(xlp_pic_irq_ids);
353353
#endif
354354
}

0 commit comments

Comments
 (0)