Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next

Backmerge v4.9-rc8 to get at

commit e94bd1736f
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Wed Nov 30 17:30:01 2016 +0900

drm: Don't call drm_for_each_crtc with a non-KMS driver

so I can apply Michel's follow-up patch.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
This commit is contained in:
Daniel Vetter 2016-12-06 10:26:30 +01:00
commit 75e75cbd55
1207 changed files with 78760 additions and 11233 deletions

View File

@ -9,7 +9,7 @@
Linus Linus
---------- ----------
M: Matt Mackal N: Matt Mackal
E: mpm@selenic.com E: mpm@selenic.com
D: SLOB slab allocator D: SLOB slab allocator
@ -1910,7 +1910,7 @@ S: Ra'annana, Israel
N: Andi Kleen N: Andi Kleen
E: andi@firstfloor.org E: andi@firstfloor.org
U: http://www.halobates.de W: http://www.halobates.de
D: network, x86, NUMA, various hacks D: network, x86, NUMA, various hacks
S: Schwalbenstr. 96 S: Schwalbenstr. 96
S: 85551 Ottobrunn S: 85551 Ottobrunn
@ -2089,8 +2089,8 @@ D: ST Microelectronics SPEAr13xx PCI host bridge driver
D: Synopsys Designware PCI host bridge driver D: Synopsys Designware PCI host bridge driver
N: Gabor Kuti N: Gabor Kuti
M: seasons@falcon.sch.bme.hu E: seasons@falcon.sch.bme.hu
M: seasons@makosteszta.sote.hu E: seasons@makosteszta.sote.hu
D: Original author of software suspend D: Original author of software suspend
N: Jaroslav Kysela N: Jaroslav Kysela

View File

@ -1,4 +1,4 @@
What: state What: /sys/devices/system/ibm_rtl/state
Date: Sep 2010 Date: Sep 2010
KernelVersion: 2.6.37 KernelVersion: 2.6.37
Contact: Vernon Mauery <vernux@us.ibm.com> Contact: Vernon Mauery <vernux@us.ibm.com>
@ -10,7 +10,7 @@ Description: The state file allows a means by which to change in and
Users: The ibm-prtm userspace daemon uses this interface. Users: The ibm-prtm userspace daemon uses this interface.
What: version What: /sys/devices/system/ibm_rtl/version
Date: Sep 2010 Date: Sep 2010
KernelVersion: 2.6.37 KernelVersion: 2.6.37
Contact: Vernon Mauery <vernux@us.ibm.com> Contact: Vernon Mauery <vernux@us.ibm.com>

View File

@ -6,10 +6,15 @@ Required properties:
Optional properties: Optional properties:
- powerdown-gpios: power-down gpio - powerdown-gpios: power-down gpio
- reg: I2C address. If and only if present the device node
should be placed into the i2c controller node where the
tfp410 i2c is connected to.
Required nodes: Required nodes:
- Video port 0 for DPI input - Video port 0 for DPI input [1].
- Video port 1 for DVI output - Video port 1 for DVI output [1].
[1]: Documentation/devicetree/bindings/media/video-interfaces.txt
Example Example
------- -------

View File

@ -1,7 +1,9 @@
Device-Tree bindings for tilcdc DRM driver Device-Tree bindings for tilcdc DRM driver
Required properties: Required properties:
- compatible: value should be "ti,am33xx-tilcdc". - compatible: value should be one of the following:
- "ti,am33xx-tilcdc" for AM335x based boards
- "ti,da850-tilcdc" for DA850/AM18x/OMAP-L138 based boards
- interrupts: the interrupt number - interrupts: the interrupt number
- reg: base address and size of the LCDC device - reg: base address and size of the LCDC device
@ -51,7 +53,7 @@ Optional nodes:
Example: Example:
fb: fb@4830e000 { fb: fb@4830e000 {
compatible = "ti,am33xx-tilcdc"; compatible = "ti,am33xx-tilcdc", "ti,da850-tilcdc";
reg = <0x4830e000 0x1000>; reg = <0x4830e000 0x1000>;
interrupt-parent = <&intc>; interrupt-parent = <&intc>;
interrupts = <36>; interrupts = <36>;

View File

@ -6,7 +6,7 @@ perform in-band IPMI communication with their host.
Required properties: Required properties:
- compatible : should be "aspeed,ast2400-bt-bmc" - compatible : should be "aspeed,ast2400-ibt-bmc"
- reg: physical address and size of the registers - reg: physical address and size of the registers
Optional properties: Optional properties:
@ -17,7 +17,7 @@ Optional properties:
Example: Example:
ibt@1e789140 { ibt@1e789140 {
compatible = "aspeed,ast2400-bt-bmc"; compatible = "aspeed,ast2400-ibt-bmc";
reg = <0x1e789140 0x18>; reg = <0x1e789140 0x18>;
interrupts = <8>; interrupts = <8>;
}; };

View File

@ -43,6 +43,9 @@ Optional properties:
reset signal present internally in some host controller IC designs. reset signal present internally in some host controller IC designs.
See Documentation/devicetree/bindings/reset/reset.txt for details. See Documentation/devicetree/bindings/reset/reset.txt for details.
* reset-names: request name for using "resets" property. Must be "reset".
(It will be used together with "resets" property.)
* clocks: from common clock binding: handle to biu and ciu clocks for the * clocks: from common clock binding: handle to biu and ciu clocks for the
bus interface unit clock and the card interface unit clock. bus interface unit clock and the card interface unit clock.
@ -103,6 +106,8 @@ board specific portions as listed below.
interrupts = <0 75 0>; interrupts = <0 75 0>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
resets = <&rst 20>;
reset-names = "reset";
}; };
[board specific internal DMA resources] [board specific internal DMA resources]

View File

@ -9,10 +9,26 @@ The following properties are common to the Ethernet controllers:
- max-speed: number, specifies maximum speed in Mbit/s supported by the device; - max-speed: number, specifies maximum speed in Mbit/s supported by the device;
- max-frame-size: number, maximum transfer unit (IEEE defined MTU), rather than - max-frame-size: number, maximum transfer unit (IEEE defined MTU), rather than
the maximum frame size (there's contradiction in ePAPR). the maximum frame size (there's contradiction in ePAPR).
- phy-mode: string, operation mode of the PHY interface; supported values are - phy-mode: string, operation mode of the PHY interface. This is now a de-facto
"mii", "gmii", "sgmii", "qsgmii", "tbi", "rev-mii", "rmii", "rgmii", "rgmii-id", standard property; supported values are:
"rgmii-rxid", "rgmii-txid", "rtbi", "smii", "xgmii", "trgmii"; this is now a * "mii"
de-facto standard property; * "gmii"
* "sgmii"
* "qsgmii"
* "tbi"
* "rev-mii"
* "rmii"
* "rgmii" (RX and TX delays are added by the MAC when required)
* "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, the
MAC should not add the RX or TX delays in this case)
* "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC
should not add an RX delay in this case)
* "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC
should not add an TX delay in this case)
* "rtbi"
* "smii"
* "xgmii"
* "trgmii"
- phy-connection-type: the same as "phy-mode" property but described in ePAPR; - phy-connection-type: the same as "phy-mode" property but described in ePAPR;
- phy-handle: phandle, specifies a reference to a node representing a PHY - phy-handle: phandle, specifies a reference to a node representing a PHY
device; this property is described in ePAPR and so preferred; device; this property is described in ePAPR and so preferred;

View File

