Skip to content

Commit a168d7b

Browse files
committed
Merge remote-tracking branch 'stable/linux-6.15.y' into v6.15+
2 parents 1bc6a58 + fc85704 commit a168d7b

49 files changed

Lines changed: 308 additions & 146 deletions

File tree

Some content is hidden

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

Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ properties:
6363
fsl,phy-tx-vboost-level-microvolt:
6464
description:
6565
Adjust the boosted transmit launch pk-pk differential amplitude
66-
minimum: 880
67-
maximum: 1120
66+
enum: [844, 1008, 1156]
6867

6968
fsl,phy-comp-dis-tune-percent:
7069
description:

Documentation/devicetree/bindings/pwm/adi,axi-pwmgen.yaml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,19 @@ properties:
3030
const: 3
3131

3232
clocks:
33-
maxItems: 1
33+
minItems: 1
34+
maxItems: 2
35+
36+
clock-names:
37+
minItems: 1
38+
items:
39+
- const: axi
40+
- const: ext
3441

3542
required:
3643
- reg
3744
- clocks
45+
- clock-names
3846

3947
unevaluatedProperties: false
4048

@@ -43,6 +51,7 @@ examples:
4351
pwm@44b00000 {
4452
compatible = "adi,axi-pwmgen-2.00.a";
4553
reg = <0x44b00000 0x1000>;
46-
clocks = <&spi_clk>;
54+
clocks = <&fpga_clk>, <&spi_clk>;
55+
clock-names = "axi", "ext";
4756
#pwm-cells = <3>;
4857
};

Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ description:
1616
properties:
1717
compatible:
1818
enum:
19+
- qcom,sc8180x-adsp-pas
20+
- qcom,sc8180x-cdsp-pas
21+
- qcom,sc8180x-slpi-pas
1922
- qcom,sm8150-adsp-pas
2023
- qcom,sm8150-cdsp-pas
2124
- qcom,sm8150-mpss-pas

Documentation/devicetree/bindings/usb/cypress,hx3.yaml

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,22 @@ allOf:
1414

1515
properties:
1616
compatible:
17-
enum:
18-
- usb4b4,6504
19-
- usb4b4,6506
17+
oneOf:
18+
- enum:
19+
- usb4b4,6504
20+
- usb4b4,6506
21+
- items:
22+
- enum:
23+
- usb4b4,6500
24+
- usb4b4,6508
25+
- const: usb4b4,6504
26+
- items:
27+
- enum:
28+
- usb4b4,6502
29+
- usb4b4,6503
30+
- usb4b4,6507
31+
- usb4b4,650a
32+
- const: usb4b4,6506
2033

2134
reg: true
2235

Documentation/firmware-guide/acpi/dsd/data-node-references.rst

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@ ACPI in general allows referring to device objects in the tree only.
1212
Hierarchical data extension nodes may not be referred to directly, hence this
1313
document defines a scheme to implement such references.
1414

15-
A reference consist of the device object name followed by one or more
16-
hierarchical data extension [dsd-guide] keys. Specifically, the hierarchical
17-
data extension node which is referred to by the key shall lie directly under
18-
the parent object i.e. either the device object or another hierarchical data
19-
extension node.
15+
A reference to a _DSD hierarchical data node is a string consisting of a
16+
device object reference followed by a dot (".") and a relative path to a data
17+
node object. Do not use non-string references as this will produce a copy of
18+
the hierarchical data node, not a reference!
19+
20+
The hierarchical data extension node which is referred to shall be located
21+
directly under its parent object i.e. either the device object or another
22+
hierarchical data extension node [dsd-guide].
2023

2124
The keys in the hierarchical data nodes shall consist of the name of the node,
2225
"@" character and the number of the node in hexadecimal notation (without pre-
@@ -33,11 +36,9 @@ extension key.
3336
Example
3437
=======
3538

36-
In the ASL snippet below, the "reference" _DSD property contains a
37-
device object reference to DEV0 and under that device object, a
38-
hierarchical data extension key "node@1" referring to the NOD1 object
39-
and lastly, a hierarchical data extension key "anothernode" referring to
40-
the ANOD object which is also the final target node of the reference.
39+
In the ASL snippet below, the "reference" _DSD property contains a string
40+
reference to a hierarchical data extension node ANOD under DEV0 under the parent
41+
of DEV1. ANOD is also the final target node of the reference.
4142
::
4243

4344
Device (DEV0)
@@ -76,10 +77,7 @@ the ANOD object which is also the final target node of the reference.
7677
Name (_DSD, Package () {
7778
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
7879
Package () {
79-
Package () {
80-
"reference", Package () {
81-
^DEV0, "node@1", "anothernode"
82-
}
80+
Package () { "reference", "^DEV0.ANOD" }
8381
},
8482
}
8583
})

Documentation/firmware-guide/acpi/dsd/graph.rst

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,9 @@ of that port shall be zero. Similarly, if a port may only have a single
6666
endpoint, the number of that endpoint shall be zero.
6767

6868
The endpoint reference uses property extension with "remote-endpoint" property
69-
name followed by a reference in the same package. Such references consist of
70-
the remote device reference, the first package entry of the port data extension
71-
reference under the device and finally the first package entry of the endpoint
72-
data extension reference under the port. Individual references thus appear as::
69+
name followed by a string reference in the same package. [data-node-ref]::
7370

74-
Package() { device, "port@X", "endpoint@Y" }
71+
"device.datanode"
7572

7673
In the above example, "X" is the number of the port and "Y" is the number of
7774
the endpoint.
@@ -109,7 +106,7 @@ A simple example of this is show below::
109106
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
110107
Package () {
111108
Package () { "reg", 0 },
112-
Package () { "remote-endpoint", Package() { \_SB.PCI0.ISP, "port@4", "endpoint@0" } },
109+
Package () { "remote-endpoint", "\\_SB.PCI0.ISP.EP40" },
113110
}
114111
})
115112
}
@@ -141,7 +138,7 @@ A simple example of this is show below::
141138
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
142139
Package () {
143140
Package () { "reg", 0 },
144-
Package () { "remote-endpoint", Package () { \_SB.PCI0.I2C2.CAM0, "port@0", "endpoint@0" } },
141+
Package () { "remote-endpoint", "\\_SB.PCI0.I2C2.CAM0.EP00" },
145142
}
146143
})
147144
}

