Skip to content

Commit 2e751df

Browse files
committed
Merge tag 'kvmarm-for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
kvmarm updates for 4.11 - GICv3 save restore - Cache flushing fixes - MSI injection fix for GICv3 ITS - Physical timer emulation support
2 parents a0e136d + 7b6b463 commit 2e751df

File tree

295 files changed

+3818
-1399
lines changed

Some content is hidden

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

295 files changed

+3818
-1399
lines changed

Documentation/devicetree/bindings/mtd/tango-nand.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Required properties:
55
- compatible: "sigma,smp8758-nand"
66
- reg: address/size of nfc_reg, nfc_mem, and pbus_reg
77
- dmas: reference to the DMA channel used by the controller
8-
- dma-names: "nfc_sbox"
8+
- dma-names: "rxtx"
99
- clocks: reference to the system clock
1010
- #address-cells: <1>
1111
- #size-cells: <0>
@@ -17,9 +17,9 @@ Example:
1717

1818
nandc: nand-controller@2c000 {
1919
compatible = "sigma,smp8758-nand";
20-
reg = <0x2c000 0x30 0x2d000 0x800 0x20000 0x1000>;
20+
reg = <0x2c000 0x30>, <0x2d000 0x800>, <0x20000 0x1000>;
2121
dmas = <&dma0 3>;
22-
dma-names = "nfc_sbox";
22+
dma-names = "rxtx";
2323
clocks = <&clkgen SYS_CLK>;
2424
#address-cells = <1>;
2525
#size-cells = <0>;

Documentation/devicetree/bindings/net/ti,dp83867.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
Required properties:
44
- reg - The ID number for the phy, usually a small integer
55
- ti,rx-internal-delay - RGMII Receive Clock Delay - see dt-bindings/net/ti-dp83867.h
6-
for applicable values
6+
for applicable values. Required only if interface type is
7+
PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_RXID
78
- ti,tx-internal-delay - RGMII Transmit Clock Delay - see dt-bindings/net/ti-dp83867.h
8-
for applicable values
9+
for applicable values. Required only if interface type is
10+
PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_TXID
911
- ti,fifo-depth - Transmitt FIFO depth- see dt-bindings/net/ti-dp83867.h
1012
for applicable values
1113

Documentation/devicetree/bindings/spi/sh-msiof.txt

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
Renesas MSIOF spi controller
22

33
Required properties:
4-
- compatible : "renesas,msiof-<soctype>" for SoCs,
5-
"renesas,sh-msiof" for SuperH, or
6-
"renesas,sh-mobile-msiof" for SH Mobile series.
7-
Examples with soctypes are:
8-
"renesas,msiof-r8a7790" (R-Car H2)
4+
- compatible : "renesas,msiof-r8a7790" (R-Car H2)
95
"renesas,msiof-r8a7791" (R-Car M2-W)
106
"renesas,msiof-r8a7792" (R-Car V2H)
117
"renesas,msiof-r8a7793" (R-Car M2-N)
128
"renesas,msiof-r8a7794" (R-Car E2)
139
"renesas,msiof-r8a7796" (R-Car M3-W)
1410
"renesas,msiof-sh73a0" (SH-Mobile AG5)
11+
"renesas,sh-mobile-msiof" (generic SH-Mobile compatibile device)
12+
"renesas,rcar-gen2-msiof" (generic R-Car Gen2 compatible device)
13+
"renesas,rcar-gen3-msiof" (generic R-Car Gen3 compatible device)
14+
"renesas,sh-msiof" (deprecated)
15+
16+
When compatible with the generic version, nodes
17+
must list the SoC-specific version corresponding
18+
to the platform first followed by the generic
19+
version.
20+
1521
- reg : A list of offsets and lengths of the register sets for
1622
the device.
1723
If only one register set is present, it is to be used
@@ -61,7 +67,8 @@ Documentation/devicetree/bindings/pinctrl/renesas,*.
6167
Example:
6268

6369
msiof0: spi@e6e20000 {
64-
compatible = "renesas,msiof-r8a7791";
70+
compatible = "renesas,msiof-r8a7791",
71+
"renesas,rcar-gen2-msiof";
6572
reg = <0 0xe6e20000 0 0x0064>;
6673
interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>;
6774
clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>;

Documentation/virtual/kvm/devices/arm-vgic-v3.txt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Groups:
118118
-EBUSY: One or more VCPUs are running
119119

120120

121-
KVM_DEV_ARM_VGIC_CPU_SYSREGS
121+
KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS
122122
Attributes:
123123
The attr field of kvm_device_attr encodes two values:
124124
bits: | 63 .... 32 | 31 .... 16 | 15 .... 0 |
@@ -139,13 +139,15 @@ Groups:
139139
All system regs accessed through this API are (rw, 64-bit) and
140140
kvm_device_attr.addr points to a __u64 value.
141141

142-
KVM_DEV_ARM_VGIC_CPU_SYSREGS accesses the CPU interface registers for the
142+
KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS accesses the CPU interface registers for the
143143
CPU specified by the mpidr field.
144144

145+
CPU interface registers access is not implemented for AArch32 mode.
146+
Error -ENXIO is returned when accessed in AArch32 mode.
145147
Errors:
146148
-ENXIO: Getting or setting this register is not yet supported
147149
-EBUSY: VCPU is running
148-
-EINVAL: Invalid mpidr supplied
150+
-EINVAL: Invalid mpidr or register value supplied
149151

150152

151153
KVM_DEV_ARM_VGIC_GRP_NR_IRQS
@@ -204,3 +206,6 @@ Groups:
204206
architecture defined MPIDR, and the field is encoded as follows:
205207
| 63 .... 56 | 55 .... 48 | 47 .... 40 | 39 .... 32 |
206208
| Aff3 | Aff2 | Aff1 | Aff0 |
209+
Errors:
210+
-EINVAL: vINTID is not multiple of 32 or
211+
info field is not VGIC_LEVEL_INFO_LINE_LEVEL

MAINTAINERS

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -976,6 +976,7 @@ M: Russell King <linux@armlinux.org.uk>
976976
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
977977
W: http://www.armlinux.org.uk/
978978
S: Maintained
979+
T: git git://git.armlinux.org.uk/~rmk/linux-arm.git
979980
F: arch/arm/
980981

981982
ARM SUB-ARCHITECTURES
@@ -1153,6 +1154,7 @@ ARM/CLKDEV SUPPORT
11531154
M: Russell King <linux@armlinux.org.uk>
11541155
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
11551156
S: Maintained
1157+
T: git git://git.armlinux.org.uk/~rmk/linux-arm.git clkdev
11561158
F: arch/arm/include/asm/clkdev.h
11571159
F: drivers/clk/clkdev.c
11581160

@@ -1688,6 +1690,7 @@ M: Krzysztof Kozlowski <krzk@kernel.org>
16881690
R: Javier Martinez Canillas <javier@osg.samsung.com>
16891691
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
16901692
L: linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
1693+
Q: https://patchwork.kernel.org/project/linux-samsung-soc/list/
16911694
S: Maintained
16921695
F: arch/arm/boot/dts/s3c*
16931696
F: arch/arm/boot/dts/s5p*
@@ -7697,8 +7700,10 @@ F: drivers/net/dsa/mv88e6xxx/
76977700
F: Documentation/devicetree/bindings/net/dsa/marvell.txt
76987701

76997702
MARVELL ARMADA DRM SUPPORT
7700-
M: Russell King <rmk+kernel@armlinux.org.uk>
7703+
M: Russell King <linux@armlinux.org.uk>
77017704
S: Maintained
7705+
T: git git://git.armlinux.org.uk/~rmk/linux-arm.git drm-armada-devel
7706+
T: git git://git.armlinux.org.uk/~rmk/linux-arm.git drm-armada-fixes
77027707
F: drivers/gpu/drm/armada/
77037708
F: include/uapi/drm/armada_drm.h
77047709
F: Documentation/devicetree/bindings/display/armada/
@@ -8903,8 +8908,10 @@ S: Supported
89038908
F: drivers/nfc/nxp-nci
89048909

89058910
NXP TDA998X DRM DRIVER
8906-
M: Russell King <rmk+kernel@armlinux.org.uk>
8911+
M: Russell King <linux@armlinux.org.uk>
89078912
S: Supported
8913+
T: git git://git.armlinux.org.uk/~rmk/linux-arm.git drm-tda998x-devel
8914+
T: git git://git.armlinux.org.uk/~rmk/linux-arm.git drm-tda998x-fixes
89088915
F: drivers/gpu/drm/i2c/tda998x_drv.c
89098916
F: include/drm/i2c/tda998x.h
89108917

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
VERSION = 4
22
PATCHLEVEL = 10
33
SUBLEVEL = 0
4-
EXTRAVERSION = -rc4
5-
NAME = Roaring Lionus
4+
EXTRAVERSION = -rc5
5+
NAME = Anniversary Edition
66

77
# *DOCUMENTATION*
88
# To see a list of typical targets execute "make help"

arch/arc/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ config ARC
2929
select HAVE_KPROBES
3030
select HAVE_KRETPROBES
3131
select HAVE_MEMBLOCK
32-
select HAVE_MOD_ARCH_SPECIFIC if ARC_DW2_UNWIND
32+
select HAVE_MOD_ARCH_SPECIFIC
3333
select HAVE_OPROFILE
3434
select HAVE_PERF_EVENTS
3535
select HANDLE_DOMAIN_IRQ

arch/arc/include/asm/cache.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ extern unsigned long perip_base, perip_end;
6767
#define ARC_REG_IC_PTAG_HI 0x1F
6868

6969
/* Bit val in IC_CTRL */
70-
#define IC_CTRL_CACHE_DISABLE 0x1
70+
#define IC_CTRL_DIS 0x1
7171

7272
/* Data cache related Auxiliary registers */
7373
#define ARC_REG_DC_BCR 0x72 /* Build Config reg */
@@ -80,8 +80,9 @@ extern unsigned long perip_base, perip_end;
8080
#define ARC_REG_DC_PTAG_HI 0x5F
8181

8282
/* Bit val in DC_CTRL */
83-
#define DC_CTRL_INV_MODE_FLUSH 0x40
84-
#define DC_CTRL_FLUSH_STATUS 0x100
83+
#define DC_CTRL_DIS 0x001
84+
#define DC_CTRL_INV_MODE_FLUSH 0x040
85+
#define DC_CTRL_FLUSH_STATUS 0x100
8586

8687
/*System-level cache (L2 cache) related Auxiliary registers */
8788
#define ARC_REG_SLC_CFG 0x901
@@ -92,8 +93,8 @@ extern unsigned long perip_base, perip_end;
9293
#define ARC_REG_SLC_RGN_END 0x916
9394

9495
/* Bit val in SLC_CONTROL */
96+
#define SLC_CTRL_DIS 0x001
9597
#define SLC_CTRL_IM 0x040
96-
#define SLC_CTRL_DISABLE 0x001
9798
#define SLC_CTRL_BUSY 0x100
9899
#define SLC_CTRL_RGN_OP_INV 0x200
99100

arch/arc/include/asm/entry-arcv2.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
;
1717
; Now manually save: r12, sp, fp, gp, r25
1818

19+
PUSH r30
1920
PUSH r12
2021

2122
; Saving pt_regs->sp correctly requires some extra work due to the way
@@ -72,6 +73,7 @@
7273
POPAX AUX_USER_SP
7374
1:
7475
POP r12
76+
POP r30
7577

7678
.endm
7779

arch/arc/include/asm/module.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414

1515
#include <asm-generic/module.h>
1616

17-
#ifdef CONFIG_ARC_DW2_UNWIND
1817
struct mod_arch_specific {
18+
#ifdef CONFIG_ARC_DW2_UNWIND
1919
void *unw_info;
2020
int unw_sec_idx;
21+
#endif
2122
const char *secstr;
2223
};
23-
#endif
2424

2525
#define MODULE_PROC_FAMILY "ARC700"
2626

arch/arc/include/asm/ptrace.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ struct pt_regs {
8484
unsigned long fp;
8585
unsigned long sp; /* user/kernel sp depending on where we came from */
8686

87-
unsigned long r12;
87+
unsigned long r12, r30;
8888

8989
/*------- Below list auto saved by h/w -----------*/
9090
unsigned long r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11;

arch/arc/include/asm/setup.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ extern int root_mountflags, end_mem;
3131

3232
void setup_processor(void);
3333
void __init setup_arch_memory(void);
34+
long __init arc_get_mem_sz(void);
3435

3536
/* Helpers used in arc_*_mumbojumbo routines */
3637
#define IS_AVAIL1(v, s) ((v) ? s : "")

arch/arc/kernel/intc-arcv2.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,20 @@ void arc_init_IRQ(void)
7777

7878
static void arcv2_irq_mask(struct irq_data *data)
7979
{
80-
write_aux_reg(AUX_IRQ_SELECT, data->irq);
80+
write_aux_reg(AUX_IRQ_SELECT, data->hwirq);
8181
write_aux_reg(AUX_IRQ_ENABLE, 0);
8282
}
8383

8484
static void arcv2_irq_unmask(struct irq_data *data)
8585
{
86-
write_aux_reg(AUX_IRQ_SELECT, data->irq);
86+
write_aux_reg(AUX_IRQ_SELECT, data->hwirq);
8787
write_aux_reg(AUX_IRQ_ENABLE, 1);
8888
}
8989

9090
void arcv2_irq_enable(struct irq_data *data)
9191
{
9292
/* set default priority */
93-
write_aux_reg(AUX_IRQ_SELECT, data->irq);
93+
write_aux_reg(AUX_IRQ_SELECT, data->hwirq);
9494
write_aux_reg(AUX_IRQ_PRIORITY, ARCV2_IRQ_DEF_PRIO);
9595

9696
/*

arch/arc/kernel/intc-compact.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ static void arc_irq_mask(struct irq_data *data)
5757
unsigned int ienb;
5858

5959
ienb = read_aux_reg(AUX_IENABLE);
60-
ienb &= ~(1 << data->irq);
60+
ienb &= ~(1 << data->hwirq);
6161
write_aux_reg(AUX_IENABLE, ienb);
6262
}
6363

@@ -66,7 +66,7 @@ static void arc_irq_unmask(struct irq_data *data)
6666
unsigned int ienb;
6767

6868
ienb = read_aux_reg(AUX_IENABLE);
69-
ienb |= (1 << data->irq);
69+
ienb |= (1 << data->hwirq);
7070
write_aux_reg(AUX_IENABLE, ienb);
7171
}
7272

arch/arc/kernel/mcip.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
#include <linux/smp.h>
1212
#include <linux/irq.h>
13+
#include <linux/irqchip/chained_irq.h>
1314
#include <linux/spinlock.h>
1415
#include <soc/arc/mcip.h>
1516
#include <asm/irqflags-arcv2.h>
@@ -221,10 +222,13 @@ static irq_hw_number_t idu_first_hwirq;
221222
static void idu_cascade_isr(struct irq_desc *desc)
222223
{
223224
struct irq_domain *idu_domain = irq_desc_get_handler_data(desc);
225+
struct irq_chip *core_chip = irq_desc_get_chip(desc);
224226
irq_hw_number_t core_hwirq = irqd_to_hwirq(irq_desc_get_irq_data(desc));
225227
irq_hw_number_t idu_hwirq = core_hwirq - idu_first_hwirq;
226228

229+
chained_irq_enter(core_chip, desc);
227230
generic_handle_irq(irq_find_mapping(idu_domain, idu_hwirq));
231+
chained_irq_exit(core_chip, desc);
228232
}
229233

230234
static int idu_irq_map(struct irq_domain *d, unsigned int virq, irq_hw_number_t hwirq)

arch/arc/kernel/module.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
3232
#ifdef CONFIG_ARC_DW2_UNWIND
3333
mod->arch.unw_sec_idx = 0;
3434
mod->arch.unw_info = NULL;
35-
mod->arch.secstr = secstr;
3635
#endif
36+
mod->arch.secstr = secstr;
3737
return 0;
3838
}
3939

@@ -113,8 +113,10 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
113113

114114
}
115115

116+
#ifdef CONFIG_ARC_DW2_UNWIND
116117
if (strcmp(module->arch.secstr+sechdrs[tgtsec].sh_name, ".eh_frame") == 0)
117118
module->arch.unw_sec_idx = tgtsec;
119+
#endif
118120

119121
return 0;
120122

0 commit comments

Comments
 (0)