Skip to content

Commit 722c908

Browse files
committed
Merge tag 'irqchip-4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core
Pull the second batch of irqchip updates for 4.15 from marc Zyngier: - A number of MIPS GIC updates and cleanups - One GICv4 update - Another firmware workaround for GICv2 - Support for Mason8 GPIOs - Tiny documentation fix
2 parents 10d94ff + 61dc367 commit 722c908

File tree

241 files changed

+3090
-1903
lines changed

Some content is hidden

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

241 files changed

+3090
-1903
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1713,6 +1713,13 @@
17131713
irqaffinity= [SMP] Set the default irq affinity mask
17141714
The argument is a cpu list, as described above.
17151715

1716+
irqchip.gicv2_force_probe=
1717+
[ARM, ARM64]
1718+
Format: <bool>
1719+
Force the kernel to look for the second 4kB page
1720+
of a GICv2 controller even if the memory range
1721+
exposed by the device tree is too small.
1722+
17161723
irqfixup [HW]
17171724
When an interrupt is not handled search all handlers
17181725
for it. Intended to get systems with badly broken

Documentation/cpu-freq/index.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ cpufreq-stats.txt - General description of sysfs cpufreq stats.
3232

3333
index.txt - File index, Mailing list and Links (this document)
3434

35-
intel-pstate.txt - Intel pstate cpufreq driver specific file.
36-
3735
pcc-cpufreq.txt - PCC cpufreq driver specific file.
3836

3937

Documentation/devicetree/bindings/interrupt-controller/amlogic,meson-gpio-intc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ number of interrupt exposed depends on the SoC.
1010
Required properties:
1111

1212
- compatible : must have "amlogic,meson8-gpio-intc” and either
13+
“amlogic,meson8-gpio-intc” for meson8 SoCs (S802) or
1314
“amlogic,meson8b-gpio-intc” for meson8b SoCs (S805) or
1415
“amlogic,meson-gxbb-gpio-intc” for GXBB SoCs (S905) or
1516
“amlogic,meson-gxl-gpio-intc” for GXL SoCs (S905X, S912)

Documentation/devicetree/bindings/leds/ams,as3645a.txt

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@ Required properties
1515

1616
compatible : Must be "ams,as3645a".
1717
reg : The I2C address of the device. Typically 0x30.
18+
#address-cells : 1
19+
#size-cells : 0
1820

1921

20-
Required properties of the "flash" child node
21-
=============================================
22+
Required properties of the flash child node (0)
23+
===============================================
2224

25+
reg: 0
2326
flash-timeout-us: Flash timeout in microseconds. The value must be in
2427
the range [100000, 850000] and divisible by 50000.
2528
flash-max-microamp: Maximum flash current in microamperes. Has to be
@@ -33,20 +36,21 @@ ams,input-max-microamp: Maximum flash controller input current. The
3336
and divisible by 50000.
3437

3538

36-
Optional properties of the "flash" child node
37-
=============================================
39+
Optional properties of the flash child node
40+
===========================================
3841

3942
label : The label of the flash LED.
4043

4144

42-
Required properties of the "indicator" child node
43-
=================================================
45+
Required properties of the indicator child node (1)
46+
===================================================
4447

48+
reg: 1
4549
led-max-microamp: Maximum indicator current. The allowed values are
4650
2500, 5000, 7500 and 10000.
4751

48-
Optional properties of the "indicator" child node
49-
=================================================
52+
Optional properties of the indicator child node
53+
===============================================
5054

5155
label : The label of the indicator LED.
5256

@@ -55,16 +59,20 @@ Example
5559
=======
5660

