Skip to content

Commit 50de48a

Browse files
author
Alexei Starovoitov
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf at 6.18-rc2
Cross-merge BPF and other fixes after downstream PR. No conflicts. Signed-off-by: Alexei Starovoitov <[email protected]>
2 parents 48a97ff + 1c64efc commit 50de48a

File tree

452 files changed

+3708
-2181
lines changed

Some content is hidden

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

452 files changed

+3708
-2181
lines changed

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ Dmitry Safonov <[email protected]> <[email protected]>
227227
228228
229229
Domen Puncer <[email protected]>
230+
230231
Douglas Gilbert <[email protected]>
231232
232233
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/i2c/apm,xgene-slimpro-i2c.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: APM X-Gene SLIMpro Mailbox I2C
8+
9+
maintainers:
10+
- Khuong Dinh <[email protected]>
11+
12+
description:
13+
An I2C controller accessed over the "SLIMpro" mailbox.
14+
15+
allOf:
16+
- $ref: /schemas/i2c/i2c-controller.yaml#
17+
18+
properties:
19+
compatible:
20+
const: apm,xgene-slimpro-i2c
21+
22+
mboxes:
23+
maxItems: 1
24+
25+
required:
26+
- compatible
27+
- mboxes
28+
29+
unevaluatedProperties: false
30+
31+
examples:
32+
- |
33+
i2c {
34+
compatible = "apm,xgene-slimpro-i2c";
35+
mboxes = <&mailbox 0>;
36+
};

Documentation/devicetree/bindings/i2c/i2c-xgene-slimpro.txt

Lines changed: 0 additions & 15 deletions
This file was deleted.

Documentation/devicetree/bindings/sound/fsl-asoc-card.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ properties:
7979
- fsl,imx-audio-nau8822
8080
- fsl,imx-audio-sgtl5000
8181
- fsl,imx-audio-si476x
82+
- fsl,imx-audio-tlv320
8283
- fsl,imx-audio-tlv320aic31xx
8384
- fsl,imx-audio-tlv320aic32x4
8485
- fsl,imx-audio-wm8524

Documentation/devicetree/bindings/sound/qcom,sm8250.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ properties:
3333
- qcom,apq8096-sndcard
3434
- qcom,glymur-sndcard
3535
- qcom,qcm6490-idp-sndcard
36+
- qcom,qcs615-sndcard
3637
- qcom,qcs6490-rb3gen2-sndcard
3738
- qcom,qcs8275-sndcard
3839
- qcom,qcs9075-sndcard

Documentation/devicetree/bindings/sound/ti,tas2781.yaml

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,21 @@ description: |
2424
Instruments Smart Amp speaker protection algorithm. The
2525
integrated speaker voltage and current sense provides for real time
2626
monitoring of loudspeaker behavior.
27-
The TAS5825/TAS5827 is a stereo, digital input Class-D audio
28-
amplifier optimized for efficiently driving high peak power into
29-
small loudspeakers. An integrated on-chip DSP supports Texas
30-
Instruments Smart Amp speaker protection algorithm.
27+
The TAS5802/TAS5815/TAS5825/TAS5827/TAS5828 is a stereo, digital input
28+
Class-D audio amplifier optimized for efficiently driving high peak
29+
power into small loudspeakers. An integrated on-chip DSP supports
30+
Texas Instruments Smart Amp speaker protection algorithm.
3131
3232
Specifications about the audio amplifier can be found at:
3333
https://www.ti.com/lit/gpn/tas2120
3434
https://www.ti.com/lit/gpn/tas2320
3535
https://www.ti.com/lit/gpn/tas2563
3636
https://www.ti.com/lit/gpn/tas2572
3737
https://www.ti.com/lit/gpn/tas2781
38+
https://www.ti.com/lit/gpn/tas5815
3839
https://www.ti.com/lit/gpn/tas5825m
3940
https://www.ti.com/lit/gpn/tas5827
41+
https://www.ti.com/lit/gpn/tas5828m
4042
4143
properties:
4244
compatible:
@@ -65,11 +67,21 @@ properties:
6567
Protection and Audio Processing, 16/20/24/32bit stereo I2S or
6668
multichannel TDM.
6769
70+
ti,tas5802: 22-W, Inductor-Less, Digital Input, Closed-Loop Class-D
71+
Audio Amplifier with 96-Khz Extended Processing and Low Idle Power
72+
Dissipation.
73+
74+
ti,tas5815: 30-W, Digital Input, Stereo, Closed-loop Class-D Audio
75+
Amplifier with 96 kHz Enhanced Processing
76+
6877
ti,tas5825: 38-W Stereo, Inductor-Less, Digital Input, Closed-Loop 4.5V
6978
to 26.4V Class-D Audio Amplifier with 192-kHz Extended Audio Processing.
7079
71-
ti,tas5827: 47-W Stereo, Digital Input, High Efficiency Closed-Loop Class-D
72-
Amplifier with Class-H Algorithm
80+
ti,tas5827: 47-W Stereo, Digital Input, High Efficiency Closed-Loop
81+
Class-D Amplifier with Class-H Algorithm
82+
83+
ti,tas5828: 50-W Stereo, Digital Input, High Efficiency Closed-Loop
84+
Class-D Amplifier with Hybrid-Pro Algorithm
7385
oneOf:
7486
- items:
7587
- enum:
@@ -80,8 +92,11 @@ properties:
8092
- ti,tas2563
8193
- ti,tas2570
8294
- ti,tas2572
95+
- ti,tas5802
96+
- ti,tas5815
8397
- ti,tas5825
8498
- ti,tas5827
99+
- ti,tas5828
85100
- const: ti,tas2781
86101
- enum:
87102
- ti,tas2781
@@ -177,12 +192,28 @@ allOf:
177192
minimum: 0x38
178193
maximum: 0x3f
179194

195+
- if:
196+
properties:
197+
compatible:
198+
contains:
199+
enum:
200+
- ti,tas5802
201+
- ti,tas5815
202+
then:
203+
properties:
204+
reg:
205+
maxItems: 4
206+
items:
207+
minimum: 0x54
208+
maximum: 0x57
209+
180210
- if:
181211
properties:
182212
compatible:
183213
contains:
184214
enum:
185215
- ti,tas5827
216+
- ti,tas5828
186217
then:
187218
properties:
188219
reg:

Documentation/filesystems/ext4/directory.rst

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,10 @@ in the place where the name normally goes. The structure is
183183
- det_checksum
184184
- Directory leaf block checksum.
185185

186-
The leaf directory block checksum is calculated against the FS UUID, the
187-
directory's inode number, the directory's inode generation number, and
188-
the entire directory entry block up to (but not including) the fake
189-
directory entry.
186+
The leaf directory block checksum is calculated against the FS UUID (or
187+
the checksum seed, if that feature is enabled for the fs), the directory's
188+
inode number, the directory's inode generation number, and the entire
189+
directory entry block up to (but not including) the fake directory entry.
190190

191191
Hash Tree Directories
192192
~~~~~~~~~~~~~~~~~~~~~
@@ -196,37 +196,37 @@ new feature was added to ext3 to provide a faster (but peculiar)
196196
balanced tree keyed off a hash of the directory entry name. If the
197197
EXT4_INDEX_FL (0x1000) flag is set in the inode, this directory uses a
198198
hashed btree (htree) to organize and find directory entries. For
199-
backwards read-only compatibility with ext2, this tree is actually
200-
hidden inside the directory file, masquerading as “empty” directory data
201-
blocks! It was stated previously that the end of the linear directory
202-
entry table was signified with an entry pointing to inode 0; this is
203-
(ab)used to fool the old linear-scan algorithm into thinking that the
204-
rest of the directory block is empty so that it moves on.
199+
backwards read-only compatibility with ext2, interior tree nodes are actually
200+
hidden inside the directory file, masquerading as “empty” directory entries
201+
spanning the whole block. It was stated previously that directory entries
202+
with the inode set to 0 are treated as unused entries; this is (ab)used to
203+
fool the old linear-scan algorithm into skipping over those blocks containing
204+
the interior tree node data.
205205

206206
The root of the tree always lives in the first data block of the
207207
directory. By ext2 custom, the '.' and '..' entries must appear at the
208208
beginning of this first block, so they are put here as two
209209
``struct ext4_dir_entry_2`` s and not stored in the tree. The rest of
210210
the root node contains metadata about the tree and finally a hash->block
211211
map to find nodes that are lower in the htree. If
212-
``dx_root.info.indirect_levels`` is non-zero then the htree has two
213-
levels; the data block pointed to by the root node's map is an interior
214-
node, which is indexed by a minor hash. Interior nodes in this tree
215-
contains a zeroed out ``struct ext4_dir_entry_2`` followed by a
216-
minor_hash->block map to find leafe nodes. Leaf nodes contain a linear
217-
array of all ``struct ext4_dir_entry_2``; all of these entries
218-
(presumably) hash to the same value. If there is an overflow, the
219-
entries simply overflow into the next leaf node, and the
220-
least-significant bit of the hash (in the interior node map) that gets
221-
us to this next leaf node is set.
222-
223-
To traverse the directory as a htree, the code calculates the hash of
224-
the desired file name and uses it to find the corresponding block
225-
number. If the tree is flat, the block is a linear array of directory
226-
entries that can be searched; otherwise, the minor hash of the file name
227-
is computed and used against this second block to find the corresponding
228-
third block number. That third block number will be a linear array of
229-
directory entries.
212+
``dx_root.info.indirect_levels`` is non-zero then the htree has that many
213+
levels and the blocks pointed to by the root node's map are interior nodes.
214+
These interior nodes have a zeroed out ``struct ext4_dir_entry_2`` followed by
215+
a hash->block map to find nodes of the next level. Leaf nodes look like
216+
classic linear directory blocks, but all of its entries have a hash value
217+
equal or greater than the indicated hash of the parent node.
218+
219+
The actual hash value for an entry name is only 31 bits, the least-significant
220+
bit is set to 0. However, if there is a hash collision between directory
221+
entries, the least-significant bit may get set to 1 on interior nodes in the
222+
case where these two (or more) hash-colliding entries do not fit into one leaf
223+
node and must be split across multiple nodes.
224+
225+
To look up a name in such a htree, the code calculates the hash of the desired
226+
file name and uses it to find the leaf node with the range of hash values the
227+
calculated hash falls into (in other words, a lookup works basically the same
228+
as it would in a B-Tree keyed by the hash value), and possibly also scanning
229+
the leaf nodes that follow (in tree order) in case of hash collisions.
230230

231231
To traverse the directory as a linear array (such as the old code does),
232232
the code simply reads every data block in the directory. The blocks used
@@ -319,7 +319,8 @@ of a data block:
319319
* - 0x24
320320
- __le32
321321
- block
322-
- The block number (within the directory file) that goes with hash=0.
322+
- The block number (within the directory file) that lead to the left-most
323+
leaf node, i.e. the leaf containing entries with the lowest hash values.
323324
* - 0x28
324325
- struct dx_entry
325326
- entries[0]
@@ -442,12 +443,12 @@ The dx_tail structure is 8 bytes long and looks like this:
442443
* - 0x0
443444
- u32
444445
- dt_reserved
445-
- Zero.
446+
- Unused (but still part of the checksum curiously).
446447
* - 0x4
447448
- __le32
448449
- dt_checksum
449450
- Checksum of the htree directory block.
450451

451452
The checksum is calculated against the FS UUID, the htree index header
452453
(dx_root or dx_node), all of the htree indices (dx_entry) that are in
453-
use, and the tail block (dx_tail).
454+
use, and the tail block (dx_tail) with the dt_checksum initially set to 0.

Documentation/networking/can.rst

Lines changed: 67 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1398,10 +1398,9 @@ second bit timing has to be specified in order to enable the CAN FD bitrate.
13981398
Additionally CAN FD capable CAN controllers support up to 64 bytes of
13991399
payload. The representation of this length in can_frame.len and
14001400
canfd_frame.len for userspace applications and inside the Linux network
1401-
layer is a plain value from 0 .. 64 instead of the CAN 'data length code'.
1402-
The data length code was a 1:1 mapping to the payload length in the Classical
1403-
CAN frames anyway. The payload length to the bus-relevant DLC mapping is
1404-
only performed inside the CAN drivers, preferably with the helper
1401+
layer is a plain value from 0 .. 64 instead of the Classical CAN length
1402+
which ranges from 0 to 8. The payload length to the bus-relevant DLC mapping
1403+
is only performed inside the CAN drivers, preferably with the helper
14051404
functions can_fd_dlc2len() and can_fd_len2dlc().
14061405

14071406
The CAN netdevice driver capabilities can be distinguished by the network
@@ -1465,6 +1464,70 @@ Example when 'fd-non-iso on' is added on this switchable CAN FD adapter::
14651464
can <FD,FD-NON-ISO> state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0
14661465

14671466

1467+
Transmitter Delay Compensation
1468+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1469+
1470+
At high bit rates, the propagation delay from the TX pin to the RX pin of
1471+
the transceiver might become greater than the actual bit time causing
1472+
measurement errors: the RX pin would still be measuring the previous bit.
1473+
1474+
The Transmitter Delay Compensation (thereafter, TDC) resolves this problem
1475+
by introducing a Secondary Sample Point (SSP) equal to the distance, in
1476+
minimum time quantum, from the start of the bit time on the TX pin to the
1477+
actual measurement on the RX pin. The SSP is calculated as the sum of two
1478+
configurable values: the TDC Value (TDCV) and the TDC offset (TDCO).
1479+
1480+
TDC, if supported by the device, can be configured together with CAN-FD
1481+
using the ip tool's "tdc-mode" argument as follow:
1482+
1483+
**omitted**
1484+
When no "tdc-mode" option is provided, the kernel will automatically
1485+
decide whether TDC should be turned on, in which case it will
1486+
calculate a default TDCO and use the TDCV as measured by the
1487+
device. This is the recommended method to use TDC.
1488+
1489+
**"tdc-mode off"**
1490+
TDC is explicitly disabled.
1491+
1492+
**"tdc-mode auto"**
1493+
The user must provide the "tdco" argument. The TDCV will be
1494+
automatically calculated by the device. This option is only
1495+
available if the device supports the TDC-AUTO CAN controller mode.
1496+
1497+
**"tdc-mode manual"**
1498+
The user must provide both the "tdco" and "tdcv" arguments. This
1499+
option is only available if the device supports the TDC-MANUAL CAN
1500+
controller mode.
1501+
1502+
Note that some devices may offer an additional parameter: "tdcf" (TDC Filter
1503+
window). If supported by your device, this can be added as an optional
1504+
argument to either "tdc-mode auto" or "tdc-mode manual".
1505+
1506+
Example configuring a 500 kbit/s arbitration bitrate, a 5 Mbit/s data
1507+
bitrate, a TDCO of 15 minimum time quantum and a TDCV automatically measured
1508+
by the device::
1509+
1510+
$ ip link set can0 up type can bitrate 500000 \
1511+
fd on dbitrate 4000000 \
1512+
tdc-mode auto tdco 15
1513+
$ ip -details link show can0
1514+
5: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 72 qdisc pfifo_fast state UP \
1515+
mode DEFAULT group default qlen 10
1516+
link/can promiscuity 0 allmulti 0 minmtu 72 maxmtu 72
1517+
can <FD,TDC-AUTO> state ERROR-ACTIVE restart-ms 0
1518+
bitrate 500000 sample-point 0.875
1519+
tq 12 prop-seg 69 phase-seg1 70 phase-seg2 20 sjw 10 brp 1
1520+
ES582.1/ES584.1: tseg1 2..256 tseg2 2..128 sjw 1..128 brp 1..512 \
1521+
brp_inc 1
1522+
dbitrate 4000000 dsample-point 0.750
1523+
dtq 12 dprop-seg 7 dphase-seg1 7 dphase-seg2 5 dsjw 2 dbrp 1
1524+
tdco 15 tdcf 0
1525+
ES582.1/ES584.1: dtseg1 2..32 dtseg2 1..16 dsjw 1..8 dbrp 1..32 \
1526+
dbrp_inc 1
1527+
tdco 0..127 tdcf 0..127
1528+
clock 80000000
1529+
1530+
14681531
Supported CAN Hardware
14691532
----------------------
14701533

Documentation/networking/seg6-sysctl.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ seg6_require_hmac - INTEGER
2525

2626
Default is 0.
2727

28+
/proc/sys/net/ipv6/seg6_* variables:
29+
====================================
30+
2831
seg6_flowlabel - INTEGER
2932
Controls the behaviour of computing the flowlabel of outer
3033
IPv6 header in case of SR T.encaps

0 commit comments

Comments
 (0)