Commit graph

1,403,262 commits

Author SHA1 Message Date
Steven Rostedt
e64397f81c PM: tracing: Hide psci_domain_idle events under ARM_PSCI_CPUIDLE
The events psci_domain_idle_enter and psci_domain_idle_exit events are
only called when CONFIG_ARM_PSCI_CPUIDLE is defined. As each event can
take up to 5K (less for DEFINE_EVENT()) regardless if they are used or
not, it's best not to define them when they are not used. Add #ifdef
around these events when they are not used.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/20250612145408.074769245@goodmis.org
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-07-21 16:40:56 -04:00
Steven Rostedt
647fe16b46 PM: cpufreq: powernv/tracing: Move powernv_throttle trace event
As the trace event powernv_throttle is only used by the powernv code, move
it to a separate include file and have that code directly enable it.

Trace events can take up around 5K of memory when they are defined
regardless if they are used or not. It wastes memory to have them defined
in configurations where the tracepoint is not used.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/20250612145407.906308844@goodmis.org
Fixes: 0306e481d4 ("cpufreq: powernv/tracing: Add powernv_throttle tracepoint")
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-07-21 16:40:56 -04:00
Steven Rostedt
06cc77a63f alarmtimer: Hide alarmtimer_suspend event when RTC_CLASS is not configured
The trace event alarmtimer_suspend is only called when RTC_CLASS is
defined. As every event created can create up to 5K of text and meta data
regardless if it is called or not it should not be created and waste
memory. Hide the event when CONFIG_RTC_CLASS is not defined.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/20250612095828.6d75dfa3@batman.local.home
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-07-21 16:40:56 -04:00
Steven Rostedt
a3b366dbf4 tracing, AER: Hide PCIe AER event when PCIEAER is not configured
The event aer_event is only used when CONFIG_PCIEAER is configured. It
should not be created when it is not. When an event is created it creates
around 5K of text and meta data regardless if the tracepoint is used or
not. Instead of wasting this memory, put #ifdef around the event to not
create it when it is not used.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Tony Luck <tony.luck@intel.com>
Link: https://lore.kernel.org/20250612094932.4a08abd6@batman.local.home
Acked-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-07-21 16:40:56 -04:00
Steven Rostedt
23a2d4c64e ktest.pl: Always display BUILD_DIR and OUTPUT_DIR at the start of tests
As ktest.pl can run in various different directories, to make sure the
test is running in the proper directory with the proper source and proper
destination directory, display the content of BUILD_DIR and OUTPUT_DIR at
the start of every test.

This can be helpful for the test runner to stop the test if a test is
running in the wrong location instead of finding out after the test has
completed.

Cc: "John Warthog9 Hawley" <warthog9@kernel.org>
Cc: Dhaval Giani <dhaval.giani@gmail.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/20250718202053.898022631@kernel.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2025-07-21 16:31:04 -04:00
Steven Rostedt
61f7e318e9 ktest.pl: Prevent recursion of default variable options
If a default variable contains itself, do not recurse on it.

For example:

  ADD_CONFIG := ${CONFIG_DIR}/temp_config
  DEFAULTS
  ADD_CONFIG = ${CONFIG_DIR}/default_config ${ADD_CONFIG}

The above works because the temp variable ADD_CONFIG (is a temp because it
is created with ":=") is already defined, it will be substituted in the
variable option. But if it gets commented out:

  # ADD_CONFIG := ${CONFIG_DIR}/temp_config
  DEFAULTS
  ADD_CONFIG = ${CONFIG_DIR}/default_config ${ADD_CONFIG}

Then the above will go into a recursive loop where ${ADD_CONFIG} will
get replaced with the current definition of ADD_CONFIG which contains the
${ADD_CONFIG} and that will also try to get converted. ktest.pl will error
after 100 attempts of recursion and fail.

When replacing a variable with the default variable, if the default
variable contains itself, do not replace it.

Cc: "John Warthog9 Hawley" <warthog9@kernel.org>
Cc: Dhaval Giani <dhaval.giani@gmail.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/20250718202053.732189428@kernel.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2025-07-21 16:31:04 -04:00
Steven Rostedt
acd98e230e ktest.pl: Have -D option work without a space
Allow -DBUILD_TYPE=boot work the same as -D BUILD_TYPE=boot just like
normal single character option does in most applications.

Cc: "John Warthog9 Hawley" <warthog9@kernel.org>
Cc: Dhaval Giani <dhaval.giani@gmail.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/20250718202053.567246162@kernel.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2025-07-21 16:31:04 -04:00
Steven Rostedt
3bcdb6e90c ktest.pl: Allow command option -D to override temp variables
Currently -D only updates the persistent options that are defined with
"=". Allow it to also override all temp variables that are defined with
":=".

 ktest.pl -D 'USE_TEMP_DIR:=1' -D 'TEST_TYPE[2]=build' config

Cc: "John Warthog9 Hawley" <warthog9@kernel.org>
Cc: Dhaval Giani <dhaval.giani@gmail.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/20250718202053.399653933@kernel.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2025-07-21 16:31:04 -04:00
Steven Rostedt
23b772c15f ktest.pl: Add -D option to override options
Add -D option that lets the user override options in the config.

For instance, if the config has: BUILD_NOCLEAN=1 which prevents mrproper
from being called before builds, and the user wants to call it once. The
user can run:

  ktest -D BUILD_NOCLEAN=0 config

And the default "BUILD_NOCLEAN" options will be disabled.

If the user wants to change the second test to do a build and not boot,
the user can run:

  ktest -D 'TEST_TYPE[2]=build' config

Where the '[#]' is for the test to assign the variable for. In the above
example, it will happen on test 2.

Cc: "John Warthog9 Hawley" <warthog9@kernel.org>
Cc: Dhaval Giani <dhaval.giani@gmail.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/20250718202053.231478909@kernel.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2025-07-21 16:31:04 -04:00
Aaron Kling
1d264d3a19 dt-bindings: thermal: tegra: Document Tegra210B01
Add the compatible string for Tegra210B01 SOC_THERM

Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
Link: https://lore.kernel.org/r/20250720-t210b01-v2-5-9cb209f1edfc@gmail.com
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
2025-07-21 22:23:39 +02:00
Aleksander Jan Bajkowski
a9302f8fbe dt-bindings: thermal: mediatek: Add fallback compatible string for MT7981 and MT8516
The ‘mediatek,mt7981-thermal’ and ‘mediatek,mt8516-thermal’ strings
aren't definied in the driver. Both should have fallback compatible
strings. This commit fixes this issue.

Fixes: 788494ba09 ("dt-bindings: thermal: convert Mediatek Thermal to the json-schema")
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Rafał Miłecki <rafal@milecki.pl>
Link: https://lore.kernel.org/r/20250712195904.6988-2-olek2@wp.pl
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
2025-07-21 22:13:46 +02:00
Michael-CY Lee
84b62b72b4 wifi: cfg80211/mac80211: report link ID for unexpected frames
The upper layer may require the link ID to properly handle
unexpected frames. For instance, if hostapd, operating as an
AP MLD, receives a data frame from a non-associated STA,
it must send deauthentication to the link on which the STA is
operating.

Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
Reviewed-by: Money Wang <money.wang@mediatek.com>
Link: https://patch.msgid.link/20250721065159.1740992-1-michael-cy.lee@mediatek.com
[edit commit message]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-07-21 19:40:59 +02:00
Michael-CY Lee
4970e393eb wifi: mac80211: determine missing link_id in ieee80211_rx_for_interface() based on frequency
For broadcast frames, every interface might have to process it and
therefore the link_id cannot be determined in the driver.

In mac80211, when the frame is about to be forwarded to each interface,
we can use the member "freq" in struct ieee80211_rx_status to determine
the "link_id" for each interface.

Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
Reviewed-by: Money Wang <money.wang@mediatek.com>
Link: https://patch.msgid.link/20250721062929.1662700-1-michael-cy.lee@mediatek.com
[simplify, remove unnecessary link->conf check]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-07-21 19:39:43 +02:00
Double Lo
c639a44ac6 wifi: brcmfmac: support CYW54591 PCIE device
CYW54591 is a variant of BCM4355 silicon with the same chipid. In the
chipid-fwname mapping table, apply chiprev 13 to identify CYW54591.
Skip reading OTP process for CYW chip since it contains vendor specific
information which is not common for cypress.

Signed-off-by: Double Lo <double.lo@cypress.com>
Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
Signed-off-by: Ian Lin <ian.lin@infineon.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Link: https://patch.msgid.link/20250624093453.7264-1-ian.lin@infineon.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-07-21 19:36:09 +02:00
Gokul Sivakumar
579bf8037b wifi: brcmfmac: fix P2P discovery failure in P2P peer due to missing P2P IE
After commit bd99a3013b ("brcmfmac: move configuration of probe request
IEs"), the probe request MGMT IE addition operation brcmf_vif_set_mgmt_ie()
got moved from the brcmf_p2p_scan_prep() to the brcmf_cfg80211_scan().

Because of this, as part of the scan request handler for the P2P Discovery,
vif struct used for adding the Probe Request P2P IE in firmware got changed
from the P2PAPI_BSSCFG_DEVICE vif to P2PAPI_BSSCFG_PRIMARY vif incorrectly.
So the firmware stopped adding P2P IE to the outgoing P2P Discovery probe
requests frames and the other P2P peers were unable to discover this device
causing a regression on the P2P feature.

To fix this, while setting the P2P IE in firmware, properly use the vif of
the P2P discovery wdev on which the driver received the P2P scan request.
This is done by not changing the vif pointer, until brcmf_vif_set_mgmt_ie()
is completed.

Fixes: bd99a3013b ("brcmfmac: move configuration of probe request IEs")
Signed-off-by: Gokul Sivakumar <gokulkumar.sivakumar@infineon.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Link: https://patch.msgid.link/20250626050706.7271-1-gokulkumar.sivakumar@infineon.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-07-21 19:35:58 +02:00
Johannes Berg
be06a8c731 wifi: cfg80211: reject HTC bit for management frames
Management frames sent by userspace should never have the
order/HTC bit set, reject that. It could also cause some
confusion with the length of the buffer and the header so
the validation might end up wrong.

Link: https://patch.msgid.link/20250718202307.97a0455f0f35.I1805355c7e331352df16611839bc8198c855a33f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-07-21 19:35:45 +02:00
Miri Korenblit
460114eae8 wifi: mac80211: remove ieee80211_remove_key
It is no longer used, remove it.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250721091956.e964ceacd85c.Idecab8ef161fa58e000b3969bc936399284b79f0@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-07-21 19:35:17 +02:00
Stephen Boyd
8e76682359 Amlogic clock updates for v6.17
* Use the auxiliary reset controller implementation in the axg-audio,
   instead of implementing the reset controller in clock.
 * Drop unnecessary clock controller headers
 * Drop clock controller big regmap tables
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE9OFZrhjz9W1fG7cb5vwPHDfy2oUFAmh2g9oACgkQ5vwPHDfy
 2oWIMRAAqVQUl+ZlV7riEPsWvFRA2Ba5GOgHBV/cILweEZH8O6mZe72ibfyxKl1d
 4WFlJwBLycDw/Gfh9S+qp0sY8hgK2+sL1ntNHlUJaEE4V5IeccDy+U9a4PKEbMbt
 nR8GmOOYmg74fvB63a+Z0uahUKbT7lQR9XVsAaO0/fk4G9+FV4CQnZbUSuCokCt8
 hsBkXOru1QTIsjGpST1gmhX5c6MnVWEFpw13x5xF3l50j2pRGjxmAkSsoG3aDlEu
 q6FEQrlNbM1239/vt2L/YMW0TF1F8h5yhQ4lzsHlmvx9rk7w8xnmdBqgdFeH0iTs
 /Oit29jMwD1napCqS5Ky4zrDI/krTg5diPljs+QsBJ/e4tUxEO+z4+C7iD69rV0o
 +hc0ZTSpVMp/InRpna/TuPVtSuDZSLuTNVm14aMyWsM/Eg2umZNewLzGV5rW0Zsf
 Pl9brAG3L4IEbDtPTe91uNbVv1CPT4U0lZtwSwXDxjfWL6O9fVGRflezqwBfAcD7
 E7Tq1yaBqko+nozSspQSDKaBzEHku0Q+FFbcIRzyqtG4gr3w7J1MEIsNsDQnvbbR
 ddhHHN8CMlT6g0ZhCGDr62q3HxcSoGCMuDfLjjpvCLuJphzh0i5cx15wZwGBxRSz
 So2lQ5Qslp6ceuL7mAzfoHVAsQS+x3x8RmUojHbPJ7QjrkwlKos=
 =ln2E
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmh+efYUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSUxgw//WWErqWzXIn/Xc5Lz+HSAnB8WsOfw
 qP97ZkH2UKmIXVoXh3M/cWW28GpXS06NdPVpIbl6yuk6WE6ldC3CJOlnGjCCg3aO
 nzLoxZKXuixtdCgtVOr/N1Nh4fHfSbVwj4PH7gxz0KgUpaqKPacILeh+IkgsxwEg
 +twoJa7hA7yVhWpvcPtnAO9//MCdj1CSw1DAmKk/O7ASf+sztkeiZteBEjDwT73l
 RNxkleqs8kAi+6B4JdPNlPdc45ZeK1l5c6Bm1o28BZVThKoI3jcy4VO+d3PP8UXA
 Ntm4x1NMUshiGCAxBojmAEUpT5Me4wrFDasOVn2ITPhl9orAxEDC+jVIHr9aKv7z
 d08MQ6yLdQ0srw+cr0MDIUpF/End65oDJw3zGcLT3BjJR1RpJ/veL6FDa1QSi3to
 hkzfyXqg4LyOcA6ZzvIOLPoNrI3eL4IM+9//sZ+VFipfB9Ns/m08B0Mr0Bsxy2lG
 vYQWc3AEZW2IxW3xoBcL7LdR9kwhJmq0h/wGUDSw8Ip8idyvQV7szuUomUGQdLPd
 RDjnpcOLHj/kk2qtY3T0RNkUTtjl3wVwi9ei+dyRWYXdsjSBO7ayP9CIWpOjqw9r
 3U1P3K3okqdlHKU5x1j2aDd6tAGvdGLPaG3TtJ4VuzU/qX9JwwDulebj3lgdIAIo
 +8mulfOLyE+RA3M=
 =ktkt
 -----END PGP SIGNATURE-----

Merge tag 'clk-meson-v6.17-1' of https://github.com/BayLibre/clk-meson into clk-amlogic

Pull Amlogic clk driver updates from Jerome Brunet:

 - Use the auxiliary reset controller implementation in the
   Amlogic axg-audio, instead of implementing the reset
   controller in drivers/clk
 - Drop unnecessary clock controller headers for Amlogic drivers
 - Drop clock controller big regmap tables in the Amlogic drivers

* tag 'clk-meson-v6.17-1' of https://github.com/BayLibre/clk-meson:
  clk: amlogic: s4: remove unused data
  clk: amlogic: drop clk_regmap tables
  clk: amlogic: get regmap with clk_regmap_init
  clk: amlogic: remove unnecessary headers
  clk: amlogic: axg-audio: use the auxiliary reset driver
  clk: tests: add clk_hw_get_dev() and clk_hw_get_of_node() tests
  clk: tests: Make clk_register_clk_parent_data_device_driver() common
  clk: add a clk_hw helpers to get the clock device or device_node
2025-07-21 10:32:46 -07:00
Jacek Kowalski
61114910a5 e1000e: ignore uninitialized checksum word on tgp
As described by Vitaly Lifshits:

> Starting from Tiger Lake, LAN NVM is locked for writes by SW, so the
> driver cannot perform checksum validation and correction. This means
> that all NVM images must leave the factory with correct checksum and
> checksum valid bit set.

Unfortunately some systems have left the factory with an uninitialized
value of 0xFFFF at register address 0x3F (checksum word location).
So on Tiger Lake platform we ignore the computed checksum when such
condition is encountered.

Signed-off-by: Jacek Kowalski <jacek@jacekk.info>
Tested-by: Vlad URSU <vlad@ursu.me>
Fixes: 4051f68318 ("e1000e: Do not take care about recovery NVM checksum")
Cc: stable@vger.kernel.org
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
Tested-by: Mor Bar-Gabay <morx.bar.gabay@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2025-07-21 10:31:09 -07:00
Jacek Kowalski
536fd741c7 e1000e: disregard NVM checksum on tgp when valid checksum bit is not set
As described by Vitaly Lifshits:

> Starting from Tiger Lake, LAN NVM is locked for writes by SW, so the
> driver cannot perform checksum validation and correction. This means
> that all NVM images must leave the factory with correct checksum and
> checksum valid bit set. Since Tiger Lake devices were the first to have
> this lock, some systems in the field did not meet this requirement.
> Therefore, for these transitional devices we skip checksum update and
> verification, if the valid bit is not set.

Signed-off-by: Jacek Kowalski <jacek@jacekk.info>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
Fixes: 4051f68318 ("e1000e: Do not take care about recovery NVM checksum")
Cc: stable@vger.kernel.org
Tested-by: Mor Bar-Gabay <morx.bar.gabay@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2025-07-21 10:31:09 -07:00
Haoxiang Li
4ff12d82da ice: Fix a null pointer dereference in ice_copy_and_init_pkg()
Add check for the return value of devm_kmemdup()
to prevent potential null pointer dereference.

Fixes: c764881096 ("ice: Implement Dynamic Device Personalization (DDP) download")
Cc: stable@vger.kernel.org
Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2025-07-21 10:31:09 -07:00
Jamie Bainbridge
5a0df02999 i40e: When removing VF MAC filters, only check PF-set MAC
When the PF is processing an Admin Queue message to delete a VF's MACs
from the MAC filter, we currently check if the PF set the MAC and if
the VF is trusted.

This results in undesirable behaviour, where if a trusted VF with a
PF-set MAC sets itself down (which sends an AQ message to delete the
VF's MAC filters) then the VF MAC is erased from the interface.

This results in the VF losing its PF-set MAC which should not happen.

There is no need to check for trust at all, because an untrusted VF
cannot change its own MAC. The only check needed is whether the PF set
the MAC. If the PF set the MAC, then don't erase the MAC on link-down.

Resolve this by changing the deletion check only for PF-set MAC.

(the out-of-tree driver has also intentionally removed the check for VF
trust here with OOT driver version 2.26.8, this changes the Linux kernel
driver behaviour and comment to match the OOT driver behaviour)

Fixes: ea2a1cfc3b ("i40e: Fix VF MAC filter removal")
Signed-off-by: Jamie Bainbridge <jamie.bainbridge@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2025-07-21 10:31:09 -07:00
Dennis Chen
50b2af4515 i40e: report VF tx_dropped with tx_errors instead of tx_discards
Currently the tx_dropped field in VF stats is not updated correctly
when reading stats from the PF. This is because it reads from
i40e_eth_stats.tx_discards which seems to be unused for per VSI stats,
as it is not updated by i40e_update_eth_stats() and the corresponding
register, GLV_TDPC, is not implemented[1].

Use i40e_eth_stats.tx_errors instead, which is actually updated by
i40e_update_eth_stats() by reading from GLV_TEPC.

To test, create a VF and try to send bad packets through it:

$ echo 1 > /sys/class/net/enp2s0f0/device/sriov_numvfs
$ cat test.py
from scapy.all import *

vlan_pkt = Ether(dst="ff:ff:ff:ff:ff:ff") / Dot1Q(vlan=999) / IP(dst="192.168.0.1") / ICMP()
ttl_pkt = IP(dst="8.8.8.8", ttl=0) / ICMP()

print("Send packet with bad VLAN tag")
sendp(vlan_pkt, iface="enp2s0f0v0")
print("Send packet with TTL=0")
sendp(ttl_pkt, iface="enp2s0f0v0")
$ ip -s link show dev enp2s0f0
16: enp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 3c:ec:ef:b7:e0:ac brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast
             0       0      0       0       0       0
    TX:  bytes packets errors dropped carrier collsns
             0       0      0       0       0       0
    vf 0     link/ether e2:c6:fd:c1:1e:92 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off
    RX: bytes  packets  mcast   bcast   dropped
             0        0       0       0        0
    TX: bytes  packets   dropped
             0        0        0
$ python test.py
Send packet with bad VLAN tag
.
Sent 1 packets.
Send packet with TTL=0
.
Sent 1 packets.
$ ip -s link show dev enp2s0f0
16: enp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 3c:ec:ef:b7:e0:ac brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast
             0       0      0       0       0       0
    TX:  bytes packets errors dropped carrier collsns
             0       0      0       0       0       0
    vf 0     link/ether e2:c6:fd:c1:1e:92 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off
    RX: bytes  packets  mcast   bcast   dropped
             0        0       0       0        0
    TX: bytes  packets   dropped
             0        0        0

A packet with non-existent VLAN tag and a packet with TTL = 0 are sent,
but tx_dropped is not incremented.

After patch:

$ ip -s link show dev enp2s0f0
19: enp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 3c:ec:ef:b7:e0:ac brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast
             0       0      0       0       0       0
    TX:  bytes packets errors dropped carrier collsns
             0       0      0       0       0       0
    vf 0     link/ether 4a:b7:3d:37:f7:56 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off
    RX: bytes  packets  mcast   bcast   dropped
             0        0       0       0        0
    TX: bytes  packets   dropped
             0        0        2

Fixes: dc645daef9 ("i40e: implement VF stats NDO")
Signed-off-by: Dennis Chen <dechen@redhat.com>
Link: https://www.intel.com/content/www/us/en/content-details/596333/intel-ethernet-controller-x710-tm4-at2-carlsville-datasheet.html
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2025-07-21 10:31:09 -07:00
Stephen Boyd
0b4ff5bc7d Allwinner clock changes for 6.17
- Add A523's missing PPU0 reset (both DT binding and driver)
   The binding change is shared with the soc tree.
 - Fix V3s DE clock mux field width
 - Stop passing rate change requests to parent for V3s DE clock
 - Force and lock V3s DE and TCON clocks to the same parent, the video PLL
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAmh2iB0OHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDDBmRAAlrVWEr5ScgGtN6ERpGv9gAKAfNdxzRDLOm/8
 M22jt7tubI2gbfEOi6VnoQWg0LOBclfFqcnWim5k75F2yyyU53EPjQHKumSXFzij
 QNA3582AT+gBNGHy7hpOw1fQaK9RSG18iLaSLZ1tEYuBZcf8jv6bY2CjXei7CH8a
 iYeQj8yC42bUTARNiAveHPH5+Kvx0CaXFS5uOizILWhvC9j6ZGEK65l+hgyp9E8I
 BjtNHOj5/46VFopGk6LK93q38qQnN47nP0i8gQEx2KoHrwXUUE5lRNUwSnSG7MgF
 wTRRkj83XdgH/I3Hh/T0K2eY8GHc6ZnuxL7zRdPfjNhh2X8tZ6zVVJzZ/BIaG7jV
 XfmQyh4G6U6EVDYARcWszHx3WaG9AQCTvXqZmCelOd6LHvgC3+m3HWERfMwWsSAw
 MIENrWyPrA8KYPbU5qo36Fa+Uxe01iYQQRirp00NxEjQKg+dLrgbZ7SvxtNMfRjU
 /43fVWIU0/XklZV8CgajoTRMzLFLkFqFCvLPdgHz1Z6LeUD7g5Iv6E8zON6srehA
 UInCGdmzC5gYN6h0I/bxsKGe7LR2Ztb5GPT2bOJYre/v+oe37Zv2bdLPKmWjaIFP
 AB6IEkW4RD3lVxlAkhWa4g3+GRCbiYm67aIysWT3HKIAfYSscPe8tWlKDnqwBMP9
 7EJeX68=
 =3XI7
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmh+eH0UHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSWJaQ/9HEK1pduNgGwlZPT19BbCvdumG1dr
 FEa/AQjsX3HGcqGEnMPpD7sHfBIb4LawTEiQ3Uxvz1LoUthNMhoK63A95gMPGg4e
 tKe9Cc3b+ihgZKessp0kQdD8vC9ozO5gv0lHYXTk+fsnyh/hjmlNm30YoNsWvNrc
 PssLKqbnzlP7PxFiEfIIGa1wCGCZmPKIluHvZdL3Y0H5H5bWHt+osjIEB2Fj+XJl
 pGXWJcCWSM+Df4mcn1fY9sMhsRBup1lu7VLUMN+M2vSUHnKlzYwAQifEne6kKs9w
 9I3t460UkT+J6UClJ7d3v4IE68QAbvQkG0gxnODRzZpp3P/6KCWEf+2FM/gvAULG
 U7wJIoLw+dhtP/k+LQIe7jg1mxLDpyZqoFbkkzZSyyOUk5E5wdFnlIUERWyIGCfF
 GTftKal6/uyu5p7YwvLLjLBgowJtQv63Tkg5b3m0hbEmo9tBkN+8NwWkHi4/V3wg
 o93qFVNBU+NY1ifa5q/pjofafEYNouReUbe1AieyzFDKoEtkbVuKSvztaDN9WCH8
 jszSwIqTlLRRRN0xIN36FbuZ4LusYFc1GOz44A48oMkJUtmfSoj9FMR6BkkVhi1c
 8A34VWjkdfnC14zDari6ZdyemvcPb6kq4XXGazAEHZh+xeH2P91aNYgGYUffY+am
 YMkmXtHRPMXv978=
 =LPCt
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-clk-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-allwinner

Pull Allwinner clk driver updates from Chen-Yu Tsai:

 - Add Allwinner A523's missing PPU0 reset (both DT binding and
   driver) The binding change is shared with the soc tree.
 - Fix Allwinner V3s DE clock mux field width
 - Stop passing rate change requests to parent for Allwinner V3s
   DE clock
 - Force and lock Allwinner V3s DE and TCON clocks to the same
   parent, the video PLL

* tag 'sunxi-clk-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  clk: sunxi-ng: ccu_nm: convert from round_rate() to determine_rate()
  clk: sunxi-ng: ccu_nkmp: convert from round_rate() to determine_rate()
  clk: sunxi-ng: ccu_nk: convert from round_rate() to determine_rate()
  clk: sunxi-ng: ccu_gate: convert from round_rate() to determine_rate()
  clk: sunxi-ng: v3s: Assign the de and tcon clocks to the video pll
  clk: sunxi-ng: v3s: Fix de clock definition
  clk: sunxi-ng: sun55i-a523-r-ccu: Add missing PPU0 reset
  dt-bindings: reset: sun55i-a523-r-ccu: Add missing PPU0 reset
2025-07-21 10:26:31 -07:00
Jack Thomson
ab16122115 arm64: kvm, smccc: Fix vendor uuid
Commit 13423063c7 ("arm64: kvm, smccc: Introduce and use API for
getting hypervisor UUID") replaced the explicit register constants
with the UUID_INIT macro. However, there is an endian issue, meaning
the UUID generated and used in the handshake didn't match UUID prior to
the commit.

The change in UUID causes the SMCCC vendor handshake to fail with older
guest kernels, meaning devices such as PTP were not available in the
guest.

This patch updates the parameters to the macro to generate a UUID which
matches the previous value, and re-establish backwards compatibility
with older guest kernels.

Fixes: 13423063c7 ("arm64: kvm, smccc: Introduce and use API for getting hypervisor UUID")
Signed-off-by: Jack Thomson <jackabt@amazon.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Tested-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Link: https://lore.kernel.org/r/20250721130558.50823-1-jackabt.amazon@gmail.com
Signed-off-by: Will Deacon <will@kernel.org>
2025-07-21 18:18:51 +01:00
Stephen Boyd
e4b2a0c2b9 Allwinner clock fixes for 6.16
- Mark A523 MBUS clock as critical
 - Fix names of CSI related clocks on V3s
   This includes changes to the driver, DT bindings and DT files.
 - Fix parents of TCON clock on V3s
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAmh2hw4OHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDCoNhAApMSWflxAXohu5tYLk82d/87BJAAIodRkJnVU
 B+1fUkqAsT7hKvnP2z3JoLufYXYm+uXrbVR5m3/00QsmXh2E3sKuXbnetxVvnpdQ
 gpGq0yZBV5qFnuLkG7UN9FNovkVzY1dgQ0J1gKG++itMkkW/yHGQhXOo6ZiRHy2R
 /8D/LhZa4gq2K+szQkuFH12o6+dDCFTMfwUiE5eNXI4XLuZailZ/a9tn5Qpym+kw
 k5/svQF8OHXLloyJ1QkIph3uDylFeTILzc3684AUD/b3cZNmppJ8CErKV8Gk8ELC
 0QscfeDc+Evbh+1qFZa5a4JK5Cz0F+GmG37G3XsJtA6IE6BMU75PSTTBYqaoDGoR
 eynxApXmBarPcmWzmQgmk7aE8A3gV05t4N3ZLjLCtjUjfg7yWveMu40MQlzs15Hm
 mWnOcQSETTxxbIbZBr6ZcYhXLsWjrzlQKzIodmNaVuf0TiZhH5DJ55CD6WlMT8T7
 +6fGa0Bez3XLTBLScnj+5ghXOvOHSr71koXFGTcoRhfWwUliTVtzJhfqgnGhSvwI
 Wfq1XVhaGOPpdKIXuBs63I4624J9zslJ5AuN75bP9Wyy0HvnxAx65PavgjOWinmg
 /5rO0Oi85eLpJmzZp9Cyz99lDZ3zqtrxJZf+gE/EOSM/UzNiUR8T0ZCK1UaurWuG
 GJnVxZU=
 =aH5v
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmh+dlMUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSX5OA//e4VYLWjx93M+M40Lsc9+xxy/naoh
 hFWRyUSthVcnA/EYAGR9YuO5aBZSniXSMRKuY4bHt0yEOUWjKP0ypvm8ygGZYUPM
 eVlY+ITrggh3MC9isqyptGQ/9gY6BjS3goM6UIogz5oEZQeoo02a7inSKeW4kSd8
 z1j1GekeONLydnXBtSTUamnhDpXjY3eOM1VQeLh3lFdgScKlvQSEGpN8yFnjxLKx
 Df4O41zXvhGz0uEN/+cQ6sGGhLdhjnT7gIUpreFShnSY64Y19RzGtwhvERa2Ozeu
 pAuFIfj/QhSisEKCmRXgWBe0O+zhgs6iKUZZctwjNSeW1/WEEUOEsrP0rAoi/RGl
 IUu1W5m2Q5wzYGWYKnmguzKNDoB24Ej2qf0itVOSzQA9xtjTB40x/y1rB1hCTo/U
 XisbDoh4CEfmBuXsW/YUSNBqxi9KG03ZVbH95+HGjAkj+fzJ6l5Tw5lDSQt/JNEt
 Y2LnIknUn3BxSaq4vhINda5azs0zhDuQ7FCpMsdagz50BW1Ea1uHbIomIlprDNrQ
 khJI1tV+SZDy0q6GdhubgvEZWAtAsp/L4HxmF4dzrcle36RB49FB+Z/y4UxvqD+k
 BIoDKUc+VZCx2Z+gUcsEkWaemjVKIl1CsN2NwVTNMo+VeAFZ17/VHc9sybQ9qfXS
 Sgt8sVjguYl7p2k=
 =Uds7
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-clk-fixes-for-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-fixes

Pull Allwinner clock fixes from Chen-Yu Tsai:

 - Mark A523 MBUS clock as critical
 - Fix names of CSI related clocks on V3s
   This includes changes to the driver, DT bindings and DT files.
 - Fix parents of TCON clock on V3s

* tag 'sunxi-clk-fixes-for-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  clk: sunxi-ng: v3s: Fix TCON clock parents
  clk: sunxi-ng: v3s: Fix CSI1 MCLK clock name
  clk: sunxi-ng: v3s: Fix CSI SCLK clock name
  clk: sunxi-ng: a523: Mark MBUS clock as critical
2025-07-21 10:17:51 -07:00
Luca Weiss
0f29e33fba dt-bindings: interconnect: document the RPMh Network-On-Chip Interconnect in Qualcomm Milos SoC
Document the RPMh Network-On-Chip Interconnect of the Milos (e.g.
SM7635) SoC.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Link: https://lore.kernel.org/r/20250709-sm7635-icc-v3-1-c446203c3b3a@fairphone.com
Signed-off-by: Georgi Djakov <djakov@kernel.org>
2025-07-21 19:41:07 +03:00
Marc Zyngier
d9c5c23201 KVM: arm64: Make RAS registers UNDEF when RAS isn't advertised
We currently always expose FEAT_RAS when available on the host.

As we are about to make this feature selectable from userspace,
check for it being present before emulating register accesses
as RAZ/WI, and inject an UNDEF otherwise.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20250721101955.535159-4-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2025-07-21 09:35:57 -07:00
Marc Zyngier
303084ad12 KVM: arm64: Filter out HCR_EL2 bits when running in hypervisor context
Most HCR_EL2 bits are not supposed to affect EL2 at all, but only
the guest. However, we gladly merge these bits with the host's
HCR_EL2 configuration, irrespective of entering L1 or L2.

This leads to some funky behaviour, such as L1 trying to inject
a virtual SError for L2, and getting a taste of its own medecine.
Not quite what the architecture anticipated.

In the end, the only bits that matter are those we have defined as
invariants, either because we've made them RESx (E2H, HCD...), or
that we actively refuse to merge because the mess with KVM's own
logic.

Use the sanitisation infrastructure to get the RES1 bits, and let
things rip in a safer way.

Fixes: 04ab519bb8 ("KVM: arm64: nv: Configure HCR_EL2 for FEAT_NV2")
Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20250721101955.535159-3-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2025-07-21 09:35:57 -07:00
Marc Zyngier
c6e35dff58 KVM: arm64: Check for SYSREGS_ON_CPU before accessing the CPU state
Mark Brown reports that since we commit to making exceptions
visible without the vcpu being loaded, the external abort selftest
fails.

Upon investigation, it turns out that the code that makes registers
affected by an exception visible to the guest is completely broken
on VHE, as we don't check whether the system registers are loaded
on the CPU at this point. We managed to get away with this so far,
but that's obviously as bad as it gets,

Add the required checksm and document the absolute need to check
for the SYSREGS_ON_CPU flag before calling into any of the
__vcpu_write_sys_reg_to_cpu()__vcpu_read_sys_reg_from_cpu() helpers.

Reported-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/18535df8-e647-4643-af9a-bb780af03a70@sirena.org.uk
Link: https://lore.kernel.org/r/20250720102229.179114-1-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2025-07-21 09:34:57 -07:00
Arnd Bergmann
985da98f29 soc/tegra: Updates for v6.17-rc1
The bulk of this is the addition of Tegra264 support for various low-
 level components. This also adds fabric descriptors for the new Tegra254
 and Tegra264 chips.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmhxiLQACgkQ3SOs138+
 s6GrMA//SscGyGAVDKWGd0otj1Wk9TD5RIxgOMpvjGJE/M1EK+VHqtb4K76+Zqkc
 HnyrkkRbmGiV3c19e53tYqC2Syv6atxB0QYS/4n8M7gWMjNBXT3wFEU13Jqu8QER
 GPkgNSrKjUZClbAgkdGbTaEcjOuT35T1MORo5mGgYFKO+83bbpxFc4f3s7eDe3AU
 az/SgEfe7nbvaDVwM8XshazyFyidIg2lxCy9YzXVkZBhG+z4mH7sHhg9VlEI87VA
 a/ElQG3j80YNwzmeFA9j44GMy75ma01KgplfvXFPY4YRPj+dgTrVfll+9nttZbez
 itcukFMQKZF40NKfxy/bASL6SKxISLOPK6EwJ1+Ws1omXlsjzdgMacNaeURgLICt
 1DJQRjQs9COt+VFFCqnVBFtbZlFk8yOTcSv1IimaLk9B1vhz5oCrlg8+RCtW+54m
 XerfpqUaV+7zc2wtgofy/HsdY93EyLPwQ08AxJG8fZMMwqpE1lwxXCH6WBDHMZAC
 AccMc9dqW5fbuRKLdFfMDfMF6mzqHJXPag3KCv0VLDFIpy7buLTaSHfVNFMHhtcE
 ajuHpSrmYkHy7SOOVvlDtyQIP3mKk3FSQyE0PYconcJ2rJOdcfhJFWGDTTXaDz2a
 XhbxX2o7Z5LsVr52X+5LAwEaTnZLTR1omKnznWW21agqBljPXtU=
 =iSY8
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmh+aEMACgkQmmx57+YA
 GNkDtQ/+JjbVkMQOKxUvKNJMiy2hRhEG6WNc+sZ9Wqk+E6/JgMmFTIlbW9hKnRw1
 57ir/a18dWGJ0y/jV7YfjuZkYWgo+uXwMvA+rRrGAUm0ZxgVj1dCZLhEdWyrMEIS
 j16W1T52ANRsjfJB5L4y97J4b6EpnLeyDiEvO9NljANig6VgxRFuvZxuXiDWJ7I+
 h2JhdOXlSqCMlpfnsDddhvwKQHhHoYJBjFrytcxuzP1NJLwRajGax0GfObiXRrN0
 9A/tXarZOmoQAA6PtfvnNoxuZdc0A/otp2sYSntPJNNhxVyZy7flHvm2SFUhMnS1
 XX60qdV7V9raahopqvst12xBhK57xBfYFBUkybi0ExmCcXAvGp19psSAHFgFFUbC
 5SqQidl1TkcVK4ISTv/4hUqulumXhvN7Kq+PlFVswvye01M0GmuMrmAKaLhWSKqO
 qCPkFvu3aI3UlY8f0jVy6g4OeZO/ZYXiP4CTQyqeMFy8+b10kHLCm7EdOSZOEoW1
 emCqUm6Mr5YJqu1NhqF3LUQqTYBDIhae+z/vyCstv7hbBzwQk0hM+Ou05oINeZpk
 XNDD76ZQLCMHJPbuw/fcLrpk8wayiLf9a9PhCDfNYIeNrfTB7Rr6Xk8DGSQXiSnv
 jBAB2Agj/ylpL7MEmKL0NNXvBnlImdEJd6NMAIHKaNB8WpCp89o=
 =Urev
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.17-soc' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

soc/tegra: Updates for v6.17-rc1

The bulk of this is the addition of Tegra264 support for various low-
level components. This also adds fabric descriptors for the new Tegra254
and Tegra264 chips.

* tag 'tegra-for-6.17-soc' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  soc/tegra: cbb: Add support for CBB fabrics in Tegra254
  soc/tegra: cbb: Add support for CBB fabrics in Tegra264
  soc/tegra: cbb: Support HW lookup to get timed out target address
  soc/tegra: cbb: Improve handling for per SoC fabric data
  soc/tegra: cbb: Make error interrupt enable and status per SoC
  soc/tegra: cbb: Change master/slave to initiator/target
  soc/tegra: cbb: Clear ERR_FORCE register with ERR_STATUS
  soc/tegra: Add Tegra264 APBMISC compatible string
  soc/tegra: pmc: Add Tegra264 support
  soc/tegra: Enable support for Tegra264

Link: https://lore.kernel.org/r/20250711220943.2389322-1-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-07-21 18:18:11 +02:00
Bartosz Golaszewski
12702f0c38 soc: fsl: qe: convert set_multiple() to returning an integer
The conversion to using the new GPIO line setter callbacks missed the
set_multiple() in this file. Convert it to using the new callback.

Fixes: 52ccf19527 ("soc: fsl: qe: use new GPIO line value setter callbacks")
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2025-07-21 18:04:31 +02:00
Bartosz Golaszewski
83d92eae8d pinctrl: rp1: use new GPIO line value setter callbacks
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Andrea della Porta <andrea.porta@suse.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-07-21 18:04:15 +02:00
Beata Michalska
94febfb5bc rust: drm: Drop the use of Opaque for ioctl arguments
With the Opaque<T>, the expectations are that Rust should not
make any assumptions on the layout or invariants of the wrapped
C types. That runs rather counter to ioctl arguments, which must
adhere to certain data-layout constraints. By using Opaque<T>,
ioctl handlers are forced to use unsafe code where none is actually
needed. This adds needless complexity and maintenance overhead,
brining no safety benefits.
Drop the use of Opaque for ioctl arguments as that is not the best
fit here.

Signed-off-by: Beata Michalska <beata.michalska@arm.com>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/20250626162313.2755584-1-beata.michalska@arm.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2025-07-21 17:53:07 +02:00
Xu Yang
fcb476990b usb: core: add urb->sgt parameter description
The parameter description of urb->sgt is lost, this will add it for
completeness.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Closes: https://lore.kernel.org/all/20250711182803.1d548467@canb.auug.org.au/
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
Fixes: 488e6eaab8 ("usb: core: add dma-noncoherent buffer alloc and free API")
Link: https://lore.kernel.org/r/20250721104417.3442530-1-xu.yang_2@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-07-21 17:40:02 +02:00
Yixun Lan
48f9034e02 dt-bindings: serial: 8250: spacemit: set clocks property as required
In SpacemiT's K1 SoC, the clocks for UART are mandatory needed, so
for DT, both clocks and clock-names property should be set as required.

Fixes: 2c0594f9f0 ("dt-bindings: serial: 8250: support an optional second clock")
Signed-off-by: Yixun Lan <dlan@gentoo.org>
Acked-by: "Rob Herring (Arm)" <robh@kernel.org>
Link: https://lore.kernel.org/r/20250718-01-k1-uart-binding-v1-1-a92e1e14c836@gentoo.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-07-21 17:38:54 +02:00
Lad Prabhakar
5eb2d4b3e9 dt-bindings: serial: renesas: Document RZ/V2N SCIF
Document SCIF bindings for the Renesas RZ/V2N (a.k.a R9A09G056) SoC.
The SCIF interface in Renesas RZ/V2N is identical to the one available
in RZ/V2H(P), so `renesas,scif-r9a09g057` will be used as a fallback,
allowing reuse of the existing driver without modifications.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Acked-by: "Rob Herring (Arm)" <robh@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20250716202923.163950-1-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-07-21 17:38:14 +02:00
Andy Shevchenko
69c94feda5 serial: 8250_ce4100: Fix CONFIG_SERIAL_8250=n build
On i386, when

  CONFIG_X86_INTEL_CE=y
  # CONFIG_SERIAL_8250 is not set

it will try to compile the driver and use the stub simultaneously.
This breaks the build. Fix it by making sure that the driver
compiles only when CONFIG_SERIAL_8250 is also enabled.

On top of that ensure that CONFIG_SERIAL_8250 is actually set to 'y'
and not 'm' as the later makes no sense for this platform. The hook
may only be applied during early boot.

Fixes: acc902de05 ("serial: 8250: Move CE4100 quirks to a module under 8250 driver")
Fixes: 5ec6960f6f ("ce4100: Add errata fixes for UART on CE4100")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Closes: https://lore.kernel.org/r/cdf4ee46-7bf8-4379-9245-fed9db72e7e8@infradead.org
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://lore.kernel.org/r/20250716142412.1667927-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-07-21 17:38:08 +02:00
Arnd Bergmann
1e1bf8bf4e Samsung SoC defconfig changes for v6.17
1. Multiple SoCs (including Samsung, Apple): switch sound to module from
    a built-in, because it is not necessary for booting.  Also drop
    redundant sound codec options.
 
 2. Enable PMIC drivers for Google GS101 Pixel 6 phones: MAX77759 and
    Samsung PMIC over ACPM protocol.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmhuvrYQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD17SID/4oPiSCEP+4MTKtz+B6byq8M1bmCDN6pt1+
 xu2fSOgk448yjDU2vzKneXXQztmB6cuXvM+EeBGs1qXWtaSCBnWQXmkuOGfCMoAM
 9XVdw9A/vLX6y9HYDNYPToCDMsk6oNiSNtozXj7EyRn/LR+ICEI9+DbEdL0QN0/6
 yRjunuWZm/OPVxpNMTKZEi6hW+51wR8JL7LcC+LClNsHl7zzbBb0q+5vPm1ovIw3
 ZDjSZWaIsf/qBUoQ+2wnsVBS6GeTac9VOynvvihIxuyICI+NNx6JtwpCi1429fEO
 7S+KT5ITHPEjz74RiPZ8/qszzBZlaMxUVXK/9pKxn9zwOYq0+uUMxRJDlQMaTl3y
 +pJRRwHFjz6c8bYWDtEYAv3TAVwFWK9sWgxRmpCz2g6ENArz/5Y6ix8pgA/2GpEE
 E1/exJK8iMkDqHTnkGcFa4FXiS93o4YAZ+WoiTqy+3aHyuB6ro8+h1Pn1m9SkBct
 sqMqt9tANSIlyNjtn8PnQv0ERX6BS77ZIaM01CsOVzHzDgReW9aoTJVGNPQzjFKa
 oy+gsNkwEwUbRRC2bTqrvA97KjXv4hXeG1Mx3R51vpU0l1W+R/wqbQNHv7He6hX6
 9/UysIsklReQGDVthJylkmEcR4NmSe9+JNRZrqNFfPw1kaLh98QIpRhvJGZtGqn6
 b89WyMh59g==
 =hb2R
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmh+XnsACgkQmmx57+YA
 GNm0cQ/6AwnZhFaecsTwIuYRKxaMIhOrHrqDvaSO+3wNik6iTIQScXck0PjqSSln
 X8QEvBRq70GmBbSt8vj/bRfP8ZJmSn2LCVyAlh6HNP5BOcChLz+v4M7g9+kEQxaW
 OVJoe1dfiA1Gzxf6dk3WAdE2tvffG0Ln2ut2KlRRJ41a/gYIHnHjlQjVaGAGQPRF
 aYIa2ExqYynHoxl3Maw1ebDjHOZLVd1DdNi76OwXpSM5dpx/6MWD3kAGb1uQStk6
 OJN3RQa16tNNgj+vzQJ/ep8YX6faWSLNfF0VgXgpYiGajc1qIhCAa+kDbozuoBgJ
 F04slwBUxJt1uiEzwn5D14id57FK4GV02EHRuEOMsYSdQ2GGNygnh3Cq6Z0bvxG8
 LvP8i+fUfJBydDpBKnOC2wxc3fea0+RWN4stojTfur3mgHmoL5p5xrRUqkNizBdo
 f8SxhNKfMu6AeNqqR9LoKoPFt/UOGjsKazQooiqo5/+bYJtAVzSqlJ3txc+WiP+V
 K41BvST24EV//sP/2EVfoD6h9rr6WKEpLOjCDNVzkphETEme9kHuU4nokir4NkB2
 RzcT6xImXfjpXu1tm8R5rGvoykVcvzhrNFG+qeLyaZX3eDLmsgcl7q99ML+rUAR/
 goKv2oLuIeyB7/gfkDunnRtNjvo5wp9kGW0YzCYvM27/FrRPd1A=
 =Jwlt
 -----END PGP SIGNATURE-----

Merge tag 'samsung-defconfig-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/defconfig

Samsung SoC defconfig changes for v6.17

1. Multiple SoCs (including Samsung, Apple): switch sound to module from
   a built-in, because it is not necessary for booting.  Also drop
   redundant sound codec options.

2. Enable PMIC drivers for Google GS101 Pixel 6 phones: MAX77759 and
   Samsung PMIC over ACPM protocol.

* tag 'samsung-defconfig-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: defconfig: enable Samsung PMIC over ACPM
  arm64: defconfig: enable Maxim max77759 driver
  arm64: defconfig: Drop unneeded unselectable sound drivers
  arm64: defconfig: Switch SOUND to module

Link: https://lore.kernel.org/r/20250709191523.171359-4-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-07-21 17:36:27 +02:00
Linus Torvalds
964ebc07c5 platform-drivers-x86 for v6.16-4
Fixes and New HW Support
 
 - alienware-wmi-wmax:
 
   - Add AWCC support for Alienware Area-51m and m15 R5.
 
   - Fix `dmi_system_id` array termination
 
 - arm64: huawei-gaokun-ec: fix OF node leak
 
 - dell-ddv: Fix taking psy->extensions_sem twice
 
 - dell-lis3lv02d: Add Precision 3551 accelerometer support
 
 - firmware_attributes_class: Fix initialization order
 
 - ideapad-laptop: Retain FnLock and kbd backlight across boots
 
 - lenovo-wmi-hotkey: Avoid triggering error -5 due to missing mute LED
 
 - mellanox: mlxbf-pmc: Validate event names and bool input
 
 - power: supply: Add get/set property direct to allow avoiding taking
                  psy->extensions_sem twice from power supply extensions
 
 The following is an automated shortlog grouped by driver:
 
 alieneware-wmi-wmax:
  -  Add AWCC support to more laptops
 
 alienware-wmi-wmax:
  -  Fix `dmi_system_id` array
 
 arm64: huawei-gaokun-ec:
  -  fix OF node leak
 
 dell-ddv:
  -  Fix taking the psy->extensions_sem lock twice
 
 dell-lis3lv02d:
  -  Add Precision 3551
 
 Fix initialization order for firmware_attributes_class:
  - Fix initialization order for firmware_attributes_class
 
 ideapad-laptop:
  -  Fix FnLock not remembered among boots
  -  Fix kbd backlight not remembered among boots
 
 lenovo-wmi-hotkey:
  -  Avoid triggering error -5 due to missing mute LED
 
 MAINTAINERS:
  -  Update entries for IFS and SBL drivers
 
 mlxbf-pmc:
  -  Remove newline char from event name input
  -  Use kstrtobool() to check 0/1 input
  -  Validate event/enable input
 
 power: supply: core:
  -  Add power_supply_get/set_property_direct()
 
 power: supply: test-power:
  -  Test access to extended power supply
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSCSUwRdwTNL2MhaBlZrE9hU+XOMQUCaH40yAAKCRBZrE9hU+XO
 MbSEAP4tNEOahKx4ER4Awg7BvJKY6lfifKvu1yt5K3/aWde9VQD8CRv99ryV3kAy
 EX3Ut1otWsB7UY7+tfV8WeYmXutf/Qs=
 =wHun
 -----END PGP SIGNATURE-----

Merge tag 'platform-drivers-x86-v6.16-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86

Pull x86 platform drivers fixes from Ilpo Järvinen:

 - power supply code:
    - Add get/set property direct to allow avoiding taking
      psy->extensions_sem twice from power supply extensions

 - alienware-wmi-wmax:
    - Add AWCC support for Alienware Area-51m and m15 R5
    - Fix `dmi_system_id` array termination

 - arm64: huawei-gaokun-ec: fix OF node leak

 - dell-ddv: Fix taking psy->extensions_sem twice

 - dell-lis3lv02d: Add Precision 3551 accelerometer support

 - firmware_attributes_class: Fix initialization order

 - ideapad-laptop: Retain FnLock and kbd backlight across boots

 - lenovo-wmi-hotkey: Avoid triggering error -5 due to missing mute LED

 - mellanox: mlxbf-pmc: Validate event names and bool input

* tag 'platform-drivers-x86-v6.16-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
  MAINTAINERS: Update entries for IFS and SBL drivers
  platform/x86: dell-lis3lv02d: Add Precision 3551
  platform/x86: alieneware-wmi-wmax: Add AWCC support to more laptops
  platform/x86: Fix initialization order for firmware_attributes_class
  platform: arm64: huawei-gaokun-ec: fix OF node leak
  lenovo-wmi-hotkey: Avoid triggering error -5 due to missing mute LED
  platform/x86: ideapad-laptop: Fix kbd backlight not remembered among boots
  platform/x86: ideapad-laptop: Fix FnLock not remembered among boots
  platform/mellanox: mlxbf-pmc: Use kstrtobool() to check 0/1 input
  platform/mellanox: mlxbf-pmc: Validate event/enable input
  platform/mellanox: mlxbf-pmc: Remove newline char from event name input
  platform/x86: dell-ddv: Fix taking the psy->extensions_sem lock twice
  power: supply: test-power: Test access to extended power supply
  power: supply: core: Add power_supply_get/set_property_direct()
  platform/x86: alienware-wmi-wmax: Fix `dmi_system_id` array
2025-07-21 08:32:36 -07:00
Sasha Finkelstein
76f3ffeb41 arm64: dts: apple: Add Apple SoC GPU
Add device tree entries for GPUs in M-series SoCs

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Sven Peter <sven@kernel.org>
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
Link: https://lore.kernel.org/r/20250710-sgx-dt-v3-2-299bb3a65109@gmail.com
Signed-off-by: Sven Peter <sven@kernel.org>
2025-07-21 15:22:10 +00:00
Sasha Finkelstein
f8c667edaf dt-bindings: gpu: Add Apple SoC GPU
Add bindings for the GPU present in Apple SoCs

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Sven Peter <sven@kernel.org>
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
Link: https://lore.kernel.org/r/20250710-sgx-dt-v3-1-299bb3a65109@gmail.com
Signed-off-by: Sven Peter <sven@kernel.org>
2025-07-21 15:22:02 +00:00
Nick Chan
ef68a0e108 arm64: dts: apple: t8012-j132: Include touchbar framebuffer node
Apple T2 MacBookPro15,2 (j132) has a touchbar so include the framebuffer
node.

Cc: stable@vger.kernel.org
Fixes: 4efbcb623e ("arm64: dts: apple: Add T2 devices")
Signed-off-by: Nick Chan <towinchenmi@gmail.com>
Link: https://lore.kernel.org/stable/20250620-j132-fb-v1-1-bc6937baf0b9%40gmail.com
Link: https://lore.kernel.org/r/20250620-j132-fb-v2-1-65f100182085@gmail.com
Signed-off-by: Sven Peter <sven@kernel.org>
2025-07-21 15:22:02 +00:00
Sven Peter
6aaf36bb07 arm64: dts: apple: Add bit offset to PMIC NVMEM node names
Now that the dt-binding has been extended to allow indicating the bit
position the following warning about a duplicate unit address with W=1
can be fixed:

arch/arm64/boot/dts/apple/t8103.dtsi:764.46-767.8: Warning (unique_unit_address_if_enabled): /soc/spmi@23d0d9300/pmic@f/nvmem-layout/boot-error-count@9f02: duplicate unit-address (also used in node /soc/spmi@23d0d9300/pmic@f/nvmem-layout/panic-count@9f02)

Fixes: d8bf82081c ("arm64: dts: apple: Add PMIC NVMEM")
Link: https://lore.kernel.org/r/20250610-nvmem-bit-pattern-v1-2-55ed5c1b369c@kernel.org
Signed-off-by: Sven Peter <sven@kernel.org>
2025-07-21 15:21:43 +00:00
Arnd Bergmann
c5b9bff35a
Merge branch 'newsoc/cix-p1' into soc/newsoc
Patches from Peter Chen <peter.chen@cixtech.com>:

Cixtech P1 (internal name sky1) is high performance generic Armv9 SoC.
Orion O6 is the Arm V9 Motherboard built by Radxa. You could find brief
introduction for SoC and related boards at:
https://radxa.com/products/orion/o6#overview

Currently, to run upstream kernel at Orion O6 board, you need to
use BIOS released by Radxa, and add "clk_ignore_unused=1" at bootargs.
https://docs.radxa.com/en/orion/o6/bios/install-bios

In this series, we add initial SoC and board support for Kernel building.
Since mailbox is used for SCMI clock communication, mailbox driver is added
in this series for the minimum SoC support.

Patch 1-2: add dt-binding doc for CIX and its sky1 SoC
Patch 3: add Arm64 build support
Patch 4-5: add CIX mailbox driver which needs to support SCMI clock protocol.
Patch 6: add Arm64 defconfig support
Patch 7-8: add initial dts support for SoC and Orion O6 board
Patch 9: add MAINTAINERS entry

* newsoc/cix-p1:
  MAINTAINERS: Add CIX SoC maintainer entry
  arm64: dts: cix: Add sky1 base dts initial support
  dt-bindings: clock: cix: Add CIX sky1 scmi clock id
  arm64: defconfig: Enable CIX SoC
  mailbox: add CIX mailbox driver
  dt-bindings: mailbox: add cix,sky1-mbox
  arm64: Kconfig: add ARCH_CIX for cix silicons
  dt-bindings: arm: add CIX P1 (SKY1) SoC
  dt-bindings: vendor-prefixes: Add CIX Technology Group Co., Ltd.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-07-21 17:16:16 +02:00
Peter Chen
46f89a0d15 MAINTAINERS: Add CIX SoC maintainer entry
Using this entry as the maintainers information for CIX SoCs.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Fugang Duan <fugang.duan@cixtech.com>
Signed-off-by: Peter Chen <peter.chen@cixtech.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-07-21 17:14:55 +02:00
Peter Chen
80be23bb20 arm64: dts: cix: Add sky1 base dts initial support
CIX SKY1 SoC is high performance Armv9 SoC designed by Cixtech,
and Orion O6 is the motherboard launched by Radxa. See below for
detail:
https://docs.radxa.com/en/orion/o6/getting-started/introduction

In this commit, it only adds limited components for running initramfs
at Orion O6.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Tested-by: Enric Balletbo i Serra <eballetb@redhat.com>
Tested-by: Kajetan Puchalski <kajetan.puchalski@arm.com>
Signed-off-by: Peter Chen <peter.chen@cixtech.com>
Signed-off-by: Guomin Chen <Guomin.Chen@cixtech.com>
Signed-off-by: Gary Yang <gary.yang@cixtech.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-07-21 17:14:55 +02:00
Gary Yang
2b752ae023 dt-bindings: clock: cix: Add CIX sky1 scmi clock id
Add device tree bindings for the scmi clock id on
Cix sky1 platform.

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Peter Chen <peter.chen@cixtech.com>
Signed-off-by: Gary Yang <gary.yang@cixtech.com>
Signed-off-by: Peter Chen <peter.chen@cixtech.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-07-21 17:14:55 +02:00
Peter Chen
4cd122a4f6 arm64: defconfig: Enable CIX SoC
- Enable CIX SoC support at ARM64 defconfig
- Enable CIX mailbox
At CIX SoC platforms, the clock handling uses Arm SCMI protocol,
the physical clock access is at sub processor, so it needs to enable
mailbox by default.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Peter Chen <peter.chen@cixtech.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-07-21 17:14:55 +02:00
Guomin Chen
fe2aa2361d mailbox: add CIX mailbox driver
The CIX mailbox controller, used in the Cix SoCs, like sky1.
facilitates message transmission between multiple processors
within the SoC, such as the AP, PM, audio DSP, SensorHub MCU,
and others.

Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Reviewed-by: Peter Chen <peter.chen@cixtech.com>
Signed-off-by: Guomin Chen <Guomin.Chen@cixtech.com>
Signed-off-by: Gary Yang <gary.yang@cixtech.com>
Signed-off-by: Lihua Liu <Lihua.Liu@cixtech.com>
Signed-off-by: Peter Chen <peter.chen@cixtech.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-07-21 17:14:55 +02:00