@ -26,13 +26,16 @@ Required properties:
- "sys" - "sys"
- "legacy" - "legacy"
- "client" - "client"
- resets: Must contain five entries for each entry in reset-names. - resets: Must contain seven entries for each entry in reset-names.
See ../reset/reset.txt for details. See ../reset/reset.txt for details.
- reset-names: Must include the following names - reset-names: Must include the following names
- "core" - "core"
- "mgmt" - "mgmt"
- "mgmt-sticky" - "mgmt-sticky"
- "pipe" - "pipe"
- "pm"
- "aclk"
- "pclk"
- pinctrl-names : The pin control state names - pinctrl-names : The pin control state names
- pinctrl-0: The "default" pinctrl state - pinctrl-0: The "default" pinctrl state
- #interrupt-cells: specifies the number of cells needed to encode an - #interrupt-cells: specifies the number of cells needed to encode an
@ -86,8 +89,10 @@ pcie0: pcie@f8000000 {
reg = <0x0 0xf8000000 0x0 0x2000000>, <0x0 0xfd000000 0x0 0x1000000>; reg = <0x0 0xf8000000 0x0 0x2000000>, <0x0 0xfd000000 0x0 0x1000000>;
reg-names = "axi-base", "apb-base"; reg-names = "axi-base", "apb-base";
resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>, resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
<&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>; <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE> ,
reset-names = "core", "mgmt", "mgmt-sticky", "pipe"; <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>, <&cru SRST_A_PCIE>;
reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
"pm", "pclk", "aclk";
phys = <&pcie_phy>; phys = <&pcie_phy>;
phy-names = "pcie-phy"; phy-names = "pcie-phy";
pinctrl-names = "default"; pinctrl-names = "default";

View File

@ -14,11 +14,6 @@ Required properies:
- #size-cells : The value of this property must be 1 - #size-cells : The value of this property must be 1
- ranges : defines mapping between pin controller node (parent) to - ranges : defines mapping between pin controller node (parent) to
gpio-bank node (children). gpio-bank node (children).
- interrupt-parent: phandle of the interrupt parent to which the external
GPIO interrupts are forwarded to.
- st,syscfg: Should be phandle/offset pair. The phandle to the syscon node
which includes IRQ mux selection register, and the offset of the IRQ mux
selection register.
- pins-are-numbered: Specify the subnodes are using numbered pinmux to - pins-are-numbered: Specify the subnodes are using numbered pinmux to
specify pins. specify pins.
@ -37,6 +32,11 @@ Required properties:
Optional properties: Optional properties:
- reset: : Reference to the reset controller - reset: : Reference to the reset controller
- interrupt-parent: phandle of the interrupt parent to which the external
GPIO interrupts are forwarded to.
- st,syscfg: Should be phandle/offset pair. The phandle to the syscon node
which includes IRQ mux selection register, and the offset of the IRQ mux
selection register.
Example: Example:
#include <dt-bindings/pinctrl/stm32f429-pinfunc.h> #include <dt-bindings/pinctrl/stm32f429-pinfunc.h>

View File

@ -12,7 +12,7 @@ Required properties:
Optional properties: Optional properties:
- ti,dmic: phandle for the OMAP dmic node if the machine have it connected - ti,dmic: phandle for the OMAP dmic node if the machine have it connected
- ti,jack_detection: Need to be present if the board capable to detect jack - ti,jack-detection: Need to be present if the board capable to detect jack
insertion, removal. insertion, removal.
Available audio endpoints for the audio-routing table: Available audio endpoints for the audio-routing table:

View File

@ -447,7 +447,6 @@ prototypes:
int (*flush) (struct file *); int (*flush) (struct file *);
int (*release) (struct inode *, struct file *); int (*release) (struct inode *, struct file *);
int (*fsync) (struct file *, loff_t start, loff_t end, int datasync); int (*fsync) (struct file *, loff_t start, loff_t end, int datasync);
int (*aio_fsync) (struct kiocb *, int datasync);
int (*fasync) (int, struct file *, int); int (*fasync) (int, struct file *, int);
int (*lock) (struct file *, int, struct file_lock *); int (*lock) (struct file *, int, struct file_lock *);
ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, ssize_t (*readv) (struct file *, const struct iovec *, unsigned long,

View File

@ -828,7 +828,6 @@ struct file_operations {
int (*flush) (struct file *, fl_owner_t id); int (*flush) (struct file *, fl_owner_t id);
int (*release) (struct inode *, struct file *); int (*release) (struct inode *, struct file *);
int (*fsync) (struct file *, loff_t, loff_t, int datasync); int (*fsync) (struct file *, loff_t, loff_t, int datasync);
int (*aio_fsync) (struct kiocb *, int datasync);
int (*fasync) (int, struct file *, int); int (*fasync) (int, struct file *, int);
int (*lock) (struct file *, int, struct file_lock *); int (*lock) (struct file *, int, struct file_lock *);
ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);

View File

@ -326,7 +326,7 @@ Two parent-locked sibling muxes
This is a good topology. This is a good topology.
.--------. .--------.
.----------. .--| dev D1 | .----------. .--| dev D1 |
| parent- |--' '--------' | parent- |--' '--------'
.--| locked | .--------. .--| locked | .--------.
@ -350,7 +350,7 @@ Mux-locked and parent-locked sibling muxes
This is a good topology. This is a good topology.
.--------. .--------.
.----------. .--| dev D1 | .----------. .--| dev D1 |
| mux- |--' '--------' | mux- |--' '--------'
.--| locked | .--------. .--| locked | .--------.

View File

@ -67,13 +67,14 @@ Note that DSA does not currently create network interfaces for the "cpu" and
Switch tagging protocols Switch tagging protocols
------------------------ ------------------------
DSA currently supports 4 different tagging protocols, and a tag-less mode as DSA currently supports 5 different tagging protocols, and a tag-less mode as
well. The different protocols are implemented in: well. The different protocols are implemented in:
net/dsa/tag_trailer.c: Marvell's 4 trailer tag mode (legacy) net/dsa/tag_trailer.c: Marvell's 4 trailer tag mode (legacy)
net/dsa/tag_dsa.c: Marvell's original DSA tag net/dsa/tag_dsa.c: Marvell's original DSA tag
net/dsa/tag_edsa.c: Marvell's enhanced DSA tag net/dsa/tag_edsa.c: Marvell's enhanced DSA tag
net/dsa/tag_brcm.c: Broadcom's 4 bytes tag net/dsa/tag_brcm.c: Broadcom's 4 bytes tag
net/dsa/tag_qca.c: Qualcomm's 2 bytes tag
The exact format of the tag protocol is vendor specific, but in general, they The exact format of the tag protocol is vendor specific, but in general, they
all contain something which: all contain something which:

View File

@ -62,10 +62,13 @@ nf_conntrack_generic_timeout - INTEGER (seconds)
protocols. protocols.
nf_conntrack_helper - BOOLEAN nf_conntrack_helper - BOOLEAN
0 - disabled 0 - disabled (default)
not 0 - enabled (default) not 0 - enabled
Enable automatic conntrack helper assignment. Enable automatic conntrack helper assignment.
If disabled it is required to set up iptables rules to assign
helpers to connections. See the CT target description in the
iptables-extensions(8) man page for further information.
nf_conntrack_icmp_timeout - INTEGER (seconds) nf_conntrack_icmp_timeout - INTEGER (seconds)
default 30 default 30

View File

@ -777,6 +777,17 @@ Gets the current timestamp of kvmclock as seen by the current guest. In
conjunction with KVM_SET_CLOCK, it is used to ensure monotonicity on scenarios conjunction with KVM_SET_CLOCK, it is used to ensure monotonicity on scenarios
such as migration. such as migration.
When KVM_CAP_ADJUST_CLOCK is passed to KVM_CHECK_EXTENSION, it returns the
set of bits that KVM can return in struct kvm_clock_data's flag member.
The only flag defined now is KVM_CLOCK_TSC_STABLE. If set, the returned
value is the exact kvmclock value seen by all VCPUs at the instant
when KVM_GET_CLOCK was called. If clear, the returned value is simply
CLOCK_MONOTONIC plus a constant offset; the offset can be modified
with KVM_SET_CLOCK. KVM will try to make all VCPUs follow this clock,
but the exact value read by each VCPU could differ, because the host
TSC is not stable.
struct kvm_clock_data { struct kvm_clock_data {
__u64 clock; /* kvmclock current value */ __u64 clock; /* kvmclock current value */
__u32 flags; __u32 flags;

View File

@ -77,6 +77,7 @@ Descriptions of section entries:
Q: Patchwork web based patch tracking system site Q: Patchwork web based patch tracking system site
T: SCM tree type and location. T: SCM tree type and location.
Type is one of: git, hg, quilt, stgit, topgit Type is one of: git, hg, quilt, stgit, topgit
B: Bug tracking system location.
S: Status, one of the following: S: Status, one of the following:
Supported: Someone is actually paid to look after this. Supported: Someone is actually paid to look after this.
Maintained: Someone actually looks after it. Maintained: Someone actually looks after it.
@ -281,6 +282,7 @@ L: linux-acpi@vger.kernel.org
W: https://01.org/linux-acpi W: https://01.org/linux-acpi
Q: https://patchwork.kernel.org/project/linux-acpi/list/ Q: https://patchwork.kernel.org/project/linux-acpi/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
B: https://bugzilla.kernel.org
S: Supported S: Supported
F: drivers/acpi/ F: drivers/acpi/
F: drivers/pnp/pnpacpi/ F: drivers/pnp/pnpacpi/
@ -304,6 +306,8 @@ W: https://acpica.org/
W: https://github.com/acpica/acpica/ W: https://github.com/acpica/acpica/
Q: https://patchwork.kernel.org/project/linux-acpi/list/ Q: https://patchwork.kernel.org/project/linux-acpi/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
B: https://bugzilla.kernel.org
B: https://bugs.acpica.org
S: Supported S: Supported
F: drivers/acpi/acpica/ F: drivers/acpi/acpica/
F: include/acpi/ F: include/acpi/
@ -313,6 +317,7 @@ ACPI FAN DRIVER
M: Zhang Rui <rui.zhang@intel.com> M: Zhang Rui <rui.zhang@intel.com>
L: linux-acpi@vger.kernel.org L: linux-acpi@vger.kernel.org
W: https://01.org/linux-acpi W: https://01.org/linux-acpi
B: https://bugzilla.kernel.org
S: Supported S: Supported
F: drivers/acpi/fan.c F: drivers/acpi/fan.c
@ -328,6 +333,7 @@ ACPI THERMAL DRIVER
M: Zhang Rui <rui.zhang@intel.com> M: Zhang Rui <rui.zhang@intel.com>
L: linux-acpi@vger.kernel.org L: linux-acpi@vger.kernel.org
W: https://01.org/linux-acpi W: https://01.org/linux-acpi
B: https://bugzilla.kernel.org
S: Supported S: Supported
F: drivers/acpi/*thermal* F: drivers/acpi/*thermal*
@ -335,6 +341,7 @@ ACPI VIDEO DRIVER
M: Zhang Rui <rui.zhang@intel.com> M: Zhang Rui <rui.zhang@intel.com>
L: linux-acpi@vger.kernel.org L: linux-acpi@vger.kernel.org
W: https://01.org/linux-acpi W: https://01.org/linux-acpi
B: https://bugzilla.kernel.org
S: Supported S: Supported
F: drivers/acpi/acpi_video.c F: drivers/acpi/acpi_video.c
@ -4278,6 +4285,7 @@ DRM DRIVERS FOR VIVANTE GPU IP
M: Lucas Stach <l.stach@pengutronix.de> M: Lucas Stach <l.stach@pengutronix.de>
R: Russell King <linux+etnaviv@armlinux.org.uk> R: Russell King <linux+etnaviv@armlinux.org.uk>
R: Christian Gmeiner <christian.gmeiner@gmail.com> R: Christian Gmeiner <christian.gmeiner@gmail.com>
L: etnaviv@lists.freedesktop.org
L: dri-devel@lists.freedesktop.org L: dri-devel@lists.freedesktop.org
S: Maintained S: Maintained
F: drivers/gpu/drm/etnaviv/ F: drivers/gpu/drm/etnaviv/
@ -5701,6 +5709,7 @@ HIBERNATION (aka Software Suspend, aka swsusp)
M: "Rafael J. Wysocki" <rjw@rjwysocki.net> M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
M: Pavel Machek <pavel@ucw.cz> M: Pavel Machek <pavel@ucw.cz>
L: linux-pm@vger.kernel.org L: linux-pm@vger.kernel.org
B: https://bugzilla.kernel.org
S: Supported S: Supported
F: arch/x86/power/ F: arch/x86/power/
F: drivers/base/power/ F: drivers/base/power/
@ -7122,6 +7131,7 @@ F: drivers/scsi/53c700*
LED SUBSYSTEM LED SUBSYSTEM
M: Richard Purdie <rpurdie@rpsys.net> M: Richard Purdie <rpurdie@rpsys.net>
M: Jacek Anaszewski <j.anaszewski@samsung.com> M: Jacek Anaszewski <j.anaszewski@samsung.com>
M: Pavel Machek <pavel@ucw.cz>
L: linux-leds@vger.kernel.org L: linux-leds@vger.kernel.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git
S: Maintained S: Maintained
@ -8095,6 +8105,7 @@ F: drivers/infiniband/hw/mlx4/
F: include/linux/mlx4/ F: include/linux/mlx4/
MELLANOX MLX5 core VPI driver MELLANOX MLX5 core VPI driver
M: Saeed Mahameed <saeedm@mellanox.com>
M: Matan Barak <matanb@mellanox.com> M: Matan Barak <matanb@mellanox.com>
M: Leon Romanovsky <leonro@mellanox.com> M: Leon Romanovsky <leonro@mellanox.com>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
@ -9285,11 +9296,12 @@ S: Maintained
F: drivers/pci/host/*layerscape* F: drivers/pci/host/*layerscape*
PCI DRIVER FOR IMX6 PCI DRIVER FOR IMX6
M: Richard Zhu <Richard.Zhu@freescale.com> M: Richard Zhu <hongxing.zhu@nxp.com>
M: Lucas Stach <l.stach@pengutronix.de> M: Lucas Stach <l.stach@pengutronix.de>
L: linux-pci@vger.kernel.org L: linux-pci@vger.kernel.org
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
F: drivers/pci/host/*imx6* F: drivers/pci/host/*imx6*
PCI DRIVER FOR TI KEYSTONE PCI DRIVER FOR TI KEYSTONE
@ -9348,17 +9360,11 @@ F: drivers/pci/host/pci-exynos.c
PCI DRIVER FOR SYNOPSIS DESIGNWARE PCI DRIVER FOR SYNOPSIS DESIGNWARE
M: Jingoo Han <jingoohan1@gmail.com> M: Jingoo Han <jingoohan1@gmail.com>
M: Pratyush Anand <pratyush.anand@gmail.com> M: Joao Pinto <Joao.Pinto@synopsys.com>
L: linux-pci@vger.kernel.org
S: Maintained
F: drivers/pci/host/*designware*
PCI DRIVER FOR SYNOPSYS PROTOTYPING DEVICE
M: Jose Abreu <Jose.Abreu@synopsys.com>
L: linux-pci@vger.kernel.org L: linux-pci@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/pci/designware-pcie.txt F: Documentation/devicetree/bindings/pci/designware-pcie.txt
F: drivers/pci/host/pcie-designware-plat.c F: drivers/pci/host/*designware*
PCI DRIVER FOR GENERIC OF HOSTS PCI DRIVER FOR GENERIC OF HOSTS
M: Will Deacon <will.deacon@arm.com> M: Will Deacon <will.deacon@arm.com>
@ -9373,7 +9379,7 @@ PCI DRIVER FOR INTEL VOLUME MANAGEMENT DEVICE (VMD)
M: Keith Busch <keith.busch@intel.com> M: Keith Busch <keith.busch@intel.com>
L: linux-pci@vger.kernel.org L: linux-pci@vger.kernel.org
S: Supported S: Supported
F: arch/x86/pci/vmd.c F: drivers/pci/host/vmd.c
PCIE DRIVER FOR ST SPEAR13XX PCIE DRIVER FOR ST SPEAR13XX
M: Pratyush Anand <pratyush.anand@gmail.com> M: Pratyush Anand <pratyush.anand@gmail.com>
@ -9660,6 +9666,7 @@ POWER MANAGEMENT CORE
M: "Rafael J. Wysocki" <rjw@rjwysocki.net> M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
L: linux-pm@vger.kernel.org L: linux-pm@vger.kernel.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
B: https://bugzilla.kernel.org
S: Supported S: Supported
F: drivers/base/power/ F: drivers/base/power/
F: include/linux/pm.h F: include/linux/pm.h
@ -11649,6 +11656,7 @@ M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
M: Len Brown <len.brown@intel.com> M: Len Brown <len.brown@intel.com>
M: Pavel Machek <pavel@ucw.cz> M: Pavel Machek <pavel@ucw.cz>
L: linux-pm@vger.kernel.org L: linux-pm@vger.kernel.org
B: https://bugzilla.kernel.org
S: Supported S: Supported
F: Documentation/power/ F: Documentation/power/
F: arch/x86/kernel/acpi/ F: arch/x86/kernel/acpi/

View File

@ -1,7 +1,7 @@
VERSION = 4 VERSION = 4
PATCHLEVEL = 9 PATCHLEVEL = 9
SUBLEVEL = 0 SUBLEVEL = 0
EXTRAVERSION = -rc4 EXTRAVERSION = -rc8
NAME = Psychotic Stoned Sheep NAME = Psychotic Stoned Sheep
# *DOCUMENTATION* # *DOCUMENTATION*
@ -370,7 +370,7 @@ LDFLAGS_MODULE =
CFLAGS_KERNEL = CFLAGS_KERNEL =
AFLAGS_KERNEL = AFLAGS_KERNEL =
LDFLAGS_vmlinux = LDFLAGS_vmlinux =
CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im -Wno-maybe-uninitialized
CFLAGS_KCOV := $(call cc-option,-fsanitize-coverage=trace-pc,) CFLAGS_KCOV := $(call cc-option,-fsanitize-coverage=trace-pc,)
@ -399,11 +399,12 @@ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common \ -fno-strict-aliasing -fno-common \
-Werror-implicit-function-declaration \ -Werror-implicit-function-declaration \
-Wno-format-security \ -Wno-format-security \
-std=gnu89 -std=gnu89 $(call cc-option,-fno-PIE)
KBUILD_AFLAGS_KERNEL := KBUILD_AFLAGS_KERNEL :=
KBUILD_CFLAGS_KERNEL := KBUILD_CFLAGS_KERNEL :=
KBUILD_AFLAGS := -D__ASSEMBLY__ KBUILD_AFLAGS := -D__ASSEMBLY__ $(call cc-option,-fno-PIE)
KBUILD_AFLAGS_MODULE := -DMODULE KBUILD_AFLAGS_MODULE := -DMODULE
KBUILD_CFLAGS_MODULE := -DMODULE KBUILD_CFLAGS_MODULE := -DMODULE
KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
@ -606,6 +607,13 @@ else
include/config/auto.conf: ; include/config/auto.conf: ;
endif # $(dot-config) endif # $(dot-config)
# For the kernel to actually contain only the needed exported symbols,
# we have to build modules as well to determine what those symbols are.
# (this can be evaluated only once include/config/auto.conf has been included)
ifdef CONFIG_TRIM_UNUSED_KSYMS
KBUILD_MODULES := 1
endif
# The all: target is the default when no target is given on the # The all: target is the default when no target is given on the
# command line. # command line.
# This allow a user to issue only 'make' to build a kernel including modules # This allow a user to issue only 'make' to build a kernel including modules
@ -620,7 +628,6 @@ ARCH_CFLAGS :=
include arch/$(SRCARCH)/Makefile include arch/$(SRCARCH)/Makefile
KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,) KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,)
KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,) KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
@ -629,15 +636,18 @@ KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
endif endif
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
else else
ifdef CONFIG_PROFILE_ALL_BRANCHES ifdef CONFIG_PROFILE_ALL_BRANCHES
KBUILD_CFLAGS += -O2 KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
else else
KBUILD_CFLAGS += -O2 KBUILD_CFLAGS += -O2
endif endif
endif endif
KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0409, \
$(call cc-disable-warning,maybe-uninitialized,))
# Tell gcc to never replace conditional load with a non-conditional one # Tell gcc to never replace conditional load with a non-conditional one
KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0) KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
@ -941,7 +951,7 @@ ifdef CONFIG_GDB_SCRIPTS
endif endif
ifdef CONFIG_TRIM_UNUSED_KSYMS ifdef CONFIG_TRIM_UNUSED_KSYMS
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \ $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
"$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile vmlinux_prereq" "$(MAKE) -f $(srctree)/Makefile vmlinux"
endif endif
# standalone target for easier testing # standalone target for easier testing
@ -1016,8 +1026,6 @@ prepare2: prepare3 prepare-compiler-check outputmakefile asm-generic
prepare1: prepare2 $(version_h) include/generated/utsrelease.h \ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
include/config/auto.conf include/config/auto.conf
$(cmd_crmodverdir) $(cmd_crmodverdir)
$(Q)test -e include/generated/autoksyms.h || \
touch include/generated/autoksyms.h
archprepare: archheaders archscripts prepare1 scripts_basic archprepare: archheaders archscripts prepare1 scripts_basic

View File

@ -50,6 +50,9 @@ atleast_gcc44 := $(call cc-ifversion, -ge, 0404, y)
cflags-$(atleast_gcc44) += -fsection-anchors cflags-$(atleast_gcc44) += -fsection-anchors
cflags-$(CONFIG_ARC_HAS_LLSC) += -mlock
cflags-$(CONFIG_ARC_HAS_SWAPE) += -mswape
ifdef CONFIG_ISA_ARCV2 ifdef CONFIG_ISA_ARCV2
ifndef CONFIG_ARC_HAS_LL64 ifndef CONFIG_ARC_HAS_LL64
@ -68,7 +71,9 @@ cflags-$(CONFIG_ARC_DW2_UNWIND) += -fasynchronous-unwind-tables $(cfi)
ifndef CONFIG_CC_OPTIMIZE_FOR_SIZE ifndef CONFIG_CC_OPTIMIZE_FOR_SIZE
# Generic build system uses -O2, we want -O3 # Generic build system uses -O2, we want -O3
# Note: No need to add to cflags-y as that happens anyways # Note: No need to add to cflags-y as that happens anyways
ARCH_CFLAGS += -O3 #
# Disable the false maybe-uninitialized warings gcc spits out at -O3
ARCH_CFLAGS += -O3 $(call cc-disable-warning,maybe-uninitialized,)
endif endif
# small data is default for elf32 tool-chain. If not usable, disable it # small data is default for elf32 tool-chain. If not usable, disable it

View File

@ -71,7 +71,7 @@
reg-io-width = <4>; reg-io-width = <4>;
}; };
arcpmu0: pmu { arcpct0: pct {
compatible = "snps,arc700-pct"; compatible = "snps,arc700-pct";
}; };
}; };

View File

@ -69,7 +69,7 @@
}; };
}; };
arcpmu0: pmu { arcpct0: pct {
compatible = "snps,arc700-pct"; compatible = "snps,arc700-pct";
}; };
}; };

View File

@ -83,5 +83,9 @@
reg = <0xf0003000 0x44>; reg = <0xf0003000 0x44>;
interrupts = <7>; interrupts = <7>;
}; };
arcpct0: pct {
compatible = "snps,arc700-pct";
};
}; };
}; };

View File

@ -14,6 +14,7 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="../arc_initramfs/" CONFIG_INITRAMFS_SOURCE="../arc_initramfs/"
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_KPROBES=y CONFIG_KPROBES=y

View File

@ -14,6 +14,7 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="../../arc_initramfs_hs/" CONFIG_INITRAMFS_SOURCE="../../arc_initramfs_hs/"
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_KPROBES=y CONFIG_KPROBES=y

View File

@ -12,6 +12,7 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/" CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_KPROBES=y CONFIG_KPROBES=y

View File

@ -14,6 +14,7 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="../arc_initramfs/" CONFIG_INITRAMFS_SOURCE="../arc_initramfs/"
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_KPROBES=y CONFIG_KPROBES=y

View File

@ -14,6 +14,7 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/" CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_KPROBES=y CONFIG_KPROBES=y

View File

@ -10,6 +10,7 @@ CONFIG_IKCONFIG_PROC=y
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/" CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
CONFIG_PERF_EVENTS=y
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_KPROBES=y CONFIG_KPROBES=y
CONFIG_MODULES=y CONFIG_MODULES=y
@ -34,7 +35,6 @@ CONFIG_INET=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set # CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set # CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set # CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_IPV6 is not set # CONFIG_IPV6 is not set
# CONFIG_WIRELESS is not set # CONFIG_WIRELESS is not set
CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS=y
@ -72,7 +72,6 @@ CONFIG_SERIAL_OF_PLATFORM=y
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_DRM=y CONFIG_DRM=y
CONFIG_DRM_ARCPGU=y CONFIG_DRM_ARCPGU=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y
# CONFIG_HID is not set # CONFIG_HID is not set
# CONFIG_USB_SUPPORT is not set # CONFIG_USB_SUPPORT is not set

View File

@ -43,12 +43,14 @@
#define STATUS_AE_BIT 5 /* Exception active */ #define STATUS_AE_BIT 5 /* Exception active */
#define STATUS_DE_BIT 6 /* PC is in delay slot */ #define STATUS_DE_BIT 6 /* PC is in delay slot */
#define STATUS_U_BIT 7 /* User/Kernel mode */ #define STATUS_U_BIT 7 /* User/Kernel mode */
#define STATUS_Z_BIT 11
#define STATUS_L_BIT 12 /* Loop inhibit */ #define STATUS_L_BIT 12 /* Loop inhibit */
/* These masks correspond to the status word(STATUS_32) bits */ /* These masks correspond to the status word(STATUS_32) bits */
#define STATUS_AE_MASK (1<<STATUS_AE_BIT) #define STATUS_AE_MASK (1<<STATUS_AE_BIT)
#define STATUS_DE_MASK (1<<STATUS_DE_BIT) #define STATUS_DE_MASK (1<<STATUS_DE_BIT)
#define STATUS_U_MASK (1<<STATUS_U_BIT) #define STATUS_U_MASK (1<<STATUS_U_BIT)
#define STATUS_Z_MASK (1<<STATUS_Z_BIT)
#define STATUS_L_MASK (1<<STATUS_L_BIT) #define STATUS_L_MASK (1<<STATUS_L_BIT)
/* /*

View File

@ -22,10 +22,11 @@
static inline void __delay(unsigned long loops) static inline void __delay(unsigned long loops)
{ {
__asm__ __volatile__( __asm__ __volatile__(
" lp 1f \n" " mov lp_count, %0 \n"
" nop \n" " lp 1f \n"
"1: \n" " nop \n"
: "+l"(loops)); "1: \n"
: : "r"(loops));
} }
extern void __bad_udelay(void); extern void __bad_udelay(void);

View File

@ -280,7 +280,7 @@ static inline void pmd_set(pmd_t *pmdp, pte_t *ptep)
#define pte_page(pte) pfn_to_page(pte_pfn(pte)) #define pte_page(pte) pfn_to_page(pte_pfn(pte))
#define mk_pte(page, prot) pfn_pte(page_to_pfn(page), prot) #define mk_pte(page, prot) pfn_pte(page_to_pfn(page), prot)
#define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)) #define pfn_pte(pfn, prot) __pte(__pfn_to_phys(pfn) | pgprot_val(prot))
/* Don't use virt_to_pfn for macros below: could cause truncations for PAE40*/ /* Don't use virt_to_pfn for macros below: could cause truncations for PAE40*/
#define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT)

View File

@ -37,9 +37,9 @@ extern const char *arc_platform_smp_cpuinfo(void);
* API expected BY platform smp code (FROM arch smp code) * API expected BY platform smp code (FROM arch smp code)
* *
* smp_ipi_irq_setup: * smp_ipi_irq_setup:
* Takes @cpu and @irq to which the arch-common ISR is hooked up * Takes @cpu and @hwirq to which the arch-common ISR is hooked up
*/ */
extern int smp_ipi_irq_setup(int cpu, int irq); extern int smp_ipi_irq_setup(int cpu, irq_hw_number_t hwirq);
/* /*
* struct plat_smp_ops - SMP callbacks provided by platform to ARC SMP * struct plat_smp_ops - SMP callbacks provided by platform to ARC SMP

View File

@ -31,6 +31,8 @@ static void __init arc_set_early_base_baud(unsigned long dt_root)
arc_base_baud = 166666666; /* Fixed 166.6MHz clk (TB10x) */ arc_base_baud = 166666666; /* Fixed 166.6MHz clk (TB10x) */
else if (of_flat_dt_is_compatible(dt_root, "snps,arc-sdp")) else if (of_flat_dt_is_compatible(dt_root, "snps,arc-sdp"))
arc_base_baud = 33333333; /* Fixed 33MHz clk (AXS10x) */ arc_base_baud = 33333333; /* Fixed 33MHz clk (AXS10x) */
else if (of_flat_dt_is_compatible(dt_root, "ezchip,arc-nps"))
arc_base_baud = 800000000; /* Fixed 800MHz clk (NPS) */
else else
arc_base_baud = 50000000; /* Fixed default 50MHz */ arc_base_baud = 50000000; /* Fixed default 50MHz */
} }

View File

@ -181,6 +181,8 @@ idu_irq_set_affinity(struct irq_data *data, const struct cpumask *cpumask,
{ {
unsigned long flags; unsigned long flags;
cpumask_t online; cpumask_t online;
unsigned int destination_bits;
unsigned int distribution_mode;
/* errout if no online cpu per @cpumask */ /* errout if no online cpu per @cpumask */
if (!cpumask_and(&online, cpumask, cpu_online_mask)) if (!cpumask_and(&online, cpumask, cpu_online_mask))
@ -188,8 +190,15 @@ idu_irq_set_affinity(struct irq_data *data, const struct cpumask *cpumask,
raw_spin_lock_irqsave(&mcip_lock, flags); raw_spin_lock_irqsave(&mcip_lock, flags);
idu_set_dest(data->hwirq, cpumask_bits(&online)[0]); destination_bits = cpumask_bits(&online)[0];
idu_set_mode(data->hwirq, IDU_M_TRIG_LEVEL, IDU_M_DISTRI_RR); idu_set_dest(data->hwirq, destination_bits);
if (ffs(destination_bits) == fls(destination_bits))
distribution_mode = IDU_M_DISTRI_DEST;
else
distribution_mode = IDU_M_DISTRI_RR;
idu_set_mode(data->hwirq, IDU_M_TRIG_LEVEL, distribution_mode);
raw_spin_unlock_irqrestore(&mcip_lock, flags); raw_spin_unlock_irqrestore(&mcip_lock, flags);
@ -207,16 +216,15 @@ static struct irq_chip idu_irq_chip = {
}; };
static int idu_first_irq; static irq_hw_number_t idu_first_hwirq;
static void idu_cascade_isr(struct irq_desc *desc) static void idu_cascade_isr(struct irq_desc *desc)
{ {
struct irq_domain *domain = irq_desc_get_handler_data(desc); struct irq_domain *idu_domain = irq_desc_get_handler_data(desc);
unsigned int core_irq = irq_desc_get_irq(desc); irq_hw_number_t core_hwirq = irqd_to_hwirq(irq_desc_get_irq_data(desc));
unsigned int idu_irq; irq_hw_number_t idu_hwirq = core_hwirq - idu_first_hwirq;
idu_irq = core_irq - idu_first_irq; generic_handle_irq(irq_find_mapping(idu_domain, idu_hwirq));
generic_handle_irq(irq_find_mapping(domain, idu_irq));
} }
static int idu_irq_map(struct irq_domain *d, unsigned int virq, irq_hw_number_t hwirq) static int idu_irq_map(struct irq_domain *d, unsigned int virq, irq_hw_number_t hwirq)
@ -282,7 +290,7 @@ idu_of_init(struct device_node *intc, struct device_node *parent)
struct irq_domain *domain; struct irq_domain *domain;
/* Read IDU BCR to confirm nr_irqs */ /* Read IDU BCR to confirm nr_irqs */
int nr_irqs = of_irq_count(intc); int nr_irqs = of_irq_count(intc);
int i, irq; int i, virq;
struct mcip_bcr mp; struct mcip_bcr mp;
READ_BCR(ARC_REG_MCIP_BCR, mp); READ_BCR(ARC_REG_MCIP_BCR, mp);
@ -303,11 +311,11 @@ idu_of_init(struct device_node *intc, struct device_node *parent)
* however we need it to get the parent virq and set IDU handler * however we need it to get the parent virq and set IDU handler
* as first level isr * as first level isr
*/ */
irq = irq_of_parse_and_map(intc, i); virq = irq_of_parse_and_map(intc, i);
if (!i) if (!i)
idu_first_irq = irq; idu_first_hwirq = irqd_to_hwirq(irq_get_irq_data(virq));
irq_set_chained_handler_and_data(irq, idu_cascade_isr, domain); irq_set_chained_handler_and_data(virq, idu_cascade_isr, domain);
} }
__mcip_cmd(CMD_IDU_ENABLE, 0); __mcip_cmd(CMD_IDU_ENABLE, 0);

View File

@ -43,8 +43,8 @@ SYSCALL_DEFINE0(arc_gettls)
SYSCALL_DEFINE3(arc_usr_cmpxchg, int *, uaddr, int, expected, int, new) SYSCALL_DEFINE3(arc_usr_cmpxchg, int *, uaddr, int, expected, int, new)
{ {
int uval; struct pt_regs *regs = current_pt_regs();
int ret; int uval = -EFAULT;
/* /*
* This is only for old cores lacking LLOCK/SCOND, which by defintion * This is only for old cores lacking LLOCK/SCOND, which by defintion
@ -54,24 +54,26 @@ SYSCALL_DEFINE3(arc_usr_cmpxchg, int *, uaddr, int, expected, int, new)
*/ */
WARN_ON_ONCE(IS_ENABLED(CONFIG_SMP)); WARN_ON_ONCE(IS_ENABLED(CONFIG_SMP));
/* Z indicates to userspace if operation succeded */
regs->status32 &= ~STATUS_Z_MASK;
if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
return -EFAULT; return -EFAULT;
preempt_disable(); preempt_disable();
ret = __get_user(uval, uaddr); if (__get_user(uval, uaddr))
if (ret)
goto done; goto done;
if (uval != expected) if (uval == expected) {
ret = -EAGAIN; if (!__put_user(new, uaddr))
else regs->status32 |= STATUS_Z_MASK;
ret = __put_user(new, uaddr); }
done: done:
preempt_enable(); preempt_enable();
return ret; return uval;
} }
void arch_cpu_idle(void) void arch_cpu_idle(void)

View File

@ -22,6 +22,7 @@
#include <linux/atomic.h> #include <linux/atomic.h>
#include <linux/cpumask.h> #include <linux/cpumask.h>
#include <linux/reboot.h> #include <linux/reboot.h>
#include <linux/irqdomain.h>
#include <asm/processor.h> #include <asm/processor.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/mach_desc.h> #include <asm/mach_desc.h>
@ -67,11 +68,13 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
int i; int i;
/* /*
* Initialise the present map, which describes the set of CPUs * if platform didn't set the present map already, do it now
* actually populated at the present time. * boot cpu is set to present already by init/main.c
*/ */
for (i = 0; i < max_cpus; i++) if (num_present_cpus() <= 1) {
set_cpu_present(i, true); for (i = 0; i < max_cpus; i++)
set_cpu_present(i, true);
}
} }
void __init smp_cpus_done(unsigned int max_cpus) void __init smp_cpus_done(unsigned int max_cpus)
@ -351,20 +354,24 @@ irqreturn_t do_IPI(int irq, void *dev_id)
*/ */
static DEFINE_PER_CPU(int, ipi_dev); static DEFINE_PER_CPU(int, ipi_dev);
int smp_ipi_irq_setup(int cpu, int irq) int smp_ipi_irq_setup(int cpu, irq_hw_number_t hwirq)
{ {
int *dev = per_cpu_ptr(&ipi_dev, cpu); int *dev = per_cpu_ptr(&ipi_dev, cpu);
unsigned int virq = irq_find_mapping(NULL, hwirq);
if (!virq)
panic("Cannot find virq for root domain and hwirq=%lu", hwirq);
/* Boot cpu calls request, all call enable */ /* Boot cpu calls request, all call enable */
if (!cpu) { if (!cpu) {
int rc; int rc;
rc = request_percpu_irq(irq, do_IPI, "IPI Interrupt", dev); rc = request_percpu_irq(virq, do_IPI, "IPI Interrupt", dev);
if (rc) if (rc)
panic("Percpu IRQ request failed for %d\n", irq); panic("Percpu IRQ request failed for %u\n", virq);
} }
enable_percpu_irq(irq, 0); enable_percpu_irq(virq, 0);
return 0; return 0;
} }

View File

@ -152,14 +152,17 @@ static cycle_t arc_read_rtc(struct clocksource *cs)
cycle_t full; cycle_t full;
} stamp; } stamp;
/*
__asm__ __volatile( * hardware has an internal state machine which tracks readout of
"1: \n" * low/high and updates the CTRL.status if
" lr %0, [AUX_RTC_LOW] \n" * - interrupt/exception taken between the two reads
" lr %1, [AUX_RTC_HIGH] \n" * - high increments after low has been read
" lr %2, [AUX_RTC_CTRL] \n" */
" bbit0.nt %2, 31, 1b \n" do {
: "=r" (stamp.low), "=r" (stamp.high), "=r" (status)); stamp.low = read_aux_reg(AUX_RTC_LOW);
stamp.high = read_aux_reg(AUX_RTC_HIGH);
status = read_aux_reg(AUX_RTC_CTRL);
} while (!(status & _BITUL(31)));
return stamp.full; return stamp.full;
} }

View File

@ -23,7 +23,7 @@
static int l2_line_sz; static int l2_line_sz;
static int ioc_exists; static int ioc_exists;
int slc_enable = 1, ioc_enable = 1; int slc_enable = 1, ioc_enable = 0;
unsigned long perip_base = ARC_UNCACHED_ADDR_SPACE; /* legacy value for boot */ unsigned long perip_base = ARC_UNCACHED_ADDR_SPACE; /* legacy value for boot */
unsigned long perip_end = 0xFFFFFFFF; /* legacy value */ unsigned long perip_end = 0xFFFFFFFF; /* legacy value */

View File

@ -105,6 +105,31 @@ static void arc_dma_free(struct device *dev, size_t size, void *vaddr,
__free_pages(page, get_order(size)); __free_pages(page, get_order(size));
} }
static int arc_dma_mmap(struct device *dev, struct vm_area_struct *vma,
void *cpu_addr, dma_addr_t dma_addr, size_t size,
unsigned long attrs)
{
unsigned long user_count = vma_pages(vma);
unsigned long count = PAGE_ALIGN(size) >> PAGE_SHIFT;
unsigned long pfn = __phys_to_pfn(plat_dma_to_phys(dev, dma_addr));
unsigned long off = vma->vm_pgoff;
int ret = -ENXIO;
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
if (dma_mmap_from_coherent(dev, vma, cpu_addr, size, &ret))
return ret;
if (off < count && user_count <= (count - off)) {
ret = remap_pfn_range(vma, vma->vm_start,
pfn + off,
user_count << PAGE_SHIFT,
vma->vm_page_prot);
}
return ret;
}
/* /*
* streaming DMA Mapping API... * streaming DMA Mapping API...
* CPU accesses page via normal paddr, thus needs to explicitly made * CPU accesses page via normal paddr, thus needs to explicitly made
@ -193,6 +218,7 @@ static int arc_dma_supported(struct device *dev, u64 dma_mask)
struct dma_map_ops arc_dma_ops = { struct dma_map_ops arc_dma_ops = {
.alloc = arc_dma_alloc, .alloc = arc_dma_alloc,
.free = arc_dma_free, .free = arc_dma_free,
.mmap = arc_dma_mmap,
.map_page = arc_dma_map_page, .map_page = arc_dma_map_page,
.map_sg = arc_dma_map_sg, .map_sg = arc_dma_map_sg,
.sync_single_for_device = arc_dma_sync_single_for_device, .sync_single_for_device = arc_dma_sync_single_for_device,

View File

@ -140,16 +140,10 @@ static void eznps_init_per_cpu(int cpu)
mtm_enable_core(cpu); mtm_enable_core(cpu);
} }
static void eznps_ipi_clear(int irq)
{
write_aux_reg(CTOP_AUX_IACK, 1 << irq);
}
struct plat_smp_ops plat_smp_ops = { struct plat_smp_ops plat_smp_ops = {
.info = smp_cpuinfo_buf, .info = smp_cpuinfo_buf,
.init_early_smp = eznps_init_cpumasks, .init_early_smp = eznps_init_cpumasks,
.cpu_kick = eznps_smp_wakeup_cpu, .cpu_kick = eznps_smp_wakeup_cpu,
.ipi_send = eznps_ipi_send, .ipi_send = eznps_ipi_send,
.init_per_cpu = eznps_init_per_cpu, .init_per_cpu = eznps_init_per_cpu,
.ipi_clear = eznps_ipi_clear,
}; };

View File

@ -745,7 +745,6 @@ dtb-$(CONFIG_MACH_SUN4I) += \
sun4i-a10-pcduino2.dtb \ sun4i-a10-pcduino2.dtb \
sun4i-a10-pov-protab2-ips9.dtb sun4i-a10-pov-protab2-ips9.dtb
dtb-$(CONFIG_MACH_SUN5I) += \ dtb-$(CONFIG_MACH_SUN5I) += \
ntc-gr8-evb.dtb \
sun5i-a10s-auxtek-t003.dtb \ sun5i-a10s-auxtek-t003.dtb \
sun5i-a10s-auxtek-t004.dtb \ sun5i-a10s-auxtek-t004.dtb \
sun5i-a10s-mk802.dtb \ sun5i-a10s-mk802.dtb \
@ -761,6 +760,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
sun5i-a13-olinuxino-micro.dtb \ sun5i-a13-olinuxino-micro.dtb \
sun5i-a13-q8-tablet.dtb \ sun5i-a13-q8-tablet.dtb \
sun5i-a13-utoo-p66.dtb \ sun5i-a13-utoo-p66.dtb \
sun5i-gr8-evb.dtb \
sun5i-r8-chip.dtb sun5i-r8-chip.dtb
dtb-$(CONFIG_MACH_SUN6I) += \ dtb-$(CONFIG_MACH_SUN6I) += \
sun6i-a31-app4-evb1.dtb \ sun6i-a31-app4-evb1.dtb \

View File

@ -64,8 +64,8 @@
}; };
ldo3_reg: ldo3 { ldo3_reg: ldo3 {
regulator-min-microvolt = <600000>; regulator-min-microvolt = <1725000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <3300000>;
regulator-always-on; regulator-always-on;
}; };
@ -76,8 +76,8 @@
}; };
ldo5_reg: ldo5 { ldo5_reg: ldo5 {
regulator-min-microvolt = <1725000>; regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3600000>;
regulator-always-on; regulator-always-on;
}; };
@ -100,14 +100,14 @@
}; };
ldo9_reg: ldo9 { ldo9_reg: ldo9 {
regulator-min-microvolt = <1200000>; regulator-min-microvolt = <1250000>;
regulator-max-microvolt = <3600000>; regulator-max-microvolt = <3600000>;
regulator-always-on; regulator-always-on;
}; };
ldo10_reg: ldo10 { ldo10_reg: ldo10 {
regulator-min-microvolt = <1250000>; regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3650000>; regulator-max-microvolt = <3600000>;
regulator-always-on; regulator-always-on;
}; };
}; };

View File

@ -13,6 +13,11 @@
}; };
}; };
memory@80000000 {
device_type = "memory";
reg = <0x80000000 0>;
};
wl12xx_vmmc: wl12xx_vmmc { wl12xx_vmmc: wl12xx_vmmc {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "vwl1271"; regulator-name = "vwl1271";

View File

@ -13,9 +13,9 @@
}; };
}; };
memory@0 { memory@80000000 {
device_type = "memory"; device_type = "memory";
reg = <0 0>; reg = <0x80000000 0>;
}; };
leds { leds {

View File

@ -124,6 +124,7 @@
compatible = "ti,abe-twl6040"; compatible = "ti,abe-twl6040";
ti,model = "omap5-uevm"; ti,model = "omap5-uevm";
ti,jack-detection;
ti,mclk-freq = <19200000>; ti,mclk-freq = <19200000>;
ti,mcpdm = <&mcpdm>; ti,mcpdm = <&mcpdm>;
@ -415,7 +416,7 @@
ti,backup-battery-charge-high-current; ti,backup-battery-charge-high-current;
}; };
gpadc { gpadc: gpadc {
compatible = "ti,palmas-gpadc"; compatible = "ti,palmas-gpadc";
interrupts = <18 0 interrupts = <18 0
16 0 16 0
@ -475,8 +476,8 @@
smps6_reg: smps6 { smps6_reg: smps6 {
/* VDD_DDR3 - over VDD_SMPS6 */ /* VDD_DDR3 - over VDD_SMPS6 */
regulator-name = "smps6"; regulator-name = "smps6";
regulator-min-microvolt = <1200000>; regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1200000>; regulator-max-microvolt = <1350000>;
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
}; };