Documentation/firmware-guide/acpi/dsd/leds.rst

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ Referring to LEDs in Device tree is documented in [video-interfaces], in
1515
"flash-leds" property documentation. In short, LEDs are directly referred to by
1616
using phandles.
1717

18-
While Device tree allows referring to any node in the tree [devicetree], in
19-
ACPI references are limited to device nodes only [acpi]. For this reason using
20-
the same mechanism on ACPI is not possible. A mechanism to refer to non-device
21-
ACPI nodes is documented in [data-node-ref].
22-
2318
ACPI allows (as does DT) using integer arguments after the reference. A
2419
combination of the LED driver device reference and an integer argument,
2520
referring to the "reg" property of the relevant LED, is used to identify
@@ -74,7 +69,7 @@ omitted. ::
7469
Package () {
7570
Package () {
7671
"flash-leds",
77-
Package () { ^LED, "led@0", ^LED, "led@1" },
72+
Package () { "^LED.LED0", "^LED.LED1" },
7873
}
7974
}
8075
})

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 6
33
PATCHLEVEL = 15
4-
SUBLEVEL = 1
4+
SUBLEVEL = 2
55
EXTRAVERSION =
66
NAME = Baby Opossum Posse
77

arch/x86/kernel/smpboot.c

Lines changed: 47 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,10 +1238,6 @@ void play_dead_common(void)
12381238
local_irq_disable();
12391239
}
12401240

1241-
/*
1242-
* We need to flush the caches before going to sleep, lest we have
1243-
* dirty data in our caches when we come back up.
1244-
*/
12451241
void __noreturn mwait_play_dead(unsigned int eax_hint)
12461242
{
12471243
struct mwait_cpu_dead *md = this_cpu_ptr(&mwait_cpu_dead);
@@ -1287,6 +1283,50 @@ void __noreturn mwait_play_dead(unsigned int eax_hint)
12871283
}
12881284
}
12891285

1286+
/*
1287+
* We need to flush the caches before going to sleep, lest we have
1288+
* dirty data in our caches when we come back up.
1289+
*/
1290+
static inline void mwait_play_dead_cpuid_hint(void)
1291+
{
1292+
unsigned int eax, ebx, ecx, edx;
1293+
unsigned int highest_cstate = 0;
1294+
unsigned int highest_subcstate = 0;
1295+
int i;
1296+
1297+
if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
1298+
boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
1299+
return;
1300+
if (!this_cpu_has(X86_FEATURE_MWAIT))
1301+
return;
1302+
if (!this_cpu_has(X86_FEATURE_CLFLUSH))
1303+
return;
1304+
1305+
eax = CPUID_LEAF_MWAIT;
1306+
ecx = 0;
1307+
native_cpuid(&eax, &ebx, &ecx, &edx);
1308+
1309+
/*
1310+
* eax will be 0 if EDX enumeration is not valid.
1311+
* Initialized below to cstate, sub_cstate value when EDX is valid.
1312+
*/
1313+
if (!(ecx & CPUID5_ECX_EXTENSIONS_SUPPORTED)) {
1314+
eax = 0;
1315+
} else {
1316+
edx >>= MWAIT_SUBSTATE_SIZE;
1317+
for (i = 0; i < 7 && edx; i++, edx >>= MWAIT_SUBSTATE_SIZE) {
1318+
if (edx & MWAIT_SUBSTATE_MASK) {
1319+
highest_cstate = i;
1320+
highest_subcstate = edx & MWAIT_SUBSTATE_MASK;
1321+
}
1322+
}
1323+
eax = (highest_cstate << MWAIT_SUBSTATE_SIZE) |
1324+
(highest_subcstate - 1);
1325+
}
1326+
1327+
mwait_play_dead(eax);
1328+
}
1329+
12901330
/*
12911331
* Kick all "offline" CPUs out of mwait on kexec(). See comment in
12921332
* mwait_play_dead().
@@ -1337,9 +1377,9 @@ void native_play_dead(void)
13371377
play_dead_common();
13381378
tboot_shutdown(TB_SHUTDOWN_WFS);
13391379

1340-
/* Below returns only on error. */
1341-
cpuidle_play_dead();
1342-
hlt_play_dead();
1380+
mwait_play_dead_cpuid_hint();
1381+
if (cpuidle_play_dead())
1382+
hlt_play_dead();
13431383
}
13441384

13451385
#else /* ... !CONFIG_HOTPLUG_CPU */

drivers/acpi/acpica/acdebug.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ struct acpi_db_argument_info {
3737
struct acpi_db_execute_walk {
3838
u32 count;
3939
u32 max_count;
40-
char name_seg[ACPI_NAMESEG_SIZE + 1];
40+
char name_seg[ACPI_NAMESEG_SIZE + 1] ACPI_NONSTRING;
4141
};
4242

4343
#define PARAM_LIST(pl) pl

0 commit comments

Comments
 (0)