Skip to content

Commit bafb076

Browse files
committed
Merge tag 'char-misc-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc driver updates from Greg KH: "Here is the big char/misc driver update for 4.14-rc1. Lots of different stuff in here, it's been an active development cycle for some reason. Highlights are: - updated binder driver, this brings binder up to date with what shipped in the Android O release, plus some more changes that happened since then that are in the Android development trees. - coresight updates and fixes - mux driver file renames to be a bit "nicer" - intel_th driver updates - normal set of hyper-v updates and changes - small fpga subsystem and driver updates - lots of const code changes all over the driver trees - extcon driver updates - fmc driver subsystem upadates - w1 subsystem minor reworks and new features and drivers added - spmi driver updates Plus a smattering of other minor driver updates and fixes. All of these have been in linux-next with no reported issues for a while" * tag 'char-misc-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (244 commits) ANDROID: binder: don't queue async transactions to thread. ANDROID: binder: don't enqueue death notifications to thread todo. ANDROID: binder: Don't BUG_ON(!spin_is_locked()). ANDROID: binder: Add BINDER_GET_NODE_DEBUG_INFO ioctl ANDROID: binder: push new transactions to waiting threads. ANDROID: binder: remove proc waitqueue android: binder: Add page usage in binder stats android: binder: fixup crash introduced by moving buffer hdr drivers: w1: add hwmon temp support for w1_therm drivers: w1: refactor w1_slave_show to make the temp reading functionality separate drivers: w1: add hwmon support structures eeprom: idt_89hpesx: Support both ACPI and OF probing mcb: Fix an error handling path in 'chameleon_parse_cells()' MCB: add support for SC31 to mcb-lpc mux: make device_type const char: virtio: constify attribute_group structures. Documentation/ABI: document the nvmem sysfs files lkdtm: fix spelling mistake: "incremeted" -> "incremented" perf: cs-etm: Fix ETMv4 CONFIGR entry in perf.data file nvmem: include linux/err.h from header ...
2 parents 44b1671 + 3a6430c commit bafb076

File tree

175 files changed

+9572
-3121
lines changed

Some content is hidden

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

175 files changed

+9572
-3121
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
What: /sys/bus/nvmem/devices/.../nvmem
2+
Date: July 2015
3+
KernelVersion: 4.2
4+
Contact: Srinivas Kandagatla <[email protected]>
5+
Description:
6+
This file allows user to read/write the raw NVMEM contents.
7+
Permissions for write to this file depends on the nvmem
8+
provider configuration.
9+
10+
ex:
11+
hexdump /sys/bus/nvmem/devices/qfprom0/nvmem
12+
13+
0000000 0000 0000 0000 0000 0000 0000 0000 0000
14+
*
15+
00000a0 db10 2240 0000 e000 0c00 0c00 0000 0c00
16+
0000000 0000 0000 0000 0000 0000 0000 0000 0000
17+
...
18+
*
19+
0001000

Documentation/ABI/testing/sysfs-bus-thunderbolt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ Contact: [email protected]
4545
Description: When a devices supports Thunderbolt secure connect it will
4646
have this attribute. Writing 32 byte hex string changes
4747
authorization to use the secure connection method instead.
48+
Writing an empty string clears the key and regular connection
49+
method can be used again.
4850

4951
What: /sys/bus/thunderbolt/devices/.../device
5052
Date: Sep 2017
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
What: /sys/bus/pci/drivers/altera-cvp/chkcfg
2+
Date: May 2017
3+
Kernel Version: 4.13
4+
Contact: Anatolij Gustschin <[email protected]>
5+
Description:
6+
Contains either 1 or 0 and controls if configuration
7+
error checking in altera-cvp driver is turned on or
8+
off.

Documentation/admin-guide/devices.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3081,3 +3081,8 @@
30813081
1 = /dev/osd1 Second OSD Device
30823082
...
30833083
255 = /dev/osd255 256th OSD Device
3084+
3085+
384-511 char RESERVED FOR DYNAMIC ASSIGNMENT
3086+
Character devices that request a dynamic allocation of major
3087+
number will take numbers starting from 511 and downward,
3088+
once the 234-254 range is full.

Documentation/devicetree/bindings/arm/coresight.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ its hardware characteristcs.
3434
- Embedded Trace Macrocell (version 4.x):
3535
"arm,coresight-etm4x", "arm,primecell";
3636

37-
- Qualcomm Configurable Replicator (version 1.x):
38-
"qcom,coresight-replicator1x", "arm,primecell";
37+
- Coresight programmable Replicator :
38+
"arm,coresight-dynamic-replicator", "arm,primecell";
3939

4040
- System Trace Macrocell:
4141
"arm,coresight-stm", "arm,primecell"; [1]
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
ChromeOS EC USB Type-C cable and accessories detection
2+
3+
On ChromeOS systems with USB Type C ports, the ChromeOS Embedded Controller is
4+
able to detect the state of external accessories such as display adapters
5+
or USB devices when said accessories are attached or detached.
6+
7+
The node for this device must be under a cros-ec node like google,cros-ec-spi
8+
or google,cros-ec-i2c.
9+
10+
Required properties:
11+
- compatible: Should be "google,extcon-usbc-cros-ec".
12+
- google,usb-port-id: Specifies the USB port ID to use.
13+
14+
Example:
15+
cros-ec@0 {
16+
compatible = "google,cros-ec-i2c";
17+
18+
...
19+
20+
extcon {
21+
compatible = "google,extcon-usbc-cros-ec";
22+
google,usb-port-id = <0>;
23+
};
24+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
Altera Passive Serial SPI FPGA Manager
2+
3+
Altera FPGAs support a method of loading the bitstream over what is
4+
referred to as "passive serial".
5+
The passive serial link is not technically SPI, and might require extra
6+
circuits in order to play nicely with other SPI slaves on the same bus.
7+
8+
See https://www.altera.com/literature/hb/cyc/cyc_c51013.pdf
9+
10+
Required properties:
11+
- compatible: Must be one of the following:
12+
"altr,fpga-passive-serial",
13+
"altr,fpga-arria10-passive-serial"
14+
- reg: SPI chip select of the FPGA
15+
- nconfig-gpios: config pin (referred to as nCONFIG in the manual)
16+
- nstat-gpios: status pin (referred to as nSTATUS in the manual)
17+
18+
Optional properties:
19+
- confd-gpios: confd pin (referred to as CONF_DONE in the manual)
20+
21+
Example:
22+
fpga: fpga@0 {
23+
compatible = "altr,fpga-passive-serial";
24+
spi-max-frequency = <20000000>;
25+
reg = <0>;
26+
nconfig-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
27+
nstat-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
28+
confd-gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
29+
};
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
Xilinx LogiCORE Partial Reconfig Decoupler Softcore
2+
3+
The Xilinx LogiCORE Partial Reconfig Decoupler manages one or more
4+
decouplers / fpga bridges.
5+
The controller can decouple/disable the bridges which prevents signal
6+
changes from passing through the bridge. The controller can also
7+
couple / enable the bridges which allows traffic to pass through the
8+
bridge normally.
9+
10+
The Driver supports only MMIO handling. A PR region can have multiple
11+
PR Decouplers which can be handled independently or chained via decouple/
12+
decouple_status signals.
13+
14+
Required properties:
15+
- compatible : Should contain "xlnx,pr-decoupler-1.00" followed by
16+
"xlnx,pr-decoupler"
17+
- regs : base address and size for decoupler module
18+
- clocks : input clock to IP
19+
- clock-names : should contain "aclk"
20+
21+
Optional properties:
22+
- bridge-enable : 0 if driver should disable bridge at startup
23+
1 if driver should enable bridge at startup
24+
Default is to leave bridge in current state.
25+
26+
See Documentation/devicetree/bindings/fpga/fpga-region.txt for generic bindings.
27+
28+
Example:
29+
fpga-bridge@100000450 {
30+
compatible = "xlnx,pr-decoupler-1.00",
31+
"xlnx-pr-decoupler";
32+
regs = <0x10000045 0x10>;
33+
clocks = <&clkc 15>;
34+
clock-names = "aclk";
35+
bridge-enable = <0>;
36+
};

Documentation/devicetree/bindings/vendor-prefixes.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ kosagi Sutajio Ko-Usagi PTE Ltd.
175175
kyo Kyocera Corporation
176176
lacie LaCie
177177
lantiq Lantiq Semiconductor
178+
lattice Lattice Semiconductor
178179
lego LEGO Systems A/S
179180
lenovo Lenovo Group Ltd.
180181
lg LG Corporation

Documentation/devicetree/bindings/xilinx.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,8 @@
281281
capabilities of the underlying ICAP hardware
282282
differ between different families. May be
283283
'virtex2p', 'virtex4', or 'virtex5'.
284+
- compatible : should contain "xlnx,xps-hwicap-1.00.a" or
285+
"xlnx,opb-hwicap-1.00.b".
284286

285287
vi) Xilinx Uart 16550
286288

