Skip to content

Commit 52cdce8

Browse files
committed
Merge branch 'rotary-encoder' into next
Bring in updates to roraty encoder driver switching it away from legacy platform data and over to generic device properties and adding support for encoders using more than 2 GPIOs.
2 parents 3cd4786 + 7dde4e7 commit 52cdce8

File tree

477 files changed

+4626
-2631
lines changed

Some content is hidden

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

477 files changed

+4626
-2631
lines changed

Documentation/devicetree/bindings/dma/ti-edma.txt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ Required properties:
2222
Optional properties:
2323
- ti,hwmods: Name of the hwmods associated to the eDMA CC
2424
- ti,edma-memcpy-channels: List of channels allocated to be used for memcpy, iow
25-
these channels will be SW triggered channels. The list must
26-
contain 16 bits numbers, see example.
25+
these channels will be SW triggered channels. See example.
2726
- ti,edma-reserved-slot-ranges: PaRAM slot ranges which should not be used by
2827
the driver, they are allocated to be used by for example the
2928
DSP. See example.
@@ -56,10 +55,9 @@ edma: edma@49000000 {
5655
ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 7>, <&edma_tptc2 0>;
5756

5857
/* Channel 20 and 21 is allocated for memcpy */
59-
ti,edma-memcpy-channels = /bits/ 16 <20 21>;
60-
/* The following PaRAM slots are reserved: 35-45 and 100-110 */
61-
ti,edma-reserved-slot-ranges = /bits/ 16 <35 10>,
62-
/bits/ 16 <100 10>;
58+
ti,edma-memcpy-channels = <20 21>;
59+
/* The following PaRAM slots are reserved: 35-44 and 100-109 */
60+
ti,edma-reserved-slot-ranges = <35 10>, <100 10>;
6361
};
6462

