mirror of
https://github.com/a52xq-dev/kernel.git
synced 2026-10-18 21:58:11 +07:00
Char/Misc patches for 4.15-rc1
Here is the big set of char/misc and other driver subsystem patches for 4.15-rc1. There are small changes all over here, hyperv driver updates, pcmcia driver updates, w1 driver updats, vme driver updates, nvmem driver updates, and lots of other little one-off driver updates as well. The shortlog has the full details. Note, there will be a merge conflict in drivers/misc/lkdtm_core.c when merging to your tree as one lkdtm patch came in through the perf tree as well as this one. The resolution is to take the const change that this tree provides. All of these have been in linux-next for quite a while with no reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCWg2Lnw8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ymTUwCgwp46+I8yPlgDH8oe5TxyyJnpdHQAn1XW0i+a sBi6WS87In5v1QO1Rgfc =dH2a -----END PGP SIGNATURE----- Merge tag 'char-misc-4.15-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc updates from Greg KH: "Here is the big set of char/misc and other driver subsystem patches for 4.15-rc1. There are small changes all over here, hyperv driver updates, pcmcia driver updates, w1 driver updats, vme driver updates, nvmem driver updates, and lots of other little one-off driver updates as well. The shortlog has the full details. All of these have been in linux-next for quite a while with no reported issues" * tag 'char-misc-4.15-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (90 commits) VME: Return -EBUSY when DMA list in use w1: keep balance of mutex locks and refcnts MAINTAINERS: Update VME subsystem tree. nvmem: sunxi-sid: add support for A64/H5's SID controller nvmem: imx-ocotp: Update module description nvmem: imx-ocotp: Enable i.MX7D OTP write support nvmem: imx-ocotp: Add i.MX7D timing write clock setup support nvmem: imx-ocotp: Move i.MX6 write clock setup to dedicated function nvmem: imx-ocotp: Add support for banked OTP addressing nvmem: imx-ocotp: Pass parameters via a struct nvmem: imx-ocotp: Restrict OTP write to IMX6 processors nvmem: uniphier: add UniPhier eFuse driver dt-bindings: nvmem: add description for UniPhier eFuse nvmem: set nvmem->owner to nvmem->dev->driver->owner if unset nvmem: qfprom: fix different address space warnings of sparse nvmem: mtk-efuse: fix different address space warnings of sparse nvmem: mtk-efuse: use stack for nvmem_config instead of malloc'ing it nvmem: imx-iim: use stack for nvmem_config instead of malloc'ing it thunderbolt: tb: fix use after free in tb_activate_pcie_devices MAINTAINERS: Add git tree for Thunderbolt development ...
This commit is contained in:
commit
2bf16b7a73
79 changed files with 2770 additions and 517 deletions
|
|
@ -41,3 +41,73 @@ KernelVersion: 4.5
|
|||
Contact: K. Y. Srinivasan <kys@microsoft.com>
|
||||
Description: The 16 bit vendor ID of the device
|
||||
Users: tools/hv/lsvmbus and user level RDMA libraries
|
||||
|
||||
What: /sys/bus/vmbus/devices/vmbus_*/channels/relid/cpu
|
||||
Date: September. 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Description: VCPU (sub)channel is affinitized to
|
||||
Users: tools/hv/lsvmbus and other debuggig tools
|
||||
|
||||
What: /sys/bus/vmbus/devices/vmbus_*/channels/relid/cpu
|
||||
Date: September. 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Description: VCPU (sub)channel is affinitized to
|
||||
Users: tools/hv/lsvmbus and other debuggig tools
|
||||
|
||||
What: /sys/bus/vmbus/devices/vmbus_*/channels/relid/in_mask
|
||||
Date: September. 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Description: Inbound channel signaling state
|
||||
Users: Debugging tools
|
||||
|
||||
What: /sys/bus/vmbus/devices/vmbus_*/channels/relid/latency
|
||||
Date: September. 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Description: Channel signaling latency
|
||||
Users: Debugging tools
|
||||
|
||||
What: /sys/bus/vmbus/devices/vmbus_*/channels/relid/out_mask
|
||||
Date: September. 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Description: Outbound channel signaling state
|
||||
Users: Debugging tools
|
||||
|
||||
What: /sys/bus/vmbus/devices/vmbus_*/channels/relid/pending
|
||||
Date: September. 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Description: Channel interrupt pending state
|
||||
Users: Debugging tools
|
||||
|
||||
What: /sys/bus/vmbus/devices/vmbus_*/channels/relid/read_avail
|
||||
Date: September. 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Description: Bytes availabble to read
|
||||
Users: Debugging tools
|
||||
|
||||
What: /sys/bus/vmbus/devices/vmbus_*/channels/relid/write_avail
|
||||
Date: September. 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Description: Bytes availabble to write
|
||||
Users: Debugging tools
|
||||
|
||||
What: /sys/bus/vmbus/devices/vmbus_*/channels/relid/events
|
||||
Date: September. 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Description: Number of times we have signaled the host
|
||||
Users: Debugging tools
|
||||
|
||||
What: /sys/bus/vmbus/devices/vmbus_*/channels/relid/interrupts
|
||||
Date: September. 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
Description: Number of times we have taken an interrupt (incoming)
|
||||
Users: Debugging tools
|
||||
|
|
|
|||
21
Documentation/ABI/testing/sysfs-driver-w1_ds28e17
Normal file
21
Documentation/ABI/testing/sysfs-driver-w1_ds28e17
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
What: /sys/bus/w1/devices/19-<id>/speed
|
||||
Date: Sep 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Jan Kandziora <jjj@gmx.de>
|
||||
Description: When written, this file sets the I2C speed on the connected
|
||||
DS28E17 chip. When read, it reads the current setting from
|
||||
the DS28E17 chip.
|
||||
Valid values: 100, 400, 900 [kBaud].
|
||||
Default 100, can be set by w1_ds28e17.speed= module parameter.
|
||||
Users: w1_ds28e17 driver
|
||||
|
||||
What: /sys/bus/w1/devices/19-<id>/stretch
|
||||
Date: Sep 2017
|
||||
KernelVersion: 4.14
|
||||
Contact: Jan Kandziora <jjj@gmx.de>
|
||||
Description: When written, this file sets the multiplier used to calculate
|
||||
the busy timeout for I2C operations on the connected DS28E17
|
||||
chip. When read, returns the current setting.
|
||||
Valid values: 1 to 9.
|
||||
Default 1, can be set by w1_ds28e17.stretch= module parameter.
|
||||
Users: w1_ds28e17 driver
|
||||
|
|
@ -5,6 +5,7 @@ Required properties:
|
|||
"allwinner,sun4i-a10-sid"
|
||||
"allwinner,sun7i-a20-sid"
|
||||
"allwinner,sun8i-h3-sid"
|
||||
"allwinner,sun50i-a64-sid"
|
||||
|
||||
- reg: Should contain registers location and length
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
= Amlogic eFuse device tree bindings =
|
||||
= Amlogic Meson GX eFuse device tree bindings =
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "amlogic,meson-gxbb-efuse"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
Amlogic Meson6/Meson8/Meson8b efuse
|
||||
|
||||
Required Properties:
|
||||
- compatible: depending on the SoC this should be one of:
|
||||
- "amlogic,meson6-efuse"
|
||||
- "amlogic,meson8-efuse"
|
||||
- "amlogic,meson8b-efuse"
|
||||
- reg: base address and size of the efuse registers
|
||||
- clocks: a reference to the efuse core gate clock
|
||||
- clock-names: must be "core"
|
||||
|
||||
All properties and sub-nodes as well as the consumer bindings
|
||||
defined in nvmem.txt in this directory are also supported.
|
||||
|
||||
|
||||
Example:
|
||||
efuse: nvmem@0 {
|
||||
compatible = "amlogic,meson8-efuse";
|
||||
reg = <0x0 0x2000>;
|
||||
clocks = <&clkc CLKID_EFUSE>;
|
||||
clock-names = "core";
|
||||
};
|
||||
|
|
@ -6,6 +6,7 @@ Required properties:
|
|||
- "rockchip,rk3188-efuse" - for RK3188 SoCs.
|
||||
- "rockchip,rk3228-efuse" - for RK3228 SoCs.
|
||||
- "rockchip,rk3288-efuse" - for RK3288 SoCs.
|
||||
- "rockchip,rk3368-efuse" - for RK3368 SoCs.
|
||||
- "rockchip,rk3399-efuse" - for RK3399 SoCs.
|
||||
- reg: Should contain the registers location and exact eFuse size
|
||||
- clocks: Should be the clock id of eFuse
|
||||
|
|
|
|||
20
Documentation/devicetree/bindings/nvmem/snvs-lpgpr.txt
Normal file
20
Documentation/devicetree/bindings/nvmem/snvs-lpgpr.txt
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
Device tree bindings for Low Power General Purpose Register found in i.MX6Q/D
|
||||
Secure Non-Volatile Storage.
|
||||
|
||||
This DT node should be represented as a sub-node of a "syscon",
|
||||
"simple-mfd" node.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be one of the fallowing variants:
|
||||
"fsl,imx6q-snvs-lpgpr" for Freescale i.MX6Q/D/DL/S
|
||||
"fsl,imx6ul-snvs-lpgpr" for Freescale i.MX6UL
|
||||
|
||||
Example:
|
||||
snvs: snvs@020cc000 {
|
||||
compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
|
||||
reg = <0x020cc000 0x4000>;
|
||||
|
||||
snvs_lpgpr: snvs-lpgpr {
|
||||
compatible = "fsl,imx6q-snvs-lpgpr";
|
||||
};
|
||||
};
|
||||
49
Documentation/devicetree/bindings/nvmem/uniphier-efuse.txt
Normal file
49
Documentation/devicetree/bindings/nvmem/uniphier-efuse.txt
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
= UniPhier eFuse device tree bindings =
|
||||
|
||||
This UniPhier eFuse must be under soc-glue.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "socionext,uniphier-efuse"
|
||||
- reg: should contain the register location and length
|
||||
|
||||
= Data cells =
|
||||
Are child nodes of efuse, bindings of which as described in
|
||||
bindings/nvmem/nvmem.txt
|
||||
|
||||
Example:
|
||||
|
||||
soc-glue@5f900000 {
|
||||
compatible = "socionext,uniphier-ld20-soc-glue-debug",
|
||||
"simple-mfd";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x5f900000 0x2000>;
|
||||
|
||||
efuse@100 {
|
||||
compatible = "socionext,uniphier-efuse";
|
||||
reg = <0x100 0x28>;
|
||||
};
|
||||
|
||||
efuse@200 {
|
||||
compatible = "socionext,uniphier-efuse";
|
||||
reg = <0x200 0x68>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
/* Data cells */
|
||||
usb_mon: usb-mon@54 {
|
||||
reg = <0x54 0xc>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
= Data consumers =
|
||||
Are device nodes which consume nvmem data cells.
|
||||
|
||||
Example:
|
||||
|
||||
usb {
|
||||
...
|
||||
nvmem-cells = <&usb_mon>;
|
||||
nvmem-cell-names = "usb_mon";
|
||||
}
|
||||
|
|
@ -149,11 +149,23 @@ If you want to limit idle states at boot time, you can use "nohlt" or
|
|||
|
||||
At the runtime you can disable idle states with below methods:
|
||||
|
||||
Set latency request to /dev/cpu_dma_latency to disable all CPUs specific idle
|
||||
states (if latency = 0uS then disable all idle states):
|
||||
# echo "what_ever_latency_you_need_in_uS" > /dev/cpu_dma_latency
|
||||
It is possible to disable CPU idle states by way of the PM QoS
|
||||
subsystem, more specifically by using the "/dev/cpu_dma_latency"
|
||||
interface (see Documentation/power/pm_qos_interface.txt for more
|
||||
details). As specified in the PM QoS documentation the requested
|
||||
parameter will stay in effect until the file descriptor is released.
|
||||
For example:
|
||||
|
||||
Disable specific CPU's specific idle state:
|
||||
# exec 3<> /dev/cpu_dma_latency; echo 0 >&3
|
||||
...
|
||||
Do some work...
|
||||
...
|
||||
# exec 3<>-
|
||||
|
||||
The same can also be done from an application program.
|
||||
|
||||
Disable specific CPU's specific idle state from cpuidle sysfs (see
|
||||
Documentation/cpuidle/sysfs.txt):
|
||||
# echo 1 > /sys/devices/system/cpu/cpu$cpu/cpuidle/state$state/disable
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10,3 +10,5 @@ w1_ds2438
|
|||
- The Maxim/Dallas Semiconductor ds2438 smart battery monitor.
|
||||
w1_ds28e04
|
||||
- The Maxim/Dallas Semiconductor ds28e04 eeprom.
|
||||
w1_ds28e17
|
||||
- The Maxim/Dallas Semiconductor ds28e17 1-Wire-to-I2C Master Bridge.
|
||||
|
|
|
|||
68
Documentation/w1/slaves/w1_ds28e17
Normal file
68
Documentation/w1/slaves/w1_ds28e17
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
Kernel driver w1_ds28e17
|
||||
========================
|
||||
|
||||
Supported chips:
|
||||
* Maxim DS28E17 1-Wire-to-I2C Master Bridge
|
||||
|
||||
supported family codes:
|
||||
W1_FAMILY_DS28E17 0x19
|
||||
|
||||
Author: Jan Kandziora <jjj@gmx.de>
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
The DS28E17 is a Onewire slave device which acts as an I2C bus master.
|
||||
|
||||
This driver creates a new I2C bus for any DS28E17 device detected. I2C buses
|
||||
come and go as the DS28E17 devices come and go. I2C slave devices connected to
|
||||
a DS28E17 can be accessed by the kernel or userspace tools as if they were
|
||||
connected to a "native" I2C bus master.
|
||||
|
||||
|
||||
An udev rule like the following
|
||||
-------------------------------------------------------------------------------
|
||||
SUBSYSTEM=="i2c-dev", KERNEL=="i2c-[0-9]*", ATTRS{name}=="w1-19-*", \
|
||||
SYMLINK+="i2c-$attr{name}"
|
||||
-------------------------------------------------------------------------------
|
||||
may be used to create stable /dev/i2c- entries based on the unique id of the
|
||||
DS28E17 chip.
|
||||
|
||||
|
||||
Driver parameters are:
|
||||
|
||||
speed:
|
||||
This sets up the default I2C speed a DS28E17 get configured for as soon
|
||||
it is connected. The power-on default of the DS28E17 is 400kBaud, but
|
||||
chips may come and go on the Onewire bus without being de-powered and
|
||||
as soon the "w1_ds28e17" driver notices a freshly connected, or
|
||||
reconnected DS28E17 device on the Onewire bus, it will re-apply this
|
||||
setting.
|
||||
|
||||
Valid values are 100, 400, 900 [kBaud]. Any other value means to leave
|
||||
alone the current DS28E17 setting on detect. The default value is 100.
|
||||
|
||||
stretch:
|
||||
This sets up the default stretch value used for freshly connected
|
||||
DS28E17 devices. It is a multiplier used on the calculation of the busy
|
||||
wait time for an I2C transfer. This is to account for I2C slave devices
|
||||
which make heavy use of the I2C clock stretching feature and thus, the
|
||||
needed timeout cannot be pre-calculated correctly. As the w1_ds28e17
|
||||
driver checks the DS28E17's busy flag in a loop after the precalculated
|
||||
wait time, it should be hardly needed to tweak this setting.
|
||||
|
||||
Leave it at 1 unless you get ETIMEDOUT errors and a "w1_slave_driver
|
||||
19-00000002dbd8: busy timeout" in the kernel log.
|
||||
|
||||
Valid values are 1 to 9. The default is 1.
|
||||
|
||||
|
||||
The driver creates sysfs files /sys/bus/w1/devices/19-<id>/speed and
|
||||
/sys/bus/w1/devices/19-<id>/stretch for each device, preloaded with the default
|
||||
settings from the driver parameters. They may be changed anytime. In addition a
|
||||
directory /sys/bus/w1/devices/19-<id>/i2c-<nnn> for the I2C bus master sysfs
|
||||
structure is created.
|
||||
|
||||
|
||||
See https://github.com/ianka/w1_ds28e17 for even more information.
|
||||
|
||||
|
|
@ -5474,7 +5474,7 @@ K: fmc_d.*register
|
|||
|
||||
FPGA MANAGER FRAMEWORK
|
||||
M: Alan Tull <atull@kernel.org>
|
||||
R: Moritz Fischer <mdf@kernel.org>
|
||||
M: Moritz Fischer <mdf@kernel.org>
|
||||
L: linux-fpga@vger.kernel.org
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/atull/linux-fpga.git
|
||||
|
|
@ -13390,6 +13390,7 @@ M: Andreas Noever <andreas.noever@gmail.com>
|
|||
M: Michael Jamet <michael.jamet@intel.com>
|
||||
M: Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||
M: Yehezkel Bernat <yehezkel.bernat@intel.com>
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt.git
|
||||
S: Maintained
|
||||
F: drivers/thunderbolt/
|
||||
F: include/linux/thunderbolt.h
|
||||
|
|
@ -14485,7 +14486,7 @@ M: Manohar Vanga <manohar.vanga@gmail.com>
|
|||
M: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
L: devel@driverdev.osuosl.org
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
|
||||
F: Documentation/driver-api/vme.rst
|
||||
F: drivers/staging/vme/
|
||||
F: drivers/vme/
|
||||
|
|
|
|||
|
|
@ -210,9 +210,10 @@ void hyperv_cleanup(void)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(hyperv_cleanup);
|
||||
|
||||
void hyperv_report_panic(struct pt_regs *regs)
|
||||
void hyperv_report_panic(struct pt_regs *regs, long err)
|
||||
{
|
||||
static bool panic_reported;
|
||||
u64 guest_id;
|
||||
|
||||
/*
|
||||
* We prefer to report panic on 'die' chain as we have proper
|
||||
|
|
@ -223,11 +224,13 @@ void hyperv_report_panic(struct pt_regs *regs)
|
|||
return;
|
||||
panic_reported = true;
|
||||
|
||||
wrmsrl(HV_X64_MSR_CRASH_P0, regs->ip);
|
||||
wrmsrl(HV_X64_MSR_CRASH_P1, regs->ax);
|
||||
wrmsrl(HV_X64_MSR_CRASH_P2, regs->bx);
|
||||
wrmsrl(HV_X64_MSR_CRASH_P3, regs->cx);
|
||||
wrmsrl(HV_X64_MSR_CRASH_P4, regs->dx);
|
||||
rdmsrl(HV_X64_MSR_GUEST_OS_ID, guest_id);
|
||||
|
||||
wrmsrl(HV_X64_MSR_CRASH_P0, err);
|
||||
wrmsrl(HV_X64_MSR_CRASH_P1, guest_id);
|
||||
wrmsrl(HV_X64_MSR_CRASH_P2, regs->ip);
|
||||
wrmsrl(HV_X64_MSR_CRASH_P3, regs->ax);
|
||||
wrmsrl(HV_X64_MSR_CRASH_P4, regs->sp);
|
||||
|
||||
/*
|
||||
* Let Hyper-V know there is crash data available
|
||||
|
|
|
|||
|
|
@ -311,7 +311,7 @@ static inline int hv_cpu_number_to_vp_number(int cpu_number)
|
|||
void hyperv_init(void);
|
||||
void hyperv_setup_mmu_ops(void);
|
||||
void hyper_alloc_mmu(void);
|
||||
void hyperv_report_panic(struct pt_regs *regs);
|
||||
void hyperv_report_panic(struct pt_regs *regs, long err);
|
||||
bool hv_is_hypercall_page_setup(void);
|
||||
void hyperv_cleanup(void);
|
||||
#else /* CONFIG_HYPERV */
|
||||
|
|
|
|||
|
|
@ -2192,7 +2192,7 @@ static void binder_transaction_buffer_release(struct binder_proc *proc,
|
|||
off_start,
|
||||
offp - off_start);
|
||||
if (!parent) {
|
||||
pr_err("transaction release %d bad parent offset",
|
||||
pr_err("transaction release %d bad parent offset\n",
|
||||
debug_id);
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -186,12 +186,12 @@ struct binder_buffer *binder_alloc_prepare_to_free(struct binder_alloc *alloc,
|
|||
}
|
||||
|
||||
static int binder_update_page_range(struct binder_alloc *alloc, int allocate,
|
||||
void *start, void *end,
|
||||
struct vm_area_struct *vma)
|
||||
void *start, void *end)
|
||||
{
|
||||
void *page_addr;
|
||||
unsigned long user_page_addr;
|
||||
struct binder_lru_page *page;
|
||||
struct vm_area_struct *vma = NULL;
|
||||
struct mm_struct *mm = NULL;
|
||||
bool need_mm = false;
|
||||
|
||||
|
|
@ -215,7 +215,7 @@ static int binder_update_page_range(struct binder_alloc *alloc, int allocate,
|
|||
}
|
||||
}
|
||||
|
||||
if (!vma && need_mm && mmget_not_zero(alloc->vma_vm_mm))
|
||||
if (need_mm && mmget_not_zero(alloc->vma_vm_mm))
|
||||
mm = alloc->vma_vm_mm;
|
||||
|
||||
if (mm) {
|
||||
|
|
@ -437,7 +437,7 @@ struct binder_buffer *binder_alloc_new_buf_locked(struct binder_alloc *alloc,
|
|||
if (end_page_addr > has_page_addr)
|
||||
end_page_addr = has_page_addr;
|
||||
ret = binder_update_page_range(alloc, 1,
|
||||
(void *)PAGE_ALIGN((uintptr_t)buffer->data), end_page_addr, NULL);
|
||||
(void *)PAGE_ALIGN((uintptr_t)buffer->data), end_page_addr);
|
||||
if (ret)
|
||||
return ERR_PTR(ret);
|
||||
|
||||
|
|
@ -478,7 +478,7 @@ struct binder_buffer *binder_alloc_new_buf_locked(struct binder_alloc *alloc,
|
|||
err_alloc_buf_struct_failed:
|
||||
binder_update_page_range(alloc, 0,
|
||||
(void *)PAGE_ALIGN((uintptr_t)buffer->data),
|
||||
end_page_addr, NULL);
|
||||
end_page_addr);
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
||||
|
|
@ -562,8 +562,7 @@ static void binder_delete_free_buffer(struct binder_alloc *alloc,
|
|||
alloc->pid, buffer->data,
|
||||
prev->data, next ? next->data : NULL);
|
||||
binder_update_page_range(alloc, 0, buffer_start_page(buffer),
|
||||
buffer_start_page(buffer) + PAGE_SIZE,
|
||||
NULL);
|
||||
buffer_start_page(buffer) + PAGE_SIZE);
|
||||
}
|
||||
list_del(&buffer->entry);
|
||||
kfree(buffer);
|
||||
|
|
@ -600,8 +599,7 @@ static void binder_free_buf_locked(struct binder_alloc *alloc,
|
|||
|
||||
binder_update_page_range(alloc, 0,
|
||||
(void *)PAGE_ALIGN((uintptr_t)buffer->data),
|
||||
(void *)(((uintptr_t)buffer->data + buffer_size) & PAGE_MASK),
|
||||
NULL);
|
||||
(void *)(((uintptr_t)buffer->data + buffer_size) & PAGE_MASK));
|
||||
|
||||
rb_erase(&buffer->rb_node, &alloc->allocated_buffers);
|
||||
buffer->free = 1;
|
||||
|
|
@ -984,7 +982,7 @@ binder_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
|
|||
return ret;
|
||||
}
|
||||
|
||||
struct shrinker binder_shrinker = {
|
||||
static struct shrinker binder_shrinker = {
|
||||
.count_objects = binder_shrink_count,
|
||||
.scan_objects = binder_shrink_scan,
|
||||
.seeks = DEFAULT_SEEKS,
|
||||
|
|
|
|||
|
|
@ -659,9 +659,9 @@ static void terminate_monitor(struct cm4000_dev *dev)
|
|||
* is already doing that for you.
|
||||
*/
|
||||
|
||||
static void monitor_card(unsigned long p)
|
||||
static void monitor_card(struct timer_list *t)
|
||||
{
|
||||
struct cm4000_dev *dev = (struct cm4000_dev *) p;
|
||||
struct cm4000_dev *dev = from_timer(dev, t, timer);
|
||||
unsigned int iobase = dev->p_dev->resource[0]->start;
|
||||
unsigned short s;
|
||||
struct ptsreq ptsreq;
|
||||
|
|
@ -1374,7 +1374,7 @@ static void start_monitor(struct cm4000_dev *dev)
|
|||
DEBUGP(3, dev, "-> start_monitor\n");
|
||||
if (!dev->monitor_running) {
|
||||
DEBUGP(5, dev, "create, init and add timer\n");
|
||||
setup_timer(&dev->timer, monitor_card, (unsigned long)dev);
|
||||
timer_setup(&dev->timer, monitor_card, 0);
|
||||
dev->monitor_running = 1;
|
||||
mod_timer(&dev->timer, jiffies);
|
||||
} else
|
||||
|
|
|
|||
|
|
@ -104,9 +104,9 @@ static inline unsigned char xinb(unsigned short port)
|
|||
|
||||
/* poll the device fifo status register. not to be confused with
|
||||
* the poll syscall. */
|
||||
static void cm4040_do_poll(unsigned long dummy)
|
||||
static void cm4040_do_poll(struct timer_list *t)
|
||||
{
|
||||
struct reader_dev *dev = (struct reader_dev *) dummy;
|
||||
struct reader_dev *dev = from_timer(dev, t, poll_timer);
|
||||
unsigned int obs = xinb(dev->p_dev->resource[0]->start
|
||||
+ REG_OFFSET_BUFFER_STATUS);
|
||||
|
||||
|
|
@ -465,7 +465,6 @@ static int cm4040_open(struct inode *inode, struct file *filp)
|
|||
|
||||
link->open = 1;
|
||||
|
||||
dev->poll_timer.data = (unsigned long) dev;
|
||||
mod_timer(&dev->poll_timer, jiffies + POLL_PERIOD);
|
||||
|
||||
DEBUGP(2, dev, "<- cm4040_open (successfully)\n");
|
||||
|
|
@ -585,7 +584,7 @@ static int reader_probe(struct pcmcia_device *link)
|
|||
init_waitqueue_head(&dev->poll_wait);
|
||||
init_waitqueue_head(&dev->read_wait);
|
||||
init_waitqueue_head(&dev->write_wait);
|
||||
setup_timer(&dev->poll_timer, cm4040_do_poll, 0);
|
||||
timer_setup(&dev->poll_timer, cm4040_do_poll, 0);
|
||||
|
||||
ret = reader_config(link, i);
|
||||
if (ret) {
|
||||
|
|
|
|||
|
|
@ -375,7 +375,7 @@ static void reset_device(MGSLPC_INFO *info);
|
|||
static void hdlc_mode(MGSLPC_INFO *info);
|
||||
static void async_mode(MGSLPC_INFO *info);
|
||||
|
||||
static void tx_timeout(unsigned long context);
|
||||
static void tx_timeout(struct timer_list *t);
|
||||
|
||||
static int carrier_raised(struct tty_port *port);
|
||||
static void dtr_rts(struct tty_port *port, int onoff);
|
||||
|
|
@ -1289,7 +1289,7 @@ static int startup(MGSLPC_INFO * info, struct tty_struct *tty)
|
|||
|
||||
memset(&info->icount, 0, sizeof(info->icount));
|
||||
|
||||
setup_timer(&info->tx_timer, tx_timeout, (unsigned long)info);
|
||||
timer_setup(&info->tx_timer, tx_timeout, 0);
|
||||
|
||||
/* Allocate and claim adapter resources */
|
||||
retval = claim_resources(info);
|
||||
|
|
@ -3846,9 +3846,9 @@ static void trace_block(MGSLPC_INFO *info,const char* data, int count, int xmit)
|
|||
/* HDLC frame time out
|
||||
* update stats and do tx completion processing
|
||||
*/
|
||||
static void tx_timeout(unsigned long context)
|
||||
static void tx_timeout(struct timer_list *t)
|
||||
{
|
||||
MGSLPC_INFO *info = (MGSLPC_INFO*)context;
|
||||
MGSLPC_INFO *info = from_timer(info, t, tx_timer);
|
||||
unsigned long flags;
|
||||
|
||||
if (debug_level >= DEBUG_LEVEL_INFO)
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ static int xlnx_pr_decoupler_enable_show(struct fpga_bridge *bridge)
|
|||
return !status;
|
||||
}
|
||||
|
||||
static struct fpga_bridge_ops xlnx_pr_decoupler_br_ops = {
|
||||
static const struct fpga_bridge_ops xlnx_pr_decoupler_br_ops = {
|
||||
.enable_set = xlnx_pr_decoupler_enable_set,
|
||||
.enable_show = xlnx_pr_decoupler_enable_show,
|
||||
};
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue