Skip to content

Commit efa59a0

Browse files
author
Alex Shi
committed
Merge tag 'v4.4.46' into linux-linaro-lsk-v4.4
This is the 4.4.46 stable release
2 parents 261e8db + 6c1ed78 commit efa59a0

69 files changed

Lines changed: 448 additions & 171 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.

Documentation/devicetree/bindings/clock/imx31-clock.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Examples:
7777
clks: ccm@53f80000{
7878
compatible = "fsl,imx31-ccm";
7979
reg = <0x53f80000 0x4000>;
80-
interrupts = <0 31 0x04 0 53 0x04>;
80+
interrupts = <31>, <53>;
8181
#clock-cells = <1>;
8282
};
8383

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 = 44
3+
SUBLEVEL = 46
44
EXTRAVERSION =
55
NAME = Blurry Fish Butt
66

arch/arc/include/asm/delay.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ static inline void __delay(unsigned long loops)
2626
" lp 1f \n"
2727
" nop \n"
2828
"1: \n"
29-
: : "r"(loops));
29+
:
30+
: "r"(loops)
31+
: "lp_count");
3032
}
3133

3234
extern void __bad_udelay(void);

arch/arc/kernel/unaligned.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,9 @@ int misaligned_fixup(unsigned long address, struct pt_regs *regs,
241241
if (state.fault)
242242
goto fault;
243243

244+
/* clear any remanants of delay slot */
244245
if (delay_mode(regs)) {
245-
regs->ret = regs->bta;
246+
regs->ret = regs->bta ~1U;
246247
regs->status32 &= ~STATUS_DE_MASK;
247248
} else {
248249
regs->ret += state.instr_len;

arch/arm/boot/dts/da850-evm.dts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
#size-cells = <1>;
8686
compatible = "m25p64";
8787
spi-max-frequency = <30000000>;
88+
m25p,fast-read;
8889
reg = <0>;
8990
partition@0 {
9091
label = "U-Boot-SPL";

arch/arm/boot/dts/imx31.dtsi

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@
3030
};
3131
};
3232

33-
avic: avic-interrupt-controller@60000000 {
33+
avic: interrupt-controller@68000000 {
3434
compatible = "fsl,imx31-avic", "fsl,avic";
3535
interrupt-controller;
3636
#interrupt-cells = <1>;
37-
reg = <0x60000000 0x100000>;
37+
reg = <0x68000000 0x100000>;
3838
};
3939

4040
soc {
@@ -110,13 +110,6 @@
110110
interrupts = <19>;
111111
clocks = <&clks 25>;
112112
};
113-
114-
clks: ccm@53f80000{
115-
compatible = "fsl,imx31-ccm";
116-
reg = <0x53f80000 0x4000>;
117-
interrupts = <0 31 0x04 0 53 0x04>;
118-
#clock-cells = <1>;
119-
};
120113
};
121114

122115
aips@53f00000 { /* AIPS2 */
@@ -126,6 +119,13 @@
126119
reg = <0x53f00000 0x100000>;
127120
ranges;
128121

122+
clks: ccm@53f80000{
123+
compatible = "fsl,imx31-ccm";
124+
reg = <0x53f80000 0x4000>;
125+
interrupts = <31>, <53>;
126+
#clock-cells = <1>;
127+
};
128+
129129
gpt: timer@53f90000 {
130130
compatible = "fsl,imx31-gpt";
131131
reg = <0x53f90000 0x4000>;

arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,6 @@
319319
compatible = "fsl,imx6q-nitrogen6_max-sgtl5000",
320320
"fsl,imx-audio-sgtl5000";
321321
model = "imx6q-nitrogen6_max-sgtl5000";
322-
pinctrl-names = "default";
323-
pinctrl-0 = <&pinctrl_sgtl5000>;
324322
ssi-controller = <&ssi1>;
325323
audio-codec = <&codec>;
326324
audio-routing =
@@ -401,6 +399,8 @@
401399

402400
codec: sgtl5000@0a {
403401
compatible = "fsl,sgtl5000";
402+
pinctrl-names = "default";
403+
pinctrl-0 = <&pinctrl_sgtl5000>;
404404
reg = <0x0a>;
405405
clocks = <&clks 201>;
406406
VDDA-supply = <&reg_2p5v>;

arch/arm/include/asm/cputype.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@
8181
#define ARM_CPU_XSCALE_ARCH_V2 0x4000
8282
#define ARM_CPU_XSCALE_ARCH_V3 0x6000
8383

84+
/* Qualcomm implemented cores */
85+
#define ARM_CPU_PART_SCORPION 0x510002d0
86+
8487
extern unsigned int processor_id;
8588

8689
#ifdef CONFIG_CPU_CP15

arch/arm/kernel/hw_breakpoint.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,6 +1066,22 @@ static int __init arch_hw_breakpoint_init(void)
10661066
return 0;
10671067
}
10681068

1069+
/*
1070+
* Scorpion CPUs (at least those in APQ8060) seem to set DBGPRSR.SPD
1071+
* whenever a WFI is issued, even if the core is not powered down, in
1072+
* violation of the architecture. When DBGPRSR.SPD is set, accesses to
1073+
* breakpoint and watchpoint registers are treated as undefined, so
1074+
* this results in boot time and runtime failures when these are
1075+
* accessed and we unexpectedly take a trap.
1076+
*
1077+
* It's not clear if/how this can be worked around, so we blacklist
1078+
* Scorpion CPUs to avoid these issues.
1079+
*/
1080+
if (read_cpuid_part() == ARM_CPU_PART_SCORPION) {
1081+
pr_info("Scorpion CPU detected. Hardware breakpoints and watchpoints disabled\n");
1082+
return 0;
1083+
}
1084+
10691085
has_ossr = core_has_os_save_restore();
10701086

10711087
/* Determine how many BRPs/WRPs are available. */

arch/arm/kernel/smp_tlb.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
#include <linux/preempt.h>
1111
#include <linux/smp.h>
12+
#include <linux/uaccess.h>
1213

1314
#include <asm/smp_plat.h>
1415
#include <asm/tlbflush.h>
@@ -40,8 +41,11 @@ static inline void ipi_flush_tlb_mm(void *arg)
4041
static inline void ipi_flush_tlb_page(void *arg)
4142
{
4243
struct tlb_args *ta = (struct tlb_args *)arg;
44+
unsigned int __ua_flags = uaccess_save_and_enable();
4345

4446
local_flush_tlb_page(ta->ta_vma, ta->ta_start);
47+
48+
uaccess_restore(__ua_flags);
4549
}
4650

4751
static inline void ipi_flush_tlb_kernel_page(void *arg)
@@ -54,8 +58,11 @@ static inline void ipi_flush_tlb_kernel_page(void *arg)
5458
static inline void ipi_flush_tlb_range(void *arg)
5559
{
5660
struct tlb_args *ta = (struct tlb_args *)arg;
61+
unsigned int __ua_flags = uaccess_save_and_enable();
5762

5863
local_flush_tlb_range(ta->ta_vma, ta->ta_start, ta->ta_end);
64+
65+
uaccess_restore(__ua_flags);
5966
}
6067

6168
static inline void ipi_flush_tlb_kernel_range(void *arg)

0 commit comments

Comments
 (0)