Commit graph

1,399,042 commits

Author SHA1 Message Date
Kent Overstreet
95f2315af7 bcachefs: alloc_request.ptrs2
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:40 -04:00
Kent Overstreet
e038213658 bcachefs: alloc_request.ca
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:39 -04:00
Kent Overstreet
7f65d1cf5c bcachefs: alloc_request.counters
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:37 -04:00
Kent Overstreet
4d00e88d21 bcachefs: alloc_request.usage
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:36 -04:00
Kent Overstreet
a0312f4251 bcachefs: alloc_request: deallocate_extra_replicas()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:35 -04:00
Kent Overstreet
ac0952b0e5 bcachefs: new_stripe_alloc_buckets() takes alloc_request
More stack usage improvements: instead of creating a new alloc_request
(currently on the stack), save/restore just the fields we need to reuse.

This is a bit tricky, because we're doing a normal alloc_foreground.c
allocation, which calls into ec.c to get a stripe, which then does more
normal allocations - some of the fields get reused, and used
differently.

So we have to save and restore them - but the stack usage improvements
will be well worth it.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:33 -04:00
Kent Overstreet
7100344301 bcachefs: bch2_ec_stripe_head_get() takes alloc_request
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:32 -04:00
Kent Overstreet
9259883b79 bcachefs: bch2_bucket_alloc_trans() takes alloc_request
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:31 -04:00
Kent Overstreet
799c418303 bcachefs: alloc_request.data_type
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:30 -04:00
Kent Overstreet
ad63f9f1e9 bcachefs: struct alloc_request
Add a struct for common state for satisfying an on disk allocation,
instead of passing the same long list of items to every function.

This will help with stack usage, performance, and perhaps enable some
code cleanups.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:27 -04:00
Kent Overstreet
d02755b8c5 bcachefs: trace bch2_trans_kmalloc()
We're occasionally seeing the WARN_ON() for bump allocator usage
exceeding BTREE_TRANS_MEM_MAX; add some tracing so we can see what's
going on.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:27 -04:00
Roxana Nicolescu
caa6baa45f bcachefs: replace memcpy with memcpy_and_pad for jset_entry_log->d buff
This was achieved before by zero-ing out the source buffer and then
copying the bytes into the destination buffer. This can also be done with
memcpy_and_pad which will zero out only the destination buffer if its
size is bigger than the size of the source buffer. This is already used in
the same way in journal_transaction_name().

Moreover, zero-ing the source buffer was done twice, first in
__bch2_fs_log_msg() and then in bch2_trans_log_msg(). And this method
may also require allocating some extra memory for the source buffer.

In conclusion, using memcpy_and_pad is better even tough the result is
the same because it brings uniformity with what's already used in
journal_transaction_name, it avoids code duplication and reallocating
extra memory.

Signed-off-by: Roxana Nicolescu <nicolescu.roxana@protonmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:25 -04:00
Roxana Nicolescu
4e2caf82ce bcachefs: replace strncpy() with memcpy_and_pad in journal_transaction_name
Strncpy is now deprecated.
The buffer destination is not required to be NULL-terminated, but we also
want to zero out the rest of the buffer as it is already done in other
places.

Link: https://github.com/KSPP/linux/issues/90
Signed-off-by: Roxana Nicolescu <nicolescu.roxana@protonmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:24 -04:00
Kent Overstreet
8c087d2ddf bcachefs: Rebalance now skips poisoned extents
Let's not move poisoned extents unnecessarily, since we can't guard
against introducing more bitrot.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:22 -04:00
Kent Overstreet
cb8336ca42 bcachefs: Data move can read from poisoned extents
Now, if an extent is poisoned we can move it even if there was a
checksum error. We'll have to give it a new checksum, but the poison bit
means that userspace will still see the appropriate error when they try
to read it.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:21 -04:00
Kent Overstreet
760be1ad5e bcachefs: Poison extents that can't be read due to checksum errors
Copygc needs to be able to move extents that have bitrotted. We don't
want to delete them - in the future we'll have an API for "read me the
data even if there's checksum errors", and in general we don't want to
delete anything unless the user asks us to.

That will require writing it with a new checksum, which means we can't
forget that there was a checksum error so we return the correct error to
userspace.

Rebalance also wants to skip bad extents; we can now use the poison flag
for that.

This is currently disabled by default, as we want read fua support so
that we can distinguish between transient and permanent errors from the
device. It may be enabled with the module parameter:

  poison_extents_on_checksum_error

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:19 -04:00
Kent Overstreet
6659ba3b18 bcachefs: Be precise about bch_io_failures
If the extent we're reading from changes, due to be being overwritten or
moved (possibly partially) - we need to reset bch_io_failures so that we
don't accidentally mark a new extent as poisoned prematurely.

This means we have to separately track (in the retry path) the extent we
previously read from.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:17 -04:00
Kent Overstreet
0e5f1f3f8f bcachefs: bch2_subvolume_wait_for_pagecache_and_delete() cleanup
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:15 -04:00
Kent Overstreet
010c894681 bcachefs: Check for casefolded dirents in non casefolded dirs
Check for mismatches between casefold dirents and casefold directories.

A mismatch will cause lookups to fail, as we'll be doing the lookup with
the casefolded name, which won't match the non-casefolded dirent, and
vice versa.

Reported-by: Christopher Snowhill <chris@kode54.net>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:14 -04:00
Kent Overstreet
ecd76c5f10 bcachefs: Fix bch2_dirent_create_snapshot() for casefolding
bch2_dirent_create_snapshot(), used in fsck, neglected to create a
casefolded dirent.

Just move this into dirent_create_key().

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:13 -04:00
Kent Overstreet
8d5ac187da bcachefs: Fix casefold opt via xattr interface
Changing the casefold option requires extra checks/work - factor out a
helper from bch2_fileattr_set() for the xattr code to use.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2025-05-21 20:13:09 -04:00
Jakub Kicinski
220a29d0af Merge branch 'net-phy-add-support-for-new-aeonsemi-phys'
Christian Marangi says:

====================
net: phy: Add support for new Aeonsemi PHYs

Add support for new Aeonsemi 10G C45 PHYs. These PHYs intergate an IPC
to setup some configuration and require special handling to sync with
the parity bit. The parity bit is a way the IPC use to follow correct
order of command sent.

Supported PHYs AS21011JB1, AS21011PB1, AS21010JB1, AS21010PB1,
AS21511JB1, AS21511PB1, AS21510JB1, AS21510PB1, AS21210JB1,
AS21210PB1 that all register with the PHY ID 0x7500 0x7500
before the firmware is loaded.

The big special thing about this PHY is that it does provide
a generic PHY ID in C45 register that change to the correct one
one the firmware is loaded.

In practice:
- MMD 0x7 ID 0x7500 0x9410 -> FW LOAD -> ID 0x7500 0x9422

To handle this, we operate on .match_phy_device where
we check the PHY ID, if the ID match the generic one,
we load the firmware and we return 0 (PHY driver doesn't
match). Then PHY core will try the next PHY driver in the list
and this time the PHY is correctly filled in and we register
for it.

To help in the matching and not modify part of the PHY device
struct, .match_phy_device is extended to provide also the
current phy_driver is trying to match for. This add the
extra benefits that some other PHY can simplify their
.match_phy_device OP.
====================

Link: https://patch.msgid.link/20250517201353.5137-1-ansuelsmth@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:56:12 -07:00
Christian Marangi
3e2b722989 dt-bindings: net: Document support for Aeonsemi PHYs
Add Aeonsemi PHYs and the requirement of a firmware to correctly work.
Also document the max number of LEDs supported and what PHY ID expose
when no firmware is loaded.

Supported PHYs AS21011JB1, AS21011PB1, AS21010JB1, AS21010PB1,
AS21511JB1, AS21511PB1, AS21510JB1, AS21510PB1, AS21210JB1,
AS21210PB1 that all register with the PHY ID 0x7500 0x9410 on C45
registers before the firmware is loaded.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Link: https://patch.msgid.link/20250517201353.5137-7-ansuelsmth@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:56:10 -07:00
Christian Marangi
830877d89e net: phy: Add support for Aeonsemi AS21xxx PHYs
Add support for Aeonsemi AS21xxx 10G C45 PHYs. These PHYs integrate
an IPC to setup some configuration and require special handling to
sync with the parity bit. The parity bit is a way the IPC use to
follow correct order of command sent.

Supported PHYs AS21011JB1, AS21011PB1, AS21010JB1, AS21010PB1,
AS21511JB1, AS21511PB1, AS21510JB1, AS21510PB1, AS21210JB1,
AS21210PB1 that all register with the PHY ID 0x7500 0x7510
before the firmware is loaded.

They all support up to 5 LEDs with various HW mode supported.

While implementing it was found some strange coincidence with using the
same logic for implementing C22 in MMD regs in Broadcom PHYs.

For reference here the AS21xxx PHY name logic:

AS21x1xxB1
    ^ ^^
    | |J: Supports SyncE/PTP
    | |P: No SyncE/PTP support
    | 1: Supports 2nd Serdes
    | 2: Not 2nd Serdes support
    0: 10G, 5G, 2.5G
    5: 5G, 2.5G
    2: 2.5G

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Link: https://patch.msgid.link/20250517201353.5137-6-ansuelsmth@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:56:10 -07:00
Christian Marangi
d6c45707ac net: phy: introduce genphy_match_phy_device()
Introduce new API, genphy_match_phy_device(), to provide a way to check
to match a PHY driver for a PHY device based on the info stored in the
PHY device struct.

The function generalize the logic used in phy_bus_match() to check the
PHY ID whether if C45 or C22 ID should be used for matching.

This is useful for custom .match_phy_device function that wants to use
the generic logic under some condition. (example a PHY is already setup
and provide the correct PHY ID)

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Link: https://patch.msgid.link/20250517201353.5137-5-ansuelsmth@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:56:10 -07:00
Christian Marangi
1b76b2497a net: phy: nxp-c45-tja11xx: simplify .match_phy_device OP
Simplify .match_phy_device OP by using a generic function and using the
new phy_id PHY driver info instead of hardcoding the matching PHY ID
with new variant for macsec and no_macsec PHYs.

Also make use of PHY_ID_MATCH_MODEL macro and drop PHY_ID_MASK define to
introduce phy_id and phy_id_mask again in phy_driver struct.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Link: https://patch.msgid.link/20250517201353.5137-4-ansuelsmth@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:56:09 -07:00
Christian Marangi
5253972cb9 net: phy: bcm87xx: simplify .match_phy_device OP
Simplify .match_phy_device OP by using a generic function and using the
new phy_id PHY driver info instead of hardcoding the matching PHY ID.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Link: https://patch.msgid.link/20250517201353.5137-3-ansuelsmth@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:56:09 -07:00
Christian Marangi
31afd6bc55 net: phy: pass PHY driver to .match_phy_device OP
Pass PHY driver pointer to .match_phy_device OP in addition to phydev.
Having access to the PHY driver struct might be useful to check the
PHY ID of the driver is being matched for in case the PHY ID scanned in
the phydev is not consistent.

A scenario for this is a PHY that change PHY ID after a firmware is
loaded, in such case, the PHY ID stored in PHY device struct is not
valid anymore and PHY will manually scan the ID in the match_phy_device
function.

Having the PHY driver info is also useful for those PHY driver that
implement multiple simple .match_phy_device OP to match specific MMD PHY
ID. With this extra info if the parsing logic is the same, the matching
function can be generalized by using the phy_id in the PHY driver
instead of hardcoding.

Rust wrapper callback is updated to align to the new match_phy_device
arguments.

Suggested-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Benno Lossin <lossin@kernel.org> # for Rust
Reviewed-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
Link: https://patch.msgid.link/20250517201353.5137-2-ansuelsmth@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:56:09 -07:00
Jiawen Wu
d42d440746 net: libwx: Fix log level
There is a log should be printed as info level, not error level.

Fixes: 9bfd65980f ("net: libwx: Add sriov api for wangxun nics")
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Link: https://patch.msgid.link/67409DB57B87E2F0+20250519063357.21164-1-jiawenwu@trustnetic.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:55:34 -07:00
Jakub Kicinski
d83ec0b284 Merge branch 'there-are-some-bugfix-for-hibmcge-driver'
Jijie Shao says:

====================
There are some bugfix for hibmcge driver

v1: https://lore.kernel.org/20250430093127.2400813-1-shaojijie@huawei.com
====================

Link: https://patch.msgid.link/20250517095828.1763126-1-shaojijie@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:53:54 -07:00
Jijie Shao
1b45443b84 net: hibmcge: fix wrong ndo.open() after reset fail issue.
If the driver reset fails, it may not work properly.
Therefore, the ndo.open() operation should be rejected.

In this patch, the driver calls netif_device_detach()
before the reset and calls netif_device_attach()
after the reset succeeds. If the reset fails,
netif_device_attach() is not called. Therefore,
netdev does not present and cannot be opened.

If reset fails, only the PCI reset (via sysfs)
can be used to attempt recovery.

Fixes: 3f5a61f6d5 ("net: hibmcge: Add reset supported in this module")
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250517095828.1763126-3-shaojijie@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:53:51 -07:00
Jijie Shao
009970506c net: hibmcge: fix incorrect statistics update issue
When the user dumps statistics, the hibmcge driver automatically
updates all statistics. If the driver is performing the reset operation,
the error data of 0xFFFFFFFF is updated.

Therefore, if the driver is resetting, the hbg_update_stats_by_info()
needs to return directly.

Fixes: c0bf9bf31e ("net: hibmcge: Add support for dump statistics")
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250517095828.1763126-2-shaojijie@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:53:51 -07:00
Justin Lai
f44092606a rtase: Use min() instead of min_t()
Use min() instead of min_t() to avoid the possibility of casting to the
wrong type.

Signed-off-by: Justin Lai <justinlai0215@realtek.com>
Reviewed-by: Joe Damato <jdamato@fastly.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250520042031.9297-1-justinlai0215@realtek.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:51:07 -07:00
Jakub Kicinski
c6634c98e6 Merge branch 'net-faster-and-simpler-crc32c-computation'
Eric Biggers says:

====================
net: faster and simpler CRC32C computation

Update networking code that computes the CRC32C of packets to just call
crc32c() without unnecessary abstraction layers.  The result is faster
and simpler code.

Patches 1-7 add skb_crc32c() and remove the overly-abstracted and
inefficient __skb_checksum().

Patches 8-10 replace skb_copy_and_hash_datagram_iter() with
skb_copy_and_crc32c_datagram_iter(), eliminating the unnecessary use of
the crypto layer.  This unblocks the conversion of nvme-tcp to call
crc32c() directly instead of using the crypto layer, which patch 9 does.

v1: https://lore.kernel.org/20250511004110.145171-1-ebiggers@kernel.org
====================

Link: https://patch.msgid.link/20250519175012.36581-1-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:40:27 -07:00
Eric Biggers
c93f75b2d7 net: remove skb_copy_and_hash_datagram_iter()
Now that skb_copy_and_hash_datagram_iter() is no longer used, remove it.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-11-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:40:17 -07:00
Eric Biggers
427fff9aff nvme-tcp: use crc32c() and skb_copy_and_crc32c_datagram_iter()
Now that the crc32c() library function directly takes advantage of
architecture-specific optimizations and there also now exists a function
skb_copy_and_crc32c_datagram_iter(), it is unnecessary to go through the
crypto_ahash API.  Just use those functions.  This is much simpler, and
it also improves performance due to eliminating the crypto API overhead.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-10-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:40:17 -07:00
Eric Biggers
ea6342d989 net: add skb_copy_and_crc32c_datagram_iter()
Since skb_copy_and_hash_datagram_iter() is used only with CRC32C, the
crypto_ahash abstraction provides no value.  Add
skb_copy_and_crc32c_datagram_iter() which just calls crc32c() directly.

This is faster and simpler.  It also doesn't have the weird dependency
issue where skb_copy_and_hash_datagram_iter() depends on
CONFIG_CRYPTO_HASH=y without that being expressed explicitly in the
kconfig (presumably because it was too heavyweight for NET to select).
The new function is conditional on the hidden boolean symbol NET_CRC32C,
which selects CRC32.  So it gets compiled only when something that
actually needs CRC32C packet checksums is enabled, it has no implicit
dependency, and it doesn't depend on the heavyweight crypto layer.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-9-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:40:17 -07:00
Eric Biggers
b82f72292a lib/crc32: remove unused support for CRC32C combination
crc32c_combine() and crc32c_shift() are no longer used (except by the
KUnit test that tests them), and their current implementation is very
slow.  Remove them.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-8-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:40:17 -07:00
Eric Biggers
70c96c7cb9 net: fold __skb_checksum() into skb_checksum()
Now that the only remaining caller of __skb_checksum() is
skb_checksum(), fold __skb_checksum() into skb_checksum().  This makes
struct skb_checksum_ops unnecessary, so remove that too and simply do
the "regular" net checksum.  It also makes the wrapper functions
csum_partial_ext() and csum_block_add_ext() unnecessary, so remove those
too and just use the underlying functions.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-7-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:40:16 -07:00
Eric Biggers
99de9d4022 sctp: use skb_crc32c() instead of __skb_checksum()
Make sctp_compute_cksum() just use the new function skb_crc32c(),
instead of calling __skb_checksum() with a skb_checksum_ops struct that
does CRC32C.  This is faster and simpler.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-6-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:40:16 -07:00
Eric Biggers
62673b7df9 RDMA/siw: use skb_crc32c() instead of __skb_checksum()
Instead of calling __skb_checksum() with a skb_checksum_ops struct that
does CRC32C, just call the new function skb_crc32c().  This is faster
and simpler.

Acked-by: Leon Romanovsky <leon@kernel.org>
Reviewed-by: Bernard Metzler <bmt@zurich.ibm.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-5-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:40:05 -07:00
Eric Biggers
86edc94da1 net: use skb_crc32c() in skb_crc32c_csum_help()
Instead of calling __skb_checksum() with a skb_checksum_ops struct that
does CRC32C, just call the new function skb_crc32c().  This is faster
and simpler.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-4-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:39:59 -07:00
Eric Biggers
a5bd029c73 net: add skb_crc32c()
Add skb_crc32c(), which calculates the CRC32C of a sk_buff.  It will
replace __skb_checksum(), which unnecessarily supports arbitrary
checksums.  Compared to __skb_checksum(), skb_crc32c():

   - Uses the correct type for CRC32C values (u32, not __wsum).

   - Does not require the caller to provide a skb_checksum_ops struct.

   - Is faster because it does not use indirect calls and does not use
     the very slow crc32c_combine().

According to commit 2817a336d4 ("net: skb_checksum: allow custom
update/combine for walking skb") which added __skb_checksum(), the
original motivation for the abstraction layer was to avoid code
duplication for CRC32C and other checksums in the future.  However:

   - No additional checksums showed up after CRC32C.  __skb_checksum()
     is only used with the "regular" net checksum and CRC32C.

   - Indirect calls are expensive.  Commit 2544af0344 ("net: avoid
     indirect calls in L4 checksum calculation") worked around this
     using the INDIRECT_CALL_1 macro. But that only avoided the indirect
     call for the net checksum, and at the cost of an extra branch.

   - The checksums use different types (__wsum and u32), causing casts
     to be needed.

   - It made the checksums of fragments be combined (rather than
     chained) for both checksums, despite this being highly
     counterproductive for CRC32C due to how slow crc32c_combine() is.
     This can clearly be seen in commit 4c2f245496 ("sctp: linearize
     early if it's not GSO") which tried to work around this performance
     bug.  With a dedicated function for each checksum, we can instead
     just use the proper strategy for each checksum.

As shown by the following tables, the new function skb_crc32c() is
faster than __skb_checksum(), with the improvement varying greatly from
5% to 2500% depending on the case.  The largest improvements come from
fragmented packets, mainly due to eliminating the inefficient
crc32c_combine().  But linear packets are improved too, especially
shorter ones, mainly due to eliminating indirect calls.  These
benchmarks were done on AMD Zen 5.  On that CPU, Linux uses IBRS instead
of retpoline; an even greater improvement might be seen with retpoline:

    Linear sk_buffs

        Length in bytes    __skb_checksum cycles    skb_crc32c cycles
        ===============    =====================    =================
                     64                       43                   18
                    256                       94                   77
                   1420                      204                  161
                  16384                     1735                 1642

    Nonlinear sk_buffs (even split between head and one fragment)

        Length in bytes    __skb_checksum cycles    skb_crc32c cycles
        ===============    =====================    =================
                     64                      579                   22
                    256                      829                   77
                   1420                     1506                  194
                  16384                     4365                 1682

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-3-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:39:58 -07:00
Eric Biggers
55d22ee035 net: introduce CONFIG_NET_CRC32C
Add a hidden kconfig symbol NET_CRC32C that will group together the
functions that calculate CRC32C checksums of packets, so that these
don't have to be built into NET-enabled kernels that don't need them.

Make skb_crc32c_csum_help() (which is called only when IP_SCTP is
enabled) conditional on this symbol, and make IP_SCTP select it.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://patch.msgid.link/20250519175012.36581-2-ebiggers@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:39:58 -07:00
Jakub Kicinski
51ebe6b14f Merge branch 'tools-ynl-gen-add-support-for-inherited-selector-and-therefore-tc'
Jakub Kicinski says:

====================
tools: ynl-gen: add support for "inherited" selector and therefore TC

Add C codegen support for constructs needed by TC, namely passing
sub-message selector from a lower nest, and sub-messages with
fixed headers.
====================

Link: https://patch.msgid.link/20250520161916.413298-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-05-21 15:38:44 -07:00
Arnd Bergmann
b5125e69fb More Qualcomm Arm64 DeviceTree updates for v6.16
Support for CPU frequency scaling is enabled on the X Elite platform.
 Also on X Elite, support for the HP EliteBook Ultra G1q is introduced.
 
 Support for the QCS6490 RB3gen2 Industrial Mezzanine is also added.
 
 PCIe controllers and PHYs are described and enabled across IPQ5018,
 IPQ5332, and IPQ5424. On IPQ9474 the missing MHI register range is
 added. The TCSR block is described and used to enable download mode
 flags on IPQ5018.
 
 The venus video encoder/decoder is enabled on the MSM8998-based Lenovo
 Miix 630 laptop.
 
 The crypto engine is enabled on QCM2290 and QCS615. Bluetooth is enabled
 on the QCM2210-based RB1 board.
 
 The Fairphone FP5 gains Displayport sound support.
 
 SAR2130P display nodes are added.
 
 On 8cx Gen3 the sensor remoteproc (SLPI) is introduced and this is
 enabled on Lenovo Thinkpad X13s and the CRD.
 
 The SDM845-based Samsung Galaxy S9 gains graphics, modem and initial
 sound support.
 
 On SDX75 the QPIC BAM and NAND support is added, and these are enabled
 on the IDP board.
 
 LLCC is added for SM8750. SM8550 gains Iris video decoder support.
 
 For X Elite, Lenovo ThinkPad T14s support for the SDX62 modem, as well
 as audio headset, is added. ASUS Vivobook S 15 gains Bluetooth support,
 Microsoft Surface Laptop 7 models gets support for DP over USB Type-C,
 HP Omnibook X 14 gains audio support. The devkit gets the USB multiport
 controller and the two USB Type-A ports described.
 
 Additionally a variety of Devicetree fixes are introduced, primarily
 identified through binding validation.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmgr6zgVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3Fy8wP+wYwYDpCg9j4m+ccM9tpgbouZLnd
 roVlGEQ56nct4rocKezOo8bJ1I6CIN0gQNpeoJEq5vUfeKb2/k/Olg7s4Bq9eueC
 qjHiftP8RcSWF80RALvSmSRN1JbLxTx9JZoK6mnuymbd9OEXI6JuGViNcCBBpy3i
 XRVQAAPG2VeHd3oWIXdv0cAhT477nNxHQor6SH/JlrhBG5ShR4KDixcgPBEyWad1
 5R8hw7pjjhHWQEUBmGlJA73fWdPMPGWw3yufxFKhn9D1J4he5YBMtCDLeIfEyNgL
 0wtHkw6mkKH0H6ewaogjwLB+J1FV/t66QOeI+F8bt3g17yfrbCad2uoIdR1E6SHj
 5WVsdjlcdfaQ/YZwLqa8FM7EgoYpoXv56XLCRjDUL84nzvgFjT+yOuHssb110JQX
 tM3SFDORFIwXV6Ad5zUH0YPnx3qS5uW9ac7XUH6cM+595P2HlFra4+9u4fQ582Pa
 S6VGjTMSP7Esmy3zepcVBrzjl+jwhLPdDFrldj5aVB1EqBWtm2OK8M98ufg6z+/Q
 AcPzDafbe8opFO9lf1uGRor1NanLLhsZ3w2wZtyddwjn3bS9v8hZq3UlaPfQz/QL
 UU6IW2/qU6QQ94mRFOk2PZIyMZ/lKncAQXHS9B5KwAP9Ch5UCxvul43MVApdRAyT
 6fi8GYoEU+HrF/G5
 =NTyn
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmguUJIACgkQmmx57+YA
 GNkYzRAAn9trCzvy27M+Ozu0ZSzbpJtN8vtNOd+/3WERjRtd9Ikpb6vK6CNukc8V
 4SgO7IN3MPPRMXm3Vf9t5qJR/MICRb0ZiuMGDkOWGR/pDOc2e/mIKz54XWSLfT0g
 11pDKxLLiDK4e8s/NMGNT6ro9fk6fv4JO9Ylk/PdykRQoac7Dko0ArDbQ6w4SZ4x
 H18um4z3AJu7lDdwe5XmQjaLzKohMZK//l7Ie3CDbwYitE0EnJAhcgi1GIGUnTd1
 j4clArJo8shFeHWvmdhvVGPOFC4vGP76yFcrrrJ/hLGEgKjcvjO1uJAs/Or0WqI2
 F4JFdrz2kALH026qeL2CYPYTPvQrtusdko13GZGIKsREbbyrONoHrgVaZ9W/mz84
 Ac8pAUSG9mFqrOatGA3LXg7PrKKgVmxZa2qbf86QOM8MO47WFBAeawH00zD8Re/L
 1VdYZarLPq+8ZmqTR+bWjAfC+45G4JfbQewl8zZu60Z+82WzesZHhutz/WPiyuqy
 OZYjyin7Xxl8kPFH7tRuVnQ0CKtDLCoofi+lP6pDvJCGd694nbNNKJXgWTyI5f9i
 2Ac479PxHArbUkNEgi3/d58cg7e6fNoR3qmiCaFghIQZAvDlHWaUXlCFTN3VrehV
 NfHOwmgdJCZwnmT+D0Mje/wULlt60uSwmy31k+lpZfAnD4P8D20=
 =dAtQ
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-for-6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

More Qualcomm Arm64 DeviceTree updates for v6.16

Support for CPU frequency scaling is enabled on the X Elite platform.
Also on X Elite, support for the HP EliteBook Ultra G1q is introduced.

Support for the QCS6490 RB3gen2 Industrial Mezzanine is also added.

PCIe controllers and PHYs are described and enabled across IPQ5018,
IPQ5332, and IPQ5424. On IPQ9474 the missing MHI register range is
added. The TCSR block is described and used to enable download mode
flags on IPQ5018.

The venus video encoder/decoder is enabled on the MSM8998-based Lenovo
Miix 630 laptop.

The crypto engine is enabled on QCM2290 and QCS615. Bluetooth is enabled
on the QCM2210-based RB1 board.

The Fairphone FP5 gains Displayport sound support.

SAR2130P display nodes are added.

On 8cx Gen3 the sensor remoteproc (SLPI) is introduced and this is
enabled on Lenovo Thinkpad X13s and the CRD.

The SDM845-based Samsung Galaxy S9 gains graphics, modem and initial
sound support.

On SDX75 the QPIC BAM and NAND support is added, and these are enabled
on the IDP board.

LLCC is added for SM8750. SM8550 gains Iris video decoder support.

For X Elite, Lenovo ThinkPad T14s support for the SDX62 modem, as well
as audio headset, is added. ASUS Vivobook S 15 gains Bluetooth support,
Microsoft Surface Laptop 7 models gets support for DP over USB Type-C,
HP Omnibook X 14 gains audio support. The devkit gets the USB multiport
controller and the two USB Type-A ports described.

Additionally a variety of Devicetree fixes are introduced, primarily
identified through binding validation.

* tag 'qcom-arm64-for-6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (58 commits)
  arm64: dts: qcom: sm4450: Add RPMh power domains support
  arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: add retimers, dp altmode support
  arm64: dts: qcom: ipq5424: Enable PCIe PHYs and controllers
  arm64: dts: qcom: ipq5424: Add PCIe PHYs and controller nodes
  arm64: dts: qcom: sc7280: Mark FastRPC context banks as dma-coherent
  arm64: dts: qcom: sdx75-idp: Enable QPIC BAM & QPIC NAND support
  arm64: dts: qcom: sdx75: Add QPIC NAND support
  arm64: dts: qcom: sdx75: Add QPIC BAM support
  arm64: dts: qcom: qcm2290: Add crypto engine
  arm64: dts: qcom: x1e80100-vivobook-s15: Add bluetooth
  arm64: dts: qcom: x1e80100: Add PCIe lane equalization preset properties
  arm64: dts: qcom: qcs615: Fix up UFS clocks
  arm64: dts: qcom: sa8775p: Clean up the PSCI PDs
  arm64: dts: qcom: msm8996-oneplus: Add SLPI VDD_PX
  arm64: dts: qcom: sm6350-pdx213: Wire up USB regulators
  arm64: dts: qcom: msm8998-yoshino: Add QUSB2PHY VDD supply
  arm64: dts: qcom: msm8998-mtp: Add QUSB2PHY VDD supply
  arm64: dts: qcom: msm8998-fxtec: Add QUSB2PHY VDD supply
  arm64: dts: qcom: qcs615: Remove disallowed property from AOSS_QMP node
  arm64: dts: qcom: msm8998: Remove mdss_hdmi_phy phandle argument
  ...

Link: https://lore.kernel.org/r/20250520024248.38904-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 00:15:46 +02:00
Arnd Bergmann
13649a41be More Arm32 DeviceTree updates for v6.16
This adds missing LVDS clocks to APQ8064 display controller. The unused HDMI HPD
 gpio on ifc6410 is dropped (chip uses pinmuxed hpd function).
 
 Missing timer clocks are added to MSM8960 to address bindings warning.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmgr7RUVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FMd4P/29J4Rrx0moQyd9Juu0fXPkWdBeC
 3ukVd3YQBO9npY9JgiqlND5fC4hecjybiPReQIr6aDik5aeH3+aJOvnp9RoWoYO2
 jYjQgUeryQNB3fBjyWkIQs700k1LlHV0tw0yA4k83Vbf2BOnyWdUgzETSvJEzuFb
 OrsiLIcIhyrz/3hSaQzbIhh/m2okl5u5dzfWL1yF5PMYOQOy58//qWOzriJ260Pl
 5wveLkBnztp7lsPVVeJvoAyHTu2xirgqTA+6JXUEoV5WbZC6fPd6T4zHZyLLs1UD
 kV5NiLUF0+0QLxhx4AatDpxyxAsTX6rFOhaoML4zdt9cKsLDPDY2W/tZNnRj5zLl
 ACtZy8JuY6l2pbcQiTSIeM1WqqmvkjMnf83sq9TnAWtB/aFIT9YRLmW97Zgztwgo
 NMQtWShCs0wIzecsbnr37byzXLUTITtBoNEEGttD/wXQf2BtoY/YTqAf1MUzIpCi
 y0+AA4JNbA8XFS/Djm0ZB/pCec8P6pVd9oPou+ykO3G3EN1oitTpJERkWC4fXJmB
 pQ5kPKxpLMZDownN9fYfO+FeAeGuARSXvqPeYuRZ+zQucDBf1TNOZ6shGxscXlaD
 W2/VIKBOLt2bJFJCTZMohOnmF86G82+SRA2b1hFz3NHvJdq0mbsUX/OraStjArlw
 kqJMWP3n1iw4gYhO
 =C2G2
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmguUEwACgkQmmx57+YA
 GNnu8w/+KCssT7+odlNr159HVRygcHnzrJRJyb/PT8u8Xqtv3HwHiNaJm/zlSwdw
 bFBHEpTG4NeTzzwUObvJvcBcWGPoGP7MsQ0k5WWo0UeAhuha/B9Vt3hIwUk61MxI
 7Ni8E9V5e+4TWFu99giQGmWM/J6yT4xjOyWQwyJAneB5q6KXgLGo0JVuMPQJ4c44
 IFVplrnJTCbCQ7Ljc+U2yE22YaJKJB6hM8gexzpuGjzcaI7PRn5z8FoUXZ8a/Bbf
 o5w7cPyG/e9uW5MRjvEfe8bs4tKF6+zsKOns7oPLb73q5yQur36cZrq72OmklHn3
 /BRQ7UmG7UYdDAO/fKUtjRQTwHMmoc8JLdlcT2evj1tX2TCsdHNTmyzsnDJe6yMW
 opfeeb+FwQA5TVgeIaM4YEE5EkgR3IwMtw8Zjd12f4w80wnwda/kA2L42QUD6Yqv
 Cyzvo8c/JE9PhDBVxjM/vkpzD9/bbw7OmNralmLe1lx6RGPr51tNXlNHyL0Gjt7l
 +ukztqS9o2P0CuKpe006uSFFX7Sp2wIbcO2ripqKGl+FFG3jCqld/18ZH0rrIZXX
 7U8pZwKeLTI4Lf9I7gUj5GSULIgr6/0p+J/ovF8gaFN7tCc6mJ1f+yvZFu/Aal48
 sf52nBEutyUNFnbAXsS2nuwH3QmC86swqormMvzOBywluoZjLjo=
 =xV9I
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm32-for-6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

More Arm32 DeviceTree updates for v6.16

This adds missing LVDS clocks to APQ8064 display controller. The unused HDMI HPD
gpio on ifc6410 is dropped (chip uses pinmuxed hpd function).

Missing timer clocks are added to MSM8960 to address bindings warning.

* tag 'qcom-arm32-for-6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  ARM: dts: qcom: apq8064-ifc6410: drop HDMI HPD GPIO
  ARM: dts: qcom: apq8064: link LVDS clocks
  ARM: dts: qcom-msm8960: add missing clocks to the timer node

Link: https://lore.kernel.org/r/20250520024716.39418-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 00:14:36 +02:00
Arnd Bergmann
9896dde15a Additional MediaTek ARM64 DTS updates for v6.16
This addresses devicetree binding warnings happening on	the
 MDP3 nodes in mt8188 dts, reverts the commit adding the SCP
 firmware-name as strongly suggested by Arnd, and also adds
 some more late commits.
 
 In particular:
  - MT6359 PMIC
    - Renamed PMIC RTC node to fix dtbs_check warning
  - MT7988(A)
    - Support for SPI controllers was added to SoC and BPI-R4
    - Support for XSPHY, USB and	PCIe2 was added	as well
    - Fan and cooling maps were added to	BPI-R4 machine
    - Added BananaPi R4 2G5 machine variant
  - MT8365
    - Added touchscreen support to MT8365 Genio EVK
  - MT8188
    - Addressed dtbs_check warnings for MDP3 nodes
  - MT8390 (Genio)
    - Reverted SCP firmware-name	addition
 -----BEGIN PGP SIGNATURE-----
 
 iJ4EABYKAEYWIQQn3Xxr56ypAcSHzXSaNgTPrZeEeAUCaCxnIigcYW5nZWxvZ2lv
 YWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tAAoJEJo2BM+tl4R4FhUBANQb
 sZRLA0B51ZrM9PgXBDsWo6KxPM44bEKcScUfuE70AP4migjQhq6e6v90+MzsWW1L
 fbY1/Y37shh5OzPNBPKvAg==
 =yqrC
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmguT+YACgkQmmx57+YA
 GNnzAQ//cRfTFsLHjvYhbzgfYT9FNBjYyckeR/2sTYk3UJrZHjS00e8HQbCBOf/p
 y62gGH5WJ37Zf9GW2IFQvnBCtzFZyqWIp4zA714BHc+G65igsCv4Ke7p01GWyxKL
 REymONqI3fS+Oxzna5OL/n3OCl89RWeI/Nw95ekaPZ4YV/cDCQWagBrHjb4qQxym
 PTzdnhrWVfGNUNnunmXznWwcoK2+9pAqkqvQqRG6impW8ZuGemZZB+l172343nVX
 3Oq2sTteEqKS0Riyp3ZtxfFPTJL84aMW7PKN7OI3A34Pp1+gh1eEWdRlRoI3p7DL
 7cupzPz+7XQn43Q2c68U06L5fSUay4dm2mgyNHML19P61wq10xKsyqlfonResGLw
 bhHfrkvF74S/WFvjdtYrs1sYutucGbmASxG1RST4HRU/jxaevahnw9uYxbhKFToI
 1DiA8x6CUGxDASG1n+cT1CJYubti3fbzM5B6j4nu9tHXR4TW10YkVmhDIpyYpyO8
 pmsIz95BML4mPihtECoWq6VPrnCNwBut1eBf04tMWvy8lNzwjEoL4+DmtzrxsZB9
 Gqjtm99V9r2LG4NOqNtdYuOZnmNasVapnd71hwpFc6pKPMLDRuFPDNfzgQ89RRFe
 KlSmH/6fTj92eyOuKfB0Jfm5vNeqQP1keNyLq65KSytJBNmejNQ=
 =t+j+
 -----END PGP SIGNATURE-----

Merge tag 'mtk-dts64-for-v6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt

Additional MediaTek ARM64 DTS updates for v6.16

This addresses devicetree binding warnings happening on	the
MDP3 nodes in mt8188 dts, reverts the commit adding the SCP
firmware-name as strongly suggested by Arnd, and also adds
some more late commits.

In particular:
 - MT6359 PMIC
   - Renamed PMIC RTC node to fix dtbs_check warning
 - MT7988(A)
   - Support for SPI controllers was added to SoC and BPI-R4
   - Support for XSPHY, USB and	PCIe2 was added	as well
   - Fan and cooling maps were added to	BPI-R4 machine
   - Added BananaPi R4 2G5 machine variant
 - MT8365
   - Added touchscreen support to MT8365 Genio EVK
 - MT8188
   - Addressed dtbs_check warnings for MDP3 nodes
 - MT8390 (Genio)
   - Reverted SCP firmware-name	addition

* tag 'mtk-dts64-for-v6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux: (42 commits)
  Revert "arm64: dts: mediatek: mt8390-genio-common: Add firmware-name for scp0"
  arm64: dts: mediatek: mt8188: Address binding warnings for MDP3 nodes
  arm64: dts: mt6359: Rename RTC node to match binding expectations
  arm64: dts: mt8365-evk: Add goodix touchscreen support
  arm64: dts: mediatek: mt8188: Add missing #reset-cells property
  arm64: dts: airoha: en7581: Add PCIe nodes to EN7581 SoC evaluation board
  arm64: dts: airoha: en7581: Add gpio-ranges property for gpio controller
  arm64: dts: mediatek: mt7988a-bpi-r4: configure spi-nodes
  arm64: dts: mediatek: mt7988a-bpi-r4: Add fan and coolingmaps
  arm64: dts: mediatek: mt7988: add phy calibration efuse subnodes
  arm64: dts: mediatek: mt7988: move uart0 and spi1 pins to soc dtsi
  arm64: dts: mediatek: mt7988: add spi controllers
  arm64: dts: mediatek: mt7988a-bpi-r4: enable xsphy
  arm64: dts: mediatek: mt7988: Add xsphy for ssusb0/pcie2
  arm64: dts: mediatek: mt7988a-bpi-r4: allow hw variants of bpi-r4
  dt-bindings: arm: mediatek: add bpi-r4 2g5 phy variant
  arm64: dts: mt6359: Add missing 'compatible' property to regulators node
  arm/arm64: dts: mediatek: Add missing "#sound-dai-cells" to linux,bt-sco
  arm64: dts: mediatek: mt8390-genio-common: Set ssusb2 default dual role mode to host
  arm64: dts: mediatek: mt8395-genio-1200-evk: Disable unused backlight
  ...

Link: https://lore.kernel.org/r/20250520114356.1194450-1-angelogioacchino.delregno@collabora.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 00:12:54 +02:00
Arnd Bergmann
1e1ce25fb7 RK3036 usbphy addition and two Sonoff iHost adjustments.
-----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmgo3c0QHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgVnsCACZKgutcNF8nYQXWJ5cnuRI+EekrdRsYVNm
 1cPJVSx34bBrnZASM/fXcKj5GjHHXsMkNg7DLdHdtouUgYAeYr75DWFQ3kYbSEYB
 Dm7ZdMlJY+L82olU32gwv3lWMtFiZuZBFulcopFdsjJ2R0mS2vl3u3MsxSb4jd52
 MkXSNHnKHsOqiPd6IMnVV7Cu1dC4tm5XG4UDYcCFFB3GXd6I0XfxjcWiosuSXuLa
 xc/JhrIEClndliSkZCn4CgFtIf+uy7xauNFxisZfPHdgSXL/xxhIbbD+WL6wT+g7
 Sqd/QN1kwqZpnsJxvsXUOUGaJhGmfomVfrEFRvqxvyT0CoGpc4JB
 =rn5c
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmguT4QACgkQmmx57+YA
 GNlpRg//RW6651qaOSezbfjVXBodndXmA+YUn8/gi4U3UQwhKOw66aS6COoPHKOO
 iwcFhTUlHeOTTYvUk3YLFaeNhMV95uobG9iQ7PaQgmRejPPds2ep5RePtLglN3Dy
 VhP9VHpo/UywqH6S1M8ErQKPgpCmja2ZHTWlSEIuETEwFA9aMUpm4DXEkdIsxx+A
 XePIHI77RiA7Qq2rueW1j0AXQ7DiDBFFOmGRVW/3F93Xg2CspDRBkOKjQxOnJlTA
 8Kmecoo4YPUz2jMnpsMHPLVbNKmtIliSf8V/KV9uQawMpctmGBYBKkwZeimsrFGe
 tBvi53jVQBfnYE47j+cuBDp7/YKzJOjbOULjqEayth5Fpy51iqt4S6QdF1po9TCJ
 4FnPHKiD/I4YQsnEjr3eqJSwjCj0Zm3GPx/Rcmcev7XL21NHBH/ywurDfCo7PLFj
 tZiFrvQgb12ErtDkP1BTAn1gJqYFG9pCcjb65BVLbMfcbb+KdulyMPJoVga3E9/0
 Eh2SZx+RReVp0UTnYmBK32hgHN//1n6whzMycbYn/yaTSoDgB9pXR9oIrpwzngw8
 u6ED1Bn4pwgCPKzUD6RmQhBCkrIwpFLdLmpFfJcQkRRidif1eyqQQwjNItmWXyqX
 mBCTV7UfOxITw2XttmMBpQ3LlyZ0OAicNei/+K6lgoma0aVyypg=
 =IfpT
 -----END PGP SIGNATURE-----

Merge tag 'v6.16-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt

RK3036 usbphy addition and two Sonoff iHost adjustments.

* tag 'v6.16-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  ARM: dts: rockchip: add rk3036 usb2phy nodes and enable them on kylin
  ARM: dts: rockchip: Sonoff-iHost: correct IO domain voltages
  ARM: dts: rockchip: Sonoff-iHost: adjust SDIO for stability

Link: https://lore.kernel.org/r/3652020.5fSG56mABF@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 00:11:16 +02:00
Arnd Bergmann
f9930aef2c Power-domains needed for stability, dropping of unnecessary assigned-clocks
(handled by cpufreq) and fixes for dtc W=1 warnings.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmguC5QQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgcSAB/9lCcz+EbRmoV9vG4y+aqmD+7RKw91tnt0j
 Ly1JcyGShI/Q4KqbKQ4oyY/1B8ER8yAK3Fu0yrd7UcsJuLT0d5KH1dR6pKYWMdvl
 6ecCfN3EHorOvNfzZ/mIZO/kMkqmIniSo7m/uIiUyBZccNzYayjMzAaaQ+oNiys1
 wgXwGVC5NZnvHw/2QhNRha9EN56tbbPDpeeM58XD93by/nafO004eSqsdRthcYwk
 2bQYNDxEmBvGjO3XBXV+WDeTlV5e6Xk22Tt3GhhxhrKgrTxZn3WWN6pJtifhudCz
 loNdI87vwCgppEmdGA7eWIypwziYzgnPgMKuDLi3HZpj5zguVjvK
 =Jhxe
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmguT0MACgkQmmx57+YA
 GNn3JBAAkqedSKPnrw0PewZqDD/l48dyiZbsRt9PcBnROz7pEQELuTZ1H8Bw7whE
 Z1bPmwIWt9hhlZRbzuwXgIePvrsbb/yC4RcyZfq2IKVrdqBMHFfdb8j7gpBbl+pw
 +B4toHvrjRatFHp0jPy3LnQgvXdcG6lWI8PDQu7w4dPSHQeStYoxdYAKOqvkWN1p
 gfv9/XKZ/52zXgmgPSj1wSlnxj7HaoiN9aw+XMos31iFY6hjwRwnP2EfkK7qvjt3
 xqfkig6sPvDVZMDewWp18fOt9ZRthO9qL9fvDl+Z45wP2GCQQD9NG6miZ64CCbvR
 YzZS+2Zic0abcZb67W6eMj2NMoaNPh2b63T5q028QLWlPIjZUTXoaXdCgJE4e92r
 X6ljwdwVy6aMCgEO3KxDmIx8psQR2tGNlUBpmfuYUYnAqgtHK47aSnYjqsaVG4OV
 InFJ52TYfSfO6xgLQILJO4PvB3AONDcQM+Y4A3MdMOQN3x11rzTDp3LxXHUO1YVQ
 3BtCrin7xJ8+HWO9BkL+7NVjTlRnsAxYChQC+W9GFSrpQqxyRnAMj2DNpiUaW9IB
 l/vrdhYmyCXWbkx7jwJG4gmvqwhNbB9FK0xd/+eSRe1Fg3Wu2slE1AL9ZO1FrJ5p
 CKwERNF+f3IBI9ypuZq815+MhB46j8ufcJ5IJ47+1YF8geDphZY=
 =JxZr
 -----END PGP SIGNATURE-----

Merge tag 'v6.16-rockchip-dts64-3' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt

Power-domains needed for stability, dropping of unnecessary assigned-clocks
(handled by cpufreq) and fixes for dtc W=1 warnings.

* tag 'v6.16-rockchip-dts64-3' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: dts: rockchip: move rk3562 pinctrl node outside the soc node
  arm64: dts: rockchip: fix rk3562 pcie unit addresses
  arm64: dts: rockchip: move rk3528 pinctrl node outside the soc node
  arm64: dts: rockchip: remove a double-empty line from rk3576 core dtsi
  arm64: dts: rockchip: move rk3576 pinctrl node outside the soc node
  arm64: dts: rockchip: fix rk3576 pcie unit addresses
  arm64: dts: rockchip: Drop assigned-clock* from cpu nodes on rk3588
  arm64: dts: rockchip: Add missing SFC power-domains to rk3576

Link: https://lore.kernel.org/r/4798229.ejJDZkT8p0@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 00:10:11 +02:00