Merge commit '9e9a928eed8796a0a1aaed7e0b676db86ba84594' into drm-next
Merge drm-fixes into drm-next. Both i915 and radeon need this done for later patches. Conflicts: drivers/gpu/drm/drm_crtc_helper.c drivers/gpu/drm/i915/i915_drv.h drivers/gpu/drm/i915/i915_gem.c drivers/gpu/drm/i915/i915_gem_execbuffer.c drivers/gpu/drm/i915/i915_gem_gtt.c
This commit is contained in:
commit
8d4ad9d4bb
924 changed files with 11789 additions and 6386 deletions
|
@ -117,7 +117,7 @@ Description:
|
|||
|
||||
What: /sys/bus/pci/devices/.../vpd
|
||||
Date: February 2008
|
||||
Contact: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Contact: Ben Hutchings <bwh@kernel.org>
|
||||
Description:
|
||||
A file named vpd in a device directory will be a
|
||||
binary file containing the Vital Product Data for the
|
||||
|
|
|
@ -195,7 +195,7 @@ DVB_DOCUMENTED = \
|
|||
#
|
||||
|
||||
install_media_images = \
|
||||
$(Q)cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api
|
||||
$(Q)-cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api
|
||||
|
||||
$(MEDIA_OBJ_DIR)/%: $(MEDIA_SRC_DIR)/%.b64
|
||||
$(Q)base64 -d $< >$@
|
||||
|
|
|
@ -25,9 +25,11 @@ using data transfer rates in the order of 10MB/s or more.
|
|||
With most FireWire controllers, memory access is limited to the low 4 GB
|
||||
of physical address space. This can be a problem on IA64 machines where
|
||||
memory is located mostly above that limit, but it is rarely a problem on
|
||||
more common hardware such as x86, x86-64 and PowerPC. However, at least
|
||||
Agere/LSI FW643e and FW643e2 controllers are known to support access to
|
||||
physical addresses above 4 GB.
|
||||
more common hardware such as x86, x86-64 and PowerPC.
|
||||
|
||||
At least LSI FW643e and FW643e2 controllers are known to support access to
|
||||
physical addresses above 4 GB, but this feature is currently not enabled by
|
||||
Linux.
|
||||
|
||||
Together with a early initialization of the OHCI-1394 controller for debugging,
|
||||
this facility proved most useful for examining long debugs logs in the printk
|
||||
|
@ -101,8 +103,9 @@ Step-by-step instructions for using firescope with early OHCI initialization:
|
|||
compliant, they are based on TI PCILynx chips and require drivers for Win-
|
||||
dows operating systems.
|
||||
|
||||
The mentioned kernel log message contains ">4 GB phys DMA" in case of
|
||||
OHCI-1394 controllers which support accesses above this limit.
|
||||
The mentioned kernel log message contains the string "physUB" if the
|
||||
controller implements a writable Physical Upper Bound register. This is
|
||||
required for physical DMA above 4 GB (but not utilized by Linux yet).
|
||||
|
||||
2) Establish a working FireWire cable connection:
|
||||
|
||||
|
|
|
@ -309,7 +309,10 @@ ii) Status
|
|||
error_if_no_space|queue_if_no_space
|
||||
If the pool runs out of data or metadata space, the pool will
|
||||
either queue or error the IO destined to the data device. The
|
||||
default is to queue the IO until more space is added.
|
||||
default is to queue the IO until more space is added or the
|
||||
'no_space_timeout' expires. The 'no_space_timeout' dm-thin-pool
|
||||
module parameter can be used to change this timeout -- it
|
||||
defaults to 60 seconds but may be disabled using a value of 0.
|
||||
|
||||
iii) Messages
|
||||
|
||||
|
|
|
@ -19,6 +19,9 @@ to deliver its interrupts via SPIs.
|
|||
|
||||
- clock-frequency : The frequency of the main counter, in Hz. Optional.
|
||||
|
||||
- always-on : a boolean property. If present, the timer is powered through an
|
||||
always-on power domain, therefore it never loses context.
|
||||
|
||||
Example:
|
||||
|
||||
timer {
|
||||
|
|
|
@ -24,6 +24,7 @@ Required properties:
|
|||
* "sata-phy" for the SATA 6.0Gbps PHY
|
||||
|
||||
Optional properties:
|
||||
- dma-coherent : Present if dma operations are coherent
|
||||
- status : Shall be "ok" if enabled or "disabled" if disabled.
|
||||
Default is "ok".
|
||||
|
||||
|
@ -55,6 +56,7 @@ Example:
|
|||
<0x0 0x1f22e000 0x0 0x1000>,
|
||||
<0x0 0x1f227000 0x0 0x1000>;
|
||||
interrupts = <0x0 0x87 0x4>;
|
||||
dma-coherent;
|
||||
status = "ok";
|
||||
clocks = <&sataclk 0>;
|
||||
phys = <&phy2 0>;
|
||||
|
@ -69,6 +71,7 @@ Example:
|
|||
<0x0 0x1f23e000 0x0 0x1000>,
|
||||
<0x0 0x1f237000 0x0 0x1000>;
|
||||
interrupts = <0x0 0x88 0x4>;
|
||||
dma-coherent;
|
||||
status = "ok";
|
||||
clocks = <&sataclk 0>;
|
||||
phys = <&phy3 0>;
|
||||
|
|
|
@ -62,7 +62,7 @@ Required properties for PMC node:
|
|||
- interrupt-controller : tell that the PMC is an interrupt controller.
|
||||
- #interrupt-cells : must be set to 1. The first cell encodes the interrupt id,
|
||||
and reflect the bit position in the PMC_ER/DR/SR registers.
|
||||
You can use the dt macros defined in dt-bindings/clk/at91.h.
|
||||
You can use the dt macros defined in dt-bindings/clock/at91.h.
|
||||
0 (AT91_PMC_MOSCS) -> main oscillator ready
|
||||
1 (AT91_PMC_LOCKA) -> PLL A ready
|
||||
2 (AT91_PMC_LOCKB) -> PLL B ready
|
||||
|
|
|
@ -43,7 +43,7 @@ Example
|
|||
clock-output-names =
|
||||
"tpu0", "mmcif1", "sdhi3", "sdhi2",
|
||||
"sdhi1", "sdhi0", "mmcif0";
|
||||
renesas,clock-indices = <
|
||||
clock-indices = <
|
||||
R8A7790_CLK_TPU0 R8A7790_CLK_MMCIF1 R8A7790_CLK_SDHI3
|
||||
R8A7790_CLK_SDHI2 R8A7790_CLK_SDHI1 R8A7790_CLK_SDHI0
|
||||
R8A7790_CLK_MMCIF0
|
||||
|
|
|
@ -29,6 +29,6 @@ edma: edma@49000000 {
|
|||
dma-channels = <64>;
|
||||
ti,edma-regions = <4>;
|
||||
ti,edma-slots = <256>;
|
||||
ti,edma-xbar-event-map = <1 12
|
||||
2 13>;
|
||||
ti,edma-xbar-event-map = /bits/ 16 <1 12
|
||||
2 13>;
|
||||
};
|
||||
|
|
|
@ -4,11 +4,15 @@ Required properties:
|
|||
- compatible: Should be "snps,arc-emac"
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain the EMAC interrupts
|
||||
- clock-frequency: CPU frequency. It is needed to calculate and set polling
|
||||
period of EMAC.
|
||||
- max-speed: see ethernet.txt file in the same directory.
|
||||
- phy: see ethernet.txt file in the same directory.
|
||||
|
||||
Clock handling:
|
||||
The clock frequency is needed to calculate and set polling period of EMAC.
|
||||
It must be provided by one of:
|
||||
- clock-frequency: CPU frequency.
|
||||
- clocks: reference to the clock supplying the EMAC.
|
||||
|
||||
Child nodes of the driver are the individual PHY devices connected to the
|
||||
MDIO bus. They must have a "reg" property given the PHY address on the MDIO bus.
|
||||
|
||||
|
@ -19,7 +23,11 @@ Examples:
|
|||
reg = <0xc0fc2000 0x3c>;
|
||||
interrupts = <6>;
|
||||
mac-address = [ 00 11 22 33 44 55 ];
|
||||
|
||||
clock-frequency = <80000000>;
|
||||
/* or */
|
||||
clocks = <&emac_clock>;
|
||||
|
||||
max-speed = <100>;
|
||||
phy = <&phy0>;
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ node.
|
|||
Example:
|
||||
|
||||
aliases {
|
||||
mdio-gpio0 = <&mdio0>;
|
||||
mdio-gpio0 = &mdio0;
|
||||
};
|
||||
|
||||
mdio0: mdio {
|
||||
|
|
|
@ -201,20 +201,15 @@ To beat some sense out of the internal editor, do this:
|
|||
|
||||
- Edit your Thunderbird config settings so that it won't use format=flowed.
|
||||
Go to "edit->preferences->advanced->config editor" to bring up the
|
||||
thunderbird's registry editor, and set "mailnews.send_plaintext_flowed" to
|
||||
"false".
|
||||
thunderbird's registry editor.
|
||||
|
||||
- Disable HTML Format: Set "mail.identity.id1.compose_html" to "false".
|
||||
- Set "mailnews.send_plaintext_flowed" to "false"
|
||||
|
||||
- Enable "preformat" mode: Set "editor.quotesPreformatted" to "true".
|
||||
- Set "mailnews.wraplength" from "72" to "0"
|
||||
|
||||
- Enable UTF8: Set "prefs.converted-to-utf8" to "true".
|
||||
- "View" > "Message Body As" > "Plain Text"
|
||||
|
||||
- Install the "toggle wordwrap" extension. Download the file from:
|
||||
https://addons.mozilla.org/thunderbird/addon/2351/
|
||||
Then go to "tools->add ons", select "install" at the bottom of the screen,
|
||||
and browse to where you saved the .xul file. This adds an "Enable
|
||||
Wordwrap" entry under the Options menu of the message composer.
|
||||
- "View" > "Character Encoding" > "Unicode (UTF-8)"
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
TkRat (GUI)
|
||||
|
|
|
@ -1245,8 +1245,9 @@ second). The meanings of the columns are as follows, from left to right:
|
|||
|
||||
The "intr" line gives counts of interrupts serviced since boot time, for each
|
||||
of the possible system interrupts. The first column is the total of all
|
||||
interrupts serviced; each subsequent column is the total for that particular
|
||||
interrupt.
|
||||
interrupts serviced including unnumbered architecture specific interrupts;
|
||||
each subsequent column is the total for that particular numbered interrupt.
|
||||
Unnumbered interrupts are not shown, only summed into the total.
|
||||
|
||||
The "ctxt" line gives the total number of context switches across all CPUs.
|
||||
|
||||
|
|
|
@ -327,6 +327,13 @@ temp[1-*]_max_hyst
|
|||
from the max value.
|
||||
RW
|
||||
|
||||
temp[1-*]_min_hyst
|
||||
Temperature hysteresis value for min limit.
|
||||
Unit: millidegree Celsius
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the min value.
|
||||
RW
|
||||
|
||||
temp[1-*]_input Temperature input value.
|
||||
Unit: millidegree Celsius
|
||||
RO
|
||||
|
@ -362,6 +369,13 @@ temp[1-*]_lcrit Temperature critical min value, typically lower than
|
|||
Unit: millidegree Celsius
|
||||
RW
|
||||
|
||||
temp[1-*]_lcrit_hyst
|
||||
Temperature hysteresis value for critical min limit.
|
||||
Unit: millidegree Celsius
|
||||
Must be reported as an absolute temperature, NOT a delta
|
||||
from the critical min value.
|
||||
RW
|
||||
|
||||
temp[1-*]_offset
|
||||
Temperature offset which is added to the temperature reading
|
||||
by the chip.
|
||||
|
|
|
@ -504,9 +504,12 @@ byte 5:
|
|||
* reg_10
|
||||
|
||||
bit 7 6 5 4 3 2 1 0
|
||||
0 0 0 0 0 0 0 A
|
||||
0 0 0 0 R F T A
|
||||
|
||||
A: 1 = enable absolute tracking
|
||||
T: 1 = enable two finger mode auto correct
|
||||
F: 1 = disable ABS Position Filter
|
||||
R: 1 = enable real hardware resolution
|
||||
|
||||
6.2 Native absolute mode 6 byte packet format
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
@ -188,6 +188,9 @@ shift
|
|||
#define CP_METHODREF 10
|
||||
#define CP_INTERFACEMETHODREF 11
|
||||
#define CP_NAMEANDTYPE 12
|
||||
#define CP_METHODHANDLE 15
|
||||
#define CP_METHODTYPE 16
|
||||
#define CP_INVOKEDYNAMIC 18
|
||||
|
||||
/* Define some commonly used error messages */
|
||||
|
||||
|
@ -242,14 +245,19 @@ void skip_constant(FILE *classfile, u_int16_t *cur)
|
|||
break;
|
||||
case CP_CLASS:
|
||||
case CP_STRING:
|
||||
case CP_METHODTYPE:
|
||||
seekerr = fseek(classfile, 2, SEEK_CUR);
|
||||
break;
|
||||
case CP_METHODHANDLE:
|
||||
seekerr = fseek(classfile, 3, SEEK_CUR);
|
||||
break;
|
||||
case CP_INTEGER:
|
||||
case CP_FLOAT:
|
||||
case CP_FIELDREF:
|
||||
case CP_METHODREF:
|
||||
case CP_INTERFACEMETHODREF:
|
||||
case CP_NAMEANDTYPE:
|
||||
case CP_INVOKEDYNAMIC:
|
||||
seekerr = fseek(classfile, 4, SEEK_CUR);
|
||||
break;
|
||||
case CP_LONG:
|
||||
|
|
|
@ -2218,10 +2218,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
noreplace-smp [X86-32,SMP] Don't replace SMP instructions
|
||||
with UP alternatives
|
||||
|
||||
nordrand [X86] Disable the direct use of the RDRAND
|
||||
instruction even if it is supported by the
|
||||
processor. RDRAND is still available to user
|
||||
space applications.
|
||||
nordrand [X86] Disable kernel use of the RDRAND and
|
||||
RDSEED instructions even if they are supported
|
||||
by the processor. RDRAND and RDSEED are still
|
||||
available to user space applications.
|
||||
|
||||
noresume [SWSUSP] Disables resume and restores original swap
|
||||
space.
|
||||
|
|
|
@ -277,7 +277,7 @@ Possible BPF extensions are shown in the following table:
|
|||
mark skb->mark
|
||||
queue skb->queue_mapping
|
||||
hatype skb->dev->type
|
||||
rxhash skb->rxhash
|
||||
rxhash skb->hash
|
||||
cpu raw_smp_processor_id()
|
||||
vlan_tci vlan_tx_tag_get(skb)
|
||||
vlan_pr vlan_tx_tag_present(skb)
|
||||
|
|
|
@ -578,7 +578,7 @@ processes. This also works in combination with mmap(2) on packet sockets.
|
|||
|
||||
Currently implemented fanout policies are:
|
||||
|
||||
- PACKET_FANOUT_HASH: schedule to socket by skb's rxhash
|
||||
- PACKET_FANOUT_HASH: schedule to socket by skb's packet hash
|
||||
- PACKET_FANOUT_LB: schedule to socket by round-robin
|
||||
- PACKET_FANOUT_CPU: schedule to socket by CPU packet arrives on
|
||||
- PACKET_FANOUT_RND: schedule to socket by random selection
|
||||
|
|
|
@ -429,7 +429,7 @@ RPS and RFS were introduced in kernel 2.6.35. XPS was incorporated into
|
|||
(therbert@google.com)
|
||||
|
||||
Accelerated RFS was introduced in 2.6.35. Original patches were
|
||||
submitted by Ben Hutchings (bhutchings@solarflare.com)
|
||||
submitted by Ben Hutchings (bwh@kernel.org)
|
||||
|
||||
Authors:
|
||||
Tom Herbert (therbert@google.com)
|
||||
|
|
|
@ -2126,7 +2126,7 @@ into the hash PTE second double word).
|
|||
4.75 KVM_IRQFD
|
||||
|
||||
Capability: KVM_CAP_IRQFD
|
||||
Architectures: x86
|
||||
Architectures: x86 s390
|
||||
Type: vm ioctl
|
||||
Parameters: struct kvm_irqfd (in)
|
||||
Returns: 0 on success, -1 on error
|
||||
|
|
62
MAINTAINERS
62
MAINTAINERS
|
@ -537,7 +537,7 @@ L: linux-alpha@vger.kernel.org
|
|||
F: arch/alpha/
|
||||
|
||||
ALTERA TRIPLE SPEED ETHERNET DRIVER
|
||||
M: Vince Bridgers <vbridgers2013@gmail.com
|
||||
M: Vince Bridgers <vbridgers2013@gmail.com>
|
||||
L: netdev@vger.kernel.org
|
||||
L: nios2-dev@lists.rocketboards.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
|
@ -1893,14 +1893,15 @@ L: netdev@vger.kernel.org
|
|||
S: Supported
|
||||
F: drivers/net/ethernet/broadcom/bnx2x/
|
||||
|
||||
BROADCOM BCM281XX/BCM11XXX ARM ARCHITECTURE
|
||||
BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
|
||||
M: Christian Daudt <bcm@fixthebug.org>
|
||||
M: Matt Porter <mporter@linaro.org>
|
||||
L: bcm-kernel-feedback-list@broadcom.com
|
||||
T: git git://git.github.com/broadcom/bcm11351
|
||||
T: git git://github.com/broadcom/mach-bcm
|
||||
S: Maintained
|
||||
F: arch/arm/mach-bcm/
|
||||
F: arch/arm/boot/dts/bcm113*
|
||||
F: arch/arm/boot/dts/bcm216*
|
||||
F: arch/arm/boot/dts/bcm281*
|
||||
F: arch/arm/configs/bcm_defconfig
|
||||
F: drivers/mmc/host/sdhci_bcm_kona.c
|
||||
|
@ -2245,12 +2246,6 @@ L: linux-usb@vger.kernel.org
|
|||
S: Maintained
|
||||
F: drivers/usb/host/ohci-ep93xx.c
|
||||
|
||||
CIRRUS LOGIC CS4270 SOUND DRIVER
|
||||
M: Timur Tabi <timur@tabi.org>
|
||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
||||
S: Odd Fixes
|
||||
F: sound/soc/codecs/cs4270*
|
||||
|
||||
CIRRUS LOGIC AUDIO CODEC DRIVERS
|
||||
M: Brian Austin <brian.austin@cirrus.com>
|
||||
M: Paul Handrigan <Paul.Handrigan@cirrus.com>
|
||||
|
@ -3159,10 +3154,9 @@ S: Maintained
|
|||
F: drivers/scsi/eata_pio.*
|
||||
|
||||
EBTABLES
|
||||
M: Bart De Schuymer <bart.de.schuymer@pandora.be>
|
||||
L: netfilter-devel@vger.kernel.org
|
||||
W: http://ebtables.sourceforge.net/
|
||||
S: Maintained
|
||||
S: Orphan
|
||||
F: include/linux/netfilter_bridge/ebt_*.h
|
||||
F: include/uapi/linux/netfilter_bridge/ebt_*.h
|
||||
F: net/bridge/netfilter/ebt*.c
|
||||
|
@ -3557,7 +3551,7 @@ F: include/scsi/libfcoe.h
|
|||
F: include/uapi/scsi/fc/
|
||||
|
||||
FILE LOCKING (flock() and fcntl()/lockf())
|
||||
M: Jeff Layton <jlayton@redhat.com>
|
||||
M: Jeff Layton <jlayton@poochiereds.net>
|
||||
M: J. Bruce Fields <bfields@fieldses.org>
|
||||
L: linux-fsdevel@vger.kernel.org
|
||||
S: Maintained
|
||||
|
@ -4819,6 +4813,14 @@ L: linux-kernel@vger.kernel.org
|
|||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
|
||||
F: kernel/irq/
|
||||
|
||||
IRQCHIP DRIVERS
|
||||
M: Thomas Gleixner <tglx@linutronix.de>
|
||||
M: Jason Cooper <jason@lakedaemon.net>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
|
||||
T: git git://git.infradead.org/users/jcooper/linux.git irqchip/core
|
||||
F: drivers/irqchip/
|
||||
|
||||
IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
|
||||
|
@ -5115,14 +5117,19 @@ F: drivers/s390/kvm/
|
|||
|
||||
KERNEL VIRTUAL MACHINE (KVM) FOR ARM
|
||||
M: Christoffer Dall <christoffer.dall@linaro.org>
|
||||
M: Marc Zyngier <marc.zyngier@arm.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
L: kvmarm@lists.cs.columbia.edu
|
||||
W: http://systems.cs.columbia.edu/projects/kvm-arm
|
||||
S: Supported
|
||||
F: arch/arm/include/uapi/asm/kvm*
|
||||
F: arch/arm/include/asm/kvm*
|
||||
F: arch/arm/kvm/
|
||||
F: virt/kvm/arm/
|
||||
F: include/kvm/arm_*
|
||||
|
||||
KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
|
||||
M: Christoffer Dall <christoffer.dall@linaro.org>
|
||||
M: Marc Zyngier <marc.zyngier@arm.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
L: kvmarm@lists.cs.columbia.edu
|
||||
|
@ -5486,15 +5493,15 @@ F: Documentation/hwmon/ltc4261
|
|||
F: drivers/hwmon/ltc4261.c
|
||||
|
||||
LTP (Linux Test Project)
|
||||
M: Shubham Goyal <shubham@linux.vnet.ibm.com>
|
||||
M: Mike Frysinger <vapier@gentoo.org>
|
||||
M: Cyril Hrubis <chrubis@suse.cz>
|
||||
M: Caspar Zhang <caspar@casparzhang.com>
|
||||
M: Wanlong Gao <gaowanlong@cn.fujitsu.com>
|
||||
M: Jan Stancek <jstancek@redhat.com>
|
||||
M: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
|
||||
M: Alexey Kodanev <alexey.kodanev@oracle.com>
|
||||
L: ltp-list@lists.sourceforge.net (subscribers-only)
|
||||
W: http://ltp.sourceforge.net/
|
||||
W: http://linux-test-project.github.io/
|
||||
T: git git://github.com/linux-test-project/ltp.git
|
||||
T: git git://ltp.git.sourceforge.net/gitroot/ltp/ltp-dev
|
||||
S: Maintained
|
||||
|
||||
M32R ARCHITECTURE
|
||||
|
@ -6507,10 +6514,10 @@ T: git git://openrisc.net/~jonas/linux
|
|||
F: arch/openrisc/
|
||||
|
||||
OPENVSWITCH
|
||||
M: Jesse Gross <jesse@nicira.com>
|
||||
M: Pravin Shelar <pshelar@nicira.com>
|
||||
L: dev@openvswitch.org
|
||||
W: http://openvswitch.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/pshelar/openvswitch.git
|
||||
S: Maintained
|
||||
F: net/openvswitch/
|
||||
|
||||
|
@ -7284,7 +7291,6 @@ F: drivers/video/aty/aty128fb.c
|
|||
RALINK RT2X00 WIRELESS LAN DRIVER
|
||||
P: rt2x00 project
|
||||
M: Ivo van Doorn <IvDoorn@gmail.com>
|
||||
M: Gertjan van Wingerde <gwingerde@gmail.com>
|
||||
M: Helmut Schaa <helmut.schaa@googlemail.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
L: users@rt2x00.serialmonkey.com (moderated for non-subscribers)
|
||||
|
@ -7300,7 +7306,7 @@ F: Documentation/blockdev/ramdisk.txt
|
|||
F: drivers/block/brd.c
|
||||
|
||||
RANDOM NUMBER DRIVER
|
||||
M: Theodore Ts'o" <tytso@mit.edu>
|
||||
M: "Theodore Ts'o" <tytso@mit.edu>
|
||||
S: Maintained
|
||||
F: drivers/char/random.c
|
||||
|
||||
|
@ -7399,6 +7405,14 @@ F: drivers/rpmsg/
|
|||
F: Documentation/rpmsg.txt
|
||||
F: include/linux/rpmsg.h
|
||||
|
||||
RESET CONTROLLER FRAMEWORK
|
||||
M: Philipp Zabel <p.zabel@pengutronix.de>
|
||||
S: Maintained
|
||||
F: drivers/reset/
|
||||
F: Documentation/devicetree/bindings/reset/
|
||||
F: include/linux/reset.h
|
||||
F: include/linux/reset-controller.h
|
||||
|
||||
RFKILL
|
||||
M: Johannes Berg <johannes@sipsolutions.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
|
@ -7681,7 +7695,6 @@ F: drivers/clk/samsung/
|
|||
SAMSUNG SXGBE DRIVERS
|
||||
M: Byungho An <bh74.an@samsung.com>
|
||||
M: Girish K S <ks.giri@samsung.com>
|
||||
M: Siva Reddy Kallam <siva.kallam@samsung.com>
|
||||
M: Vipul Pandya <vipul.pandya@samsung.com>
|
||||
S: Supported
|
||||
L: netdev@vger.kernel.org
|
||||
|
@ -9105,6 +9118,9 @@ F: arch/um/os-Linux/drivers/
|
|||
|
||||
TURBOCHANNEL SUBSYSTEM
|
||||
M: "Maciej W. Rozycki" <macro@linux-mips.org>
|
||||
M: Ralf Baechle <ralf@linux-mips.org>
|
||||
L: linux-mips@linux-mips.org
|
||||
Q: http://patchwork.linux-mips.org/project/linux-mips/list/
|
||||
S: Maintained
|
||||
F: drivers/tc/
|
||||
F: include/linux/tc.h
|
||||
|
@ -9958,7 +9974,7 @@ F: drivers/net/hamradio/*scc.c
|
|||
F: drivers/net/hamradio/z8530.h
|
||||
|
||||
ZBUD COMPRESSED PAGE ALLOCATOR
|
||||
M: Seth Jennings <sjenning@linux.vnet.ibm.com>
|
||||
M: Seth Jennings <sjennings@variantweb.net>
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
F: mm/zbud.c
|
||||
|
@ -10003,7 +10019,7 @@ F: mm/zsmalloc.c
|
|||
F: include/linux/zsmalloc.h
|
||||
|
||||
ZSWAP COMPRESSED SWAP CACHING
|
||||
M: Seth Jennings <sjenning@linux.vnet.ibm.com>
|
||||
M: Seth Jennings <sjennings@variantweb.net>
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
F: mm/zswap.c
|
||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
|||
VERSION = 3
|
||||
PATCHLEVEL = 15
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc3
|
||||
EXTRAVERSION = -rc8
|
||||
NAME = Shuffling Zombie Juror
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
|
|
@ -144,7 +144,7 @@
|
|||
compatible = "ti,edma3";
|
||||
ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
|
||||
reg = <0x49000000 0x10000>,
|
||||
<0x44e10f90 0x10>;
|
||||
<0x44e10f90 0x40>;
|
||||
interrupts = <12 13 14>;
|
||||
#dma-cells = <1>;
|
||||
dma-channels = <64>;
|
||||
|
|
|
@ -62,5 +62,21 @@
|
|||
};
|
||||
};
|
||||
|
||||
&iva {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mailbox {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mmu_isp {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&smartreflex_mpu_iva {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/include/ "am35xx-clocks.dtsi"
|
||||
/include/ "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
|
||||
|
|
|
@ -117,6 +117,11 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio5 {
|
||||
status = "okay";
|
||||
ti,no-reset-on-init;
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
status = "okay";
|
||||
vmmc-supply = <&vmmcsd_fixed>;
|
||||
|
|
|
@ -67,6 +67,7 @@
|
|||
i2c@11000 {
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
pinctrl-names = "default";
|
||||
clock-frequency = <100000>;
|
||||
status = "okay";
|
||||
audio_codec: audio-codec@4a {
|
||||
compatible = "cirrus,cs42l51";
|
||||
|
|
|
@ -79,6 +79,11 @@
|
|||
};
|
||||
};
|
||||
|
||||
sata@a0000 {
|
||||
status = "okay";
|
||||
nr-ports = <2>;
|
||||
};
|
||||
|
||||
nand: nand@d0000 {
|
||||
pinctrl-0 = <&nand_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
pcie@3,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
reg = <0x1800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
pcie@3,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
reg = <0x1800 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -131,7 +131,7 @@
|
|||
pcie@4,0 {
|
||||
device_type = "pci";
|
||||
assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
|
||||
reg = <0x1000 0 0 0 0>;
|
||||
reg = <0x2000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
/* Device Bus parameters are required */
|
||||
|
||||
/* Read parameters */
|
||||
devbus,bus-width = <8>;
|
||||
devbus,bus-width = <16>;
|
||||
devbus,turn-off-ps = <60000>;
|
||||
devbus,badr-skew-ps = <0>;
|
||||
devbus,acc-first-ps = <124000>;
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
/* Device Bus parameters are required */
|
||||
|
||||
/* Read parameters */
|
||||
devbus,bus-width = <8>;
|
||||
devbus,bus-width = <16>;
|
||||
devbus,turn-off-ps = <60000>;
|
||||
devbus,badr-skew-ps = <0>;
|
||||
devbus,acc-first-ps = <124000>;
|
||||
|
@ -146,22 +146,22 @@
|
|||
ethernet@70000 {
|
||||
status = "okay";
|
||||
phy = <&phy0>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-mode = "qsgmii";
|
||||
};
|
||||
ethernet@74000 {
|
||||
status = "okay";
|
||||
phy = <&phy1>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-mode = "qsgmii";
|
||||
};
|
||||
ethernet@30000 {
|
||||
status = "okay";
|
||||
phy = <&phy2>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-mode = "qsgmii";
|
||||
};
|
||||
ethernet@34000 {
|
||||
status = "okay";
|
||||
phy = <&phy3>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-mode = "qsgmii";
|
||||
};
|
||||
|
||||
/* Front-side USB slot */
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
/* Device Bus parameters are required */
|
||||
|
||||
/* Read parameters */
|
||||
devbus,bus-width = <8>;
|
||||
devbus,bus-width = <16>;
|
||||
devbus,turn-off-ps = <60000>;
|
||||
devbus,badr-skew-ps = <0>;
|
||||
devbus,acc-first-ps = <124000>;
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
};
|
||||
|
||||
spi0: spi@f0004000 {
|
||||
cs-gpios = <&pioD 13 0>;
|
||||
cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -79,7 +79,7 @@
|
|||
};
|
||||
|
||||
spi1: spi@f8008000 {
|
||||
cs-gpios = <&pioC 25 0>, <0>, <0>, <&pioD 16 0>;
|
||||
cs-gpios = <&pioC 25 0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
|
|
@ -641,7 +641,7 @@
|
|||
trigger@3 {
|
||||
reg = <3>;
|
||||
trigger-name = "external";
|
||||
trigger-value = <0x13>;
|
||||
trigger-value = <0xd>;
|
||||
trigger-external;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clk/at91.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
|
||||
/ {
|
||||
model = "Atmel AT91SAM9261 family SoC";
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include "skeleton.dtsi"
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/clk/at91.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
|
|
|
@ -503,7 +503,7 @@
|
|||
status = "okay";
|
||||
|
||||
ak8975@0c {
|
||||
compatible = "ak,ak8975";
|
||||
compatible = "asahi-kasei,ak8975";
|
||||
reg = <0x0c>;
|
||||
gpios = <&gpj0 7 0>;
|
||||
};
|
||||
|
|
|
@ -107,6 +107,7 @@
|
|||
regulator-name = "VDD_IOPERI_1.8V";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
op_mode = <1>;
|
||||
};
|
||||
|
||||
|
|
|
@ -364,16 +364,4 @@
|
|||
gpio-key,wakeup;
|
||||
};
|
||||
};
|
||||
|
||||
amba {
|
||||
mdma1: mdma@11C10000 {
|
||||
/*
|
||||
* MDMA1 can support both secure and non-secure
|
||||
* AXI transactions. When this is enabled in the kernel
|
||||
* for boards that run in secure mode, we are getting
|
||||
* imprecise external aborts causing the kernel to oops.
|
||||
*/
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -219,16 +219,6 @@
|
|||
reg = <0x100440C0 0x20>;
|
||||
};
|
||||
|
||||
mau_pd: power-domain@100440E0 {
|
||||
compatible = "samsung,exynos4210-pd";
|
||||
reg = <0x100440E0 0x20>;
|
||||
};
|
||||
|
||||
g2d_pd: power-domain@10044100 {
|
||||
compatible = "samsung,exynos4210-pd";
|
||||
reg = <0x10044100 0x20>;
|
||||
};
|
||||
|
||||
msc_pd: power-domain@10044120 {
|
||||
compatible = "samsung,exynos4210-pd";
|
||||
reg = <0x10044120 0x20>;
|
||||
|
@ -336,6 +326,13 @@
|
|||
#dma-cells = <1>;
|
||||
#dma-channels = <8>;
|
||||
#dma-requests = <1>;
|
||||
/*
|
||||
* MDMA1 can support both secure and non-secure
|
||||
* AXI transactions. When this is enabled in the kernel
|
||||
* for boards that run in secure mode, we are getting
|
||||
* imprecise external aborts causing the kernel to oops.
|
||||
*/
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -385,7 +382,7 @@
|
|||
spi_0: spi@12d20000 {
|
||||
compatible = "samsung,exynos4210-spi";
|
||||
reg = <0x12d20000 0x100>;
|
||||
interrupts = <0 66 0>;
|
||||
interrupts = <0 68 0>;
|
||||
dmas = <&pdma0 5
|
||||
&pdma0 4>;
|
||||
dma-names = "tx", "rx";
|
||||
|
@ -401,7 +398,7 @@
|
|||
spi_1: spi@12d30000 {
|
||||
compatible = "samsung,exynos4210-spi";
|
||||
reg = <0x12d30000 0x100>;
|
||||
interrupts = <0 67 0>;
|
||||
interrupts = <0 69 0>;
|
||||
dmas = <&pdma1 5
|
||||
&pdma1 4>;
|
||||
dma-names = "tx", "rx";
|
||||
|
@ -417,7 +414,7 @@
|
|||
spi_2: spi@12d40000 {
|
||||
compatible = "samsung,exynos4210-spi";
|
||||
reg = <0x12d40000 0x100>;
|
||||
interrupts = <0 68 0>;
|
||||
interrupts = <0 70 0>;
|
||||
dmas = <&pdma0 7
|
||||
&pdma0 6>;
|
||||
dma-names = "tx", "rx";
|
||||
|
@ -730,6 +727,5 @@
|
|||
interrupts = <0 112 0>;
|
||||
clocks = <&clock 471>;
|
||||
clock-names = "secss";
|
||||
samsung,power-domain = <&g2d_pd>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -244,7 +244,7 @@
|
|||
&tve {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_vga_sync_1>;
|
||||
i2c-ddc-bus = <&i2c3>;
|
||||
ddc-i2c-bus = <&i2c3>;
|
||||
fsl,tve-mode = "vga";
|
||||
fsl,hsync-pin = <4>;
|
||||
fsl,vsync-pin = <6>;
|
||||
|
|
|
@ -115,7 +115,7 @@
|
|||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx53-ipu";
|
||||
reg = <0x18000000 0x080000000>;
|
||||
reg = <0x18000000 0x08000000>;
|
||||
interrupts = <11 10>;
|
||||
clocks = <&clks IMX5_CLK_IPU_GATE>,
|
||||
<&clks IMX5_CLK_IPU_DI0_GATE>,
|
||||
|
|
|
@ -30,6 +30,16 @@
|
|||
bootargs = "console=ttyS0,115200n8 earlyprintk";
|
||||
};
|
||||
|
||||
mbus {
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
pcie@1,0 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ocp@f1000000 {
|
||||
pinctrl@10000 {
|
||||
pmx_usb_led: pmx-usb-led {
|
||||
|
@ -73,14 +83,6 @@
|
|||
ehci@50000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
pcie@1,0 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gpio-leds {
|
||||
|
|
|
@ -4,6 +4,16 @@
|
|||
/ {
|
||||
model = "ZyXEL NSA310";
|
||||
|
||||
mbus {
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
pcie@1,0 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ocp@f1000000 {
|
||||
pinctrl: pinctrl@10000 {
|
||||
|
||||
|
@ -26,14 +36,6 @@
|
|||
status = "okay";
|
||||
nr-ports = <2>;
|
||||
};
|
||||
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
pcie@1,0 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gpio_poweroff {
|
||||
|
|
|
@ -127,11 +127,6 @@
|
|||
|
||||
i2c@11000 {
|
||||
status = "okay";
|
||||
|
||||
alc5621: alc5621@1a {
|
||||
compatible = "realtek,alc5621";
|
||||
reg = <0x1a>;
|
||||
};
|
||||
};
|
||||
|
||||
serial@12000 {
|
||||
|
|
|
@ -24,11 +24,10 @@
|
|||
compatible = "smsc,lan9221", "smsc,lan9115";
|
||||
bank-width = <2>;
|
||||
gpmc,mux-add-data;
|
||||
gpmc,cs-on-ns = <0>;
|
||||
gpmc,cs-rd-off-ns = <186>;
|
||||
gpmc,cs-wr-off-ns = <186>;
|
||||
gpmc,adv-on-ns = <12>;
|
||||
gpmc,adv-rd-off-ns = <48>;
|
||||
gpmc,cs-on-ns = <1>;
|
||||
gpmc,cs-rd-off-ns = <180>;
|
||||
gpmc,cs-wr-off-ns = <180>;
|
||||
gpmc,adv-rd-off-ns = <18>;
|
||||
gpmc,adv-wr-off-ns = <48>;
|
||||
gpmc,oe-on-ns = <54>;
|
||||
gpmc,oe-off-ns = <168>;
|
||||
|
@ -36,12 +35,10 @@
|
|||
gpmc,we-off-ns = <168>;
|
||||
gpmc,rd-cycle-ns = <186>;
|
||||
gpmc,wr-cycle-ns = <186>;
|
||||
gpmc,access-ns = <114>;
|
||||
gpmc,page-burst-access-ns = <6>;
|
||||
gpmc,bus-turnaround-ns = <12>;
|
||||
gpmc,cycle2cycle-delay-ns = <18>;
|
||||
gpmc,wr-data-mux-bus-ns = <90>;
|
||||
gpmc,wr-access-ns = <186>;
|
||||
gpmc,access-ns = <144>;
|
||||
gpmc,page-burst-access-ns = <24>;
|
||||
gpmc,bus-turnaround-ns = <90>;
|
||||
gpmc,cycle2cycle-delay-ns = <90>;
|
||||
gpmc,cycle2cycle-samecsen;
|
||||
gpmc,cycle2cycle-diffcsen;
|
||||
vddvario-supply = <&vddvario>;
|
||||
|
|
|
@ -71,13 +71,6 @@
|
|||
interrupts = <58>;
|
||||
};
|
||||
|
||||
mailbox: mailbox@48094000 {
|
||||
compatible = "ti,omap2-mailbox";
|
||||
ti,hwmods = "mailbox";
|
||||
reg = <0x48094000 0x200>;
|
||||
interrupts = <26>;
|
||||
};
|
||||
|
||||
intc: interrupt-controller@1 {
|
||||
compatible = "ti,omap2-intc";
|
||||
interrupt-controller;
|
||||
|
|
|
@ -125,6 +125,14 @@
|
|||
dma-names = "tx", "rx";
|
||||
};
|
||||
|
||||
mailbox: mailbox@48094000 {
|
||||
compatible = "ti,omap2-mailbox";
|
||||
reg = <0x48094000 0x200>;
|
||||
interrupts = <26>, <34>;
|
||||
interrupt-names = "dsp", "iva";
|
||||
ti,hwmods = "mailbox";
|
||||
};
|
||||
|
||||
timer1: timer@48028000 {
|
||||
compatible = "ti,omap2420-timer";
|
||||
reg = <0x48028000 0x400>;
|
||||
|
|
|
@ -216,6 +216,13 @@
|
|||
dma-names = "tx", "rx";
|
||||
};
|
||||
|
||||
mailbox: mailbox@48094000 {
|
||||
compatible = "ti,omap2-mailbox";
|
||||
reg = <0x48094000 0x200>;
|
||||
interrupts = <26>;
|
||||
ti,hwmods = "mailbox";
|
||||
};
|
||||
|
||||
timer1: timer@49018000 {
|
||||
compatible = "ti,omap2420-timer";
|
||||
reg = <0x49018000 0x400>;
|
||||
|
|
|
@ -10,18 +10,6 @@
|
|||
cpu0-supply = <&vcc>;
|
||||
};
|
||||
};
|
||||
|
||||
vddvario: regulator-vddvario {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vddvario";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd33a: regulator-vdd33a {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd33a";
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
&omap3_pmx_core {
|
||||
|
@ -35,58 +23,34 @@
|
|||
|
||||
hsusb0_pins: pinmux_hsusb0_pins {
|
||||
pinctrl-single,pins = <
|
||||
OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* hsusb0_clk.hsusb0_clk */
|
||||
OMAP3_CORE1_IOPAD(0x21a2, PIN_OUTPUT | MUX_MODE0) /* hsusb0_stp.hsusb0_stp */
|
||||
OMAP3_CORE1_IOPAD(0x21a4, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_dir.hsusb0_dir */
|
||||
OMAP3_CORE1_IOPAD(0x21a6, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_nxt.hsusb0_nxt */
|
||||
OMAP3_CORE1_IOPAD(0x21a8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data0.hsusb2_data0 */
|
||||
OMAP3_CORE1_IOPAD(0x21aa, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data1.hsusb0_data1 */
|
||||
OMAP3_CORE1_IOPAD(0x21ac, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data2.hsusb0_data2 */
|
||||
OMAP3_CORE1_IOPAD(0x21ae, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data7.hsusb0_data3 */
|
||||
OMAP3_CORE1_IOPAD(0x21b0, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data7.hsusb0_data4 */
|
||||
OMAP3_CORE1_IOPAD(0x21b2, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data7.hsusb0_data5 */
|
||||
OMAP3_CORE1_IOPAD(0x21b4, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data7.hsusb0_data6 */
|
||||
OMAP3_CORE1_IOPAD(0x21b6, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data7.hsusb0_data7 */
|
||||
OMAP3_CORE1_IOPAD(0x21a2, PIN_OUTPUT | MUX_MODE0) /* hsusb0_clk.hsusb0_clk */
|
||||
OMAP3_CORE1_IOPAD(0x21a4, PIN_OUTPUT | MUX_MODE0) /* hsusb0_stp.hsusb0_stp */
|
||||
OMAP3_CORE1_IOPAD(0x21a6, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_dir.hsusb0_dir */
|
||||
OMAP3_CORE1_IOPAD(0x21a8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_nxt.hsusb0_nxt */
|
||||
OMAP3_CORE1_IOPAD(0x21aa, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data0.hsusb2_data0 */
|
||||
OMAP3_CORE1_IOPAD(0x21ac, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data1.hsusb0_data1 */
|
||||
OMAP3_CORE1_IOPAD(0x21ae, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data2.hsusb0_data2 */
|
||||
OMAP3_CORE1_IOPAD(0x21b0, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data7.hsusb0_data3 */
|
||||
OMAP3_CORE1_IOPAD(0x21b2, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data7.hsusb0_data4 */
|
||||
OMAP3_CORE1_IOPAD(0x21b4, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data7.hsusb0_data5 */
|
||||
OMAP3_CORE1_IOPAD(0x21b6, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data7.hsusb0_data6 */
|
||||
OMAP3_CORE1_IOPAD(0x21b8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* hsusb0_data7.hsusb0_data7 */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
#include "omap-gpmc-smsc911x.dtsi"
|
||||
|
||||
&gpmc {
|
||||
ranges = <5 0 0x2c000000 0x01000000>;
|
||||
|
||||
smsc1: ethernet@5,0 {
|
||||
smsc1: ethernet@gpmc {
|
||||
compatible = "smsc,lan9221", "smsc,lan9115";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&smsc1_pins>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
|
||||
reg = <5 0 0xff>;
|
||||
bank-width = <2>;
|
||||
gpmc,mux-add-data;
|
||||
gpmc,cs-on-ns = <0>;
|
||||
gpmc,cs-rd-off-ns = <186>;
|
||||
gpmc,cs-wr-off-ns = <186>;
|
||||
gpmc,adv-on-ns = <12>;
|
||||
gpmc,adv-rd-off-ns = <48>;
|
||||
gpmc,adv-wr-off-ns = <48>;
|
||||
gpmc,oe-on-ns = <54>;
|
||||
gpmc,oe-off-ns = <168>;
|
||||
gpmc,we-on-ns = <54>;
|
||||
gpmc,we-off-ns = <168>;
|
||||
gpmc,rd-cycle-ns = <186>;
|
||||
gpmc,wr-cycle-ns = <186>;
|
||||
gpmc,access-ns = <114>;
|
||||
gpmc,page-burst-access-ns = <6>;
|
||||
gpmc,bus-turnaround-ns = <12>;
|
||||
gpmc,cycle2cycle-delay-ns = <18>;
|
||||
gpmc,wr-data-mux-bus-ns = <90>;
|
||||
gpmc,wr-access-ns = <186>;
|
||||
gpmc,cycle2cycle-samecsen;
|
||||
gpmc,cycle2cycle-diffcsen;
|
||||
vddvario-supply = <&vddvario>;
|
||||
vdd33a-supply = <&vdd33a>;
|
||||
reg-io-width = <4>;
|
||||
smsc,save-mac-address;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@
|
|||
>;
|
||||
};
|
||||
|
||||
smsc911x_pins: pinmux_smsc911x_pins {
|
||||
smsc9221_pins: pinmux_smsc9221_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x1a2 (PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */
|
||||
>;
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
*/
|
||||
|
||||
#include "omap3-igep.dtsi"
|
||||
#include "omap-gpmc-smsc911x.dtsi"
|
||||
#include "omap-gpmc-smsc9221.dtsi"
|
||||
|
||||
/ {
|
||||
model = "IGEPv2 (TI OMAP AM/DM37x)";
|
||||
|
@ -248,7 +248,7 @@
|
|||
|
||||
ethernet@gpmc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&smsc911x_pins>;
|
||||
pinctrl-0 = <&smsc9221_pins>;
|
||||
reg = <5 0 0xff>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
|
|
@ -2,20 +2,6 @@
|
|||
* Common support for CompuLab SB-T35 used on SBC-T3530, SBC-T3517 and SBC-T3730
|
||||
*/
|
||||
|
||||
/ {
|
||||
vddvario_sb_t35: regulator-vddvario-sb-t35 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vddvario";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd33a_sb_t35: regulator-vdd33a-sb-t35 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd33a";
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
&omap3_pmx_core {
|
||||
smsc2_pins: pinmux_smsc2_pins {
|
||||
pinctrl-single,pins = <
|
||||
|
@ -37,11 +23,10 @@
|
|||
reg = <4 0 0xff>;
|
||||
bank-width = <2>;
|
||||
gpmc,mux-add-data;
|
||||
gpmc,cs-on-ns = <0>;
|
||||
gpmc,cs-rd-off-ns = <186>;
|
||||
gpmc,cs-wr-off-ns = <186>;
|
||||
gpmc,adv-on-ns = <12>;
|
||||
gpmc,adv-rd-off-ns = <48>;
|
||||
gpmc,cs-on-ns = <1>;
|
||||
gpmc,cs-rd-off-ns = <180>;
|
||||
gpmc,cs-wr-off-ns = <180>;
|
||||
gpmc,adv-rd-off-ns = <18>;
|
||||
gpmc,adv-wr-off-ns = <48>;
|
||||
gpmc,oe-on-ns = <54>;
|
||||
gpmc,oe-off-ns = <168>;
|
||||
|
@ -49,16 +34,14 @@
|
|||
gpmc,we-off-ns = <168>;
|
||||
gpmc,rd-cycle-ns = <186>;
|
||||
gpmc,wr-cycle-ns = <186>;
|
||||
gpmc,access-ns = <114>;
|
||||
gpmc,page-burst-access-ns = <6>;
|
||||
gpmc,bus-turnaround-ns = <12>;
|
||||
gpmc,cycle2cycle-delay-ns = <18>;
|
||||
gpmc,wr-data-mux-bus-ns = <90>;
|
||||
gpmc,wr-access-ns = <186>;
|
||||
gpmc,access-ns = <144>;
|
||||
gpmc,page-burst-access-ns = <24>;
|
||||
gpmc,bus-turnaround-ns = <90>;
|
||||
gpmc,cycle2cycle-delay-ns = <90>;
|
||||
gpmc,cycle2cycle-samecsen;
|
||||
gpmc,cycle2cycle-diffcsen;
|
||||
vddvario-supply = <&vddvario_sb_t35>;
|
||||
vdd33a-supply = <&vdd33a_sb_t35>;
|
||||
vddvario-supply = <&vddvario>;
|
||||
vdd33a-supply = <&vdd33a>;
|
||||
reg-io-width = <4>;
|
||||
smsc,save-mac-address;
|
||||
};
|
||||
|
|
|
@ -8,6 +8,19 @@
|
|||
/ {
|
||||
model = "CompuLab SBC-T3517 with CM-T3517";
|
||||
compatible = "compulab,omap3-sbc-t3517", "compulab,omap3-cm-t3517", "ti,am3517", "ti,omap3";
|
||||
|
||||
/* Only one GPMC smsc9220 on SBC-T3517, CM-T3517 uses am35x Ethernet */
|
||||
vddvario: regulator-vddvario-sb-t35 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vddvario";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd33a: regulator-vdd33a-sb-t35 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd33a";
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
&omap3_pmx_core {
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
ti,hwmods = "mpu";
|
||||
};
|
||||
|
||||
iva {
|
||||
iva: iva {
|
||||
compatible = "ti,iva2.2";
|
||||
ti,hwmods = "iva";
|
||||
|
||||
|
|
|
@ -630,6 +630,13 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
mailbox: mailbox@4a0f4000 {
|
||||
compatible = "ti,omap4-mailbox";
|
||||
reg = <0x4a0f4000 0x200>;
|
||||
interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
|
||||
ti,hwmods = "mailbox";
|
||||
};
|
||||
|
||||
timer1: timer@4ae18000 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x4ae18000 0x80>;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/clk/at91.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
|
||||
/ {
|
||||
model = "Atmel SAMA5D3 family SoC";
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/clk/at91.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
|
||||
/ {
|
||||
ahb {
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/clk/at91.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/clk/at91.h>
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
compatible = "st-ericsson,ccu8540", "st-ericsson,u8540";
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x20000000 0x1f000000>, <0xc0000000 0x3f000000>;
|
||||
};
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
|
||||
pll4: clk@01c20018 {
|
||||
#clock-cells = <0>;
|
||||
compatible = "allwinner,sun4i-a10-pll1-clk";
|
||||
compatible = "allwinner,sun7i-a20-pll4-clk";
|
||||
reg = <0x01c20018 0x4>;
|
||||
clocks = <&osc24M>;
|
||||
clock-output-names = "pll4";
|
||||
|
@ -109,6 +109,14 @@
|
|||
clock-output-names = "pll6_sata", "pll6_other", "pll6";
|
||||
};
|
||||
|
||||
pll8: clk@01c20040 {
|
||||
#clock-cells = <0>;
|
||||
compatible = "allwinner,sun7i-a20-pll4-clk";
|
||||
reg = <0x01c20040 0x4>;
|
||||
clocks = <&osc24M>;
|
||||
clock-output-names = "pll8";
|
||||
};
|
||||
|
||||
cpu: cpu@01c20054 {
|
||||
#clock-cells = <0>;
|
||||
compatible = "allwinner,sun4i-a10-cpu-clk";
|
||||
|
@ -805,9 +813,9 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c4: i2c@01c2bc00 {
|
||||
i2c4: i2c@01c2c000 {
|
||||
compatible = "allwinner,sun4i-i2c";
|
||||
reg = <0x01c2bc00 0x400>;
|
||||
reg = <0x01c2c000 0x400>;
|
||||
interrupts = <0 89 4>;
|
||||
clocks = <&apb1_gates 15>;
|
||||
clock-frequency = <100000>;
|
||||
|
|
|
@ -433,8 +433,12 @@ static void bL_switcher_restore_cpus(void)
|
|||
{
|
||||
int i;
|
||||
|
||||
for_each_cpu(i, &bL_switcher_removed_logical_cpus)
|
||||
cpu_up(i);
|
||||
for_each_cpu(i, &bL_switcher_removed_logical_cpus) {
|
||||
struct device *cpu_dev = get_cpu_device(i);
|
||||
int ret = device_online(cpu_dev);
|
||||
if (ret)
|
||||
dev_err(cpu_dev, "switcher: unable to restore CPU\n");
|
||||
}
|
||||
}
|
||||
|
||||
static int bL_switcher_halve_cpus(void)
|
||||
|
@ -521,7 +525,7 @@ static int bL_switcher_halve_cpus(void)
|
|||
continue;
|
||||
}
|
||||
|
||||
ret = cpu_down(i);
|
||||
ret = device_offline(get_cpu_device(i));
|
||||
if (ret) {
|
||||
bL_switcher_restore_cpus();
|
||||
return ret;
|
||||
|
|
|
@ -1423,55 +1423,38 @@ EXPORT_SYMBOL(edma_clear_event);
|
|||
|
||||
#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_DMADEVICES)
|
||||
|
||||
static int edma_of_read_u32_to_s16_array(const struct device_node *np,
|
||||
const char *propname, s16 *out_values,
|
||||
size_t sz)
|
||||
static int edma_xbar_event_map(struct device *dev, struct device_node *node,
|
||||
struct edma_soc_info *pdata, size_t sz)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = of_property_read_u16_array(np, propname, out_values, sz);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Terminate it */
|
||||
*out_values++ = -1;
|
||||
*out_values++ = -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int edma_xbar_event_map(struct device *dev,
|
||||
struct device_node *node,
|
||||
struct edma_soc_info *pdata, int len)
|
||||
{
|
||||
int ret, i;
|
||||
const char pname[] = "ti,edma-xbar-event-map";
|
||||
struct resource res;
|
||||
void __iomem *xbar;
|
||||
const s16 (*xbar_chans)[2];
|
||||
s16 (*xbar_chans)[2];
|
||||
size_t nelm = sz / sizeof(s16);
|
||||
u32 shift, offset, mux;
|
||||
int ret, i;
|
||||
|
||||
xbar_chans = devm_kzalloc(dev,
|
||||
len/sizeof(s16) + 2*sizeof(s16),
|
||||
GFP_KERNEL);
|
||||
xbar_chans = devm_kzalloc(dev, (nelm + 2) * sizeof(s16), GFP_KERNEL);
|
||||
if (!xbar_chans)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = of_address_to_resource(node, 1, &res);
|
||||
if (ret)
|
||||
return -EIO;
|
||||
return -ENOMEM;
|
||||
|
||||
xbar = devm_ioremap(dev, res.start, resource_size(&res));
|
||||
if (!xbar)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = edma_of_read_u32_to_s16_array(node,
|
||||
"ti,edma-xbar-event-map",
|
||||
(s16 *)xbar_chans,
|
||||
len/sizeof(u32));
|
||||
ret = of_property_read_u16_array(node, pname, (u16 *)xbar_chans, nelm);
|
||||
if (ret)
|
||||
return -EIO;
|
||||
|
||||
for (i = 0; xbar_chans[i][0] != -1; i++) {
|
||||
/* Invalidate last entry for the other user of this mess */
|
||||
nelm >>= 1;
|
||||
xbar_chans[nelm][0] = xbar_chans[nelm][1] = -1;
|
||||
|
||||
for (i = 0; i < nelm; i++) {
|
||||
shift = (xbar_chans[i][1] & 0x03) << 3;
|
||||
offset = xbar_chans[i][1] & 0xfffffffc;
|
||||
mux = readl(xbar + offset);
|
||||
|
@ -1480,8 +1463,7 @@ static int edma_xbar_event_map(struct device *dev,
|
|||
writel(mux, (xbar + offset));
|
||||
}
|
||||
|
||||
pdata->xbar_chans = xbar_chans;
|
||||
|
||||
pdata->xbar_chans = (const s16 (*)[2]) xbar_chans;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -65,6 +65,7 @@ CONFIG_TCG_TIS_I2C_INFINEON=y
|
|||
CONFIG_I2C=y
|
||||
CONFIG_I2C_MUX=y
|
||||
CONFIG_I2C_ARB_GPIO_CHALLENGE=y
|
||||
CONFIG_I2C_EXYNOS5=y
|
||||
CONFIG_I2C_S3C2410=y
|
||||
CONFIG_DEBUG_GPIO=y
|
||||
# CONFIG_HWMON is not set
|
||||
|
|
|
@ -37,7 +37,7 @@ CONFIG_SUN4I_EMAC=y
|
|||
# CONFIG_NET_VENDOR_NATSEMI is not set
|
||||
# CONFIG_NET_VENDOR_SEEQ is not set
|
||||
# CONFIG_NET_VENDOR_SMSC is not set
|
||||
# CONFIG_NET_VENDOR_STMICRO is not set
|
||||
CONFIG_STMMAC_ETH=y
|
||||
# CONFIG_NET_VENDOR_WIZNET is not set
|
||||
# CONFIG_WLAN is not set
|
||||
CONFIG_SERIAL_8250=y
|
||||
|
|
|
@ -54,7 +54,9 @@ static inline void register_trusted_foundations(
|
|||
*/
|
||||
pr_err("No support for Trusted Foundations, continuing in degraded mode.\n");
|
||||
pr_err("Secondary processors as well as CPU PM will be disabled.\n");
|
||||
#if IS_ENABLED(CONFIG_SMP)
|
||||
setup_max_cpus = 0;
|
||||
#endif
|
||||
cpu_idle_poll_ctrl(true);
|
||||
}
|
||||
|
||||
|
|
|
@ -171,8 +171,9 @@ extern int __put_user_8(void *, unsigned long long);
|
|||
#define __put_user_check(x,p) \
|
||||
({ \
|
||||
unsigned long __limit = current_thread_info()->addr_limit - 1; \
|
||||
const typeof(*(p)) __user *__tmp_p = (p); \
|
||||
register const typeof(*(p)) __r2 asm("r2") = (x); \
|
||||
register const typeof(*(p)) __user *__p asm("r0") = (p);\
|
||||
register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
|
||||
register unsigned long __l asm("r1") = __limit; \
|
||||
register int __e asm("r0"); \
|
||||
switch (sizeof(*(__p))) { \
|
||||
|
|
|
@ -77,7 +77,6 @@ static inline xpaddr_t machine_to_phys(xmaddr_t machine)
|
|||
}
|
||||
/* VIRT <-> MACHINE conversion */
|
||||
#define virt_to_machine(v) (phys_to_machine(XPADDR(__pa(v))))
|
||||
#define virt_to_pfn(v) (PFN_DOWN(__pa(v)))
|
||||
#define virt_to_mfn(v) (pfn_to_mfn(virt_to_pfn(v)))
|
||||
#define mfn_to_virt(m) (__va(mfn_to_pfn(m) << PAGE_SHIFT))
|
||||
|
||||
|
|
|
@ -132,6 +132,10 @@
|
|||
orrne r5, V7M_xPSR_FRAMEPTRALIGN
|
||||
biceq r5, V7M_xPSR_FRAMEPTRALIGN
|
||||
|
||||
@ ensure bit 0 is cleared in the PC, otherwise behaviour is
|
||||
@ unpredictable
|
||||
bic r4, #1
|
||||
|
||||
@ write basic exception frame
|
||||
stmdb r2!, {r1, r3-r5}
|
||||
ldmia sp, {r1, r3-r5}
|
||||
|
|
|
@ -285,7 +285,7 @@ static int unwind_exec_pop_r4_to_rN(struct unwind_ctrl_block *ctrl,
|
|||
if (unwind_pop_register(ctrl, &vsp, reg))
|
||||
return -URC_FAILURE;
|
||||
|
||||
if (insn & 0x80)
|
||||
if (insn & 0x8)
|
||||
if (unwind_pop_register(ctrl, &vsp, 14))
|
||||
return -URC_FAILURE;
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ config KVM
|
|||
select HAVE_KVM_CPU_RELAX_INTERCEPT
|
||||
select KVM_MMIO
|
||||
select KVM_ARM_HOST
|
||||
depends on ARM_VIRT_EXT && ARM_LPAE
|
||||
depends on ARM_VIRT_EXT && ARM_LPAE && !CPU_BIG_ENDIAN
|
||||
---help---
|
||||
Support hosting virtualized guest machines. You will also
|
||||
need to select one or more of the processor modules below.
|
||||
|
|
|
@ -42,6 +42,8 @@ static unsigned long hyp_idmap_start;
|
|||
static unsigned long hyp_idmap_end;
|
||||
static phys_addr_t hyp_idmap_vector;
|
||||
|
||||
#define pgd_order get_order(PTRS_PER_PGD * sizeof(pgd_t))
|
||||
|
||||
#define kvm_pmd_huge(_x) (pmd_huge(_x) || pmd_trans_huge(_x))
|
||||
|
||||
static void kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa)
|
||||
|
@ -293,14 +295,14 @@ void free_boot_hyp_pgd(void)
|
|||
if (boot_hyp_pgd) {
|
||||
unmap_range(NULL, boot_hyp_pgd, hyp_idmap_start, PAGE_SIZE);
|
||||
unmap_range(NULL, boot_hyp_pgd, TRAMPOLINE_VA, PAGE_SIZE);
|
||||
kfree(boot_hyp_pgd);
|
||||
free_pages((unsigned long)boot_hyp_pgd, pgd_order);
|
||||
boot_hyp_pgd = NULL;
|
||||
}
|
||||
|
||||
if (hyp_pgd)
|
||||
unmap_range(NULL, hyp_pgd, TRAMPOLINE_VA, PAGE_SIZE);
|
||||
|
||||
kfree(init_bounce_page);
|
||||
free_page((unsigned long)init_bounce_page);
|
||||
init_bounce_page = NULL;
|
||||
|
||||
mutex_unlock(&kvm_hyp_pgd_mutex);
|
||||
|
@ -330,7 +332,7 @@ void free_hyp_pgds(void)
|
|||
for (addr = VMALLOC_START; is_vmalloc_addr((void*)addr); addr += PGDIR_SIZE)
|
||||
unmap_range(NULL, hyp_pgd, KERN_TO_HYP(addr), PGDIR_SIZE);
|
||||
|
||||
kfree(hyp_pgd);
|
||||
free_pages((unsigned long)hyp_pgd, pgd_order);
|
||||
hyp_pgd = NULL;
|
||||
}
|
||||
|
||||
|
@ -1024,7 +1026,7 @@ int kvm_mmu_init(void)
|
|||
size_t len = __hyp_idmap_text_end - __hyp_idmap_text_start;
|
||||
phys_addr_t phys_base;
|
||||
|
||||
init_bounce_page = kmalloc(PAGE_SIZE, GFP_KERNEL);
|
||||
init_bounce_page = (void *)__get_free_page(GFP_KERNEL);
|
||||
if (!init_bounce_page) {
|
||||
kvm_err("Couldn't allocate HYP init bounce page\n");
|
||||
err = -ENOMEM;
|
||||
|
@ -1050,8 +1052,9 @@ int kvm_mmu_init(void)
|
|||
(unsigned long)phys_base);
|
||||
}
|
||||
|
||||
hyp_pgd = kzalloc(PTRS_PER_PGD * sizeof(pgd_t), GFP_KERNEL);
|
||||
boot_hyp_pgd = kzalloc(PTRS_PER_PGD * sizeof(pgd_t), GFP_KERNEL);
|
||||
hyp_pgd = (pgd_t *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, pgd_order);
|
||||
boot_hyp_pgd = (pgd_t *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, pgd_order);
|
||||
|
||||
if (!hyp_pgd || !boot_hyp_pgd) {
|
||||
kvm_err("Hyp mode PGD not allocated\n");
|
||||
err = -ENOMEM;
|
||||
|
|
|
@ -1308,19 +1308,19 @@ static struct platform_device at91_adc_device = {
|
|||
static struct at91_adc_trigger at91_adc_triggers[] = {
|
||||
[0] = {
|
||||
.name = "timer-counter-0",
|
||||
.value = AT91_ADC_TRGSEL_TC0 | AT91_ADC_TRGEN,
|
||||
.value = 0x1,
|
||||
},
|
||||
[1] = {
|
||||
.name = "timer-counter-1",
|
||||
.value = AT91_ADC_TRGSEL_TC1 | AT91_ADC_TRGEN,
|
||||
.value = 0x3,
|
||||
},
|
||||
[2] = {
|
||||
.name = "timer-counter-2",
|
||||
.value = AT91_ADC_TRGSEL_TC2 | AT91_ADC_TRGEN,
|
||||
.value = 0x5,
|
||||
},
|
||||
[3] = {
|
||||
.name = "external",
|
||||
.value = AT91_ADC_TRGSEL_EXTERNAL | AT91_ADC_TRGEN,
|
||||
.value = 0xd,
|
||||
.is_external = true,
|
||||
},
|
||||
};
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
|
||||
#include <mach/map.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
|
||||
#include "smc.h"
|
||||
|
||||
static int exynos_do_idle(void)
|
||||
|
@ -28,13 +30,24 @@ static int exynos_do_idle(void)
|
|||
|
||||
static int exynos_cpu_boot(int cpu)
|
||||
{
|
||||
/*
|
||||
* The second parameter of SMC_CMD_CPU1BOOT command means CPU id.
|
||||
* But, Exynos4212 has only one secondary CPU so second parameter
|
||||
* isn't used for informing secure firmware about CPU id.
|
||||
*/
|
||||
if (soc_is_exynos4212())
|
||||
cpu = 0;
|
||||
|
||||
exynos_smc(SMC_CMD_CPU1BOOT, cpu, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
|
||||
{
|
||||
void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c + 4*cpu;
|
||||
void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c;
|
||||
|
||||
if (!soc_is_exynos4212())
|
||||
boot_reg += 4*cpu;
|
||||
|
||||
__raw_writel(boot_addr, boot_reg);
|
||||
return 0;
|
||||
|
|
|
@ -77,7 +77,7 @@ struct platform_device *__init imx_alloc_mx3_camera(
|
|||
|
||||
pdev = platform_device_alloc("mx3-camera", 0);
|
||||
if (!pdev)
|
||||
goto err;
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
pdev->dev.dma_mask = kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);
|
||||
if (!pdev->dev.dma_mask)
|
||||
|
|
|
@ -108,7 +108,18 @@ static int __init mvebu_soc_id_init(void)
|
|||
iounmap(pci_base);
|
||||
|
||||
res_ioremap:
|
||||
clk_disable_unprepare(clk);
|
||||
/*
|
||||
* If the PCIe unit is actually enabled and we have PCI
|
||||
* support in the kernel, we intentionally do not release the
|
||||
* reference to the clock. We want to keep it running since
|
||||
* the bootloader does some PCIe link configuration that the
|
||||
* kernel is for now unable to do, and gating the clock would
|
||||
* make us loose this precious configuration.
|
||||
*/
|
||||
if (!of_device_is_available(child) || !IS_ENABLED(CONFIG_PCI_MVEBU)) {
|
||||
clk_disable_unprepare(clk);
|
||||
clk_put(clk);
|
||||
}
|
||||
|
||||
clk_err:
|
||||
of_node_put(child);
|
||||
|
|
|
@ -142,7 +142,7 @@ __init board_nand_init(struct mtd_partition *nand_parts, u8 nr_parts, u8 cs,
|
|||
board_nand_data.nr_parts = nr_parts;
|
||||
board_nand_data.devsize = nand_type;
|
||||
|
||||
board_nand_data.ecc_opt = OMAP_ECC_BCH8_CODE_HW;
|
||||
board_nand_data.ecc_opt = OMAP_ECC_HAM1_CODE_HW;
|
||||
gpmc_nand_init(&board_nand_data, gpmc_t);
|
||||
}
|
||||
#endif /* CONFIG_MTD_NAND_OMAP2 || CONFIG_MTD_NAND_OMAP2_MODULE */
|
||||
|
|
|
@ -456,7 +456,8 @@ static struct clk_hw_omap dpll4_m5x2_ck_hw = {
|
|||
.clkdm_name = "dpll4_clkdm",
|
||||
};
|
||||
|
||||
DEFINE_STRUCT_CLK(dpll4_m5x2_ck, dpll4_m5x2_ck_parent_names, dpll4_m5x2_ck_ops);
|
||||
DEFINE_STRUCT_CLK_FLAGS(dpll4_m5x2_ck, dpll4_m5x2_ck_parent_names,
|
||||
dpll4_m5x2_ck_ops, CLK_SET_RATE_PARENT);
|
||||
|
||||
static struct clk dpll4_m5x2_ck_3630 = {
|
||||
.name = "dpll4_m5x2_ck",
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <linux/cpuidle.h>
|
||||
#include <linux/cpu_pm.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/clockchips.h>
|
||||
|
||||
#include <asm/cpuidle.h>
|
||||
#include <asm/proc-fns.h>
|
||||
|
@ -83,6 +84,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
|||
{
|
||||
struct idle_statedata *cx = state_ptr + index;
|
||||
u32 mpuss_can_lose_context = 0;
|
||||
int cpu_id = smp_processor_id();
|
||||
|
||||
/*
|
||||
* CPU0 has to wait and stay ON until CPU1 is OFF state.
|
||||
|
@ -110,6 +112,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
|||
mpuss_can_lose_context = (cx->mpu_state == PWRDM_POWER_RET) &&
|
||||
(cx->mpu_logic_state == PWRDM_POWER_OFF);
|
||||
|
||||
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu_id);
|
||||
|
||||
/*
|
||||
* Call idle CPU PM enter notifier chain so that
|
||||
* VFP and per CPU interrupt context is saved.
|
||||
|
@ -165,6 +169,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
|||
if (dev->cpu == 0 && mpuss_can_lose_context)
|
||||
cpu_cluster_pm_exit();
|
||||
|
||||
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu_id);
|
||||
|
||||
fail:
|
||||
cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
|
||||
cpu_done[dev->cpu] = false;
|
||||
|
@ -172,6 +178,16 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
|||
return index;
|
||||
}
|
||||
|
||||
/*
|
||||
* For each cpu, setup the broadcast timer because local timers
|
||||
* stops for the states above C1.
|
||||
*/
|
||||
static void omap_setup_broadcast_timer(void *arg)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ON, &cpu);
|
||||
}
|
||||
|
||||
static struct cpuidle_driver omap4_idle_driver = {
|
||||
.name = "omap4_idle",
|
||||
.owner = THIS_MODULE,
|
||||
|
@ -189,8 +205,7 @@ static struct cpuidle_driver omap4_idle_driver = {
|
|||
/* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */
|
||||
.exit_latency = 328 + 440,
|
||||
.target_residency = 960,
|
||||
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED |
|
||||
CPUIDLE_FLAG_TIMER_STOP,
|
||||
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED,
|
||||
.enter = omap_enter_idle_coupled,
|
||||
.name = "C2",
|
||||
.desc = "CPUx OFF, MPUSS CSWR",
|
||||
|
@ -199,8 +214,7 @@ static struct cpuidle_driver omap4_idle_driver = {
|
|||
/* C3 - CPU0 OFF + CPU1 OFF + MPU OSWR */
|
||||
.exit_latency = 460 + 518,
|
||||
.target_residency = 1100,
|
||||
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED |
|
||||
CPUIDLE_FLAG_TIMER_STOP,
|
||||
.flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED,
|
||||
.enter = omap_enter_idle_coupled,
|
||||
.name = "C3",
|
||||
.desc = "CPUx OFF, MPUSS OSWR",
|
||||
|
@ -231,5 +245,8 @@ int __init omap4_idle_init(void)
|
|||
if (!cpu_clkdm[0] || !cpu_clkdm[1])
|
||||
return -ENODEV;
|
||||
|
||||
/* Configure the broadcast timer on each cpu */
|
||||
on_each_cpu(omap_setup_broadcast_timer, NULL, 1);
|
||||
|
||||
return cpuidle_register(&omap4_idle_driver, cpu_online_mask);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Secondary CPU startup routine source file.
|
||||
*
|
||||
* Copyright (C) 2009 Texas Instruments, Inc.
|
||||
* Copyright (C) 2009-2014 Texas Instruments, Inc.
|
||||
*
|
||||
* Author:
|
||||
* Santosh Shilimkar <santosh.shilimkar@ti.com>
|
||||
|
@ -28,9 +28,13 @@
|
|||
* code. This routine also provides a holding flag into which
|
||||
* secondary core is held until we're ready for it to initialise.
|
||||
* The primary core will update this flag using a hardware
|
||||
+ * register AuxCoreBoot0.
|
||||
* register AuxCoreBoot0.
|
||||
*/
|
||||
ENTRY(omap5_secondary_startup)
|
||||
.arm
|
||||
THUMB( adr r9, BSYM(wait) ) @ CPU may be entered in ARM mode.
|
||||
THUMB( bx r9 ) @ If this is a Thumb-2 kernel,
|
||||
THUMB( .thumb ) @ switch to Thumb now.
|
||||
wait: ldr r2, =AUX_CORE_BOOT0_PA @ read from AuxCoreBoot0
|
||||
ldr r0, [r2]
|
||||
mov r0, r0, lsr #5
|
||||
|
|
|
@ -895,7 +895,7 @@ static struct omap_hwmod omap54xx_mcpdm_hwmod = {
|
|||
* current exception.
|
||||
*/
|
||||
|
||||
.flags = HWMOD_EXT_OPT_MAIN_CLK,
|
||||
.flags = HWMOD_EXT_OPT_MAIN_CLK | HWMOD_SWSUP_SIDLE,
|
||||
.main_clk = "pad_clks_ck",
|
||||
.prcm = {
|
||||
.omap4 = {
|
||||
|
|
|
@ -21,7 +21,7 @@ struct mv_sata_platform_data;
|
|||
#define ORION_MBUS_DEVBUS_BOOT_ATTR 0x0f
|
||||
#define ORION_MBUS_DEVBUS_TARGET(cs) 0x01
|
||||
#define ORION_MBUS_DEVBUS_ATTR(cs) (~(1 << cs))
|
||||
#define ORION_MBUS_SRAM_TARGET 0x00
|
||||
#define ORION_MBUS_SRAM_TARGET 0x09
|
||||
#define ORION_MBUS_SRAM_ATTR 0x00
|
||||
|
||||
/*
|
||||
|
|
|
@ -123,6 +123,11 @@ __v7m_setup:
|
|||
mov pc, lr
|
||||
ENDPROC(__v7m_setup)
|
||||
|
||||
.align 2
|
||||
__v7m_setup_stack:
|
||||
.space 4 * 8 @ 8 registers
|
||||
__v7m_setup_stack_top:
|
||||
|
||||
define_processor_functions v7m, dabort=nommu_early_abort, pabort=legacy_pabort, nommu=1
|
||||
|
||||
.section ".rodata"
|
||||
|
@ -152,6 +157,3 @@ __v7m_proc_info:
|
|||
.long nop_cache_fns @ proc_info_list.cache
|
||||
.size __v7m_proc_info, . - __v7m_proc_info
|
||||
|
||||
__v7m_setup_stack:
|
||||
.space 4 * 8 @ 8 registers
|
||||
__v7m_setup_stack_top:
|
||||
|
|
|
@ -70,6 +70,7 @@ static u32 errata;
|
|||
|
||||
static struct omap_dma_global_context_registers {
|
||||
u32 dma_irqenable_l0;
|
||||
u32 dma_irqenable_l1;
|
||||
u32 dma_ocp_sysconfig;
|
||||
u32 dma_gcr;
|
||||
} omap_dma_global_context;
|
||||
|
@ -1973,10 +1974,17 @@ static struct irqaction omap24xx_dma_irq;
|
|||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Note that we are currently using only IRQENABLE_L0 and L1.
|
||||
* As the DSP may be using IRQENABLE_L2 and L3, let's not
|
||||
* touch those for now.
|
||||
*/
|
||||
void omap_dma_global_context_save(void)
|
||||
{
|
||||
omap_dma_global_context.dma_irqenable_l0 =
|
||||
p->dma_read(IRQENABLE_L0, 0);
|
||||
omap_dma_global_context.dma_irqenable_l1 =
|
||||
p->dma_read(IRQENABLE_L1, 0);
|
||||
omap_dma_global_context.dma_ocp_sysconfig =
|
||||
p->dma_read(OCP_SYSCONFIG, 0);
|
||||
omap_dma_global_context.dma_gcr = p->dma_read(GCR, 0);
|
||||
|
@ -1991,6 +1999,8 @@ void omap_dma_global_context_restore(void)
|
|||
OCP_SYSCONFIG, 0);
|
||||
p->dma_write(omap_dma_global_context.dma_irqenable_l0,
|
||||
IRQENABLE_L0, 0);
|
||||
p->dma_write(omap_dma_global_context.dma_irqenable_l1,
|
||||
IRQENABLE_L1, 0);
|
||||
|
||||
if (IS_DMA_ERRATA(DMA_ROMCODE_BUG))
|
||||
p->dma_write(0x3 , IRQSTATUS_L0, 0);
|
||||
|
|
|
@ -307,6 +307,7 @@
|
|||
<0x0 0x1f21e000 0x0 0x1000>,
|
||||
<0x0 0x1f217000 0x0 0x1000>;
|
||||
interrupts = <0x0 0x86 0x4>;
|
||||
dma-coherent;
|
||||
status = "disabled";
|
||||
clocks = <&sata01clk 0>;
|
||||
phys = <&phy1 0>;
|
||||
|
@ -321,6 +322,7 @@
|
|||
<0x0 0x1f22e000 0x0 0x1000>,
|
||||
<0x0 0x1f227000 0x0 0x1000>;
|
||||
interrupts = <0x0 0x87 0x4>;
|
||||
dma-coherent;
|
||||
status = "ok";
|
||||
clocks = <&sata23clk 0>;
|
||||
phys = <&phy2 0>;
|
||||
|
@ -334,6 +336,7 @@
|
|||
<0x0 0x1f23d000 0x0 0x1000>,
|
||||
<0x0 0x1f23e000 0x0 0x1000>;
|
||||
interrupts = <0x0 0x88 0x4>;
|
||||
dma-coherent;
|
||||
status = "ok";
|
||||
clocks = <&sata45clk 0>;
|
||||
phys = <&phy3 0>;
|
||||
|
|
|
@ -138,6 +138,7 @@ static inline void *phys_to_virt(phys_addr_t x)
|
|||
#define __pa(x) __virt_to_phys((unsigned long)(x))
|
||||
#define __va(x) ((void *)__phys_to_virt((phys_addr_t)(x)))
|
||||
#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
|
||||
#define virt_to_pfn(x) __phys_to_pfn(__virt_to_phys(x))
|
||||
|
||||
/*
|
||||
* virt_to_page(k) convert a _valid_ virtual address to struct page *
|
||||
|
|
|
@ -266,7 +266,7 @@ static inline pmd_t pte_pmd(pte_t pte)
|
|||
|
||||
#define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
|
||||
|
||||
#define set_pmd_at(mm, addr, pmdp, pmd) set_pmd(pmdp, pmd)
|
||||
#define set_pmd_at(mm, addr, pmdp, pmd) set_pte_at(mm, addr, (pte_t *)pmdp, pmd_pte(pmd))
|
||||
|
||||
static inline int has_transparent_hugepage(void)
|
||||
{
|
||||
|
|
|
@ -143,10 +143,8 @@ static int __init setup_early_printk(char *buf)
|
|||
}
|
||||
/* no options parsing yet */
|
||||
|
||||
if (paddr) {
|
||||
set_fixmap_io(FIX_EARLYCON_MEM_BASE, paddr);
|
||||
early_base = (void __iomem *)fix_to_virt(FIX_EARLYCON_MEM_BASE);
|
||||
}
|
||||
if (paddr)
|
||||
early_base = (void __iomem *)set_fixmap_offset_io(FIX_EARLYCON_MEM_BASE, paddr);
|
||||
|
||||
printch = match->printch;
|
||||
early_console = &early_console_dev;
|
||||
|
|
|
@ -97,11 +97,15 @@ static bool migrate_one_irq(struct irq_desc *desc)
|
|||
if (irqd_is_per_cpu(d) || !cpumask_test_cpu(smp_processor_id(), affinity))
|
||||
return false;
|
||||
|
||||
if (cpumask_any_and(affinity, cpu_online_mask) >= nr_cpu_ids) {
|
||||
affinity = cpu_online_mask;
|
||||
if (cpumask_any_and(affinity, cpu_online_mask) >= nr_cpu_ids)
|
||||
ret = true;
|
||||
}
|
||||
|
||||
/*
|
||||
* when using forced irq_set_affinity we must ensure that the cpu
|
||||
* being offlined is not present in the affinity mask, it may be
|
||||
* selected as the target CPU otherwise
|
||||
*/
|
||||
affinity = cpu_online_mask;
|
||||
c = irq_data_get_irq_chip(d);
|
||||
if (!c->irq_set_affinity)
|
||||
pr_debug("IRQ%u: unable to set affinity\n", d->irq);
|
||||
|
|
|
@ -396,7 +396,7 @@ static int __init arm64_device_init(void)
|
|||
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
|
||||
return 0;
|
||||
}
|
||||
arch_initcall(arm64_device_init);
|
||||
arch_initcall_sync(arm64_device_init);
|
||||
|
||||
static DEFINE_PER_CPU(struct cpu, cpu_data);
|
||||
|
||||
|
|
|
@ -22,8 +22,11 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/dma-contiguous.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/swiotlb.h>
|
||||
#include <linux/amba/bus.h>
|
||||
|
||||
#include <asm/cacheflush.h>
|
||||
|
||||
|
@ -305,17 +308,45 @@ struct dma_map_ops coherent_swiotlb_dma_ops = {
|
|||
};
|
||||
EXPORT_SYMBOL(coherent_swiotlb_dma_ops);
|
||||
|
||||
static int dma_bus_notifier(struct notifier_block *nb,
|
||||
unsigned long event, void *_dev)
|
||||
{
|
||||
struct device *dev = _dev;
|
||||
|
||||
if (event != BUS_NOTIFY_ADD_DEVICE)
|
||||
return NOTIFY_DONE;
|
||||
|
||||
if (of_property_read_bool(dev->of_node, "dma-coherent"))
|
||||
set_dma_ops(dev, &coherent_swiotlb_dma_ops);
|
||||
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
static struct notifier_block platform_bus_nb = {
|
||||
.notifier_call = dma_bus_notifier,
|
||||
};
|
||||
|
||||
static struct notifier_block amba_bus_nb = {
|
||||
.notifier_call = dma_bus_notifier,
|
||||
};
|
||||
|
||||
extern int swiotlb_late_init_with_default_size(size_t default_size);
|
||||
|
||||
static int __init swiotlb_late_init(void)
|
||||
{
|
||||
size_t swiotlb_size = min(SZ_64M, MAX_ORDER_NR_PAGES << PAGE_SHIFT);
|
||||
|
||||
dma_ops = &coherent_swiotlb_dma_ops;
|
||||
/*
|
||||
* These must be registered before of_platform_populate().
|
||||
*/
|
||||
bus_register_notifier(&platform_bus_type, &platform_bus_nb);
|
||||
bus_register_notifier(&amba_bustype, &amba_bus_nb);
|
||||
|
||||
dma_ops = &noncoherent_swiotlb_dma_ops;
|
||||
|
||||
return swiotlb_late_init_with_default_size(swiotlb_size);
|
||||
}
|
||||
subsys_initcall(swiotlb_late_init);
|
||||
arch_initcall(swiotlb_late_init);
|
||||
|
||||
#define PREALLOC_DMA_DEBUG_ENTRIES 4096
|
||||
|
||||
|
|
|
@ -51,7 +51,11 @@ int pmd_huge(pmd_t pmd)
|
|||
|
||||
int pud_huge(pud_t pud)
|
||||
{
|
||||
#ifndef __PAGETABLE_PMD_FOLDED
|
||||
return !(pud_val(pud) & PUD_TABLE_BIT);
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
int pmd_huge_support(void)
|
||||
|
|
|
@ -374,6 +374,9 @@ int kern_addr_valid(unsigned long addr)
|
|||
if (pmd_none(*pmd))
|
||||
return 0;
|
||||
|
||||
if (pmd_sect(*pmd))
|
||||
return pfn_valid(pmd_pfn(*pmd));
|
||||
|
||||
pte = pte_offset_kernel(pmd, addr);
|
||||
if (pte_none(*pte))
|
||||
return 0;
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
/*
|
||||
* Memory barrier definitions for the Hexagon architecture
|
||||
*
|
||||
* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
* 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_BARRIER_H
|
||||
#define _ASM_BARRIER_H
|
||||
|
||||
#define rmb() barrier()
|
||||
#define read_barrier_depends() barrier()
|
||||
#define wmb() barrier()
|
||||
#define mb() barrier()
|
||||
#define smp_rmb() barrier()
|
||||
#define smp_read_barrier_depends() barrier()
|
||||
#define smp_wmb() barrier()
|
||||
#define smp_mb() barrier()
|
||||
|
||||
/* Set a value and use a memory barrier. Used by the scheduler somewhere. */
|
||||
#define set_mb(var, value) \
|
||||
do { var = value; mb(); } while (0)
|
||||
|
||||
#endif /* _ASM_BARRIER_H */
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
|
||||
|
||||
#define NR_syscalls 314 /* length of syscall table */
|
||||
#define NR_syscalls 315 /* length of syscall table */
|
||||
|
||||
/*
|
||||
* The following defines stop scripts/checksyscalls.sh from complaining about
|
||||
|
|
|
@ -327,5 +327,6 @@
|
|||
#define __NR_finit_module 1335
|
||||
#define __NR_sched_setattr 1336
|
||||
#define __NR_sched_getattr 1337
|
||||
#define __NR_renameat2 1338
|
||||
|
||||
#endif /* _UAPI_ASM_IA64_UNISTD_H */
|
||||
|
|
|
@ -1775,6 +1775,7 @@ sys_call_table:
|
|||
data8 sys_finit_module // 1335
|
||||
data8 sys_sched_setattr
|
||||
data8 sys_sched_getattr
|
||||
data8 sys_renameat2
|
||||
|
||||
.org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls
|
||||
#endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <uapi/asm/unistd.h>
|
||||
|
||||
|
||||
#define NR_syscalls 351
|
||||
#define NR_syscalls 352
|
||||
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_OLD_STAT
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue