mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-19 12:39:03 +02:00
This is the 5.14.19 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmGU1BAACgkQONu9yGCS aT529BAAn4kCYs5RenaUOsrtMCruPqQxUbxjgtxwCUNGDDRo8jh9c12+9Xhg+kR/ 4swLp/Y8DtFIuT3xrxLucrblFcz7KbjBGEJG1rBMCPT8LUg8YaOfFlpKj5qgZQLU 8w4lAnIIm37A/twErvc+vjCY2qj4mzUdJZnbfh9R7iA2qpGuXDm6QdWZhHoziBdW bnS/isArxHZyJ2oG54BspkNGZST/0nGLRUwmFpYn5fT6otZ1C2reyVn4rKglZ+MU /JHpPeeprTe3kr+MuONGHViyjnHBtaNAjkGtc84vEqlObvYKjsiLTozINqnV59sN 3RYNS+C5g6KJIbqRz4if74GiMtjc63WzYCoMe7AzrUI0h8r1KZPXy2dbrEX9g3nh f9p2wLTc9sVuoLEfyprpTJyS5B8K898y4nHgvfTXHGw/AYEekNJy4lHCBG1d7h+t QvSNQCNpMO7pnGASifUmbYSCeXIizarlAC7ScWO/NCCwyD5YvbA6mTDAZWFmLNSQ TYqDF61snDGim70HbFqrNYBfrp1ivVIlDcHzCT3Jqc4meNBABfQTcgfDd8qDzSFj zukSWanYxrP4ToZMfwrnyBHkyKpVVmIAHL+wci3khQ0GdYJcxs1RM0PkoloKmonp hLV5Jezu7WEJAd/qfZJlJqi1dzaRH7goRX6Czo7b1LiH4rqi0DA= =Aefk -----END PGP SIGNATURE----- Merge tag 'v5.14.19' into v5.14/standard/base This is the 5.14.19 stable release # gpg: Signature made Wed 17 Nov 2021 05:06:08 AM EST # gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E # gpg: Can't check signature: No public key # Conflicts: # arch/arm/Makefile
This commit is contained in:
commit
62892f081e
|
@ -6319,6 +6319,13 @@
|
|||
improve timer resolution at the expense of processing
|
||||
more timer interrupts.
|
||||
|
||||
xen.balloon_boot_timeout= [XEN]
|
||||
The time (in seconds) to wait before giving up to boot
|
||||
in case initial ballooning fails to free enough memory.
|
||||
Applies only when running as HVM or PVH guest and
|
||||
started with less memory configured than allowed at
|
||||
max. Default is 180.
|
||||
|
||||
xen.event_eoi_delay= [XEN]
|
||||
How long to delay EOI handling in case of event
|
||||
storms (jiffies). Default is 10.
|
||||
|
|
|
@ -54,7 +54,7 @@ examples:
|
|||
|
||||
ad5766@0 {
|
||||
compatible = "adi,ad5766";
|
||||
output-range-microvolts = <(-5000) 5000>;
|
||||
output-range-microvolts = <(-5000000) 5000000>;
|
||||
reg = <0>;
|
||||
spi-cpol;
|
||||
spi-max-frequency = <1000000>;
|
||||
|
|
|
@ -13,6 +13,14 @@ common regulator binding documented in:
|
|||
|
||||
|
||||
Required properties of the main device node (the parent!):
|
||||
- s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used
|
||||
for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines.
|
||||
|
||||
[1] If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
|
||||
property is specified, then all the eight voltage values for the
|
||||
's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified.
|
||||
|
||||
Optional properties of the main device node (the parent!):
|
||||
- s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
|
||||
units for buck2 when changing voltage using gpio dvs. Refer to [1] below
|
||||
for additional information.
|
||||
|
@ -25,26 +33,13 @@ Required properties of the main device node (the parent!):
|
|||
units for buck4 when changing voltage using gpio dvs. Refer to [1] below
|
||||
for additional information.
|
||||
|
||||
- s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used
|
||||
for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines.
|
||||
|
||||
[1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
|
||||
property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage'
|
||||
property should specify atleast one voltage level (which would be a
|
||||
safe operating voltage).
|
||||
|
||||
If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
|
||||
property is specified, then all the eight voltage values for the
|
||||
's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified.
|
||||
|
||||
Optional properties of the main device node (the parent!):
|
||||
- s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs.
|
||||
- s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs.
|
||||
- s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs.
|
||||
|
||||
Additional properties required if either of the optional properties are used:
|
||||
|
||||
- s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from
|
||||
- s5m8767,pmic-buck-default-dvs-idx: Default voltage setting selected from
|
||||
the possible 8 options selectable by the dvs gpios. The value of this
|
||||
property should be between 0 and 7. If not specified or if out of range, the
|
||||
default value of this property is set to 0.
|
||||
|
|
|
@ -176,11 +176,11 @@ Master Keys
|
|||
|
||||
Each encrypted directory tree is protected by a *master key*. Master
|
||||
keys can be up to 64 bytes long, and must be at least as long as the
|
||||
greater of the key length needed by the contents and filenames
|
||||
encryption modes being used. For example, if AES-256-XTS is used for
|
||||
contents encryption, the master key must be 64 bytes (512 bits). Note
|
||||
that the XTS mode is defined to require a key twice as long as that
|
||||
required by the underlying block cipher.
|
||||
greater of the security strength of the contents and filenames
|
||||
encryption modes being used. For example, if any AES-256 mode is
|
||||
used, the master key must be at least 256 bits, i.e. 32 bytes. A
|
||||
stricter requirement applies if the key is used by a v1 encryption
|
||||
policy and AES-256-XTS is used; such keys must be 64 bytes.
|
||||
|
||||
To "unlock" an encrypted directory tree, userspace must provide the
|
||||
appropriate master key. There can be any number of master keys, each
|
||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 14
|
||||
SUBLEVEL = 18
|
||||
SUBLEVEL = 19
|
||||
EXTRAVERSION =
|
||||
NAME = Opossums on Parade
|
||||
|
||||
|
|
|
@ -1231,6 +1231,9 @@ config RELR
|
|||
config ARCH_HAS_MEM_ENCRYPT
|
||||
bool
|
||||
|
||||
config ARCH_HAS_CC_PLATFORM
|
||||
bool
|
||||
|
||||
config HAVE_SPARSE_SYSCALL_NR
|
||||
bool
|
||||
help
|
||||
|
|
|
@ -42,7 +42,7 @@ extern void start_thread(struct pt_regs *, unsigned long, unsigned long);
|
|||
struct task_struct;
|
||||
extern void release_thread(struct task_struct *);
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
#define KSTK_EIP(tsk) (task_pt_regs(tsk)->pc)
|
||||
|
||||
|
|
|
@ -376,12 +376,11 @@ thread_saved_pc(struct task_struct *t)
|
|||
}
|
||||
|
||||
unsigned long
|
||||
get_wchan(struct task_struct *p)
|
||||
__get_wchan(struct task_struct *p)
|
||||
{
|
||||
unsigned long schedule_frame;
|
||||
unsigned long pc;
|
||||
if (!p || p == current || task_is_running(p))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* This one depends on the frame size of schedule(). Do a
|
||||
* "disass schedule" in gdb to find the frame size. Also, the
|
||||
|
|
|
@ -70,7 +70,7 @@ struct task_struct;
|
|||
extern void start_thread(struct pt_regs * regs, unsigned long pc,
|
||||
unsigned long usp);
|
||||
|
||||
extern unsigned int get_wchan(struct task_struct *p);
|
||||
extern unsigned int __get_wchan(struct task_struct *p);
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
* = specifics of data structs where trace is saved(CONFIG_STACKTRACE etc)
|
||||
*
|
||||
* vineetg: March 2009
|
||||
* -Implemented correct versions of thread_saved_pc() and get_wchan()
|
||||
* -Implemented correct versions of thread_saved_pc() and __get_wchan()
|
||||
*
|
||||
* rajeshwarr: 2008
|
||||
* -Initial implementation
|
||||
|
@ -248,7 +248,7 @@ void show_stack(struct task_struct *tsk, unsigned long *sp, const char *loglvl)
|
|||
* Of course just returning schedule( ) would be pointless so unwind until
|
||||
* the function is not in schedular code
|
||||
*/
|
||||
unsigned int get_wchan(struct task_struct *tsk)
|
||||
unsigned int __get_wchan(struct task_struct *tsk)
|
||||
{
|
||||
return arc_unwind_core(tsk, NULL, __get_first_nonsched, NULL);
|
||||
}
|
||||
|
|
|
@ -60,15 +60,15 @@ KBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra)
|
|||
# Note that GCC does not numerically define an architecture version
|
||||
# macro, but instead defines a whole series of macros which makes
|
||||
# testing for a specific architecture or later rather impossible.
|
||||
arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m
|
||||
arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 -march=armv7-a -Wa$(comma)-march=armv7-a
|
||||
arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
|
||||
arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m
|
||||
arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 -march=armv7-a
|
||||
arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 -march=armv6
|
||||
# Only override the compiler option if ARMv6. The ARMv6K extensions are
|
||||
# always available in ARMv7
|
||||
ifeq ($(CONFIG_CPU_32v6),y)
|
||||
arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k)
|
||||
arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 -march=armv6k
|
||||
endif
|
||||
arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4t)
|
||||
arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 -march=armv5te
|
||||
arch-$(CONFIG_CPU_32v4T) =-D__LINUX_ARM_ARCH__=4 -march=armv4t
|
||||
arch-$(CONFIG_CPU_32v4) =-D__LINUX_ARM_ARCH__=4 -march=armv4
|
||||
arch-$(CONFIG_CPU_32v3) =-D__LINUX_ARM_ARCH__=3 -march=armv3m
|
||||
|
@ -82,7 +82,7 @@ tune-$(CONFIG_CPU_ARM720T) =-mtune=arm7tdmi
|
|||
tune-$(CONFIG_CPU_ARM740T) =-mtune=arm7tdmi
|
||||
tune-$(CONFIG_CPU_ARM9TDMI) =-mtune=arm9tdmi
|
||||
tune-$(CONFIG_CPU_ARM940T) =-mtune=arm9tdmi
|
||||
tune-$(CONFIG_CPU_ARM946E) =$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi)
|
||||
tune-$(CONFIG_CPU_ARM946E) =-mtune=arm9e
|
||||
tune-$(CONFIG_CPU_ARM920T) =-mtune=arm9tdmi
|
||||
tune-$(CONFIG_CPU_ARM922T) =-mtune=arm9tdmi
|
||||
tune-$(CONFIG_CPU_ARM925T) =-mtune=arm9tdmi
|
||||
|
@ -90,11 +90,11 @@ tune-$(CONFIG_CPU_ARM926T) =-mtune=arm9tdmi
|
|||
tune-$(CONFIG_CPU_FA526) =-mtune=arm9tdmi
|
||||
tune-$(CONFIG_CPU_SA110) =-mtune=strongarm110
|
||||
tune-$(CONFIG_CPU_SA1100) =-mtune=strongarm1100
|
||||
tune-$(CONFIG_CPU_XSCALE) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
|
||||
tune-$(CONFIG_CPU_XSC3) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
|
||||
tune-$(CONFIG_CPU_FEROCEON) =$(call cc-option,-mtune=marvell-f,-mtune=xscale)
|
||||
tune-$(CONFIG_CPU_V6) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
|
||||
tune-$(CONFIG_CPU_V6K) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
|
||||
tune-$(CONFIG_CPU_XSCALE) =-mtune=xscale
|
||||
tune-$(CONFIG_CPU_XSC3) =-mtune=xscale
|
||||
tune-$(CONFIG_CPU_FEROCEON) =-mtune=xscale
|
||||
tune-$(CONFIG_CPU_V6) =-mtune=arm1136j-s
|
||||
tune-$(CONFIG_CPU_V6K) =-mtune=arm1136j-s
|
||||
|
||||
# Evaluate tune cc-option calls now
|
||||
tune-y := $(tune-y)
|
||||
|
|
|
@ -262,7 +262,7 @@
|
|||
&macb1 {
|
||||
status = "okay";
|
||||
|
||||
phy-mode = "rgmii";
|
||||
phy-mode = "rmii";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
bootargs = "console=ttyS0,115200 earlycon";
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>,
|
||||
<0x88000000 0x08000000>;
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
bootargs = "console=ttyS0,115200";
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>,
|
||||
<0x88000000 0x08000000>;
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
bootargs = "console=ttyS0,115200";
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>,
|
||||
<0x88000000 0x18000000>;
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
bootargs = "console=ttyS0,115200";
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>,
|
||||
<0x88000000 0x08000000>;
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
bootargs = "console=ttyS0,115200";
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>,
|
||||
<0x88000000 0x08000000>;
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
bootargs = "console=ttyS0,115200";
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>,
|
||||
<0x88000000 0x08000000>;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
bootargs = "console=ttyS0,115200 earlycon";
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>;
|
||||
};
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
bootargs = "earlycon";
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>,
|
||||
<0x88000000 0x18000000>;
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
bootargs = " console=ttyS0,115200n8 earlycon";
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
reg = <0x00000000 0x08000000>;
|
||||
device_type = "memory";
|
||||
};
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
model = "NorthStar SVK (BCM94708)";
|
||||
compatible = "brcm,bcm94708", "brcm,bcm4708";
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>;
|
||||
};
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
model = "NorthStar SVK (BCM94709)";
|
||||
compatible = "brcm,bcm94709", "brcm,bcm4709", "brcm,bcm4708";
|
||||
|
||||
memory {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>;
|
||||
};
|
||||
|
|
|
@ -515,7 +515,7 @@
|
|||
compatible = "bosch,bma180";
|
||||
reg = <0x41>;
|
||||
pinctrl-names = "default";
|
||||
pintcrl-0 = <&bma180_pins>;
|
||||
pinctrl-0 = <&bma180_pins>;
|
||||
interrupt-parent = <&gpio4>;
|
||||
interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_115 */
|
||||
};
|
||||
|
|
|
@ -1580,8 +1580,8 @@
|
|||
#phy-cells = <0>;
|
||||
qcom,dsi-phy-index = <0>;
|
||||
|
||||
clocks = <&mmcc MDSS_AHB_CLK>;
|
||||
clock-names = "iface";
|
||||
clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>;
|
||||
clock-names = "iface", "ref";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1179,7 +1179,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
sai2a_pins_c: sai2a-4 {
|
||||
sai2a_pins_c: sai2a-2 {
|
||||
pins {
|
||||
pinmux = <STM32_PINMUX('D', 13, AF10)>, /* SAI2_SCK_A */
|
||||
<STM32_PINMUX('D', 11, AF10)>, /* SAI2_SD_A */
|
||||
|
@ -1190,7 +1190,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
sai2a_sleep_pins_c: sai2a-5 {
|
||||
sai2a_sleep_pins_c: sai2a-2 {
|
||||
pins {
|
||||
pinmux = <STM32_PINMUX('D', 13, ANALOG)>, /* SAI2_SCK_A */
|
||||
<STM32_PINMUX('D', 11, ANALOG)>, /* SAI2_SD_A */
|
||||
|
@ -1235,14 +1235,14 @@
|
|||
};
|
||||
};
|
||||
|
||||
sai2b_pins_c: sai2a-4 {
|
||||
sai2b_pins_c: sai2b-2 {
|
||||
pins1 {
|
||||
pinmux = <STM32_PINMUX('F', 11, AF10)>; /* SAI2_SD_B */
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
sai2b_sleep_pins_c: sai2a-sleep-5 {
|
||||
sai2b_sleep_pins_c: sai2b-sleep-2 {
|
||||
pins {
|
||||
pinmux = <STM32_PINMUX('F', 11, ANALOG)>; /* SAI2_SD_B */
|
||||
};
|
||||
|
|
|
@ -824,7 +824,7 @@
|
|||
#sound-dai-cells = <0>;
|
||||
|
||||
compatible = "st,stm32-sai-sub-a";
|
||||
reg = <0x4 0x1c>;
|
||||
reg = <0x4 0x20>;
|
||||
clocks = <&rcc SAI1_K>;
|
||||
clock-names = "sai_ck";
|
||||
dmas = <&dmamux1 87 0x400 0x01>;
|
||||
|
@ -834,7 +834,7 @@
|
|||
sai1b: audio-controller@4400a024 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "st,stm32-sai-sub-b";
|
||||
reg = <0x24 0x1c>;
|
||||
reg = <0x24 0x20>;
|
||||
clocks = <&rcc SAI1_K>;
|
||||
clock-names = "sai_ck";
|
||||
dmas = <&dmamux1 88 0x400 0x01>;
|
||||
|
@ -855,7 +855,7 @@
|
|||
sai2a: audio-controller@4400b004 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "st,stm32-sai-sub-a";
|
||||
reg = <0x4 0x1c>;
|
||||
reg = <0x4 0x20>;
|
||||
clocks = <&rcc SAI2_K>;
|
||||
clock-names = "sai_ck";
|
||||
dmas = <&dmamux1 89 0x400 0x01>;
|
||||
|
@ -865,7 +865,7 @@
|
|||
sai2b: audio-controller@4400b024 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "st,stm32-sai-sub-b";
|
||||
reg = <0x24 0x1c>;
|
||||
reg = <0x24 0x20>;
|
||||
clocks = <&rcc SAI2_K>;
|
||||
clock-names = "sai_ck";
|
||||
dmas = <&dmamux1 90 0x400 0x01>;
|
||||
|
@ -886,7 +886,7 @@
|
|||
sai3a: audio-controller@4400c004 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "st,stm32-sai-sub-a";
|
||||
reg = <0x04 0x1c>;
|
||||
reg = <0x04 0x20>;
|
||||
clocks = <&rcc SAI3_K>;
|
||||
clock-names = "sai_ck";
|
||||
dmas = <&dmamux1 113 0x400 0x01>;
|
||||
|
@ -896,7 +896,7 @@
|
|||
sai3b: audio-controller@4400c024 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "st,stm32-sai-sub-b";
|
||||
reg = <0x24 0x1c>;
|
||||
reg = <0x24 0x20>;
|
||||
clocks = <&rcc SAI3_K>;
|
||||
clock-names = "sai_ck";
|
||||
dmas = <&dmamux1 114 0x400 0x01>;
|
||||
|
@ -1271,7 +1271,7 @@
|
|||
sai4a: audio-controller@50027004 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "st,stm32-sai-sub-a";
|
||||
reg = <0x04 0x1c>;
|
||||
reg = <0x04 0x20>;
|
||||
clocks = <&rcc SAI4_K>;
|
||||
clock-names = "sai_ck";
|
||||
dmas = <&dmamux1 99 0x400 0x01>;
|
||||
|
@ -1281,7 +1281,7 @@
|
|||
sai4b: audio-controller@50027024 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "st,stm32-sai-sub-b";
|
||||
reg = <0x24 0x1c>;
|
||||
reg = <0x24 0x20>;
|
||||
clocks = <&rcc SAI4_K>;
|
||||
clock-names = "sai_ck";
|
||||
dmas = <&dmamux1 100 0x400 0x01>;
|
||||
|
|
|
@ -202,7 +202,7 @@
|
|||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-rx-bus-width = <4>;
|
||||
spi-max-frequency = <108000000>;
|
||||
spi-max-frequency = <50000000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
};
|
||||
|
|
|
@ -249,7 +249,7 @@
|
|||
stusb1600@28 {
|
||||
compatible = "st,stusb1600";
|
||||
reg = <0x28>;
|
||||
interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-parent = <&gpioi>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&stusb1600_pins_a>;
|
||||
|
|
|
@ -112,7 +112,7 @@
|
|||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||
phy-handle = <&phy1>;
|
||||
phy-mode = "rgmii";
|
||||
phy-mode = "rgmii-id";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ struct task_struct;
|
|||
/* Free all resources held by a thread. */
|
||||
extern void release_thread(struct task_struct *);
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
#define task_pt_regs(p) \
|
||||
((struct pt_regs *)(THREAD_START_SP + task_stack_page(p)) - 1)
|
||||
|
|
|
@ -283,13 +283,11 @@ int copy_thread(unsigned long clone_flags, unsigned long stack_start,
|
|||
return 0;
|
||||
}
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p)
|
||||
unsigned long __get_wchan(struct task_struct *p)
|
||||
{
|
||||
struct stackframe frame;
|
||||
unsigned long stack_page;
|
||||
int count = 0;
|
||||
if (!p || p == current || task_is_running(p))
|
||||
return 0;
|
||||
|
||||
frame.fp = thread_saved_fp(p);
|
||||
frame.sp = thread_saved_sp(p);
|
||||
|
|
|
@ -54,8 +54,7 @@ int notrace unwind_frame(struct stackframe *frame)
|
|||
|
||||
frame->sp = frame->fp;
|
||||
frame->fp = *(unsigned long *)(fp);
|
||||
frame->pc = frame->lr;
|
||||
frame->lr = *(unsigned long *)(fp + 4);
|
||||
frame->pc = *(unsigned long *)(fp + 4);
|
||||
#else
|
||||
/* check current frame pointer is within bounds */
|
||||
if (fp < low + 12 || fp > high - 4)
|
||||
|
|
|
@ -362,11 +362,25 @@ static inline int s3c24xx_handle_intc(struct s3c_irq_intc *intc,
|
|||
static asmlinkage void __exception_irq_entry s3c24xx_handle_irq(struct pt_regs *regs)
|
||||
{
|
||||
do {
|
||||
if (likely(s3c_intc[0]))
|
||||
if (s3c24xx_handle_intc(s3c_intc[0], regs, 0))
|
||||
continue;
|
||||
/*
|
||||
* For platform based machines, neither ERR nor NULL can happen here.
|
||||
* The s3c24xx_handle_irq() will be set as IRQ handler iff this succeeds:
|
||||
*
|
||||
* s3c_intc[0] = s3c24xx_init_intc()
|
||||
*
|
||||
* If this fails, the next calls to s3c24xx_init_intc() won't be executed.
|
||||
*
|
||||
* For DT machine, s3c_init_intc_of() could set the IRQ handler without
|
||||
* setting s3c_intc[0] only if it was called with num_ctrl=0. There is no
|
||||
* such code path, so again the s3c_intc[0] will have a valid pointer if
|
||||
* set_handle_irq() is called.
|
||||
*
|
||||
* Therefore in s3c24xx_handle_irq(), the s3c_intc[0] is always something.
|
||||
*/
|
||||
if (s3c24xx_handle_intc(s3c_intc[0], regs, 0))
|
||||
continue;
|
||||
|
||||
if (s3c_intc[2])
|
||||
if (!IS_ERR_OR_NULL(s3c_intc[2]))
|
||||
if (s3c24xx_handle_intc(s3c_intc[2], regs, 64))
|
||||
continue;
|
||||
|
||||
|
|
|
@ -750,7 +750,7 @@ config CPU_BIG_ENDIAN
|
|||
config CPU_ENDIAN_BE8
|
||||
bool
|
||||
depends on CPU_BIG_ENDIAN
|
||||
default CPU_V6 || CPU_V6K || CPU_V7
|
||||
default CPU_V6 || CPU_V6K || CPU_V7 || CPU_V7M
|
||||
help
|
||||
Support for the BE-8 (big-endian) mode on ARMv6 and ARMv7 processors.
|
||||
|
||||
|
|
|
@ -226,7 +226,7 @@ void __init kasan_init(void)
|
|||
BUILD_BUG_ON(pgd_index(KASAN_SHADOW_START) !=
|
||||
pgd_index(KASAN_SHADOW_END));
|
||||
memcpy(tmp_pmd_table,
|
||||
pgd_page_vaddr(*pgd_offset_k(KASAN_SHADOW_START)),
|
||||
(void*)pgd_page_vaddr(*pgd_offset_k(KASAN_SHADOW_START)),
|
||||
sizeof(tmp_pmd_table));
|
||||
set_pgd(&tmp_pgd_table[pgd_index(KASAN_SHADOW_START)],
|
||||
__pgd(__pa(tmp_pmd_table) | PMD_TYPE_TABLE | L_PGD_SWAPPER));
|
||||
|
|
|
@ -390,9 +390,9 @@ void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot)
|
|||
BUILD_BUG_ON(__fix_to_virt(__end_of_fixed_addresses) < FIXADDR_START);
|
||||
BUG_ON(idx >= __end_of_fixed_addresses);
|
||||
|
||||
/* we only support device mappings until pgprot_kernel has been set */
|
||||
/* We support only device mappings before pgprot_kernel is set. */
|
||||
if (WARN_ON(pgprot_val(prot) != pgprot_val(FIXMAP_PAGE_IO) &&
|
||||
pgprot_val(pgprot_kernel) == 0))
|
||||
pgprot_val(prot) && pgprot_val(pgprot_kernel) == 0))
|
||||
return;
|
||||
|
||||
if (pgprot_val(prot))
|
||||
|
|
|
@ -139,7 +139,7 @@
|
|||
regulator-min-microvolt = <721000>;
|
||||
regulator-max-microvolt = <1022000>;
|
||||
|
||||
vin-supply = <&dc_in>;
|
||||
pwm-supply = <&dc_in>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
|
|
@ -139,7 +139,7 @@
|
|||
regulator-min-microvolt = <721000>;
|
||||
regulator-max-microvolt = <1022000>;
|
||||
|
||||
vin-supply = <&main_12v>;
|
||||
pwm-supply = <&main_12v>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
|
|
@ -139,7 +139,7 @@
|
|||
regulator-min-microvolt = <721000>;
|
||||
regulator-max-microvolt = <1022000>;
|
||||
|
||||
vin-supply = <&dc_in>;
|
||||
pwm-supply = <&dc_in>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
regulator-min-microvolt = <690000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
|
||||
vin-supply = <&dc_in>;
|
||||
pwm-supply = <&dc_in>;
|
||||
|
||||
pwms = <&pwm_ab 0 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
@ -37,7 +37,7 @@
|
|||
regulator-min-microvolt = <690000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
|
||||
vin-supply = <&vsys_3v3>;
|
||||
pwm-supply = <&vsys_3v3>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
|
|
@ -130,7 +130,7 @@
|
|||
regulator-min-microvolt = <721000>;
|
||||
regulator-max-microvolt = <1022000>;
|
||||
|
||||
vin-supply = <&main_12v>;
|
||||
pwm-supply = <&main_12v>;
|
||||
|
||||
pwms = <&pwm_ab 0 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
@ -149,7 +149,7 @@
|
|||
regulator-min-microvolt = <721000>;
|
||||
regulator-max-microvolt = <1022000>;
|
||||
|
||||
vin-supply = <&main_12v>;
|
||||
pwm-supply = <&main_12v>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
regulator-min-microvolt = <721000>;
|
||||
regulator-max-microvolt = <1022000>;
|
||||
|
||||
vin-supply = <&main_12v>;
|
||||
pwm-supply = <&main_12v>;
|
||||
|
||||
pwms = <&pwm_ab 0 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
@ -115,7 +115,7 @@
|
|||
regulator-min-microvolt = <721000>;
|
||||
regulator-max-microvolt = <1022000>;
|
||||
|
||||
vin-supply = <&main_12v>;
|
||||
pwm-supply = <&main_12v>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
|
|
@ -173,7 +173,7 @@
|
|||
regulator-min-microvolt = <690000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
|
||||
vin-supply = <&dc_in>;
|
||||
pwm-supply = <&dc_in>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
regulator-min-microvolt = <690000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
|
||||
vin-supply = <&vsys_3v3>;
|
||||
pwm-supply = <&vsys_3v3>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
|
|
@ -116,7 +116,7 @@
|
|||
regulator-min-microvolt = <721000>;
|
||||
regulator-max-microvolt = <1022000>;
|
||||
|
||||
vin-supply = <&main_12v>;
|
||||
pwm-supply = <&main_12v>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
@ -263,6 +263,10 @@
|
|||
reg = <0>;
|
||||
max-speed = <1000>;
|
||||
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <80000>;
|
||||
reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
|
||||
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
/* MAC_INTR on GPIOZ_14 */
|
||||
interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
|
|
@ -185,7 +185,7 @@
|
|||
regulator-min-microvolt = <690000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
|
||||
vin-supply = <&dc_in>;
|
||||
pwm-supply = <&dc_in>;
|
||||
|
||||
pwms = <&pwm_AO_cd 1 1500 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
|
|
|
@ -292,7 +292,7 @@
|
|||
reg = <0x640 0x18>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&periph_clk>;
|
||||
clock-names = "periph";
|
||||
clock-names = "refclk";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
|
|
@ -1357,11 +1357,17 @@
|
|||
lpass: audio-controller@7708000 {
|
||||
status = "disabled";
|
||||
compatible = "qcom,lpass-cpu-apq8016";
|
||||
|
||||
/*
|
||||
* Note: Unlike the name would suggest, the SEC_I2S_CLK
|
||||
* is actually only used by Tertiary MI2S while
|
||||
* Primary/Secondary MI2S both use the PRI_I2S_CLK.
|
||||
*/
|
||||
clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
|
||||
<&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
|
||||
<&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
|
||||
<&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
|
||||
<&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
|
||||
<&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
|
||||
<&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
|
||||
<&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
|
||||
|
||||
|
|
|
@ -86,7 +86,6 @@
|
|||
rtc@6000 {
|
||||
compatible = "qcom,pm8941-rtc";
|
||||
reg = <0x6000>;
|
||||
reg-names = "rtc", "alarm";
|
||||
interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
/* Yes, all four strings *have to* be defined or things won't work. */
|
||||
qcom,enabled-strings = <0 1 2 3>;
|
||||
qcom,cabc;
|
||||
qcom,eternal-pfet;
|
||||
qcom,external-pfet;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -33,7 +33,7 @@ ap_h1_spi: &spi0 {};
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&pm6150_adc_tm 1>;
|
||||
sustainable-power = <814>;
|
||||
sustainable-power = <965>;
|
||||
|
||||
trips {
|
||||
skin_temp_alert0: trip-point0 {
|
||||
|
|
|
@ -44,7 +44,7 @@ ap_h1_spi: &spi0 {};
|
|||
};
|
||||
|
||||
&cpu6_thermal {
|
||||
sustainable-power = <948>;
|
||||
sustainable-power = <1124>;
|
||||
};
|
||||
|
||||
&cpu7_alert0 {
|
||||
|
@ -56,7 +56,7 @@ ap_h1_spi: &spi0 {};
|
|||
};
|
||||
|
||||
&cpu7_thermal {
|
||||
sustainable-power = <948>;
|
||||
sustainable-power = <1124>;
|
||||
};
|
||||
|
||||
&cpu8_alert0 {
|
||||
|
@ -68,7 +68,7 @@ ap_h1_spi: &spi0 {};
|
|||
};
|
||||
|
||||
&cpu8_thermal {
|
||||
sustainable-power = <948>;
|
||||
sustainable-power = <1124>;
|
||||
};
|
||||
|
||||
&cpu9_alert0 {
|
||||
|
@ -80,7 +80,7 @@ ap_h1_spi: &spi0 {};
|
|||
};
|
||||
|
||||
&cpu9_thermal {
|
||||
sustainable-power = <948>;
|
||||
sustainable-power = <1124>;
|
||||
};
|
||||
|
||||
&gpio_keys {
|
||||
|
|
|
@ -132,8 +132,8 @@
|
|||
cpu-idle-states = <&LITTLE_CPU_SLEEP_0
|
||||
&LITTLE_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <1024>;
|
||||
dynamic-power-coefficient = <100>;
|
||||
capacity-dmips-mhz = <415>;
|
||||
dynamic-power-coefficient = <137>;
|
||||
operating-points-v2 = <&cpu0_opp_table>;
|
||||
interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
|
||||
<&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>;
|
||||
|
@ -157,8 +157,8 @@
|
|||
cpu-idle-states = <&LITTLE_CPU_SLEEP_0
|
||||
&LITTLE_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <1024>;
|
||||
dynamic-power-coefficient = <100>;
|
||||
capacity-dmips-mhz = <415>;
|
||||
dynamic-power-coefficient = <137>;
|
||||
next-level-cache = <&L2_100>;
|
||||
operating-points-v2 = <&cpu0_opp_table>;
|
||||
interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
|
||||
|
@ -179,8 +179,8 @@
|
|||
cpu-idle-states = <&LITTLE_CPU_SLEEP_0
|
||||
&LITTLE_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <1024>;
|
||||
dynamic-power-coefficient = <100>;
|
||||
capacity-dmips-mhz = <415>;
|
||||
dynamic-power-coefficient = <137>;
|
||||
next-level-cache = <&L2_200>;
|
||||
operating-points-v2 = <&cpu0_opp_table>;
|
||||
interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
|
||||
|
@ -201,8 +201,8 @@
|
|||
cpu-idle-states = <&LITTLE_CPU_SLEEP_0
|
||||
&LITTLE_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <1024>;
|
||||
dynamic-power-coefficient = <100>;
|
||||
capacity-dmips-mhz = <415>;
|
||||
dynamic-power-coefficient = <137>;
|
||||
next-level-cache = <&L2_300>;
|
||||
operating-points-v2 = <&cpu0_opp_table>;
|
||||
interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
|
||||
|
@ -223,8 +223,8 @@
|
|||
cpu-idle-states = <&LITTLE_CPU_SLEEP_0
|
||||
&LITTLE_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <1024>;
|
||||
dynamic-power-coefficient = <100>;
|
||||
capacity-dmips-mhz = <415>;
|
||||
dynamic-power-coefficient = <137>;
|
||||
next-level-cache = <&L2_400>;
|
||||
operating-points-v2 = <&cpu0_opp_table>;
|
||||
interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
|
||||
|
@ -245,8 +245,8 @@
|
|||
cpu-idle-states = <&LITTLE_CPU_SLEEP_0
|
||||
&LITTLE_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <1024>;
|
||||
dynamic-power-coefficient = <100>;
|
||||
capacity-dmips-mhz = <415>;
|
||||
dynamic-power-coefficient = <137>;
|
||||
next-level-cache = <&L2_500>;
|
||||
operating-points-v2 = <&cpu0_opp_table>;
|
||||
interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
|
||||
|
@ -267,8 +267,8 @@
|
|||
cpu-idle-states = <&BIG_CPU_SLEEP_0
|
||||
&BIG_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <1740>;
|
||||
dynamic-power-coefficient = <405>;
|
||||
capacity-dmips-mhz = <1024>;
|
||||
dynamic-power-coefficient = <480>;
|
||||
next-level-cache = <&L2_600>;
|
||||
operating-points-v2 = <&cpu6_opp_table>;
|
||||
interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
|
||||
|
@ -289,8 +289,8 @@
|
|||
cpu-idle-states = <&BIG_CPU_SLEEP_0
|
||||
&BIG_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <1740>;
|
||||
dynamic-power-coefficient = <405>;
|
||||
capacity-dmips-mhz = <1024>;
|
||||
dynamic-power-coefficient = <480>;
|
||||
next-level-cache = <&L2_700>;
|
||||
operating-points-v2 = <&cpu6_opp_table>;
|
||||
interconnects = <&gem_noc MASTER_APPSS_PROC 3 &mc_virt SLAVE_EBI1 3>,
|
||||
|
@ -3504,7 +3504,7 @@
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&tsens0 1>;
|
||||
sustainable-power = <768>;
|
||||
sustainable-power = <1052>;
|
||||
|
||||
trips {
|
||||
cpu0_alert0: trip-point0 {
|
||||
|
@ -3553,7 +3553,7 @@
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&tsens0 2>;
|
||||
sustainable-power = <768>;
|
||||
sustainable-power = <1052>;
|
||||
|
||||
trips {
|
||||
cpu1_alert0: trip-point0 {
|
||||
|
@ -3602,7 +3602,7 @@
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&tsens0 3>;
|
||||
sustainable-power = <768>;
|
||||
sustainable-power = <1052>;
|
||||
|
||||
trips {
|
||||
cpu2_alert0: trip-point0 {
|
||||
|
@ -3651,7 +3651,7 @@
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&tsens0 4>;
|
||||
sustainable-power = <768>;
|
||||
sustainable-power = <1052>;
|
||||
|
||||
trips {
|
||||
cpu3_alert0: trip-point0 {
|
||||
|
@ -3700,7 +3700,7 @@
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&tsens0 5>;
|
||||
sustainable-power = <768>;
|
||||
sustainable-power = <1052>;
|
||||
|
||||
trips {
|
||||
cpu4_alert0: trip-point0 {
|
||||
|
@ -3749,7 +3749,7 @@
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&tsens0 6>;
|
||||
sustainable-power = <768>;
|
||||
sustainable-power = <1052>;
|
||||
|
||||
trips {
|
||||
cpu5_alert0: trip-point0 {
|
||||
|
@ -3798,7 +3798,7 @@
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&tsens0 9>;
|
||||
sustainable-power = <1202>;
|
||||
sustainable-power = <1425>;
|
||||
|
||||
trips {
|
||||
cpu6_alert0: trip-point0 {
|
||||
|
@ -3839,7 +3839,7 @@
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&tsens0 10>;
|
||||
sustainable-power = <1202>;
|
||||
sustainable-power = <1425>;
|
||||
|
||||
trips {
|
||||
cpu7_alert0: trip-point0 {
|
||||
|
@ -3880,7 +3880,7 @@
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&tsens0 11>;
|
||||
sustainable-power = <1202>;
|
||||
sustainable-power = <1425>;
|
||||
|
||||
trips {
|
||||
cpu8_alert0: trip-point0 {
|
||||
|
@ -3921,7 +3921,7 @@
|
|||
polling-delay = <0>;
|
||||
|
||||
thermal-sensors = <&tsens0 12>;
|
||||
sustainable-power = <1202>;
|
||||
sustainable-power = <1425>;
|
||||
|
||||
trips {
|
||||
cpu9_alert0: trip-point0 {
|
||||
|
|
|
@ -2316,7 +2316,7 @@
|
|||
compatible = "qcom,bam-v1.7.0";
|
||||
reg = <0 0x01dc4000 0 0x24000>;
|
||||
interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&rpmhcc 15>;
|
||||
clocks = <&rpmhcc RPMH_CE_CLK>;
|
||||
clock-names = "bam_clk";
|
||||
#dma-cells = <1>;
|
||||
qcom,ee = <0>;
|
||||
|
@ -2331,8 +2331,8 @@
|
|||
compatible = "qcom,crypto-v5.4";
|
||||
reg = <0 0x01dfa000 0 0x6000>;
|
||||
clocks = <&gcc GCC_CE1_AHB_CLK>,
|
||||
<&gcc GCC_CE1_AHB_CLK>,
|
||||
<&rpmhcc 15>;
|
||||
<&gcc GCC_CE1_AXI_CLK>,
|
||||
<&rpmhcc RPMH_CE_CLK>;
|
||||
clock-names = "iface", "bus", "core";
|
||||
dmas = <&cryptobam 6>, <&cryptobam 7>;
|
||||
dma-names = "rx", "tx";
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
&avb {
|
||||
pinctrl-0 = <&avb_pins>;
|
||||
pinctrl-names = "default";
|
||||
phy-mode = "rgmii-rxid";
|
||||
phy-handle = <&phy0>;
|
||||
rx-internal-delay-ps = <1800>;
|
||||
tx-internal-delay-ps = <2000>;
|
||||
|
|
|
@ -599,7 +599,7 @@
|
|||
|
||||
gpu: gpu@ff300000 {
|
||||
compatible = "rockchip,rk3328-mali", "arm,mali-450";
|
||||
reg = <0x0 0xff300000 0x0 0x40000>;
|
||||
reg = <0x0 0xff300000 0x0 0x30000>;
|
||||
interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
|
||||
|
|
|
@ -201,7 +201,7 @@
|
|||
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
mbi-alias = <0x0 0xfd100000>;
|
||||
mbi-alias = <0x0 0xfd410000>;
|
||||
mbi-ranges = <296 24>;
|
||||
msi-controller;
|
||||
};
|
||||
|
|
|
@ -606,10 +606,10 @@
|
|||
clock-names = "fck";
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
bus-range = <0x0 0xf>;
|
||||
bus-range = <0x0 0xff>;
|
||||
cdns,no-bar-match-nbits = <64>;
|
||||
vendor-id = /bits/ 16 <0x104c>;
|
||||
device-id = /bits/ 16 <0xb00f>;
|
||||
vendor-id = <0x104c>;
|
||||
device-id = <0xb00f>;
|
||||
msi-map = <0x0 &gic_its 0x0 0x10000>;
|
||||
dma-coherent;
|
||||
ranges = <0x01000000 0x0 0x18001000 0x00 0x18001000 0x0 0x0010000>,
|
||||
|
|
|
@ -610,7 +610,7 @@
|
|||
clock-names = "fck";
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
bus-range = <0x0 0xf>;
|
||||
bus-range = <0x0 0xff>;
|
||||
vendor-id = <0x104c>;
|
||||
device-id = <0xb00d>;
|
||||
msi-map = <0x0 &gic_its 0x0 0x10000>;
|
||||
|
@ -636,7 +636,7 @@
|
|||
clocks = <&k3_clks 239 1>;
|
||||
clock-names = "fck";
|
||||
max-functions = /bits/ 8 <6>;
|
||||
max-virtual-functions = /bits/ 16 <4 4 4 4 0 0>;
|
||||
max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>;
|
||||
dma-coherent;
|
||||
};
|
||||
|
||||
|
@ -658,7 +658,7 @@
|
|||
clock-names = "fck";
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
bus-range = <0x0 0xf>;
|
||||
bus-range = <0x0 0xff>;
|
||||
vendor-id = <0x104c>;
|
||||
device-id = <0xb00d>;
|
||||
msi-map = <0x0 &gic_its 0x10000 0x10000>;
|
||||
|
@ -684,7 +684,7 @@
|
|||
clocks = <&k3_clks 240 1>;
|
||||
clock-names = "fck";
|
||||
max-functions = /bits/ 8 <6>;
|
||||
max-virtual-functions = /bits/ 16 <4 4 4 4 0 0>;
|
||||
max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>;
|
||||
dma-coherent;
|
||||
};
|
||||
|
||||
|
@ -706,7 +706,7 @@
|
|||
clock-names = "fck";
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
bus-range = <0x0 0xf>;
|
||||
bus-range = <0x0 0xff>;
|
||||
vendor-id = <0x104c>;
|
||||
device-id = <0xb00d>;
|
||||
msi-map = <0x0 &gic_its 0x20000 0x10000>;
|
||||
|
@ -732,7 +732,7 @@
|
|||
clocks = <&k3_clks 241 1>;
|
||||
clock-names = "fck";
|
||||
max-functions = /bits/ 8 <6>;
|
||||
max-virtual-functions = /bits/ 16 <4 4 4 4 0 0>;
|
||||
max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>;
|
||||
dma-coherent;
|
||||
};
|
||||
|
||||
|
@ -754,7 +754,7 @@
|
|||
clock-names = "fck";
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
bus-range = <0x0 0xf>;
|
||||
bus-range = <0x0 0xff>;
|
||||
vendor-id = <0x104c>;
|
||||
device-id = <0xb00d>;
|
||||
msi-map = <0x0 &gic_its 0x30000 0x10000>;
|
||||
|
@ -780,7 +780,7 @@
|
|||
clocks = <&k3_clks 242 1>;
|
||||
clock-names = "fck";
|
||||
max-functions = /bits/ 8 <6>;
|
||||
max-virtual-functions = /bits/ 16 <4 4 4 4 0 0>;
|
||||
max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>;
|
||||
dma-coherent;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
|
|
@ -68,6 +68,7 @@
|
|||
#define ESR_ELx_EC_MAX (0x3F)
|
||||
|
||||
#define ESR_ELx_EC_SHIFT (26)
|
||||
#define ESR_ELx_EC_WIDTH (6)
|
||||
#define ESR_ELx_EC_MASK (UL(0x3F) << ESR_ELx_EC_SHIFT)
|
||||
#define ESR_ELx_EC(esr) (((esr) & ESR_ELx_EC_MASK) >> ESR_ELx_EC_SHIFT)
|
||||
|
||||
|
|
|
@ -67,9 +67,15 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
|
|||
* page table entry, taking care of 52-bit addresses.
|
||||
*/
|
||||
#ifdef CONFIG_ARM64_PA_BITS_52
|
||||
#define __pte_to_phys(pte) \
|
||||
((pte_val(pte) & PTE_ADDR_LOW) | ((pte_val(pte) & PTE_ADDR_HIGH) << 36))
|
||||
#define __phys_to_pte_val(phys) (((phys) | ((phys) >> 36)) & PTE_ADDR_MASK)
|
||||
static inline phys_addr_t __pte_to_phys(pte_t pte)
|
||||
{
|
||||
return (pte_val(pte) & PTE_ADDR_LOW) |
|
||||
((pte_val(pte) & PTE_ADDR_HIGH) << 36);
|
||||
}
|
||||
static inline pteval_t __phys_to_pte_val(phys_addr_t phys)
|
||||
{
|
||||
return (phys | (phys >> 36)) & PTE_ADDR_MASK;
|
||||
}
|
||||
#else
|
||||
#define __pte_to_phys(pte) (pte_val(pte) & PTE_ADDR_MASK)
|
||||
#define __phys_to_pte_val(phys) (phys)
|
||||
|
|
|
@ -251,7 +251,7 @@ struct task_struct;
|
|||
/* Free all resources held by a thread. */
|
||||
extern void release_thread(struct task_struct *);
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
void set_task_sctlr_el1(u64 sctlr);
|
||||
|
||||
|
|
|
@ -572,15 +572,19 @@ static const struct arm64_ftr_bits ftr_raz[] = {
|
|||
ARM64_FTR_END,
|
||||
};
|
||||
|
||||
#define ARM64_FTR_REG_OVERRIDE(id, table, ovr) { \
|
||||
#define __ARM64_FTR_REG_OVERRIDE(id_str, id, table, ovr) { \
|
||||
.sys_id = id, \
|
||||
.reg = &(struct arm64_ftr_reg){ \
|
||||
.name = #id, \
|
||||
.name = id_str, \
|
||||
.override = (ovr), \
|
||||
.ftr_bits = &((table)[0]), \
|
||||
}}
|
||||
|
||||
#define ARM64_FTR_REG(id, table) ARM64_FTR_REG_OVERRIDE(id, table, &no_override)
|
||||
#define ARM64_FTR_REG_OVERRIDE(id, table, ovr) \
|
||||
__ARM64_FTR_REG_OVERRIDE(#id, id, table, ovr)
|
||||
|
||||
#define ARM64_FTR_REG(id, table) \
|
||||
__ARM64_FTR_REG_OVERRIDE(#id, id, table, &no_override)
|
||||
|
||||
struct arm64_ftr_override __ro_after_init id_aa64mmfr1_override;
|
||||
struct arm64_ftr_override __ro_after_init id_aa64pfr1_override;
|
||||
|
|
|
@ -544,13 +544,11 @@ __notrace_funcgraph struct task_struct *__switch_to(struct task_struct *prev,
|
|||
return last;
|
||||
}
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p)
|
||||
unsigned long __get_wchan(struct task_struct *p)
|
||||
{
|
||||
struct stackframe frame;
|
||||
unsigned long stack_page, ret = 0;
|
||||
int count = 0;
|
||||
if (!p || p == current || task_is_running(p))
|
||||
return 0;
|
||||
|
||||
stack_page = (unsigned long)try_get_task_stack(p);
|
||||
if (!stack_page)
|
||||
|
|
|
@ -40,7 +40,8 @@ cc32-as-instr = $(call try-run,\
|
|||
# As a result we set our own flags here.
|
||||
|
||||
# KBUILD_CPPFLAGS and NOSTDINC_FLAGS from top-level Makefile
|
||||
VDSO_CPPFLAGS := -DBUILD_VDSO -D__KERNEL__ -nostdinc -isystem $(shell $(CC_COMPAT) -print-file-name=include)
|
||||
VDSO_CPPFLAGS := -DBUILD_VDSO -D__KERNEL__ -nostdinc
|
||||
VDSO_CPPFLAGS += -isystem $(shell $(CC_COMPAT) -print-file-name=include 2>/dev/null)
|
||||
VDSO_CPPFLAGS += $(LINUXINCLUDE)
|
||||
|
||||
# Common C and assembly flags
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
el1_sync: // Guest trapped into EL2
|
||||
|
||||
mrs x0, esr_el2
|
||||
lsr x0, x0, #ESR_ELx_EC_SHIFT
|
||||
ubfx x0, x0, #ESR_ELx_EC_SHIFT, #ESR_ELx_EC_WIDTH
|
||||
cmp x0, #ESR_ELx_EC_HVC64
|
||||
ccmp x0, #ESR_ELx_EC_HVC32, #4, ne
|
||||
b.ne el1_trap
|
||||
|
|
|
@ -115,7 +115,7 @@ SYM_FUNC_END(__hyp_do_panic)
|
|||
.L__vect_start\@:
|
||||
stp x0, x1, [sp, #-16]!
|
||||
mrs x0, esr_el2
|
||||
lsr x0, x0, #ESR_ELx_EC_SHIFT
|
||||
ubfx x0, x0, #ESR_ELx_EC_SHIFT, #ESR_ELx_EC_WIDTH
|
||||
cmp x0, #ESR_ELx_EC_HVC64
|
||||
b.ne __host_exit
|
||||
|
||||
|
|
|
@ -152,6 +152,7 @@ static inline void hyp_page_ref_inc(struct hyp_page *p)
|
|||
|
||||
static inline int hyp_page_ref_dec_and_test(struct hyp_page *p)
|
||||
{
|
||||
BUG_ON(!p->refcount);
|
||||
p->refcount--;
|
||||
return (p->refcount == 0);
|
||||
}
|
||||
|
|
|
@ -1499,6 +1499,11 @@ int arch_add_memory(int nid, u64 start, u64 size,
|
|||
if (ret)
|
||||
__remove_pgd_mapping(swapper_pg_dir,
|
||||
__phys_to_virt(start), size);
|
||||
else {
|
||||
max_pfn = PFN_UP(start + size);
|
||||
max_low_pfn = max_pfn;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -1136,6 +1136,11 @@ out:
|
|||
return prog;
|
||||
}
|
||||
|
||||
u64 bpf_jit_alloc_exec_limit(void)
|
||||
{
|
||||
return BPF_JIT_REGION_SIZE;
|
||||
}
|
||||
|
||||
void *bpf_jit_alloc_exec(unsigned long size)
|
||||
{
|
||||
return __vmalloc_node_range(size, PAGE_SIZE, BPF_JIT_REGION_START,
|
||||
|
|
|
@ -81,7 +81,7 @@ static inline void release_thread(struct task_struct *dead_task)
|
|||
|
||||
extern int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
#define KSTK_EIP(tsk) (task_pt_regs(tsk)->pc)
|
||||
#define KSTK_ESP(tsk) (task_pt_regs(tsk)->usp)
|
||||
|
|
|
@ -111,12 +111,11 @@ static bool save_wchan(unsigned long pc, void *arg)
|
|||
return false;
|
||||
}
|
||||
|
||||
unsigned long get_wchan(struct task_struct *task)
|
||||
unsigned long __get_wchan(struct task_struct *task)
|
||||
{
|
||||
unsigned long pc = 0;
|
||||
|
||||
if (likely(task && task != current && !task_is_running(task)))
|
||||
walk_stackframe(task, NULL, save_wchan, &pc);
|
||||
walk_stackframe(task, NULL, save_wchan, &pc);
|
||||
return pc;
|
||||
}
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ static inline void release_thread(struct task_struct *dead_task)
|
|||
{
|
||||
}
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
#define KSTK_EIP(tsk) \
|
||||
({ \
|
||||
|
|
|
@ -128,15 +128,12 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
|
|||
return 0;
|
||||
}
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p)
|
||||
unsigned long __get_wchan(struct task_struct *p)
|
||||
{
|
||||
unsigned long fp, pc;
|
||||
unsigned long stack_page;
|
||||
int count = 0;
|
||||
|
||||
if (!p || p == current || task_is_running(p))
|
||||
return 0;
|
||||
|
||||
stack_page = (unsigned long)p;
|
||||
fp = ((struct pt_regs *)p->thread.ksp)->er6;
|
||||
do {
|
||||
|
|
|
@ -64,7 +64,7 @@ struct thread_struct {
|
|||
extern void release_thread(struct task_struct *dead_task);
|
||||
|
||||
/* Get wait channel for task P. */
|
||||
extern unsigned long get_wchan(struct task_struct *p);
|
||||
extern unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
/* The following stuff is pretty HEXAGON specific. */
|
||||
|
||||
|
|
|
@ -130,13 +130,11 @@ void flush_thread(void)
|
|||
* is an identification of the point at which the scheduler
|
||||
* was invoked by a blocked thread.
|
||||
*/
|
||||
unsigned long get_wchan(struct task_struct *p)
|
||||
unsigned long __get_wchan(struct task_struct *p)
|
||||
{
|
||||
unsigned long fp, pc;
|
||||
unsigned long stack_page;
|
||||
int count = 0;
|
||||
if (!p || p == current || task_is_running(p))
|
||||
return 0;
|
||||
|
||||
stack_page = (unsigned long)task_stack_page(p);
|
||||
fp = ((struct hexagon_switch_stack *)p->thread.switch_sp)->fp;
|
||||
|
|
|
@ -39,7 +39,7 @@ config DISABLE_VHPT
|
|||
|
||||
config IA64_DEBUG_CMPXCHG
|
||||
bool "Turn on compare-and-exchange bug checking (slow!)"
|
||||
depends on DEBUG_KERNEL
|
||||
depends on DEBUG_KERNEL && PRINTK
|
||||
help
|
||||
Selecting this option turns on bug checking for the IA-64
|
||||
compare-and-exchange instructions. This is slow! Itaniums
|
||||
|
|
|
@ -330,7 +330,7 @@ struct task_struct;
|
|||
#define release_thread(dead_task)
|
||||
|
||||
/* Get wait channel for task P. */
|
||||
extern unsigned long get_wchan (struct task_struct *p);
|
||||
extern unsigned long __get_wchan (struct task_struct *p);
|
||||
|
||||
/* Return instruction pointer of blocked task TSK. */
|
||||
#define KSTK_EIP(tsk) \
|
||||
|
|
|
@ -398,7 +398,8 @@ static void kretprobe_trampoline(void)
|
|||
|
||||
int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs)
|
||||
{
|
||||
regs->cr_iip = __kretprobe_trampoline_handler(regs, kretprobe_trampoline, NULL);
|
||||
regs->cr_iip = __kretprobe_trampoline_handler(regs,
|
||||
dereference_function_descriptor(kretprobe_trampoline), NULL);
|
||||
/*
|
||||
* By returning a non-zero value, we are telling
|
||||
* kprobe_handler() that we don't want the post_handler
|
||||
|
@ -414,7 +415,7 @@ void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
|
|||
ri->fp = NULL;
|
||||
|
||||
/* Replace the return addr with trampoline addr */
|
||||
regs->b0 = ((struct fnptr *)kretprobe_trampoline)->ip;
|
||||
regs->b0 = (unsigned long)dereference_function_descriptor(kretprobe_trampoline);
|
||||
}
|
||||
|
||||
/* Check the instruction in the slot is break */
|
||||
|
@ -902,14 +903,14 @@ static struct kprobe trampoline_p = {
|
|||
int __init arch_init_kprobes(void)
|
||||
{
|
||||
trampoline_p.addr =
|
||||
(kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip;
|
||||
dereference_function_descriptor(kretprobe_trampoline);
|
||||
return register_kprobe(&trampoline_p);
|
||||
}
|
||||
|
||||
int __kprobes arch_trampoline_kprobe(struct kprobe *p)
|
||||
{
|
||||
if (p->addr ==
|
||||
(kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip)
|
||||
dereference_function_descriptor(kretprobe_trampoline))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -523,15 +523,12 @@ exit_thread (struct task_struct *tsk)
|
|||
}
|
||||
|
||||
unsigned long
|
||||
get_wchan (struct task_struct *p)
|
||||
__get_wchan (struct task_struct *p)
|
||||
{
|
||||
struct unw_frame_info info;
|
||||
unsigned long ip;
|
||||
int count = 0;
|
||||
|
||||
if (!p || p == current || task_is_running(p))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* Note: p may not be a blocked task (it could be current or
|
||||
* another process running on some other CPU. Rather than
|
||||
|
|
|
@ -203,6 +203,7 @@ config INIT_LCD
|
|||
config MEMORY_RESERVE
|
||||
int "Memory reservation (MiB)"
|
||||
depends on (UCSIMM || UCDIMM)
|
||||
default 0
|
||||
help
|
||||
Reserve certain memory regions on 68x328 based boards.
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ static inline void release_thread(struct task_struct *dead_task)
|
|||
{
|
||||
}
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
#define KSTK_EIP(tsk) \
|
||||
({ \
|
||||
|
|
|
@ -263,13 +263,11 @@ int dump_fpu (struct pt_regs *regs, struct user_m68kfp_struct *fpu)
|
|||
}
|
||||
EXPORT_SYMBOL(dump_fpu);
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p)
|
||||
unsigned long __get_wchan(struct task_struct *p)
|
||||
{
|
||||
unsigned long fp, pc;
|
||||
unsigned long stack_page;
|
||||
int count = 0;
|
||||
if (!p || p == current || task_is_running(p))
|
||||
return 0;
|
||||
|
||||
stack_page = (unsigned long)task_stack_page(p);
|
||||
fp = ((struct switch_stack *)p->thread.ksp)->a6;
|
||||
|
|
|
@ -68,7 +68,7 @@ static inline void release_thread(struct task_struct *dead_task)
|
|||
{
|
||||
}
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
/* The size allocated for kernel stacks. This _must_ be a power of two! */
|
||||
# define KERNEL_STACK_SIZE 0x2000
|
||||
|
|
|
@ -112,7 +112,7 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, unsigned long arg,
|
|||
return 0;
|
||||
}
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p)
|
||||
unsigned long __get_wchan(struct task_struct *p)
|
||||
{
|
||||
/* TBD (used by procfs) */
|
||||
return 0;
|
||||
|
|
|
@ -1410,6 +1410,7 @@ config CPU_LOONGSON64
|
|||
select MIPS_ASID_BITS_VARIABLE
|
||||
select MIPS_PGD_C0_CONTEXT
|
||||
select MIPS_L1_CACHE_SHIFT_6
|
||||
select MIPS_FP_SUPPORT
|
||||
select GPIOLIB
|
||||
select SWIOTLB
|
||||
select HAVE_KVM
|
||||
|
|
|
@ -254,7 +254,9 @@ endif
|
|||
#
|
||||
# Board-dependent options and extra files
|
||||
#
|
||||
ifdef need-compiler
|
||||
include arch/mips/Kbuild.platforms
|
||||
endif
|
||||
|
||||
ifdef CONFIG_PHYSICAL_START
|
||||
load-y = $(CONFIG_PHYSICAL_START)
|
||||
|
|
|
@ -249,6 +249,7 @@ static inline unsigned long __cmpxchg64(volatile void *ptr,
|
|||
/* Load 64 bits from ptr */
|
||||
" " __SYNC(full, loongson3_war) " \n"
|
||||
"1: lld %L0, %3 # __cmpxchg64 \n"
|
||||
" .set pop \n"
|
||||
/*
|
||||
* Split the 64 bit value we loaded into the 2 registers that hold the
|
||||
* ret variable.
|
||||
|
@ -276,12 +277,14 @@ static inline unsigned long __cmpxchg64(volatile void *ptr,
|
|||
" or %L1, %L1, $at \n"
|
||||
" .set at \n"
|
||||
# endif
|
||||
" .set push \n"
|
||||
" .set " MIPS_ISA_ARCH_LEVEL " \n"
|
||||
/* Attempt to store new at ptr */
|
||||
" scd %L1, %2 \n"
|
||||
/* If we failed, loop! */
|
||||
"\t" __SC_BEQZ "%L1, 1b \n"
|
||||
" .set pop \n"
|
||||
"2: " __SYNC(full, loongson3_war) " \n"
|
||||
" .set pop \n"
|
||||
: "=&r"(ret),
|
||||
"=&r"(tmp),
|
||||
"=" GCC_OFF_SMALL_ASM() (*(unsigned long long *)ptr)
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#ifndef __MIPS_ASM_MIPS_CM_H__
|
||||
#define __MIPS_ASM_MIPS_CM_H__
|
||||
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/errno.h>
|
||||
|
||||
|
@ -153,8 +154,8 @@ GCR_ACCESSOR_RO(32, 0x030, rev)
|
|||
#define CM_GCR_REV_MINOR GENMASK(7, 0)
|
||||
|
||||
#define CM_ENCODE_REV(major, minor) \
|
||||
(((major) << __ffs(CM_GCR_REV_MAJOR)) | \
|
||||
((minor) << __ffs(CM_GCR_REV_MINOR)))
|
||||
(FIELD_PREP(CM_GCR_REV_MAJOR, major) | \
|
||||
FIELD_PREP(CM_GCR_REV_MINOR, minor))
|
||||
|
||||
#define CM_REV_CM2 CM_ENCODE_REV(6, 0)
|
||||
#define CM_REV_CM2_5 CM_ENCODE_REV(7, 0)
|
||||
|
@ -362,10 +363,10 @@ static inline int mips_cm_revision(void)
|
|||
static inline unsigned int mips_cm_max_vp_width(void)
|
||||
{
|
||||
extern int smp_num_siblings;
|
||||
uint32_t cfg;
|
||||
|
||||
if (mips_cm_revision() >= CM_REV_CM3)
|
||||
return read_gcr_sys_config2() & CM_GCR_SYS_CONFIG2_MAXVPW;
|
||||
return FIELD_GET(CM_GCR_SYS_CONFIG2_MAXVPW,
|
||||
read_gcr_sys_config2());
|
||||
|
||||
if (mips_cm_present()) {
|
||||
/*
|
||||
|
@ -373,8 +374,7 @@ static inline unsigned int mips_cm_max_vp_width(void)
|
|||
* number of VP(E)s, and if that ever changes then this will
|
||||
* need revisiting.
|
||||
*/
|
||||
cfg = read_gcr_cl_config() & CM_GCR_Cx_CONFIG_PVPE;
|
||||
return (cfg >> __ffs(CM_GCR_Cx_CONFIG_PVPE)) + 1;
|
||||
return FIELD_GET(CM_GCR_Cx_CONFIG_PVPE, read_gcr_cl_config()) + 1;
|
||||
}
|
||||
|
||||
if (IS_ENABLED(CONFIG_SMP))
|
||||
|
|
|
@ -369,7 +369,7 @@ static inline void flush_thread(void)
|
|||
{
|
||||
}
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
#define __KSTK_TOS(tsk) ((unsigned long)task_stack_page(tsk) + \
|
||||
THREAD_SIZE - 32 - sizeof(struct pt_regs))
|
||||
|
|
|
@ -221,8 +221,7 @@ static void mips_cm_probe_l2sync(void)
|
|||
phys_addr_t addr;
|
||||
|
||||
/* L2-only sync was introduced with CM major revision 6 */
|
||||
major_rev = (read_gcr_rev() & CM_GCR_REV_MAJOR) >>
|
||||
__ffs(CM_GCR_REV_MAJOR);
|
||||
major_rev = FIELD_GET(CM_GCR_REV_MAJOR, read_gcr_rev());
|
||||
if (major_rev < 6)
|
||||
return;
|
||||
|
||||
|
@ -306,13 +305,13 @@ void mips_cm_lock_other(unsigned int cluster, unsigned int core,
|
|||
preempt_disable();
|
||||
|
||||
if (cm_rev >= CM_REV_CM3) {
|
||||
val = core << __ffs(CM3_GCR_Cx_OTHER_CORE);
|
||||
val |= vp << __ffs(CM3_GCR_Cx_OTHER_VP);
|
||||
val = FIELD_PREP(CM3_GCR_Cx_OTHER_CORE, core) |
|
||||
FIELD_PREP(CM3_GCR_Cx_OTHER_VP, vp);
|
||||
|
||||
if (cm_rev >= CM_REV_CM3_5) {
|
||||
val |= CM_GCR_Cx_OTHER_CLUSTER_EN;
|
||||
val |= cluster << __ffs(CM_GCR_Cx_OTHER_CLUSTER);
|
||||
val |= block << __ffs(CM_GCR_Cx_OTHER_BLOCK);
|
||||
val |= FIELD_PREP(CM_GCR_Cx_OTHER_CLUSTER, cluster);
|
||||
val |= FIELD_PREP(CM_GCR_Cx_OTHER_BLOCK, block);
|
||||
} else {
|
||||
WARN_ON(cluster != 0);
|
||||
WARN_ON(block != CM_GCR_Cx_OTHER_BLOCK_LOCAL);
|
||||
|
@ -342,7 +341,7 @@ void mips_cm_lock_other(unsigned int cluster, unsigned int core,
|
|||
spin_lock_irqsave(&per_cpu(cm_core_lock, curr_core),
|
||||
per_cpu(cm_core_lock_flags, curr_core));
|
||||
|
||||
val = core << __ffs(CM_GCR_Cx_OTHER_CORENUM);
|
||||
val = FIELD_PREP(CM_GCR_Cx_OTHER_CORENUM, core);
|
||||
}
|
||||
|
||||
write_gcr_cl_other(val);
|
||||
|
@ -386,8 +385,8 @@ void mips_cm_error_report(void)
|
|||
cm_other = read_gcr_error_mult();
|
||||
|
||||
if (revision < CM_REV_CM3) { /* CM2 */
|
||||
cause = cm_error >> __ffs(CM_GCR_ERROR_CAUSE_ERRTYPE);
|
||||
ocause = cm_other >> __ffs(CM_GCR_ERROR_MULT_ERR2ND);
|
||||
cause = FIELD_GET(CM_GCR_ERROR_CAUSE_ERRTYPE, cm_error);
|
||||
ocause = FIELD_GET(CM_GCR_ERROR_MULT_ERR2ND, cm_other);
|
||||
|
||||
if (!cause)
|
||||
return;
|
||||
|
@ -445,8 +444,8 @@ void mips_cm_error_report(void)
|
|||
ulong core_id_bits, vp_id_bits, cmd_bits, cmd_group_bits;
|
||||
ulong cm3_cca_bits, mcp_bits, cm3_tr_bits, sched_bit;
|
||||
|
||||
cause = cm_error >> __ffs64(CM3_GCR_ERROR_CAUSE_ERRTYPE);
|
||||
ocause = cm_other >> __ffs(CM_GCR_ERROR_MULT_ERR2ND);
|
||||
cause = FIELD_GET(CM3_GCR_ERROR_CAUSE_ERRTYPE, cm_error);
|
||||
ocause = FIELD_GET(CM_GCR_ERROR_MULT_ERR2ND, cm_other);
|
||||
|
||||
if (!cause)
|
||||
return;
|
||||
|
|
|
@ -511,7 +511,7 @@ static int __init frame_info_init(void)
|
|||
|
||||
/*
|
||||
* Without schedule() frame info, result given by
|
||||
* thread_saved_pc() and get_wchan() are not reliable.
|
||||
* thread_saved_pc() and __get_wchan() are not reliable.
|
||||
*/
|
||||
if (schedule_mfi.pc_offset < 0)
|
||||
printk("Can't analyze schedule() prologue at %p\n", schedule);
|
||||
|
@ -652,9 +652,9 @@ unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
|
|||
#endif
|
||||
|
||||
/*
|
||||
* get_wchan - a maintenance nightmare^W^Wpain in the ass ...
|
||||
* __get_wchan - a maintenance nightmare^W^Wpain in the ass ...
|
||||
*/
|
||||
unsigned long get_wchan(struct task_struct *task)
|
||||
unsigned long __get_wchan(struct task_struct *task)
|
||||
{
|
||||
unsigned long pc = 0;
|
||||
#ifdef CONFIG_KALLSYMS
|
||||
|
@ -662,8 +662,6 @@ unsigned long get_wchan(struct task_struct *task)
|
|||
unsigned long ra = 0;
|
||||
#endif
|
||||
|
||||
if (!task || task == current || task_is_running(task))
|
||||
goto out;
|
||||
if (!task_stack_page(task))
|
||||
goto out;
|
||||
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
#define EX2(a,b) \
|
||||
9: a,##b; \
|
||||
.section __ex_table,"a"; \
|
||||
PTR 9b,bad_stack; \
|
||||
PTR 9b+4,bad_stack; \
|
||||
PTR 9b,fault; \
|
||||
PTR 9b+4,fault; \
|
||||
.previous
|
||||
|
||||
.set mips1
|
||||
|
|
|
@ -240,12 +240,3 @@ SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op)
|
|||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
/*
|
||||
* If we ever come here the user sp is bad. Zap the process right away.
|
||||
* Due to the bad stack signaling wouldn't work.
|
||||
*/
|
||||
asmlinkage void bad_stack(void)
|
||||
{
|
||||
do_exit(SIGSEGV);
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/export.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/of.h>
|
||||
|
||||
|
@ -30,6 +31,7 @@
|
|||
#define LTQ_DMA_PCTRL 0x44
|
||||
#define LTQ_DMA_IRNEN 0xf4
|
||||
|
||||
#define DMA_ID_CHNR GENMASK(26, 20) /* channel number */
|
||||
#define DMA_DESCPT BIT(3) /* descriptor complete irq */
|
||||
#define DMA_TX BIT(8) /* TX channel direction */
|
||||
#define DMA_CHAN_ON BIT(0) /* channel on / off bit */
|
||||
|
@ -39,8 +41,11 @@
|
|||
#define DMA_IRQ_ACK 0x7e /* IRQ status register */
|
||||
#define DMA_POLL BIT(31) /* turn on channel polling */
|
||||
#define DMA_CLK_DIV4 BIT(6) /* polling clock divider */
|
||||
#define DMA_2W_BURST BIT(1) /* 2 word burst length */
|
||||
#define DMA_MAX_CHANNEL 20 /* the soc has 20 channels */
|
||||
#define DMA_PCTRL_2W_BURST 0x1 /* 2 word burst length */
|
||||
#define DMA_PCTRL_4W_BURST 0x2 /* 4 word burst length */
|
||||
#define DMA_PCTRL_8W_BURST 0x3 /* 8 word burst length */
|
||||
#define DMA_TX_BURST_SHIFT 4 /* tx burst shift */
|
||||
#define DMA_RX_BURST_SHIFT 2 /* rx burst shift */
|
||||
#define DMA_ETOP_ENDIANNESS (0xf << 8) /* endianness swap etop channels */
|
||||
#define DMA_WEIGHT (BIT(17) | BIT(16)) /* default channel wheight */
|
||||
|
||||
|
@ -191,7 +196,8 @@ ltq_dma_init_port(int p)
|
|||
break;
|
||||
|
||||
case DMA_PORT_DEU:
|
||||
ltq_dma_w32((DMA_2W_BURST << 4) | (DMA_2W_BURST << 2),
|
||||
ltq_dma_w32((DMA_PCTRL_2W_BURST << DMA_TX_BURST_SHIFT) |
|
||||
(DMA_PCTRL_2W_BURST << DMA_RX_BURST_SHIFT),
|
||||
LTQ_DMA_PCTRL);
|
||||
break;
|
||||
|
||||
|
@ -206,7 +212,7 @@ ltq_dma_init(struct platform_device *pdev)
|
|||
{
|
||||
struct clk *clk;
|
||||
struct resource *res;
|
||||
unsigned id;
|
||||
unsigned int id, nchannels;
|
||||
int i;
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
|
@ -222,21 +228,24 @@ ltq_dma_init(struct platform_device *pdev)
|
|||
clk_enable(clk);
|
||||
ltq_dma_w32_mask(0, DMA_RESET, LTQ_DMA_CTRL);
|
||||
|
||||
usleep_range(1, 10);
|
||||
|
||||
/* disable all interrupts */
|
||||
ltq_dma_w32(0, LTQ_DMA_IRNEN);
|
||||
|
||||
/* reset/configure each channel */
|
||||
for (i = 0; i < DMA_MAX_CHANNEL; i++) {
|
||||
id = ltq_dma_r32(LTQ_DMA_ID);
|
||||
nchannels = ((id & DMA_ID_CHNR) >> 20);
|
||||
for (i = 0; i < nchannels; i++) {
|
||||
ltq_dma_w32(i, LTQ_DMA_CS);
|
||||
ltq_dma_w32(DMA_CHAN_RST, LTQ_DMA_CCTRL);
|
||||
ltq_dma_w32(DMA_POLL | DMA_CLK_DIV4, LTQ_DMA_CPOLL);
|
||||
ltq_dma_w32_mask(DMA_CHAN_ON, 0, LTQ_DMA_CCTRL);
|
||||
}
|
||||
|
||||
id = ltq_dma_r32(LTQ_DMA_ID);
|
||||
dev_info(&pdev->dev,
|
||||
"Init done - hw rev: %X, ports: %d, channels: %d\n",
|
||||
id & 0x1f, (id >> 16) & 0xf, id >> 20);
|
||||
id & 0x1f, (id >> 16) & 0xf, nchannels);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -83,7 +83,7 @@ extern struct task_struct *last_task_used_math;
|
|||
/* Prepare to copy thread state - unlazy all lazy status */
|
||||
#define prepare_to_copy(tsk) do { } while (0)
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
#define cpu_relax() barrier()
|
||||
|
||||
|
|
|
@ -233,15 +233,12 @@ int dump_fpu(struct pt_regs *regs, elf_fpregset_t * fpu)
|
|||
|
||||
EXPORT_SYMBOL(dump_fpu);
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p)
|
||||
unsigned long __get_wchan(struct task_struct *p)
|
||||
{
|
||||
unsigned long fp, lr;
|
||||
unsigned long stack_start, stack_end;
|
||||
int count = 0;
|
||||
|
||||
if (!p || p == current || task_is_running(p))
|
||||
return 0;
|
||||
|
||||
if (IS_ENABLED(CONFIG_FRAME_POINTER)) {
|
||||
stack_start = (unsigned long)end_of_stack(p);
|
||||
stack_end = (unsigned long)task_stack_page(p) + THREAD_SIZE;
|
||||
|
@ -258,5 +255,3 @@ unsigned long get_wchan(struct task_struct *p)
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(get_wchan);
|
||||
|
|
|
@ -69,7 +69,7 @@ static inline void release_thread(struct task_struct *dead_task)
|
|||
{
|
||||
}
|
||||
|
||||
extern unsigned long get_wchan(struct task_struct *p);
|
||||
extern unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
#define task_pt_regs(p) \
|
||||
((struct pt_regs *)(THREAD_SIZE + task_stack_page(p)) - 1)
|
||||
|
|
|
@ -217,15 +217,12 @@ void dump(struct pt_regs *fp)
|
|||
pr_emerg("\n\n");
|
||||
}
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p)
|
||||
unsigned long __get_wchan(struct task_struct *p)
|
||||
{
|
||||
unsigned long fp, pc;
|
||||
unsigned long stack_page;
|
||||
int count = 0;
|
||||
|
||||
if (!p || p == current || task_is_running(p))
|
||||
return 0;
|
||||
|
||||
stack_page = (unsigned long)p;
|
||||
fp = ((struct switch_stack *)p->thread.ksp)->fp; /* ;dgt2 */
|
||||
do {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user