View File

@ -283,6 +283,8 @@
clock-frequency = <400000>; clock-frequency = <400000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c0_default>; pinctrl-0 = <&pinctrl_i2c0_default>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };
@ -296,6 +298,8 @@
clock-frequency = <400000>; clock-frequency = <400000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1_default>; pinctrl-0 = <&pinctrl_i2c1_default>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };
@ -309,6 +313,8 @@
clock-frequency = <400000>; clock-frequency = <400000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2_default>; pinctrl-0 = <&pinctrl_i2c2_default>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };
@ -322,6 +328,8 @@
clock-frequency = <400000>; clock-frequency = <400000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3_default>; pinctrl-0 = <&pinctrl_i2c3_default>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };
@ -335,6 +343,8 @@
clock-frequency = <400000>; clock-frequency = <400000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c4_default>; pinctrl-0 = <&pinctrl_i2c4_default>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };
@ -348,6 +358,8 @@
clock-frequency = <400000>; clock-frequency = <400000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c5_default>; pinctrl-0 = <&pinctrl_i2c5_default>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };
@ -363,6 +375,8 @@
clock-frequency = <400000>; clock-frequency = <400000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c10_default>; pinctrl-0 = <&pinctrl_i2c10_default>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };
@ -376,6 +390,8 @@
clock-frequency = <400000>; clock-frequency = <400000>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c11_default>; pinctrl-0 = <&pinctrl_i2c11_default>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled"; status = "disabled";
}; };