Documentation/trace/stm.txt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ by writing the name of the desired stm device there, for example:
8383
$ echo dummy_stm.0 > /sys/class/stm_source/console/stm_source_link
8484

8585
For examples on how to use stm_source interface in the kernel, refer
86-
to stm_console or stm_heartbeat drivers.
86+
to stm_console, stm_heartbeat or stm_ftrace drivers.
8787

8888
Each stm_source device will need to assume a master and a range of
8989
channels, depending on how many channels it requires. These are
@@ -107,5 +107,16 @@ console in the STP stream, create a "console" policy entry (see the
107107
beginning of this text on how to do that). When initialized, it will
108108
consume one channel.
109109

110+
stm_ftrace
111+
==========
112+
113+
This is another "stm_source" device, once the stm_ftrace has been
114+
linked with an stm device, and if "function" tracer is enabled,
115+
function address and parent function address which Ftrace subsystem
116+
would store into ring buffer will be exported via the stm device at
117+
the same time.
118+
119+
Currently only Ftrace "function" tracer is supported.
120+
110121
[1] https://software.intel.com/sites/default/files/managed/d3/3c/intel-th-developer-manual.pdf
111122
[2] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0444b/index.html

MAINTAINERS

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5362,10 +5362,11 @@ K: fmc_d.*register
53625362

53635363
FPGA MANAGER FRAMEWORK
53645364
M: Alan Tull <[email protected]>
5365-
R: Moritz Fischer <[email protected]>
5365+
R: Moritz Fischer <[email protected]>
53665366
53675367
S: Maintained
53685368
T: git git://git.kernel.org/pub/scm/linux/kernel/git/atull/linux-fpga.git
5369+
Q: http://patchwork.kernel.org/project/linux-fpga/list/
53695370
F: Documentation/fpga/
53705371
F: Documentation/devicetree/bindings/fpga/
53715372
F: drivers/fpga/
@@ -9484,6 +9485,7 @@ M: Srinivas Kandagatla <[email protected]>
94849485
S: Maintained
94859486
F: drivers/nvmem/
94869487
F: Documentation/devicetree/bindings/nvmem/
9488+
F: Documentation/ABI/stable/sysfs-bus-nvmem
94879489
F: include/linux/nvmem-consumer.h
94889490
F: include/linux/nvmem-provider.h
94899491

arch/arm/boot/dts/imx6q-evi.dts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,15 @@
9494
pinctrl-names = "default";
9595
pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1cs>;
9696
status = "okay";
97+
98+
fpga: fpga@0 {
99+
compatible = "altr,fpga-passive-serial";
100+
spi-max-frequency = <20000000>;
101+
reg = <0>;
102+
pinctrl-0 = <&pinctrl_fpgaspi>;
103+
nconfig-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
104+
nstat-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
105+
};
97106
};
98107

99108
&ecspi3 {
@@ -319,6 +328,13 @@
319328
>;
320329
};
321330

331+
pinctrl_fpgaspi: fpgaspigrp {
332+
fsl,pins = <
333+
MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x1b0b0
334+
MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x1b0b0
335+
>;
336+
};
337+
322338
pinctrl_gpminand: gpminandgrp {
323339
fsl,pins = <
324340
MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1

arch/x86/include/asm/mshyperv.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ struct ms_hyperv_info {
2828
u32 features;
2929
u32 misc_features;
3030
u32 hints;
31+
u32 max_vp_index;
32+
u32 max_lp_index;
3133
};
3234

3335
extern struct ms_hyperv_info ms_hyperv;

arch/x86/kernel/cpu/mshyperv.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,15 @@ static void __init ms_hyperv_init_platform(void)
179179
ms_hyperv.misc_features = cpuid_edx(HYPERV_CPUID_FEATURES);
180180
ms_hyperv.hints = cpuid_eax(HYPERV_CPUID_ENLIGHTMENT_INFO);
181181

182-
pr_info("HyperV: features 0x%x, hints 0x%x\n",
182+
pr_info("Hyper-V: features 0x%x, hints 0x%x\n",
183183
ms_hyperv.features, ms_hyperv.hints);
184184

185+
ms_hyperv.max_vp_index = cpuid_eax(HVCPUID_IMPLEMENTATION_LIMITS);
186+
ms_hyperv.max_lp_index = cpuid_ebx(HVCPUID_IMPLEMENTATION_LIMITS);
187+
188+
pr_debug("Hyper-V: max %u virtual processors, %u logical processors\n",
189+
ms_hyperv.max_vp_index, ms_hyperv.max_lp_index);
190+
185191
/*
186192
* Extract host information.
187193
*/
@@ -214,7 +220,7 @@ static void __init ms_hyperv_init_platform(void)
214220
rdmsrl(HV_X64_MSR_APIC_FREQUENCY, hv_lapic_frequency);
215221
hv_lapic_frequency = div_u64(hv_lapic_frequency, HZ);
216222
lapic_timer_frequency = hv_lapic_frequency;
217-
pr_info("HyperV: LAPIC Timer Frequency: %#x\n",
223+
pr_info("Hyper-V: LAPIC Timer Frequency: %#x\n",
218224
lapic_timer_frequency);
219225
}
220226

@@ -248,7 +254,7 @@ static void __init ms_hyperv_init_platform(void)
248254
}
249255

250256
const __refconst struct hypervisor_x86 x86_hyper_ms_hyperv = {
251-
.name = "Microsoft HyperV",
257+
.name = "Microsoft Hyper-V",
252258
.detect = ms_hyperv_platform,
253259
.init_platform = ms_hyperv_init_platform,
254260
};

block/genhd.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ EXPORT_SYMBOL_GPL(disk_map_sector_rcu);
242242
* Can be deleted altogether. Later.
243243
*
244244
*/
245+
#define BLKDEV_MAJOR_HASH_SIZE 255
245246
static struct blk_major_name {
246247
struct blk_major_name *next;
247248
int major;
@@ -259,12 +260,11 @@ void blkdev_show(struct seq_file *seqf, off_t offset)
259260
{
260261
struct blk_major_name *dp;
261262

262-
if (offset < BLKDEV_MAJOR_HASH_SIZE) {
263-
mutex_lock(&block_class_lock);
264-
for (dp = major_names[offset]; dp; dp = dp->next)
263+
mutex_lock(&block_class_lock);
264+
for (dp = major_names[major_to_index(offset)]; dp; dp = dp->next)
265+
if (dp->major == offset)
265266
seq_printf(seqf, "%3d %s\n", dp->major, dp->name);
266-
mutex_unlock(&block_class_lock);
267-
}
267+
mutex_unlock(&block_class_lock);
268268
}
269269
#endif /* CONFIG_PROC_FS */
270270

@@ -309,6 +309,14 @@ int register_blkdev(unsigned int major, const char *name)
309309
ret = major;
310310
}
311311

312+
if (major >= BLKDEV_MAJOR_MAX) {
313+
pr_err("register_blkdev: major requested (%d) is greater than the maximum (%d) for %s\n",
314+
major, BLKDEV_MAJOR_MAX, name);
315+
316+
ret = -EINVAL;
317+
goto out;
318+
}
319+
312320
p = kmalloc(sizeof(struct blk_major_name), GFP_KERNEL);
313321
if (p == NULL) {
314322
ret = -ENOMEM;

drivers/android/Kconfig

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ config ANDROID_BINDER_IPC
2222
config ANDROID_BINDER_DEVICES
2323
string "Android Binder devices"
2424
depends on ANDROID_BINDER_IPC
25-
default "binder,hwbinder"
25+
default "binder,hwbinder,vndbinder"
2626
---help---
2727
Default value for the binder.devices parameter.
2828

@@ -32,7 +32,7 @@ config ANDROID_BINDER_DEVICES
3232
therefore logically separated from the other devices.
3333

3434
config ANDROID_BINDER_IPC_32BIT
35-
bool
35+
bool "Use old (Android 4.4 and earlier) 32-bit binder API"
3636
depends on !64BIT && ANDROID_BINDER_IPC
3737
default y
3838
---help---
@@ -44,6 +44,16 @@ config ANDROID_BINDER_IPC_32BIT
4444

4545
Note that enabling this will break newer Android user-space.
4646

47+
config ANDROID_BINDER_IPC_SELFTEST
48+
bool "Android Binder IPC Driver Selftest"
49+
depends on ANDROID_BINDER_IPC
50+
---help---
51+
This feature allows binder selftest to run.
52+
53+
Binder selftest checks the allocation and free of binder buffers
54+
exhaustively with combinations of various buffer sizes and
55+
alignments.
56+
4757
endif # if ANDROID
4858

4959
endmenu

drivers/android/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
ccflags-y += -I$(src) # needed for trace events
22

3-
obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o
3+
obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o binder_alloc.o
4+
obj-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o

0 commit comments

Comments
 (0)