5761
as3645a@30 {
62+
#address-cells: 1
63+
#size-cells: 0
5864
reg = <0x30>;
5965
compatible = "ams,as3645a";
60-
flash {
66+
flash@0 {
67+
reg = <0x0>;
6168
flash-timeout-us = <150000>;
6269
flash-max-microamp = <320000>;
6370
led-max-microamp = <60000>;
6471
ams,input-max-microamp = <1750000>;
6572
label = "as3645a:flash";
6673
};
67-
indicator {
74+
indicator@1 {
75+
reg = <0x1>;
6876
led-max-microamp = <10000>;
6977
label = "as3645a:indicator";
7078
};

MAINTAINERS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8597,6 +8597,12 @@ M: Sean Wang <[email protected]>
85978597
S: Maintained
85988598
F: drivers/media/rc/mtk-cir.c
85998599

8600+
MEDIATEK PMIC LED DRIVER
8601+
M: Sean Wang <[email protected]>
8602+
S: Maintained
8603+
F: drivers/leds/leds-mt6323.c
8604+
F: Documentation/devicetree/bindings/leds/leds-mt6323.txt
8605+
86008606
MEDIATEK ETHERNET DRIVER
86018607
M: Felix Fietkau <[email protected]>
86028608
M: John Crispin <[email protected]>

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
VERSION = 4
22
PATCHLEVEL = 14
33
SUBLEVEL = 0
4-
EXTRAVERSION = -rc2
4+
EXTRAVERSION = -rc3
55
NAME = Fearless Coyote
66

77
# *DOCUMENTATION*
@@ -1172,11 +1172,11 @@ headers_check: headers_install
11721172

11731173
PHONY += kselftest
11741174
kselftest:
1175-
$(Q)$(MAKE) -C tools/testing/selftests run_tests
1175+
$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests
11761176

11771177
PHONY += kselftest-clean
11781178
kselftest-clean:
1179-
$(Q)$(MAKE) -C tools/testing/selftests clean
1179+
$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests clean
11801180

11811181
PHONY += kselftest-merge
11821182
kselftest-merge:

arch/arm/boot/dts/omap3-n950-n9.dtsi

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -267,15 +267,19 @@
267267
clock-frequency = <400000>;
268268

269269
as3645a@30 {
270+
#address-cells = <1>;
271+
#size-cells = <0>;
270272
reg = <0x30>;
271273
compatible = "ams,as3645a";
272-
flash {
274+
flash@0 {
275+
reg = <0x0>;
273276
flash-timeout-us = <150000>;
274277
flash-max-microamp = <320000>;
275278
led-max-microamp = <60000>;
276-
peak-current-limit = <1750000>;
279+
ams,input-max-microamp = <1750000>;
277280
};
278-
indicator {
281+
indicator@1 {
282+
reg = <0x1>;
279283
led-max-microamp = <10000>;
280284
};
281285
};

arch/arm64/include/asm/pgtable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ static inline phys_addr_t pmd_page_paddr(pmd_t pmd)
401401
/* Find an entry in the third-level page table. */
402402
#define pte_index(addr) (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
403403

404-
#define pte_offset_phys(dir,addr) (pmd_page_paddr(*(dir)) + pte_index(addr) * sizeof(pte_t))
404+
#define pte_offset_phys(dir,addr) (pmd_page_paddr(READ_ONCE(*(dir))) + pte_index(addr) * sizeof(pte_t))
405405
#define pte_offset_kernel(dir,addr) ((pte_t *)__va(pte_offset_phys((dir), (addr))))
406406

407407
#define pte_offset_map(dir,addr) pte_offset_kernel((dir), (addr))

arch/arm64/kernel/head.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,7 @@ ENTRY(kimage_vaddr)
384384
* booted in EL1 or EL2 respectively.
385385
*/
386386
ENTRY(el2_setup)
387+
msr SPsel, #1 // We want to use SP_EL{1,2}
387388
mrs x0, CurrentEL
388389
cmp x0, #CurrentEL_EL2
389390
b.eq 1f

arch/arm64/mm/fault.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,7 @@ static const struct fault_info fault_info[] = {
651651
{ do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 0 translation fault" },
652652
{ do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 1 translation fault" },
653653
{ do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 2 translation fault" },
654-
{ do_page_fault, SIGSEGV, SEGV_MAPERR, "level 3 translation fault" },
654+
{ do_translation_fault, SIGSEGV, SEGV_MAPERR, "level 3 translation fault" },
655655
{ do_bad, SIGBUS, 0, "unknown 8" },
656656
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 1 access flag fault" },
657657
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 2 access flag fault" },

arch/microblaze/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ config MICROBLAZE
3939
# Endianness selection
4040
choice
4141
prompt "Endianness selection"
42-
default CPU_BIG_ENDIAN
42+
default CPU_LITTLE_ENDIAN
4343
help
4444
microblaze architectures can be configured for either little or
4545
big endian formats. Be sure to select the appropriate mode.

arch/microblaze/include/uapi/asm/Kbuild

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ generic-y += fcntl.h
77
generic-y += ioctl.h
88
generic-y += ioctls.h
99
generic-y += ipcbuf.h
10+
generic-y += kvm_para.h
1011
generic-y += mman.h
1112
generic-y += msgbuf.h
1213
generic-y += param.h

arch/microblaze/kernel/dma.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ int dma_direct_mmap_coherent(struct device *dev, struct vm_area_struct *vma,
165165
unsigned long attrs)
166166
{
167167
#ifdef CONFIG_MMU
168-
unsigned long user_count = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
168+
unsigned long user_count = vma_pages(vma);
169169
unsigned long count = PAGE_ALIGN(size) >> PAGE_SHIFT;
170170
unsigned long off = vma->vm_pgoff;
171171
unsigned long pfn;

arch/powerpc/kvm/book3s_hv_rmhandlers.S

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1121,6 +1121,13 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
11211121
BEGIN_FTR_SECTION
11221122
mtspr SPRN_PPR, r0
11231123
END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
1124+
1125+
/* Move canary into DSISR to check for later */
1126+
BEGIN_FTR_SECTION
1127+
li r0, 0x7fff
1128+
mtspr SPRN_HDSISR, r0
1129+
END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300)
1130+
11241131
ld r0, VCPU_GPR(R0)(r4)
11251132
ld r4, VCPU_GPR(R4)(r4)
11261133

@@ -1956,9 +1963,14 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_RADIX)
19561963
kvmppc_hdsi:
19571964
ld r3, VCPU_KVM(r9)
19581965
lbz r0, KVM_RADIX(r3)
1959-
cmpwi r0, 0
19601966
mfspr r4, SPRN_HDAR
19611967
mfspr r6, SPRN_HDSISR
1968+
BEGIN_FTR_SECTION
1969+
/* Look for DSISR canary. If we find it, retry instruction */
1970+
cmpdi r6, 0x7fff
1971+
beq 6f
1972+
END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300)
1973+
cmpwi r0, 0
19621974
bne .Lradix_hdsi /* on radix, just save DAR/DSISR/ASDR */
19631975
/* HPTE not found fault or protection fault? */
19641976
andis. r0, r6, (DSISR_NOHPTE | DSISR_PROTFAULT)@h

arch/um/kernel/time.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ static struct clocksource timer_clocksource = {
9898
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
9999
};
100100

101-
static void __init timer_setup(void)
101+
static void __init um_timer_setup(void)
102102
{
103103
int err;
104104

@@ -132,5 +132,5 @@ void read_persistent_clock(struct timespec *ts)
132132
void __init time_init(void)
133133
{
134134
timer_set_signal_handler();
135-
late_time_init = timer_setup;
135+
late_time_init = um_timer_setup;
136136
}

arch/x86/events/intel/cstate.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,7 @@ static const struct x86_cpu_id intel_cstates_match[] __initconst = {
552552

553553
X86_CSTATES_MODEL(INTEL_FAM6_SKYLAKE_MOBILE, snb_cstates),
554554
X86_CSTATES_MODEL(INTEL_FAM6_SKYLAKE_DESKTOP, snb_cstates),
555+
X86_CSTATES_MODEL(INTEL_FAM6_SKYLAKE_X, snb_cstates),
555556

556557
X86_CSTATES_MODEL(INTEL_FAM6_KABYLAKE_MOBILE, snb_cstates),
557558
X86_CSTATES_MODEL(INTEL_FAM6_KABYLAKE_DESKTOP, snb_cstates),
@@ -560,6 +561,9 @@ static const struct x86_cpu_id intel_cstates_match[] __initconst = {
560561
X86_CSTATES_MODEL(INTEL_FAM6_XEON_PHI_KNM, knl_cstates),
561562

562563
X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT, glm_cstates),
564+
X86_CSTATES_MODEL(INTEL_FAM6_ATOM_DENVERTON, glm_cstates),
565+
566+
X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GEMINI_LAKE, glm_cstates),
563567
{ },
564568
};
565569
MODULE_DEVICE_TABLE(x86cpu, intel_cstates_match);

arch/x86/events/intel/rapl.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,9 @@ static const struct x86_cpu_id rapl_cpu_match[] __initconst = {
775775
X86_RAPL_MODEL_MATCH(INTEL_FAM6_KABYLAKE_DESKTOP, skl_rapl_init),
776776

777777
X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GOLDMONT, hsw_rapl_init),
778+
X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_DENVERTON, hsw_rapl_init),
779+
780+
X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GEMINI_LAKE, hsw_rapl_init),
778781
{},
779782
};
780783

arch/x86/events/intel/uncore_snbep.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3462,7 +3462,7 @@ static struct intel_uncore_ops skx_uncore_iio_ops = {
34623462
static struct intel_uncore_type skx_uncore_iio = {
34633463
.name = "iio",
34643464
.num_counters = 4,
3465-
.num_boxes = 5,
3465+
.num_boxes = 6,
34663466
.perf_ctr_bits = 48,
34673467
.event_ctl = SKX_IIO0_MSR_PMON_CTL0,
34683468
.perf_ctr = SKX_IIO0_MSR_PMON_CTR0,
@@ -3492,7 +3492,7 @@ static const struct attribute_group skx_uncore_format_group = {
34923492
static struct intel_uncore_type skx_uncore_irp = {
34933493
.name = "irp",
34943494
.num_counters = 2,
3495-
.num_boxes = 5,
3495+
.num_boxes = 6,
34963496
.perf_ctr_bits = 48,
34973497
.event_ctl = SKX_IRP0_MSR_PMON_CTL0,
34983498
.perf_ctr = SKX_IRP0_MSR_PMON_CTR0,

arch/x86/events/msr.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ static bool test_intel(int idx)
6363
case INTEL_FAM6_ATOM_SILVERMONT1:
6464
case INTEL_FAM6_ATOM_SILVERMONT2:
6565
case INTEL_FAM6_ATOM_AIRMONT:
66+
67+
case INTEL_FAM6_ATOM_GOLDMONT:
68+
case INTEL_FAM6_ATOM_DENVERTON:
69+
70+
case INTEL_FAM6_ATOM_GEMINI_LAKE:
71+
72+
case INTEL_FAM6_XEON_PHI_KNL:
73+
case INTEL_FAM6_XEON_PHI_KNM:
6674
if (idx == PERF_MSR_SMI)
6775
return true;
6876
break;

arch/x86/ia32/ia32_signal.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
231231
ksig->ka.sa.sa_restorer)
232232
sp = (unsigned long) ksig->ka.sa.sa_restorer;
233233

234-
if (fpu->fpstate_active) {
234+
if (fpu->initialized) {
235235
unsigned long fx_aligned, math_size;
236236

237237
sp = fpu__alloc_mathframe(sp, 1, &fx_aligned, &math_size);

arch/x86/include/asm/asm.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
# define __ASM_FORM_COMMA(x) " " #x ","
1212
#endif
1313

14-
#ifdef CONFIG_X86_32
14+
#ifndef __x86_64__
15+
/* 32 bit */
1516
# define __ASM_SEL(a,b) __ASM_FORM(a)
1617
# define __ASM_SEL_RAW(a,b) __ASM_FORM_RAW(a)
1718
#else
19+
/* 64 bit */
1820
# define __ASM_SEL(a,b) __ASM_FORM(b)
1921
# define __ASM_SEL_RAW(a,b) __ASM_FORM_RAW(b)
2022
#endif
@@ -139,8 +141,8 @@
139141
* gets set up by the containing function. If you forget to do this, objtool
140142
* may print a "call without frame pointer save/setup" warning.
141143
*/
142-
register unsigned int __asm_call_sp asm("esp");
143-
#define ASM_CALL_CONSTRAINT "+r" (__asm_call_sp)
144+
register unsigned long current_stack_pointer asm(_ASM_SP);
145+
#define ASM_CALL_CONSTRAINT "+r" (current_stack_pointer)
144146
#endif
145147

146148
#endif /* _ASM_X86_ASM_H */

0 commit comments

Comments
 (0)