View File

@ -74,7 +74,7 @@
/* Low speed expansion connector */ /* Low speed expansion connector */
spi0: spi@9844000 { spi0: spi@9844000 {
label = "LS-SPI0"; label = "LS-SPI0";
cs-gpio = <&pio30 3 0>; cs-gpios = <&pio30 3 0>;
status = "okay"; status = "okay";
}; };

View File

@ -44,7 +44,7 @@
*/ */
/dts-v1/; /dts-v1/;
#include "ntc-gr8.dtsi" #include "sun5i-gr8.dtsi"
#include "sunxi-common-regulators.dtsi" #include "sunxi-common-regulators.dtsi"
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>

View File

@ -282,11 +282,15 @@
uart1_pins_a: uart1@0 { uart1_pins_a: uart1@0 {
allwinner,pins = "PG6", "PG7"; allwinner,pins = "PG6", "PG7";
allwinner,function = "uart1"; allwinner,function = "uart1";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
uart1_pins_cts_rts_a: uart1-cts-rts@0 { uart1_pins_cts_rts_a: uart1-cts-rts@0 {
allwinner,pins = "PG8", "PG9"; allwinner,pins = "PG8", "PG9";
allwinner,function = "uart1"; allwinner,function = "uart1";
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
}; };
mmc0_pins_a: mmc0@0 { mmc0_pins_a: mmc0@0 {

View File

@ -8,7 +8,6 @@ generic-y += early_ioremap.h
generic-y += emergency-restart.h generic-y += emergency-restart.h
generic-y += errno.h generic-y += errno.h
generic-y += exec.h generic-y += exec.h
generic-y += export.h
generic-y += ioctl.h generic-y += ioctl.h
generic-y += ipcbuf.h generic-y += ipcbuf.h
generic-y += irq_regs.h generic-y += irq_regs.h

View File

@ -66,6 +66,7 @@ extern char __kvm_hyp_vector[];
extern void __kvm_flush_vm_context(void); extern void __kvm_flush_vm_context(void);
extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa); extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
extern void __kvm_tlb_flush_vmid(struct kvm *kvm); extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu);
extern int __kvm_vcpu_run(struct kvm_vcpu *vcpu); extern int __kvm_vcpu_run(struct kvm_vcpu *vcpu);

View File

@ -57,6 +57,9 @@ struct kvm_arch {
/* VTTBR value associated with below pgd and vmid */ /* VTTBR value associated with below pgd and vmid */
u64 vttbr; u64 vttbr;
/* The last vcpu id that ran on each physical CPU */
int __percpu *last_vcpu_ran;
/* Timer */ /* Timer */
struct arch_timer_kvm timer; struct arch_timer_kvm timer;

View File

@ -71,6 +71,7 @@
#define ICIALLUIS __ACCESS_CP15(c7, 0, c1, 0) #define ICIALLUIS __ACCESS_CP15(c7, 0, c1, 0)
#define ATS1CPR __ACCESS_CP15(c7, 0, c8, 0) #define ATS1CPR __ACCESS_CP15(c7, 0, c8, 0)
#define TLBIALLIS __ACCESS_CP15(c8, 0, c3, 0) #define TLBIALLIS __ACCESS_CP15(c8, 0, c3, 0)
#define TLBIALL __ACCESS_CP15(c8, 0, c7, 0)
#define TLBIALLNSNHIS __ACCESS_CP15(c8, 4, c3, 4) #define TLBIALLNSNHIS __ACCESS_CP15(c8, 4, c3, 4)
#define PRRR __ACCESS_CP15(c10, 0, c2, 0) #define PRRR __ACCESS_CP15(c10, 0, c2, 0)
#define NMRR __ACCESS_CP15(c10, 0, c2, 1) #define NMRR __ACCESS_CP15(c10, 0, c2, 1)

View File

@ -33,7 +33,7 @@ endif
obj-$(CONFIG_CPU_IDLE) += cpuidle.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o
obj-$(CONFIG_ISA_DMA_API) += dma.o obj-$(CONFIG_ISA_DMA_API) += dma.o
obj-$(CONFIG_FIQ) += fiq.o fiqasm.o obj-$(CONFIG_FIQ) += fiq.o fiqasm.o
obj-$(CONFIG_MODULES) += module.o obj-$(CONFIG_MODULES) += armksyms.o module.o
obj-$(CONFIG_ARM_MODULE_PLTS) += module-plts.o obj-$(CONFIG_ARM_MODULE_PLTS) += module-plts.o
obj-$(CONFIG_ISA_DMA) += dma-isa.o obj-$(CONFIG_ISA_DMA) += dma-isa.o
obj-$(CONFIG_PCI) += bios32.o isa.o obj-$(CONFIG_PCI) += bios32.o isa.o

183
arch/arm/kernel/armksyms.c Normal file
View File

@ -0,0 +1,183 @@
/*
* linux/arch/arm/kernel/armksyms.c
*
* Copyright (C) 2000 Russell King
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/export.h>
#include <linux/sched.h>
#include <linux/string.h>
#include <linux/cryptohash.h>
#include <linux/delay.h>
#include <linux/in6.h>
#include <linux/syscalls.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/arm-smccc.h>
#include <asm/checksum.h>
#include <asm/ftrace.h>
/*
* libgcc functions - functions that are used internally by the
* compiler... (prototypes are not correct though, but that
* doesn't really matter since they're not versioned).
*/
extern void __ashldi3(void);
extern void __ashrdi3(void);
extern void __divsi3(void);
extern void __lshrdi3(void);
extern void __modsi3(void);
extern void __muldi3(void);
extern void __ucmpdi2(void);
extern void __udivsi3(void);
extern void __umodsi3(void);
extern void __do_div64(void);
extern void __bswapsi2(void);
extern void __bswapdi2(void);
extern void __aeabi_idiv(void);
extern void __aeabi_idivmod(void);
extern void __aeabi_lasr(void);
extern void __aeabi_llsl(void);
extern void __aeabi_llsr(void);
extern void __aeabi_lmul(void);
extern void __aeabi_uidiv(void);
extern void __aeabi_uidivmod(void);
extern void __aeabi_ulcmp(void);
extern void fpundefinstr(void);
void mmioset(void *, unsigned int, size_t);
void mmiocpy(void *, const void *, size_t);
/* platform dependent support */
EXPORT_SYMBOL(arm_delay_ops);
/* networking */
EXPORT_SYMBOL(csum_partial);
EXPORT_SYMBOL(csum_partial_copy_from_user);
EXPORT_SYMBOL(csum_partial_copy_nocheck);
EXPORT_SYMBOL(__csum_ipv6_magic);
/* io */
#ifndef __raw_readsb
EXPORT_SYMBOL(__raw_readsb);
#endif
#ifndef __raw_readsw
EXPORT_SYMBOL(__raw_readsw);
#endif
#ifndef __raw_readsl
EXPORT_SYMBOL(__raw_readsl);
#endif
#ifndef __raw_writesb
EXPORT_SYMBOL(__raw_writesb);
#endif
#ifndef __raw_writesw
EXPORT_SYMBOL(__raw_writesw);
#endif
#ifndef __raw_writesl
EXPORT_SYMBOL(__raw_writesl);
#endif
/* string / mem functions */
EXPORT_SYMBOL(strchr);
EXPORT_SYMBOL(strrchr);
EXPORT_SYMBOL(memset);
EXPORT_SYMBOL(memcpy);
EXPORT_SYMBOL(memmove);
EXPORT_SYMBOL(memchr);
EXPORT_SYMBOL(__memzero);
EXPORT_SYMBOL(mmioset);
EXPORT_SYMBOL(mmiocpy);
#ifdef CONFIG_MMU
EXPORT_SYMBOL(copy_page);
EXPORT_SYMBOL(arm_copy_from_user);
EXPORT_SYMBOL(arm_copy_to_user);
EXPORT_SYMBOL(arm_clear_user);
EXPORT_SYMBOL(__get_user_1);
EXPORT_SYMBOL(__get_user_2);
EXPORT_SYMBOL(__get_user_4);
EXPORT_SYMBOL(__get_user_8);
#ifdef __ARMEB__
EXPORT_SYMBOL(__get_user_64t_1);
EXPORT_SYMBOL(__get_user_64t_2);
EXPORT_SYMBOL(__get_user_64t_4);
EXPORT_SYMBOL(__get_user_32t_8);
#endif
EXPORT_SYMBOL(__put_user_1);
EXPORT_SYMBOL(__put_user_2);
EXPORT_SYMBOL(__put_user_4);
EXPORT_SYMBOL(__put_user_8);
#endif
/* gcc lib functions */
EXPORT_SYMBOL(__ashldi3);
EXPORT_SYMBOL(__ashrdi3);
EXPORT_SYMBOL(__divsi3);
EXPORT_SYMBOL(__lshrdi3);
EXPORT_SYMBOL(__modsi3);
EXPORT_SYMBOL(__muldi3);
EXPORT_SYMBOL(__ucmpdi2);
EXPORT_SYMBOL(__udivsi3);
EXPORT_SYMBOL(__umodsi3);
EXPORT_SYMBOL(__do_div64);
EXPORT_SYMBOL(__bswapsi2);
EXPORT_SYMBOL(__bswapdi2);
#ifdef CONFIG_AEABI
EXPORT_SYMBOL(__aeabi_idiv);
EXPORT_SYMBOL(__aeabi_idivmod);
EXPORT_SYMBOL(__aeabi_lasr);
EXPORT_SYMBOL(__aeabi_llsl);
EXPORT_SYMBOL(__aeabi_llsr);
EXPORT_SYMBOL(__aeabi_lmul);
EXPORT_SYMBOL(__aeabi_uidiv);
EXPORT_SYMBOL(__aeabi_uidivmod);
EXPORT_SYMBOL(__aeabi_ulcmp);
#endif
/* bitops */
EXPORT_SYMBOL(_set_bit);
EXPORT_SYMBOL(_test_and_set_bit);
EXPORT_SYMBOL(_clear_bit);
EXPORT_SYMBOL(_test_and_clear_bit);
EXPORT_SYMBOL(_change_bit);
EXPORT_SYMBOL(_test_and_change_bit);
EXPORT_SYMBOL(_find_first_zero_bit_le);
EXPORT_SYMBOL(_find_next_zero_bit_le);
EXPORT_SYMBOL(_find_first_bit_le);
EXPORT_SYMBOL(_find_next_bit_le);
#ifdef __ARMEB__
EXPORT_SYMBOL(_find_first_zero_bit_be);
EXPORT_SYMBOL(_find_next_zero_bit_be);
EXPORT_SYMBOL(_find_first_bit_be);
EXPORT_SYMBOL(_find_next_bit_be);
#endif
#ifdef CONFIG_FUNCTION_TRACER
#ifdef CONFIG_OLD_MCOUNT
EXPORT_SYMBOL(mcount);
#endif
EXPORT_SYMBOL(__gnu_mcount_nc);
#endif
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT
EXPORT_SYMBOL(__pv_phys_pfn_offset);
EXPORT_SYMBOL(__pv_offset);
#endif
#ifdef CONFIG_HAVE_ARM_SMCCC
EXPORT_SYMBOL(arm_smccc_smc);
EXPORT_SYMBOL(arm_smccc_hvc);
#endif

View File

@ -7,7 +7,6 @@
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/ftrace.h> #include <asm/ftrace.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
#include "entry-header.S" #include "entry-header.S"
@ -154,7 +153,6 @@ ENTRY(mcount)
__mcount _old __mcount _old
#endif #endif
ENDPROC(mcount) ENDPROC(mcount)
EXPORT_SYMBOL(mcount)
#ifdef CONFIG_DYNAMIC_FTRACE #ifdef CONFIG_DYNAMIC_FTRACE
ENTRY(ftrace_caller_old) ENTRY(ftrace_caller_old)
@ -207,7 +205,6 @@ UNWIND(.fnstart)
#endif #endif
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__gnu_mcount_nc) ENDPROC(__gnu_mcount_nc)
EXPORT_SYMBOL(__gnu_mcount_nc)
#ifdef CONFIG_DYNAMIC_FTRACE #ifdef CONFIG_DYNAMIC_FTRACE
ENTRY(ftrace_caller) ENTRY(ftrace_caller)

View File

@ -22,7 +22,6 @@
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/export.h>
#if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_SEMIHOSTING) #if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_SEMIHOSTING)
#include CONFIG_DEBUG_LL_INCLUDE #include CONFIG_DEBUG_LL_INCLUDE
@ -728,8 +727,6 @@ __pv_phys_pfn_offset:
__pv_offset: __pv_offset:
.quad 0 .quad 0
.size __pv_offset, . -__pv_offset .size __pv_offset, . -__pv_offset
EXPORT_SYMBOL(__pv_phys_pfn_offset)
EXPORT_SYMBOL(__pv_offset)
#endif #endif
#include "head-common.S" #include "head-common.S"

View File

@ -16,7 +16,6 @@
#include <asm/opcodes-sec.h> #include <asm/opcodes-sec.h>
#include <asm/opcodes-virt.h> #include <asm/opcodes-virt.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
/* /*
* Wrap c macros in asm macros to delay expansion until after the * Wrap c macros in asm macros to delay expansion until after the
@ -52,7 +51,6 @@ UNWIND( .fnend)
ENTRY(arm_smccc_smc) ENTRY(arm_smccc_smc)
SMCCC SMCCC_SMC SMCCC SMCCC_SMC
ENDPROC(arm_smccc_smc) ENDPROC(arm_smccc_smc)
EXPORT_SYMBOL(arm_smccc_smc)
/* /*
* void smccc_hvc(unsigned long a0, unsigned long a1, unsigned long a2, * void smccc_hvc(unsigned long a0, unsigned long a1, unsigned long a2,
@ -62,4 +60,3 @@ EXPORT_SYMBOL(arm_smccc_smc)
ENTRY(arm_smccc_hvc) ENTRY(arm_smccc_hvc)
SMCCC SMCCC_HVC SMCCC SMCCC_HVC
ENDPROC(arm_smccc_hvc) ENDPROC(arm_smccc_hvc)
EXPORT_SYMBOL(arm_smccc_hvc)

View File

@ -74,6 +74,26 @@ void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long
dump_mem("", "Exception stack", frame + 4, frame + 4 + sizeof(struct pt_regs)); dump_mem("", "Exception stack", frame + 4, frame + 4 + sizeof(struct pt_regs));
} }
void dump_backtrace_stm(u32 *stack, u32 instruction)
{
char str[80], *p;
unsigned int x;
int reg;
for (reg = 10, x = 0, p = str; reg >= 0; reg--) {
if (instruction & BIT(reg)) {
p += sprintf(p, " r%d:%08x", reg, *stack--);
if (++x == 6) {
x = 0;
p = str;
printk("%s\n", str);
}
}
}
if (p != str)
printk("%s\n", str);
}
#ifndef CONFIG_ARM_UNWIND #ifndef CONFIG_ARM_UNWIND
/* /*
* Stack pointers should always be within the kernels view of * Stack pointers should always be within the kernels view of

View File

@ -3,6 +3,9 @@
* Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz> * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
*/ */
/* No __ro_after_init data in the .rodata section - which will always be ro */
#define RO_AFTER_INIT_DATA
#include <asm-generic/vmlinux.lds.h> #include <asm-generic/vmlinux.lds.h>
#include <asm/cache.h> #include <asm/cache.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
@ -223,6 +226,8 @@ SECTIONS
. = ALIGN(PAGE_SIZE); . = ALIGN(PAGE_SIZE);
__init_end = .; __init_end = .;
*(.data..ro_after_init)
NOSAVE_DATA NOSAVE_DATA
CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
READ_MOSTLY_DATA(L1_CACHE_BYTES) READ_MOSTLY_DATA(L1_CACHE_BYTES)

View File

@ -114,11 +114,18 @@ void kvm_arch_check_processor_compat(void *rtn)
*/ */
int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
{ {
int ret = 0; int ret, cpu;
if (type) if (type)
return -EINVAL; return -EINVAL;
kvm->arch.last_vcpu_ran = alloc_percpu(typeof(*kvm->arch.last_vcpu_ran));
if (!kvm->arch.last_vcpu_ran)
return -ENOMEM;
for_each_possible_cpu(cpu)
*per_cpu_ptr(kvm->arch.last_vcpu_ran, cpu) = -1;
ret = kvm_alloc_stage2_pgd(kvm); ret = kvm_alloc_stage2_pgd(kvm);
if (ret) if (ret)
goto out_fail_alloc; goto out_fail_alloc;
@ -141,6 +148,8 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
out_free_stage2_pgd: out_free_stage2_pgd:
kvm_free_stage2_pgd(kvm); kvm_free_stage2_pgd(kvm);
out_fail_alloc: out_fail_alloc:
free_percpu(kvm->arch.last_vcpu_ran);
kvm->arch.last_vcpu_ran = NULL;
return ret; return ret;
} }
@ -168,6 +177,9 @@ void kvm_arch_destroy_vm(struct kvm *kvm)
{ {
int i; int i;
free_percpu(kvm->arch.last_vcpu_ran);
kvm->arch.last_vcpu_ran = NULL;
for (i = 0; i < KVM_MAX_VCPUS; ++i) { for (i = 0; i < KVM_MAX_VCPUS; ++i) {
if (kvm->vcpus[i]) { if (kvm->vcpus[i]) {
kvm_arch_vcpu_free(kvm->vcpus[i]); kvm_arch_vcpu_free(kvm->vcpus[i]);
@ -312,6 +324,19 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu) void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
{ {
int *last_ran;
last_ran = this_cpu_ptr(vcpu->kvm->arch.last_vcpu_ran);
/*
* We might get preempted before the vCPU actually runs, but
* over-invalidation doesn't affect correctness.
*/
if (*last_ran != vcpu->vcpu_id) {
kvm_call_hyp(__kvm_tlb_flush_local_vmid, vcpu);
*last_ran = vcpu->vcpu_id;
}
vcpu->cpu = cpu; vcpu->cpu = cpu;
vcpu->arch.host_cpu_context = this_cpu_ptr(kvm_host_cpu_state); vcpu->arch.host_cpu_context = this_cpu_ptr(kvm_host_cpu_state);

View File

@ -55,6 +55,21 @@ void __hyp_text __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa)
__kvm_tlb_flush_vmid(kvm); __kvm_tlb_flush_vmid(kvm);
} }
void __hyp_text __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu)
{
struct kvm *kvm = kern_hyp_va(kern_hyp_va(vcpu)->kvm);
/* Switch to requested VMID */
write_sysreg(kvm->arch.vttbr, VTTBR);
isb();
write_sysreg(0, TLBIALL);
dsb(nsh);
isb();
write_sysreg(0, VTTBR);
}
void __hyp_text __kvm_flush_vm_context(void) void __hyp_text __kvm_flush_vm_context(void)
{ {
write_sysreg(0, TLBIALLNSNHIS); write_sysreg(0, TLBIALLNSNHIS);

View File

@ -28,7 +28,6 @@ Boston, MA 02110-1301, USA. */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
#define al r1 #define al r1
@ -53,5 +52,3 @@ ENTRY(__aeabi_llsl)
ENDPROC(__ashldi3) ENDPROC(__ashldi3)
ENDPROC(__aeabi_llsl) ENDPROC(__aeabi_llsl)
EXPORT_SYMBOL(__ashldi3)
EXPORT_SYMBOL(__aeabi_llsl)

View File

@ -28,7 +28,6 @@ Boston, MA 02110-1301, USA. */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
#define al r1 #define al r1
@ -53,5 +52,3 @@ ENTRY(__aeabi_lasr)
ENDPROC(__ashrdi3) ENDPROC(__ashrdi3)
ENDPROC(__aeabi_lasr) ENDPROC(__aeabi_lasr)
EXPORT_SYMBOL(__ashrdi3)
EXPORT_SYMBOL(__aeabi_lasr)

View File

@ -10,6 +10,7 @@
* 27/03/03 Ian Molton Clean up CONFIG_CPU * 27/03/03 Ian Molton Clean up CONFIG_CPU
* *
*/ */
#include <linux/kern_levels.h>
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
.text .text
@ -83,13 +84,13 @@ for_each_frame: tst frame, mask @ Check for address exceptions
teq r3, r1, lsr #11 teq r3, r1, lsr #11
ldreq r0, [frame, #-8] @ get sp ldreq r0, [frame, #-8] @ get sp
subeq r0, r0, #4 @ point at the last arg subeq r0, r0, #4 @ point at the last arg
bleq .Ldumpstm @ dump saved registers bleq dump_backtrace_stm @ dump saved registers
1004: ldr r1, [sv_pc, #0] @ if stmfd sp!, {..., fp, ip, lr, pc} 1004: ldr r1, [sv_pc, #0] @ if stmfd sp!, {..., fp, ip, lr, pc}
ldr r3, .Ldsi @ instruction exists, ldr r3, .Ldsi @ instruction exists,
teq r3, r1, lsr #11 teq r3, r1, lsr #11
subeq r0, frame, #16 subeq r0, frame, #16
bleq .Ldumpstm @ dump saved registers bleq dump_backtrace_stm @ dump saved registers
teq sv_fp, #0 @ zero saved fp means teq sv_fp, #0 @ zero saved fp means
beq no_frame @ no further frames beq no_frame @ no further frames
@ -112,38 +113,6 @@ ENDPROC(c_backtrace)
.long 1004b, 1006b .long 1004b, 1006b
.popsection .popsection
#define instr r4
#define reg r5
#define stack r6
.Ldumpstm: stmfd sp!, {instr, reg, stack, r7, lr}
mov stack, r0
mov instr, r1
mov reg, #10
mov r7, #0
1: mov r3, #1
ARM( tst instr, r3, lsl reg )
THUMB( lsl r3, reg )
THUMB( tst instr, r3 )
beq 2f
add r7, r7, #1
teq r7, #6
moveq r7, #0
adr r3, .Lcr
addne r3, r3, #1 @ skip newline
ldr r2, [stack], #-4
mov r1, reg
adr r0, .Lfp
bl printk
2: subs reg, reg, #1
bpl 1b
teq r7, #0
adrne r0, .Lcr
blne printk
ldmfd sp!, {instr, reg, stack, r7, pc}
.Lfp: .asciz " r%d:%08x%s"
.Lcr: .asciz "\n"
.Lbad: .asciz "Backtrace aborted due to bad frame pointer <%p>\n" .Lbad: .asciz "Backtrace aborted due to bad frame pointer <%p>\n"
.align .align
.Ldsi: .word 0xe92dd800 >> 11 @ stmfd sp!, {... fp, ip, lr, pc} .Ldsi: .word 0xe92dd800 >> 11 @ stmfd sp!, {... fp, ip, lr, pc}

View File

@ -1,6 +1,5 @@
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
#if __LINUX_ARM_ARCH__ >= 6 #if __LINUX_ARM_ARCH__ >= 6
.macro bitop, name, instr .macro bitop, name, instr
@ -26,7 +25,6 @@ UNWIND( .fnstart )
bx lr bx lr
UNWIND( .fnend ) UNWIND( .fnend )
ENDPROC(\name ) ENDPROC(\name )
EXPORT_SYMBOL(\name )
.endm .endm
.macro testop, name, instr, store .macro testop, name, instr, store
@ -57,7 +55,6 @@ UNWIND( .fnstart )
2: bx lr 2: bx lr
UNWIND( .fnend ) UNWIND( .fnend )
ENDPROC(\name ) ENDPROC(\name )
EXPORT_SYMBOL(\name )
.endm .endm
#else #else
.macro bitop, name, instr .macro bitop, name, instr
@ -77,7 +74,6 @@ UNWIND( .fnstart )
ret lr ret lr
UNWIND( .fnend ) UNWIND( .fnend )
ENDPROC(\name ) ENDPROC(\name )
EXPORT_SYMBOL(\name )
.endm .endm
/** /**
@ -106,6 +102,5 @@ UNWIND( .fnstart )
ret lr ret lr
UNWIND( .fnend ) UNWIND( .fnend )
ENDPROC(\name ) ENDPROC(\name )
EXPORT_SYMBOL(\name )
.endm .endm
#endif #endif

View File

@ -1,6 +1,5 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
#if __LINUX_ARM_ARCH__ >= 6 #if __LINUX_ARM_ARCH__ >= 6
ENTRY(__bswapsi2) ENTRY(__bswapsi2)
@ -36,5 +35,3 @@ ENTRY(__bswapdi2)
ret lr ret lr
ENDPROC(__bswapdi2) ENDPROC(__bswapdi2)
#endif #endif
EXPORT_SYMBOL(__bswapsi2)
EXPORT_SYMBOL(__bswapdi2)

View File

@ -10,7 +10,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
.text .text
@ -51,9 +50,6 @@ USER( strnebt r2, [r0])
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(arm_clear_user) ENDPROC(arm_clear_user)
ENDPROC(__clear_user_std) ENDPROC(__clear_user_std)
#ifndef CONFIG_UACCESS_WITH_MEMCPY
EXPORT_SYMBOL(arm_clear_user)
#endif
.pushsection .text.fixup,"ax" .pushsection .text.fixup,"ax"
.align 0 .align 0

View File

@ -13,7 +13,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
/* /*
* Prototype: * Prototype:
@ -95,7 +94,6 @@ ENTRY(arm_copy_from_user)
#include "copy_template.S" #include "copy_template.S"
ENDPROC(arm_copy_from_user) ENDPROC(arm_copy_from_user)
EXPORT_SYMBOL(arm_copy_from_user)
.pushsection .fixup,"ax" .pushsection .fixup,"ax"
.align 0 .align 0

View File

@ -13,7 +13,6 @@
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/cache.h> #include <asm/cache.h>
#include <asm/export.h>
#define COPY_COUNT (PAGE_SZ / (2 * L1_CACHE_BYTES) PLD( -1 )) #define COPY_COUNT (PAGE_SZ / (2 * L1_CACHE_BYTES) PLD( -1 ))
@ -46,4 +45,3 @@ ENTRY(copy_page)
PLD( beq 2b ) PLD( beq 2b )
ldmfd sp!, {r4, pc} @ 3 ldmfd sp!, {r4, pc} @ 3
ENDPROC(copy_page) ENDPROC(copy_page)
EXPORT_SYMBOL(copy_page)

View File

@ -13,7 +13,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
/* /*
* Prototype: * Prototype:
@ -100,9 +99,6 @@ WEAK(arm_copy_to_user)
ENDPROC(arm_copy_to_user) ENDPROC(arm_copy_to_user)
ENDPROC(__copy_to_user_std) ENDPROC(__copy_to_user_std)
#ifndef CONFIG_UACCESS_WITH_MEMCPY
EXPORT_SYMBOL(arm_copy_to_user)
#endif
.pushsection .text.fixup,"ax" .pushsection .text.fixup,"ax"
.align 0 .align 0

View File

@ -9,7 +9,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.text .text
@ -31,4 +30,4 @@ ENTRY(__csum_ipv6_magic)
adcs r0, r0, #0 adcs r0, r0, #0
ldmfd sp!, {pc} ldmfd sp!, {pc}
ENDPROC(__csum_ipv6_magic) ENDPROC(__csum_ipv6_magic)
EXPORT_SYMBOL(__csum_ipv6_magic)

View File

@ -9,7 +9,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.text .text
@ -141,4 +140,3 @@ ENTRY(csum_partial)
bne 4b bne 4b
b .Lless4 b .Lless4
ENDPROC(csum_partial) ENDPROC(csum_partial)
EXPORT_SYMBOL(csum_partial)

View File

@ -49,6 +49,5 @@
#define FN_ENTRY ENTRY(csum_partial_copy_nocheck) #define FN_ENTRY ENTRY(csum_partial_copy_nocheck)
#define FN_EXIT ENDPROC(csum_partial_copy_nocheck) #define FN_EXIT ENDPROC(csum_partial_copy_nocheck)
#define FN_EXPORT EXPORT_SYMBOL(csum_partial_copy_nocheck)
#include "csumpartialcopygeneric.S" #include "csumpartialcopygeneric.S"

View File

@ -8,7 +8,6 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
/* /*
* unsigned int * unsigned int
@ -332,4 +331,3 @@ FN_ENTRY
mov r5, r4, get_byte_1 mov r5, r4, get_byte_1
b .Lexit b .Lexit
FN_EXIT FN_EXIT
FN_EXPORT

View File

@ -73,7 +73,6 @@
#define FN_ENTRY ENTRY(csum_partial_copy_from_user) #define FN_ENTRY ENTRY(csum_partial_copy_from_user)
#define FN_EXIT ENDPROC(csum_partial_copy_from_user) #define FN_EXIT ENDPROC(csum_partial_copy_from_user)
#define FN_EXPORT EXPORT_SYMBOL(csum_partial_copy_from_user)
#include "csumpartialcopygeneric.S" #include "csumpartialcopygeneric.S"

View File

@ -24,7 +24,6 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/export.h>
#include <linux/timex.h> #include <linux/timex.h>
/* /*
@ -35,7 +34,6 @@ struct arm_delay_ops arm_delay_ops __ro_after_init = {
.const_udelay = __loop_const_udelay, .const_udelay = __loop_const_udelay,
.udelay = __loop_udelay, .udelay = __loop_udelay,
}; };
EXPORT_SYMBOL(arm_delay_ops);
static const struct delay_timer *delay_timer; static const struct delay_timer *delay_timer;
static bool delay_calibrated; static bool delay_calibrated;

View File

@ -15,7 +15,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
#define xh r0 #define xh r0
@ -211,4 +210,3 @@ Ldiv0_64:
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__do_div64) ENDPROC(__do_div64)
EXPORT_SYMBOL(__do_div64)

View File

@ -15,7 +15,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.text .text
/* /*
@ -38,7 +37,6 @@ ENTRY(_find_first_zero_bit_le)
3: mov r0, r1 @ no free bits 3: mov r0, r1 @ no free bits
ret lr ret lr
ENDPROC(_find_first_zero_bit_le) ENDPROC(_find_first_zero_bit_le)
EXPORT_SYMBOL(_find_first_zero_bit_le)
/* /*
* Purpose : Find next 'zero' bit * Purpose : Find next 'zero' bit
@ -59,7 +57,6 @@ ENTRY(_find_next_zero_bit_le)
add r2, r2, #1 @ align bit pointer add r2, r2, #1 @ align bit pointer
b 2b @ loop for next bit b 2b @ loop for next bit
ENDPROC(_find_next_zero_bit_le) ENDPROC(_find_next_zero_bit_le)
EXPORT_SYMBOL(_find_next_zero_bit_le)
/* /*
* Purpose : Find a 'one' bit * Purpose : Find a 'one' bit
@ -81,7 +78,6 @@ ENTRY(_find_first_bit_le)
3: mov r0, r1 @ no free bits 3: mov r0, r1 @ no free bits
ret lr ret lr
ENDPROC(_find_first_bit_le) ENDPROC(_find_first_bit_le)
EXPORT_SYMBOL(_find_first_bit_le)
/* /*
* Purpose : Find next 'one' bit * Purpose : Find next 'one' bit
@ -101,7 +97,6 @@ ENTRY(_find_next_bit_le)
add r2, r2, #1 @ align bit pointer add r2, r2, #1 @ align bit pointer
b 2b @ loop for next bit b 2b @ loop for next bit
ENDPROC(_find_next_bit_le) ENDPROC(_find_next_bit_le)
EXPORT_SYMBOL(_find_next_bit_le)
#ifdef __ARMEB__ #ifdef __ARMEB__
@ -121,7 +116,6 @@ ENTRY(_find_first_zero_bit_be)
3: mov r0, r1 @ no free bits 3: mov r0, r1 @ no free bits
ret lr ret lr
ENDPROC(_find_first_zero_bit_be) ENDPROC(_find_first_zero_bit_be)
EXPORT_SYMBOL(_find_first_zero_bit_be)
ENTRY(_find_next_zero_bit_be) ENTRY(_find_next_zero_bit_be)
teq r1, #0 teq r1, #0
@ -139,7 +133,6 @@ ENTRY(_find_next_zero_bit_be)
add r2, r2, #1 @ align bit pointer add r2, r2, #1 @ align bit pointer
b 2b @ loop for next bit b 2b @ loop for next bit
ENDPROC(_find_next_zero_bit_be) ENDPROC(_find_next_zero_bit_be)
EXPORT_SYMBOL(_find_next_zero_bit_be)
ENTRY(_find_first_bit_be) ENTRY(_find_first_bit_be)
teq r1, #0 teq r1, #0
@ -157,7 +150,6 @@ ENTRY(_find_first_bit_be)
3: mov r0, r1 @ no free bits 3: mov r0, r1 @ no free bits
ret lr ret lr
ENDPROC(_find_first_bit_be) ENDPROC(_find_first_bit_be)
EXPORT_SYMBOL(_find_first_bit_be)
ENTRY(_find_next_bit_be) ENTRY(_find_next_bit_be)
teq r1, #0 teq r1, #0
@ -174,7 +166,6 @@ ENTRY(_find_next_bit_be)
add r2, r2, #1 @ align bit pointer add r2, r2, #1 @ align bit pointer
b 2b @ loop for next bit b 2b @ loop for next bit
ENDPROC(_find_next_bit_be) ENDPROC(_find_next_bit_be)
EXPORT_SYMBOL(_find_next_bit_be)
#endif #endif

View File

@ -31,7 +31,6 @@
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/errno.h> #include <asm/errno.h>
#include <asm/domain.h> #include <asm/domain.h>
#include <asm/export.h>
ENTRY(__get_user_1) ENTRY(__get_user_1)
check_uaccess r0, 1, r1, r2, __get_user_bad check_uaccess r0, 1, r1, r2, __get_user_bad
@ -39,7 +38,6 @@ ENTRY(__get_user_1)
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__get_user_1) ENDPROC(__get_user_1)
EXPORT_SYMBOL(__get_user_1)
ENTRY(__get_user_2) ENTRY(__get_user_2)
check_uaccess r0, 2, r1, r2, __get_user_bad check_uaccess r0, 2, r1, r2, __get_user_bad
@ -60,7 +58,6 @@ rb .req r0
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__get_user_2) ENDPROC(__get_user_2)
EXPORT_SYMBOL(__get_user_2)
ENTRY(__get_user_4) ENTRY(__get_user_4)
check_uaccess r0, 4, r1, r2, __get_user_bad check_uaccess r0, 4, r1, r2, __get_user_bad
@ -68,7 +65,6 @@ ENTRY(__get_user_4)
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__get_user_4) ENDPROC(__get_user_4)
EXPORT_SYMBOL(__get_user_4)
ENTRY(__get_user_8) ENTRY(__get_user_8)
check_uaccess r0, 8, r1, r2, __get_user_bad check_uaccess r0, 8, r1, r2, __get_user_bad
@ -82,7 +78,6 @@ ENTRY(__get_user_8)
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__get_user_8) ENDPROC(__get_user_8)
EXPORT_SYMBOL(__get_user_8)
#ifdef __ARMEB__ #ifdef __ARMEB__
ENTRY(__get_user_32t_8) ENTRY(__get_user_32t_8)
@ -96,7 +91,6 @@ ENTRY(__get_user_32t_8)
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__get_user_32t_8) ENDPROC(__get_user_32t_8)
EXPORT_SYMBOL(__get_user_32t_8)
ENTRY(__get_user_64t_1) ENTRY(__get_user_64t_1)
check_uaccess r0, 1, r1, r2, __get_user_bad8 check_uaccess r0, 1, r1, r2, __get_user_bad8
@ -104,7 +98,6 @@ ENTRY(__get_user_64t_1)
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__get_user_64t_1) ENDPROC(__get_user_64t_1)
EXPORT_SYMBOL(__get_user_64t_1)
ENTRY(__get_user_64t_2) ENTRY(__get_user_64t_2)
check_uaccess r0, 2, r1, r2, __get_user_bad8 check_uaccess r0, 2, r1, r2, __get_user_bad8
@ -121,7 +114,6 @@ rb .req r0
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__get_user_64t_2) ENDPROC(__get_user_64t_2)
EXPORT_SYMBOL(__get_user_64t_2)
ENTRY(__get_user_64t_4) ENTRY(__get_user_64t_4)
check_uaccess r0, 4, r1, r2, __get_user_bad8 check_uaccess r0, 4, r1, r2, __get_user_bad8
@ -129,7 +121,6 @@ ENTRY(__get_user_64t_4)
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__get_user_64t_4) ENDPROC(__get_user_64t_4)
EXPORT_SYMBOL(__get_user_64t_4)
#endif #endif
__get_user_bad8: __get_user_bad8:

View File

@ -9,7 +9,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.Linsb_align: rsb ip, ip, #4 .Linsb_align: rsb ip, ip, #4
cmp ip, r2 cmp ip, r2
@ -122,4 +121,3 @@ ENTRY(__raw_readsb)
ldmfd sp!, {r4 - r6, pc} ldmfd sp!, {r4 - r6, pc}
ENDPROC(__raw_readsb) ENDPROC(__raw_readsb)
EXPORT_SYMBOL(__raw_readsb)

View File

@ -9,7 +9,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
ENTRY(__raw_readsl) ENTRY(__raw_readsl)
teq r2, #0 @ do we have to check for the zero len? teq r2, #0 @ do we have to check for the zero len?
@ -78,4 +77,3 @@ ENTRY(__raw_readsl)
strb r3, [r1, #0] strb r3, [r1, #0]
ret lr ret lr
ENDPROC(__raw_readsl) ENDPROC(__raw_readsl)
EXPORT_SYMBOL(__raw_readsl)

View File

@ -9,7 +9,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.Linsw_bad_alignment: .Linsw_bad_alignment:
adr r0, .Linsw_bad_align_msg adr r0, .Linsw_bad_align_msg
@ -104,4 +103,4 @@ ENTRY(__raw_readsw)
ldmfd sp!, {r4, r5, r6, pc} ldmfd sp!, {r4, r5, r6, pc}
EXPORT_SYMBOL(__raw_readsw)

View File

@ -9,7 +9,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.macro pack, rd, hw1, hw2 .macro pack, rd, hw1, hw2
#ifndef __ARMEB__ #ifndef __ARMEB__
@ -130,4 +129,3 @@ ENTRY(__raw_readsw)
strneb ip, [r1] strneb ip, [r1]
ldmfd sp!, {r4, pc} ldmfd sp!, {r4, pc}
ENDPROC(__raw_readsw) ENDPROC(__raw_readsw)
EXPORT_SYMBOL(__raw_readsw)

View File

@ -9,7 +9,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.macro outword, rd .macro outword, rd
#ifndef __ARMEB__ #ifndef __ARMEB__
@ -93,4 +92,3 @@ ENTRY(__raw_writesb)
ldmfd sp!, {r4, r5, pc} ldmfd sp!, {r4, r5, pc}
ENDPROC(__raw_writesb) ENDPROC(__raw_writesb)
EXPORT_SYMBOL(__raw_writesb)

View File

@ -9,7 +9,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
ENTRY(__raw_writesl) ENTRY(__raw_writesl)
teq r2, #0 @ do we have to check for the zero len? teq r2, #0 @ do we have to check for the zero len?
@ -66,4 +65,3 @@ ENTRY(__raw_writesl)
bne 6b bne 6b
ret lr ret lr
ENDPROC(__raw_writesl) ENDPROC(__raw_writesl)
EXPORT_SYMBOL(__raw_writesl)

View File

@ -9,7 +9,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.Loutsw_bad_alignment: .Loutsw_bad_alignment:
adr r0, .Loutsw_bad_align_msg adr r0, .Loutsw_bad_align_msg
@ -125,4 +124,3 @@ ENTRY(__raw_writesw)
strne ip, [r0] strne ip, [r0]
ldmfd sp!, {r4, r5, r6, pc} ldmfd sp!, {r4, r5, r6, pc}
EXPORT_SYMBOL(__raw_writesw)

View File

@ -9,7 +9,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.macro outword, rd .macro outword, rd
#ifndef __ARMEB__ #ifndef __ARMEB__
@ -99,4 +98,3 @@ ENTRY(__raw_writesw)
strneh ip, [r0] strneh ip, [r0]
ret lr ret lr
ENDPROC(__raw_writesw) ENDPROC(__raw_writesw)
EXPORT_SYMBOL(__raw_writesw)

View File

@ -36,7 +36,6 @@ Boston, MA 02111-1307, USA. */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
.macro ARM_DIV_BODY dividend, divisor, result, curbit .macro ARM_DIV_BODY dividend, divisor, result, curbit
@ -239,8 +238,6 @@ UNWIND(.fnstart)
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__udivsi3) ENDPROC(__udivsi3)
ENDPROC(__aeabi_uidiv) ENDPROC(__aeabi_uidiv)
EXPORT_SYMBOL(__udivsi3)
EXPORT_SYMBOL(__aeabi_uidiv)
ENTRY(__umodsi3) ENTRY(__umodsi3)
UNWIND(.fnstart) UNWIND(.fnstart)
@ -259,7 +256,6 @@ UNWIND(.fnstart)
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__umodsi3) ENDPROC(__umodsi3)
EXPORT_SYMBOL(__umodsi3)
#ifdef CONFIG_ARM_PATCH_IDIV #ifdef CONFIG_ARM_PATCH_IDIV
.align 3 .align 3
@ -307,8 +303,6 @@ UNWIND(.fnstart)
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__divsi3) ENDPROC(__divsi3)
ENDPROC(__aeabi_idiv) ENDPROC(__aeabi_idiv)
EXPORT_SYMBOL(__divsi3)
EXPORT_SYMBOL(__aeabi_idiv)
ENTRY(__modsi3) ENTRY(__modsi3)
UNWIND(.fnstart) UNWIND(.fnstart)
@ -333,7 +327,6 @@ UNWIND(.fnstart)
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__modsi3) ENDPROC(__modsi3)
EXPORT_SYMBOL(__modsi3)
#ifdef CONFIG_AEABI #ifdef CONFIG_AEABI
@ -350,7 +343,6 @@ UNWIND(.save {r0, r1, ip, lr} )
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__aeabi_uidivmod) ENDPROC(__aeabi_uidivmod)
EXPORT_SYMBOL(__aeabi_uidivmod)
ENTRY(__aeabi_idivmod) ENTRY(__aeabi_idivmod)
UNWIND(.fnstart) UNWIND(.fnstart)
@ -364,7 +356,6 @@ UNWIND(.save {r0, r1, ip, lr} )
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__aeabi_idivmod) ENDPROC(__aeabi_idivmod)
EXPORT_SYMBOL(__aeabi_idivmod)
#endif #endif

View File

@ -28,7 +28,6 @@ Boston, MA 02110-1301, USA. */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
#define al r1 #define al r1
@ -53,5 +52,3 @@ ENTRY(__aeabi_llsr)
ENDPROC(__lshrdi3) ENDPROC(__lshrdi3)
ENDPROC(__aeabi_llsr) ENDPROC(__aeabi_llsr)
EXPORT_SYMBOL(__lshrdi3)
EXPORT_SYMBOL(__aeabi_llsr)

View File

@ -11,7 +11,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.text .text
.align 5 .align 5
@ -25,4 +24,3 @@ ENTRY(memchr)
2: movne r0, #0 2: movne r0, #0
ret lr ret lr
ENDPROC(memchr) ENDPROC(memchr)
EXPORT_SYMBOL(memchr)

View File

@ -13,7 +13,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
#define LDR1W_SHIFT 0 #define LDR1W_SHIFT 0
#define STR1W_SHIFT 0 #define STR1W_SHIFT 0
@ -69,5 +68,3 @@ ENTRY(memcpy)
ENDPROC(memcpy) ENDPROC(memcpy)
ENDPROC(mmiocpy) ENDPROC(mmiocpy)
EXPORT_SYMBOL(memcpy)
EXPORT_SYMBOL(mmiocpy)

View File

@ -13,7 +13,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
.text .text
@ -226,4 +225,3 @@ ENTRY(memmove)
18: backward_copy_shift push=24 pull=8 18: backward_copy_shift push=24 pull=8
ENDPROC(memmove) ENDPROC(memmove)
EXPORT_SYMBOL(memmove)

View File

@ -12,7 +12,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
.text .text
.align 5 .align 5
@ -136,5 +135,3 @@ UNWIND( .fnstart )
UNWIND( .fnend ) UNWIND( .fnend )
ENDPROC(memset) ENDPROC(memset)
ENDPROC(mmioset) ENDPROC(mmioset)
EXPORT_SYMBOL(memset)
EXPORT_SYMBOL(mmioset)

View File

@ -10,7 +10,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/export.h>
.text .text
.align 5 .align 5
@ -136,4 +135,3 @@ UNWIND( .fnstart )
ret lr @ 1 ret lr @ 1
UNWIND( .fnend ) UNWIND( .fnend )
ENDPROC(__memzero) ENDPROC(__memzero)
EXPORT_SYMBOL(__memzero)

View File

@ -12,7 +12,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
#define xh r0 #define xh r0
@ -47,5 +46,3 @@ ENTRY(__aeabi_lmul)
ENDPROC(__muldi3) ENDPROC(__muldi3)
ENDPROC(__aeabi_lmul) ENDPROC(__aeabi_lmul)
EXPORT_SYMBOL(__muldi3)
EXPORT_SYMBOL(__aeabi_lmul)

View File

@ -31,7 +31,6 @@
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/errno.h> #include <asm/errno.h>
#include <asm/domain.h> #include <asm/domain.h>
#include <asm/export.h>
ENTRY(__put_user_1) ENTRY(__put_user_1)
check_uaccess r0, 1, r1, ip, __put_user_bad check_uaccess r0, 1, r1, ip, __put_user_bad
@ -39,7 +38,6 @@ ENTRY(__put_user_1)
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__put_user_1) ENDPROC(__put_user_1)
EXPORT_SYMBOL(__put_user_1)
ENTRY(__put_user_2) ENTRY(__put_user_2)
check_uaccess r0, 2, r1, ip, __put_user_bad check_uaccess r0, 2, r1, ip, __put_user_bad
@ -64,7 +62,6 @@ ENTRY(__put_user_2)
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__put_user_2) ENDPROC(__put_user_2)
EXPORT_SYMBOL(__put_user_2)
ENTRY(__put_user_4) ENTRY(__put_user_4)
check_uaccess r0, 4, r1, ip, __put_user_bad check_uaccess r0, 4, r1, ip, __put_user_bad
@ -72,7 +69,6 @@ ENTRY(__put_user_4)
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__put_user_4) ENDPROC(__put_user_4)
EXPORT_SYMBOL(__put_user_4)
ENTRY(__put_user_8) ENTRY(__put_user_8)
check_uaccess r0, 8, r1, ip, __put_user_bad check_uaccess r0, 8, r1, ip, __put_user_bad
@ -86,7 +82,6 @@ ENTRY(__put_user_8)
mov r0, #0 mov r0, #0
ret lr ret lr
ENDPROC(__put_user_8) ENDPROC(__put_user_8)
EXPORT_SYMBOL(__put_user_8)
__put_user_bad: __put_user_bad:
mov r0, #-EFAULT mov r0, #-EFAULT

View File

@ -11,7 +11,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.text .text
.align 5 .align 5
@ -26,4 +25,3 @@ ENTRY(strchr)
subeq r0, r0, #1 subeq r0, r0, #1
ret lr ret lr
ENDPROC(strchr) ENDPROC(strchr)
EXPORT_SYMBOL(strchr)

View File

@ -11,7 +11,6 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/export.h>
.text .text
.align 5 .align 5
@ -25,4 +24,3 @@ ENTRY(strrchr)
mov r0, r3 mov r0, r3
ret lr ret lr
ENDPROC(strrchr) ENDPROC(strrchr)
EXPORT_SYMBOL(strrchr)

Some files were not shown because too many files have changed in this diff Show More