6563
edma_tptc0: tptc@49800000 {

Documentation/devicetree/bindings/input/rotary-encoder.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Rotary encoder DT bindings
22

33
Required properties:
4-
- gpios: a spec for two GPIOs to be used
4+
- gpios: a spec for at least two GPIOs to be used, most significant first
55

66
Optional properties:
77
- linux,axis: the input subsystem axis to map to this rotary encoder.

Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Each key is represented as a sub-node of "allwinner,sun4i-a10-lradc-keys":
1212
Required subnode-properties:
1313
- label: Descriptive name of the key.
1414
- linux,code: Keycode to emit.
15-
- channel: Channel this key is attached to, mut be 0 or 1.
15+
- channel: Channel this key is attached to, must be 0 or 1.
1616
- voltage: Voltage in µV at lradc input when this key is pressed.
1717

1818
Example:

Documentation/devicetree/bindings/mtd/partition.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ used for what purposes, but which don't use an on-flash partition table such
66
as RedBoot.
77

88
The partition table should be a subnode of the mtd node and should be named
9-
'partitions'. Partitions are defined in subnodes of the partitions node.
9+
'partitions'. This node should have the following property:
10+
- compatible : (required) must be "fixed-partitions"
11+
Partitions are then defined in subnodes of the partitions node.
1012

1113
For backwards compatibility partitions as direct subnodes of the mtd device are
1214
supported. This use is discouraged.
@@ -36,6 +38,7 @@ Examples:
3638

3739
flash@0 {
3840
partitions {
41+
compatible = "fixed-partitions";
3942
#address-cells = <1>;
4043
#size-cells = <1>;
4144

@@ -53,6 +56,7 @@ flash@0 {
5356

5457
flash@1 {
5558
partitions {
59+
compatible = "fixed-partitions";
5660
#address-cells = <1>;
5761
#size-cells = <2>;
5862

@@ -66,6 +70,7 @@ flash@1 {
6670

6771
flash@2 {
6872
partitions {
73+
compatible = "fixed-partitions";
6974
#address-cells = <2>;
7075
#size-cells = <2>;
7176

Documentation/devicetree/bindings/net/cpsw.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,18 @@ Optional properties:
4040

4141
Slave Properties:
4242
Required properties:
43-
- phy_id : Specifies slave phy id
4443
- phy-mode : See ethernet.txt file in the same directory
4544

4645
Optional properties:
4746
- dual_emac_res_vlan : Specifies VID to be used to segregate the ports
4847
- mac-address : See ethernet.txt file in the same directory
48+
- phy_id : Specifies slave phy id
4949
- phy-handle : See ethernet.txt file in the same directory
5050

5151
Slave sub-nodes:
5252
- fixed-link : See fixed-link.txt file in the same directory
53-
Either the properties phy_id and phy-mode,
54-
or the sub-node fixed-link can be specified
53+
Either the property phy_id, or the sub-node
54+
fixed-link can be specified
5555

5656
Note: "ti,hwmods" field is used to fetch the base address and irq
5757
resources from TI, omap hwmod data base during device registration.

Documentation/networking/e100.txt

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -181,17 +181,3 @@ For general information, go to the Intel support website at:
181181
If an issue is identified with the released source code on the supported
182182
kernel with a supported adapter, email the specific information related to the
183183
184-
185-
186-
License
187-
=======
188-
189-
This software program is released under the terms of a license agreement
190-
between you ('Licensee') and Intel. Do not use or load this software or any
191-
associated materials (collectively, the 'Software') until you have carefully
192-
read the full terms and conditions of the file COPYING located in this software
193-
package. By loading or using the Software, you agree to the terms of this
194-
Agreement. If you do not agree with the terms of this Agreement, do not install
195-
or use the Software.
196-
197-
* Other names and brands may be claimed as the property of others.

MAINTAINERS

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5578,7 +5578,7 @@ R: Jesse Brandeburg <[email protected]>
55785578
R: Shannon Nelson <[email protected]>
55795579
R: Carolyn Wyborny <[email protected]>
55805580
R: Don Skidmore <[email protected]>
5581-
R: Matthew Vick <matthew.vick@intel.com>
5581+
R: Bruce Allan <bruce.w.allan@intel.com>
55825582
R: John Ronciak <[email protected]>
55835583
R: Mitch Williams <[email protected]>
55845584
@@ -8380,6 +8380,14 @@ L: [email protected] (moderated for non-subscribers)
83808380
S: Maintained
83818381
F: drivers/pinctrl/samsung/
83828382

8383+
PIN CONTROLLER - SINGLE
8384+
M: Tony Lindgren <[email protected]>
8385+
M: Haojian Zhuang <[email protected]>
8386+
L: [email protected] (moderated for non-subscribers)
8387+
8388+
S: Maintained
8389+
F: drivers/pinctrl/pinctrl-single.c
8390+
83838391
PIN CONTROLLER - ST SPEAR
83848392
M: Viresh Kumar <[email protected]>
83858393
@@ -8946,6 +8954,13 @@ F: drivers/rpmsg/
89468954
F: Documentation/rpmsg.txt
89478955
F: include/linux/rpmsg.h
89488956

8957+
RENESAS ETHERNET DRIVERS
8958+
R: Sergei Shtylyov <[email protected]>
8959+
8960+
8961+
F: drivers/net/ethernet/renesas/
8962+
F: include/linux/sh_eth.h
8963+
89498964
RESET CONTROLLER FRAMEWORK
89508965
M: Philipp Zabel <[email protected]>
89518966
S: Maintained

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
VERSION = 4
22
PATCHLEVEL = 4
33
SUBLEVEL = 0
4-
EXTRAVERSION = -rc5
4+
EXTRAVERSION =
55
NAME = Blurry Fish Butt
66

77
# *DOCUMENTATION*

arch/arc/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,7 @@ config LINUX_LINK_BASE
445445
However some customers have peripherals mapped at this addr, so
446446
Linux needs to be scooted a bit.
447447
If you don't know what the above means, leave this setting alone.
448+
This needs to match memory start address specified in Device Tree
448449

449450
config HIGHMEM
450451
bool "High Memory Support"

arch/arc/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ endif
8181
LIBGCC := $(shell $(CC) $(cflags-y) --print-libgcc-file-name)
8282

8383
# Modules with short calls might break for calls into builtin-kernel
84-
KBUILD_CFLAGS_MODULE += -mlong-calls
84+
KBUILD_CFLAGS_MODULE += -mlong-calls -mno-millicode
8585

8686
# Finally dump eveything into kernel build system
8787
KBUILD_CFLAGS += $(cflags-y)

arch/arc/boot/dts/axs10x_mb.dtsi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
snps,pbl = < 32 >;
4747
clocks = <&apbclk>;
4848
clock-names = "stmmaceth";
49+
max-speed = <100>;
4950
};
5051

5152
ehci@0x40000 {

arch/arc/boot/dts/nsim_hs.dts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717

1818
memory {
1919
device_type = "memory";
20-
reg = <0x0 0x80000000 0x0 0x40000000 /* 1 GB low mem */
20+
/* CONFIG_LINUX_LINK_BASE needs to match low mem start */
21+
reg = <0x0 0x80000000 0x0 0x20000000 /* 512 MB low mem */
2122
0x1 0x00000000 0x0 0x40000000>; /* 1 GB highmem */
2223
};
2324

arch/arc/include/asm/cache.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,7 @@ extern int ioc_exists;
6262
#define ARC_REG_IC_IVIC 0x10
6363
#define ARC_REG_IC_CTRL 0x11
6464
#define ARC_REG_IC_IVIL 0x19
65-
#if defined(CONFIG_ARC_MMU_V3) || defined(CONFIG_ARC_MMU_V4)
6665
#define ARC_REG_IC_PTAG 0x1E
67-
#endif
6866
#define ARC_REG_IC_PTAG_HI 0x1F
6967

7068
/* Bit val in IC_CTRL */

arch/arc/include/asm/mach_desc.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* @dt_compat: Array of device tree 'compatible' strings
2424
* (XXX: although only 1st entry is looked at)
2525
* @init_early: Very early callback [called from setup_arch()]
26-
* @init_cpu_smp: for each CPU as it is coming up (SMP as well as UP)
26+
* @init_per_cpu: for each CPU as it is coming up (SMP as well as UP)
2727
* [(M):init_IRQ(), (o):start_kernel_secondary()]
2828
* @init_machine: arch initcall level callback (e.g. populate static
2929
* platform devices or parse Devicetree)
@@ -35,7 +35,7 @@ struct machine_desc {
3535
const char **dt_compat;
3636
void (*init_early)(void);
3737
#ifdef CONFIG_SMP
38-
void (*init_cpu_smp)(unsigned int);
38+
void (*init_per_cpu)(unsigned int);
3939
#endif
4040
void (*init_machine)(void);
4141
void (*init_late)(void);

arch/arc/include/asm/smp.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ extern int smp_ipi_irq_setup(int cpu, int irq);
4848
* @init_early_smp: A SMP specific h/w block can init itself
4949
* Could be common across platforms so not covered by
5050
* mach_desc->init_early()
51-
* @init_irq_cpu: Called for each core so SMP h/w block driver can do
51+
* @init_per_cpu: Called for each core so SMP h/w block driver can do
5252
* any needed setup per cpu (e.g. IPI request)
5353
* @cpu_kick: For Master to kickstart a cpu (optionally at a PC)
5454
* @ipi_send: To send IPI to a @cpu
@@ -57,7 +57,7 @@ extern int smp_ipi_irq_setup(int cpu, int irq);
5757
struct plat_smp_ops {
5858
const char *info;
5959
void (*init_early_smp)(void);
60-
void (*init_irq_cpu)(int cpu);
60+
void (*init_per_cpu)(int cpu);
6161
void (*cpu_kick)(int cpu, unsigned long pc);
6262
void (*ipi_send)(int cpu);
6363
void (*ipi_clear)(int irq);

arch/arc/include/asm/unwind.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ struct unwind_frame_info {
112112

113113
extern int arc_unwind(struct unwind_frame_info *frame);
114114
extern void arc_unwind_init(void);
115-
extern void arc_unwind_setup(void);
116115
extern void *unwind_add_table(struct module *module, const void *table_start,
117116
unsigned long table_size);
118117
extern void unwind_remove_table(void *handle, int init_only);
@@ -152,9 +151,6 @@ static inline void arc_unwind_init(void)
152151
{
153152
}
154153

155-
static inline void arc_unwind_setup(void)
156-
{
157-
}
158154
#define unwind_add_table(a, b, c)
159155
#define unwind_remove_table(a, b)
160156

arch/arc/kernel/intc-arcv2.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,21 @@ static struct irq_chip arcv2_irq_chip = {
106106
static int arcv2_irq_map(struct irq_domain *d, unsigned int irq,
107107
irq_hw_number_t hw)
108108
{
109-
if (irq == TIMER0_IRQ || irq == IPI_IRQ)
109+
/*
110+
* core intc IRQs [16, 23]:
111+
* Statically assigned always private-per-core (Timers, WDT, IPI, PCT)
112+
*/
113+
if (hw < 24) {
114+
/*
115+
* A subsequent request_percpu_irq() fails if percpu_devid is
116+
* not set. That in turns sets NOAUTOEN, meaning each core needs
117+
* to call enable_percpu_irq()
118+
*/
119+
irq_set_percpu_devid(irq);
110120
irq_set_chip_and_handler(irq, &arcv2_irq_chip, handle_percpu_irq);
111-
else
121+
} else {
112122
irq_set_chip_and_handler(irq, &arcv2_irq_chip, handle_level_irq);
123+
}
113124

114125
return 0;
115126
}

arch/arc/kernel/irq.c

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ void __init init_IRQ(void)
2929

3030
#ifdef CONFIG_SMP
3131
/* a SMP H/w block could do IPI IRQ request here */
32-
if (plat_smp_ops.init_irq_cpu)
33-
plat_smp_ops.init_irq_cpu(smp_processor_id());
32+
if (plat_smp_ops.init_per_cpu)
33+
plat_smp_ops.init_per_cpu(smp_processor_id());
3434

35-
if (machine_desc->init_cpu_smp)
36-
machine_desc->init_cpu_smp(smp_processor_id());
35+
if (machine_desc->init_per_cpu)
36+
machine_desc->init_per_cpu(smp_processor_id());
3737
#endif
3838
}
3939

@@ -51,6 +51,18 @@ void arch_do_IRQ(unsigned int irq, struct pt_regs *regs)
5151
set_irq_regs(old_regs);
5252
}
5353

54+
/*
55+
* API called for requesting percpu interrupts - called by each CPU
56+
* - For boot CPU, actually request the IRQ with genirq core + enables
57+
* - For subsequent callers only enable called locally
58+
*
59+
* Relies on being called by boot cpu first (i.e. request called ahead) of
60+
* any enable as expected by genirq. Hence Suitable only for TIMER, IPI
61+
* which are guaranteed to be setup on boot core first.
62+
* Late probed peripherals such as perf can't use this as there no guarantee
63+
* of being called on boot CPU first.
64+
*/
65+
5466
void arc_request_percpu_irq(int irq, int cpu,
5567
irqreturn_t (*isr)(int irq, void *dev),
5668
const char *irq_nm,
@@ -60,14 +72,17 @@ void arc_request_percpu_irq(int irq, int cpu,
6072
if (!cpu) {
6173
int rc;
6274

75+
#ifdef CONFIG_ISA_ARCOMPACT
6376
/*
64-
* These 2 calls are essential to making percpu IRQ APIs work
65-
* Ideally these details could be hidden in irq chip map function
66-
* but the issue is IPIs IRQs being static (non-DT) and platform
67-
* specific, so we can't identify them there.
77+
* A subsequent request_percpu_irq() fails if percpu_devid is
78+
* not set. That in turns sets NOAUTOEN, meaning each core needs
79+
* to call enable_percpu_irq()
80+
*
81+
* For ARCv2, this is done in irq map function since we know
82+
* which irqs are strictly per cpu
6883
*/
6984
irq_set_percpu_devid(irq);
70-
irq_modify_status(irq, IRQ_NOAUTOEN, 0); /* @irq, @clr, @set */
85+
#endif
7186

7287
rc = request_percpu_irq(irq, isr, irq_nm, percpu_dev);
7388
if (rc)

arch/arc/kernel/mcip.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ static void mcip_probe_n_setup(void)
132132
struct plat_smp_ops plat_smp_ops = {
133133
.info = smp_cpuinfo_buf,
134134
.init_early_smp = mcip_probe_n_setup,
135-
.init_irq_cpu = mcip_setup_per_cpu,
135+
.init_per_cpu = mcip_setup_per_cpu,
136136
.ipi_send = mcip_ipi_send,
137137
.ipi_clear = mcip_ipi_clear,
138138
};

0 commit comments

Comments
 (0)