Skip to contentSkip to conversation

Linux 6.11.7

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Nov 8, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.11.7 kernel.

All users of the 6.11 kernel series must upgrade.

The updated 6.11.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.11.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml      |   21 
 Documentation/driver-api/dpll.rst                              |   21 
 Documentation/netlink/specs/dpll.yaml                          |   24 
 Documentation/rust/arch-support.rst                            |    2 
 Makefile                                                       |    2 
 arch/arm64/boot/dts/freescale/imx8ulp.dtsi                     |    2 
 arch/arm64/boot/dts/qcom/msm8939.dtsi                          |    2 
 arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts        |    2 
 arch/arm64/boot/dts/qcom/x1e80100-crd.dts                      |    2 
 arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts       |    2 
 arch/arm64/boot/dts/qcom/x1e80100-qcp.dts                      |    2 
 arch/arm64/boot/dts/qcom/x1e80100.dtsi                         |   34 -
 arch/mips/kernel/cmpxchg.c                                     |    1 
 arch/riscv/Kconfig                                             |    2 
 arch/riscv/boot/dts/starfive/jh7110-common.dtsi                |    2 
 arch/riscv/boot/dts/starfive/jh7110-pine64-star64.dts          |    3 
 arch/riscv/kernel/acpi.c                                       |    4 
 arch/riscv/kernel/asm-offsets.c                                |    2 
 arch/riscv/kernel/cacheinfo.c                                  |    7 
 arch/riscv/kernel/cpu-hotplug.c                                |    2 
 arch/riscv/kernel/efi-header.S                                 |    2 
 arch/riscv/kernel/traps_misaligned.c                           |    2 
 arch/riscv/kernel/vdso/Makefile                                |    1 
 arch/x86/include/asm/bug.h                                     |   12 
 arch/x86/kernel/traps.c                                        |   71 ++
 block/blk-map.c                                                |    4 
 drivers/accel/ivpu/ivpu_debugfs.c                              |    9 
 drivers/accel/ivpu/ivpu_hw.c                                   |    1 
 drivers/accel/ivpu/ivpu_hw.h                                   |    1 
 drivers/accel/ivpu/ivpu_hw_ip.c                                |    5 
 drivers/acpi/cppc_acpi.c                                       |    9 
 drivers/acpi/resource.c                                        |   18 
 drivers/base/core.c                                            |   48 +
 drivers/base/module.c                                          |    4 
 drivers/char/tpm/tpm-chip.c                                    |   10 
 drivers/char/tpm/tpm-dev-common.c                              |    3 
 drivers/char/tpm/tpm-interface.c                               |    6 
 drivers/char/tpm/tpm2-sessions.c                               |  100 ++-
 drivers/cxl/Kconfig                                            |    1 
 drivers/cxl/Makefile                                           |   20 
 drivers/cxl/acpi.c                                             |    7 
 drivers/cxl/core/hdm.c                                         |   50 +
 drivers/cxl/core/port.c                                        |   13 
 drivers/cxl/core/region.c                                      |   48 -
 drivers/cxl/core/trace.h                                       |   17 
 drivers/cxl/cxl.h                                              |    3 
 drivers/cxl/port.c                                             |   17 
 drivers/dpll/dpll_netlink.c                                    |  130 ++++
 drivers/dpll/dpll_nl.c                                         |    5 
 drivers/firmware/arm_sdei.c                                    |    2 
 drivers/firmware/microchip/mpfs-auto-update.c                  |   42 -
 drivers/gpio/gpio-sloppy-logic-analyzer.c                      |    4 
 drivers/gpio/gpiolib.c                                         |    4 
 drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c                         |    9 
 drivers/gpu/drm/amd/display/dc/dml2/dml2_policy.c              |    1 
 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c                      |   15 
 drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c               |    4 
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c           |    6 
 drivers/gpu/drm/i915/display/intel_alpm.c                      |    2 
 drivers/gpu/drm/i915/display/intel_backlight.c                 |   10 
 drivers/gpu/drm/i915/display/intel_display_device.c            |    5 
 drivers/gpu/drm/i915/display/intel_display_device.h            |    2 
 drivers/gpu/drm/i915/display/intel_display_power.c             |    8 
 drivers/gpu/drm/i915/display/intel_display_power_well.c        |    4 
 drivers/gpu/drm/i915/display/intel_display_types.h             |    1 
 drivers/gpu/drm/i915/display/intel_display_wa.h                |    8 
 drivers/gpu/drm/i915/display/intel_dp.c                        |   29 
 drivers/gpu/drm/i915/display/intel_dp.h                        |    1 
 drivers/gpu/drm/i915/display/intel_dp_aux.c                    |    4 
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c                   |   11 
 drivers/gpu/drm/i915/display/intel_fbc.c                       |    6 
 drivers/gpu/drm/i915/display/intel_hdcp.c                      |    7 
 drivers/gpu/drm/i915/display/intel_pps.c                       |   14 
 drivers/gpu/drm/i915/display/intel_psr.c                       |    6 
 drivers/gpu/drm/i915/display/intel_tc.c                        |    3 
 drivers/gpu/drm/i915/display/intel_vrr.c                       |    3 
 drivers/gpu/drm/i915/display/skl_universal_plane.c             |    5 
 drivers/gpu/drm/i915/intel_device_info.c                       |    5 
 drivers/gpu/drm/i915/intel_device_info.h                       |    2 
 drivers/gpu/drm/mediatek/mtk_crtc.c                            |   47 -
 drivers/gpu/drm/mediatek/mtk_disp_ovl.c                        |    9 
 drivers/gpu/drm/mediatek/mtk_dp.c                              |   85 ++
 drivers/gpu/drm/panthor/panthor_fw.c                           |    4 
 drivers/gpu/drm/panthor/panthor_gem.c                          |   11 
 drivers/gpu/drm/panthor/panthor_mmu.c                          |   16 
 drivers/gpu/drm/panthor/panthor_mmu.h                          |    1 
 drivers/gpu/drm/panthor/panthor_sched.c                        |   20 
 drivers/gpu/drm/tegra/drm.c                                    |    4 
 drivers/gpu/drm/tests/drm_connector_test.c                     |   24 
 drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c             |    8 
 drivers/gpu/drm/tests/drm_kunit_helpers.c                      |   42 +
 drivers/gpu/drm/xe/Makefile                                    |    1 
 drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h              |    1 
 drivers/gpu/drm/xe/display/xe_display_wa.c                     |   16 
 drivers/gpu/drm/xe/regs/xe_gt_regs.h                           |   17 
 drivers/gpu/drm/xe/regs/xe_regs.h                              |   10 
 drivers/gpu/drm/xe/regs/xe_sriov_regs.h                        |   23 
 drivers/gpu/drm/xe/xe_device_types.h                           |    6 
 drivers/gpu/drm/xe/xe_ggtt.c                                   |   10 
 drivers/gpu/drm/xe/xe_gt.c                                     |   10 
 drivers/gpu/drm/xe/xe_gt_sriov_pf.c                            |    2 
 drivers/gpu/drm/xe/xe_guc_submit.c                             |   18 
 drivers/gpu/drm/xe/xe_lmtt.c                                   |    2 
 drivers/gpu/drm/xe/xe_module.c                                 |   39 +
 drivers/gpu/drm/xe/xe_sriov.c                                  |    2 
 drivers/gpu/drm/xe/xe_tuning.c                                 |   21 
 drivers/gpu/drm/xe/xe_wa.c                                     |    4 
 drivers/iio/adc/ad7124.c                                       |    2 
 drivers/iio/industrialio-gts-helper.c                          |    4 
 drivers/iio/light/veml6030.c                                   |    2 
 drivers/infiniband/hw/bnxt_re/qplib_fp.c                       |    4 
 drivers/infiniband/hw/bnxt_re/qplib_rcfw.c                     |   38 -
 drivers/infiniband/hw/bnxt_re/qplib_rcfw.h                     |    2 
 drivers/infiniband/hw/cxgb4/provider.c                         |    1 
 drivers/infiniband/hw/mlx5/qp.c                                |    4 
 drivers/input/input.c                                          |  134 ++--
 drivers/input/touchscreen/edt-ft5x06.c                         |   19 
 drivers/misc/mei/client.c                                      |    4 
 drivers/misc/sgi-gru/grukservices.c                            |    2 
 drivers/misc/sgi-gru/grumain.c                                 |    4 
 drivers/misc/sgi-gru/grutlbpurge.c                             |    2 
 drivers/mmc/host/sdhci-pci-gli.c                               |   38 -
 drivers/net/ethernet/amd/mvme147.c                             |    7 
 drivers/net/ethernet/intel/ice/ice_dpll.c                      |  293 +++++++++-
 drivers/net/ethernet/intel/ice/ice_dpll.h                      |    1 
 drivers/net/ethernet/intel/ice/ice_ptp_hw.c                    |   21 
 drivers/net/ethernet/intel/ice/ice_ptp_hw.h                    |    1 
 drivers/net/ethernet/mediatek/mtk_wed_wo.h                     |    4 
 drivers/net/ethernet/mellanox/mlxsw/pci.c                      |   25 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c            |   26 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c             |    7 
 drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c               |    8 
 drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h               |    2 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c              |   22 
 drivers/net/gtp.c                                              |   22 
 drivers/net/macsec.c                                           |    3 
 drivers/net/mctp/mctp-i2c.c                                    |    3 
 drivers/net/netdevsim/fib.c                                    |    4 
 drivers/net/wireless/ath/ath10k/wmi-tlv.c                      |    7 
 drivers/net/wireless/ath/ath10k/wmi.c                          |    2 
 drivers/net/wireless/ath/ath11k/dp_rx.c                        |    7 
 drivers/net/wireless/broadcom/brcm80211/Kconfig                |    1 
 drivers/net/wireless/intel/iwlegacy/common.c                   |   15 
 drivers/net/wireless/intel/iwlegacy/common.h                   |   12 
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c                   |   28 
 drivers/net/wireless/intel/iwlwifi/iwl-drv.h                   |    3 
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c                    |   10 
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c              |   12 
 drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c          |   34 -
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c                  |    6 
 drivers/net/wireless/realtek/rtlwifi/rtl8192du/sw.c            |    1 
 drivers/net/wireless/realtek/rtw89/pci.c                       |   48 +
 drivers/nvme/host/core.c                                       |   19 
 drivers/nvme/host/ioctl.c                                      |    7 
 drivers/nvme/target/auth.c                                     |    1 
 drivers/pci/pci.c                                              |   14 
 drivers/phy/freescale/phy-fsl-imx8m-pcie.c                     |   10 
 drivers/phy/qualcomm/phy-qcom-qmp-usb-legacy.c                 |    1 
 drivers/phy/qualcomm/phy-qcom-qmp-usb.c                        |    1 
 drivers/phy/qualcomm/phy-qcom-qmp-usbc.c                       |    1 
 drivers/powercap/intel_rapl_msr.c                              |    1 
 drivers/scsi/scsi_debug.c                                      |   10 
 drivers/scsi/scsi_transport_fc.c                               |    4 
 drivers/soc/qcom/pmic_glink.c                                  |   25 
 drivers/spi/spi-fsl-dspi.c                                     |    6 
 drivers/spi/spi-geni-qcom.c                                    |    8 
 drivers/staging/iio/frequency/ad9832.c                         |    7 
 drivers/thermal/intel/int340x_thermal/processor_thermal_rapl.c |   70 --
 drivers/thunderbolt/retimer.c                                  |    5 
 drivers/thunderbolt/tb.c                                       |   48 +
 drivers/ufs/core/ufshcd.c                                      |    2 
 drivers/usb/host/xhci-pci.c                                    |    6 
 drivers/usb/host/xhci-ring.c                                   |   16 
 drivers/usb/phy/phy.c                                          |    2 
 drivers/usb/typec/class.c                                      |    1 
 drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c                  |   10 
 drivers/usb/typec/tcpm/tcpm.c                                  |   10 
 fs/afs/dir.c                                                   |   25 
 fs/afs/dir_edit.c                                              |   91 +++
 fs/afs/internal.h                                              |    2 
 fs/btrfs/bio.c                                                 |   62 --
 fs/btrfs/bio.h                                                 |    3 
 fs/btrfs/defrag.c                                              |   10 
 fs/btrfs/extent_map.c                                          |    7 
 fs/btrfs/volumes.c                                             |    1 
 fs/dax.c                                                       |   45 -
 fs/iomap/buffered-io.c                                         |    7 
 fs/nfs/delegation.c                                            |    5 
 fs/nfsd/nfs4proc.c                                             |    8 
 fs/nilfs2/namei.c                                              |    3 
 fs/nilfs2/page.c                                               |    1 
 fs/ntfs3/file.c                                                |    9 
 fs/ntfs3/frecord.c                                             |    4 
 fs/ntfs3/inode.c                                               |   15 
 fs/ntfs3/lznt.c                                                |    3 
 fs/ntfs3/namei.c                                               |    2 
 fs/ntfs3/ntfs_fs.h                                             |    2 
 fs/ntfs3/record.c                                              |   31 -
 fs/ocfs2/file.c                                                |    8 
 fs/smb/client/cifs_unicode.c                                   |   17 
 fs/smb/client/reparse.c                                        |  174 +++++
 fs/smb/client/reparse.h                                        |    9 
 fs/smb/client/smb2inode.c                                      |    3 
 fs/smb/client/smb2proto.h                                      |    1 
 fs/userfaultfd.c                                               |   28 
 fs/xfs/xfs_filestream.c                                        |   23 
 fs/xfs/xfs_trace.h                                             |   15 
 include/acpi/cppc_acpi.h                                       |    2 
 include/drm/drm_kunit_helpers.h                                |    4 
 include/linux/bpf_mem_alloc.h                                  |    3 
 include/linux/compiler-gcc.h                                   |    4 
 include/linux/device.h                                         |    3 
 include/linux/dpll.h                                           |   15 
 include/linux/input.h                                          |   10 
 include/linux/iomap.h                                          |   19 
 include/linux/ksm.h                                            |   10 
 include/linux/mmzone.h                                         |    7 
 include/linux/rcutiny.h                                        |    5 
 include/linux/rcutree.h                                        |    1 
 include/linux/tick.h                                           |    8 
 include/linux/ubsan.h                                          |    5 
 include/linux/userfaultfd_k.h                                  |    5 
 include/net/ip_tunnels.h                                       |    2 
 include/trace/events/afs.h                                     |    7 
 include/uapi/linux/dpll.h                                      |    3 
 io_uring/rw.c                                                  |   23 
 kernel/bpf/cgroup.c                                            |   19 
 kernel/bpf/helpers.c                                           |   21 
 kernel/bpf/lpm_trie.c                                          |    2 
 kernel/bpf/memalloc.c                                          |   14 
 kernel/bpf/verifier.c                                          |    9 
 kernel/cgroup/cgroup.c                                         |    4 
 kernel/fork.c                                                  |   14 
 kernel/rcu/tree.c                                              |  118 +++-
 kernel/resource.c                                              |    4 
 kernel/sched/fair.c                                            |    4 
 lib/Kconfig.ubsan                                              |    4 
 lib/codetag.c                                                  |    3 
 lib/iov_iter.c                                                 |    6 
 lib/slub_kunit.c                                               |    2 
 mm/kasan/kasan_test.c                                          |   27 
 mm/migrate.c                                                   |    2 
 mm/mmap.c                                                      |    3 
 mm/page_alloc.c                                                |   10 
 mm/rmap.c                                                      |   24 
 mm/shmem.c                                                     |    2 
 mm/shrinker.c                                                  |    8 
 mm/vmscan.c                                                    |  109 ++-
 net/bluetooth/hci_sync.c                                       |   18 
 net/bpf/test_run.c                                             |    1 
 net/core/dev.c                                                 |    4 
 net/core/rtnetlink.c                                           |    4 
 net/core/sock_map.c                                            |    4 
 net/ipv4/ip_tunnel.c                                           |    2 
 net/ipv6/netfilter/nf_reject_ipv6.c                            |   15 
 net/mac80211/Kconfig                                           |    2 
 net/mac80211/cfg.c                                             |    3 
 net/mac80211/key.c                                             |   42 -
 net/mptcp/protocol.c                                           |    2 
 net/netfilter/nft_payload.c                                    |    3 
 net/netfilter/x_tables.c                                       |    2 
 net/sched/cls_api.c                                            |    1 
 net/sched/sch_api.c                                            |    2 
 net/sunrpc/xprtrdma/ib_client.c                                |    1 
 net/wireless/core.c                                            |    1 
 rust/kernel/device.rs                                          |   15 
 rust/kernel/firmware.rs                                        |    2 
 sound/pci/hda/patch_realtek.c                                  |   23 
 sound/soc/codecs/cs42l51.c                                     |    7 
 sound/soc/soc-dapm.c                                           |    2 
 sound/usb/mixer_quirks.c                                       |    3 
 tools/mm/page-types.c                                          |    9 
 tools/mm/slabinfo.c                                            |    4 
 tools/perf/util/python.c                                       |    3 
 tools/perf/util/syscalltbl.c                                   |   10 
 tools/testing/cxl/test/cxl.c                                   |   14 
 tools/testing/selftests/mm/uffd-common.c                       |    5 
 tools/testing/selftests/mm/uffd-common.h                       |    3 
 tools/testing/selftests/mm/uffd-unit-tests.c                   |   21 
 tools/usb/usbip/src/usbip_detach.c                             |    1 
 280 files changed, 2925 insertions(+), 1075 deletions(-)

Abel Vesa (1):
arm64: dts: qcom: x1e80100: Add Broadcast_AND region in LLCC block

Akshata Jahagirdar (1):
drm/xe/xe2: Introduce performance changes

Aleksei Vetrov (1):
ASoC: dapm: fix bounds checker error in dapm_widget_list_create

Alex Deucher (4):
drm/amdgpu/smu13: fix profile reporting
drm/amdgpu/swsmu: fix ordering for setting workload_mask drm/amdgpu/swsmu: default to fullscreen 3D profile for dGPUs drm/amdgpu: handle default profile on on devices without fullscreen 3D

Alexander Usyskin (1):
mei: use kvmalloc for read buffer

Alexandre Ghiti (1):
riscv: vdso: Prevent the compiler from inserting calls to memset()

Amit Cohen (3):
mlxsw: spectrum_ptp: Add missing verification before pushing Tx header
mlxsw: pci: Sync Rx buffers for CPU
mlxsw: pci: Sync Rx buffers for device

Amit Sunil Dhamne (1):
usb: typec: tcpm: restrict SNK_WAIT_CAPABILITIES_TIMEOUT transitions to non self-powered devices

Andrew Ballance (1):
fs/ntfs3: Check if more than chunk-size bytes are written

Andrey Konovalov (1):
kasan: remove vmalloc_percpu test

Andrzej Kacprowski (1):
accel/ivpu: Fix NOC firewall interrupt handling

Andy Shevchenko (1):
gpio: sloppy-logic-analyzer: Check for error code from devm_mutex_init() call

Arkadiusz Kubalewski (3):
dpll: add Embedded SYNC feature for a pin
ice: add callbacks for Embedded SYNC enablement on dpll pins
ice: fix crash on probe for DPLL enabled E810 LOM

Arnaldo Carvalho de Melo (1):
perf python: Fix up the build on architectures without HAVE_KVM_STAT_SUPPORT

Basavaraj Natikar (1):
xhci: Use pm_runtime_get to prevent RPM on unsupported systems

Ben Chuang (2):
mmc: sdhci-pci-gli: GL9767: Fix low power mode on the set clock function
mmc: sdhci-pci-gli: GL9767: Fix low power mode in the SD Express process

Ben Hutchings (1):
wifi: iwlegacy: Fix "field-spanning write" warning in il_enqueue_hcmd()

Benjamin Marzinski (1):
scsi: scsi_transport_fc: Allow setting rport state to current state

Benjamin Segall (1):
posix-cpu-timers: Clear TICK_DEP_BIT_POSIX_TIMER on clone

Benoît Monin (1):
net: skip offload for NETIF_F_IPV6_CSUM if ipv6 header contains extension

Bitterblue Smith (1):

      wifi: rtlwifi: rtl8192du: Don't claim USB ID 0bda:8171

Bjorn Andersson (1):
soc: qcom: pmic_glink: Handle GLINK intent allocation rejections

Boris Brezillon (3):
drm/panthor: Fix firmware initialization on systems with a page size > 4k drm/panthor: Fail job creation when the group is dead drm/panthor: Report group as timedout when we fail to properly suspend

Byeonguk Jeong (1):
bpf: Fix out-of-bounds write in trie_get_next_key()

Chen Ridong (2):
mm: shrinker: avoid memleak in alloc_shrinker_info cgroup/bpf: use a dedicated workqueue for cgroup bpf destruction

Christoffer Sandberg (2):
ALSA: hda/realtek: Fix headset mic on TUXEDO Gemini 17 Gen3
ALSA: hda/realtek: Fix headset mic on TUXEDO Stellaris 16 Gen6 mb1

Christoph Hellwig (3):
iomap: improve shared block detection in iomap_unshare_iter
iomap: turn iomap_want_unshare_iter into an inline function
xfs: fix finding a last resort AG in xfs_filestream_pick_ag

Christophe JAILLET (1):
ASoC: cs42l51: Fix some error handling paths in cs42l51_probe()

Chuck Lever (3):
NFSD: Initialize struct nfsd4_copy earlier
NFSD: Never decrement pending_async_copies on error
rpcrdma: Always release the rpcrdma_device's xa_array

Chun-Kuang Hu (1):
drm/mediatek: Use cmdq_pkt_create() and cmdq_pkt_destroy()

Chunyan Zhang (2):
riscv: Remove unused GENERATING_ASM_OFFSETS
riscv: Remove duplicated GET_RM

Cong Wang (1):
sock_map: fix a NULL pointer dereference in sock_map_link_update_prog()

Conor Dooley (3):
firmware: microchip: auto-update: fix poll_complete() to not report spurious timeout errors
riscv: dts: starfive: disable unused csi/camss nodes
RISC-V: disallow gcc + rust builds

Dai Ngo (1):
NFS: remove revoked delegation from server's delegation list

Dan Carpenter (2):
drm/mediatek: Fix potential NULL dereference in mtk_crtc_destroy() drm/tegra: Fix NULL vs IS_ERR() check in probe()

Dan Williams (4):
cxl/port: Fix use-after-free, permit out-of-order decoder shutdown cxl/port: Fix CXL port initialization order when the subsystem is built-in cxl/port: Fix cxl_bus_rescan() vs bus_rescan_devices() cxl/acpi: Ensure ports ready at cxl_acpi_probe() return

Daniel Gabay (1):
wifi: iwlwifi: mvm: Fix response handling in iwl_mvm_send_recovery_cmd()

Daniel Golle (1):
net: ethernet: mtk_wed: fix path of MT7988 WO firmware

Daniel Palmer (1):
net: amd: mvme147: Fix probe banner message

Darrick J. Wong (4):
iomap: don't bother unsharing delalloc extents
iomap: share iomap_unshare_iter predicate code with fsdax
fsdax: remove zeroing code from dax_unshare_iter
fsdax: dax_unshare_iter needs to copy entire blocks

David Howells (1):
afs: Fix missing subdir edit when renamed between parent dirs

David Sterba (1):
MIPS: export __cmpxchg_small()

Dimitri Sivanich (1):
misc: sgi-gru: Don't disable preemption in GRU driver

Dmitry Torokhov (2):
Input: edt-ft5x06 - fix regmap leak when probe fails
Input: fix regression when re-registering input handlers

Dong Chenchen (1):
netfilter: Fix use-after-free in get_info()

E Shattow (1):
riscv: dts: starfive: Update ethernet phy0 delay parameter values for Star64

Eduard Zingerman (1):
bpf: Force checkpoint when jmp history is too long

Edward Adam Davis (1):
ocfs2: pass u64 to ocfs2_truncate_inline maybe overflow

Edward Liaw (2):
Revert "selftests/mm: fix deadlock for fork after pthread_create on ARM" Revert "selftests/mm: replace atomic_bool with pthread_barrier_t"

Emmanuel Grumbach (3):
wifi: iwlwifi: mvm: don't leak a link on AP removal
wifi: iwlwifi: mvm: don't add default link in fw restart flow Revert "wifi: iwlwifi: remove retry loops in start"

Eric Dumazet (1):
netfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6()

Fabien Parent (1):
arm64: dts: qcom: msm8939: revert use of APCS mbox for RPM

Faisal Hassan (1):
xhci: Fix Link TRB DMA in command ring stopped completion event

Felix Fietkau (2):
wifi: mac80211: skip non-uploaded keys in ieee80211_iter_keys
wifi: mac80211: do not pass a stopped vif to the driver in .get_txpower

Filipe Manana (2):
btrfs: fix extent map merging not happening for adjacent extents
btrfs: fix defrag not merging contiguous extents due to merged extent maps

Florian Westphal (1):
lib: alloc_tag_module_unload must wait for pending kfree_rcu calls

Frank Li (1):
spi: spi-fsl-dspi: Fix crash when not using GPIO chip select

Frank Min (1):
drm/amdgpu: fix random data corruption for sdma 7

Furong Xu (1):
net: stmmac: TSO: Fix unbalanced DMA map/unmap for non-paged SKB data

Gatlin Newhouse (1):
x86/traps: Enable UBSAN traps on x86

Geert Uytterhoeven (2):
mac80211: MAC80211_MESSAGE_TRACING should depend on TRACING
wifi: brcm80211: BRCM_TRACING should depend on TRACING

Georgi Djakov (1):
spi: geni-qcom: Fix boot warning related to pm_runtime and devres

Gil Fine (1):
thunderbolt: Honor TMU requirements in the domain when setting TMU mode

Greg Kroah-Hartman (2):
Revert "driver core: Fix uevent_show() vs driver detach race" Linux 6.11.7

Gregory Price (2):
resource,kexec: walk_system_ram_res_rev must retain resource flags vmscan,migrate: fix page count imbalance on node stats when demoting pages

Guilherme Giacomo Simoes (1):
rust: device: change the from_raw() function

Gustavo Sousa (1):
drm/i915: Skip programming FIA link enable bits for MTL+

Haibo Chen (1):
arm64: dts: imx8ulp: correct the flexspi compatible string

Hans de Goede (1):
ACPI: resource: Fold Asus Vivobook Pro N6506M* DMI quirks together

Heinrich Schuchardt (1):
riscv: efi: Set NX compat flag in PE/COFF header

Hou Tao (3):
bpf: Free dynamically allocated bits in bpf_iter_bits_destroy()
bpf: Add bpf_mem_alloc_check_size() helper
bpf: Check the validity of nr_words in bpf_iter_bits_new()

Hsin-Te Yuan (1):
drm/mediatek: Fix color format MACROs in OVL

Hugh Dickins (1):
iov_iter: fix copy_page_from_iter_atomic() if KMAP_LOCAL_FORCE_MAP

Ido Schimmel (3):
ipv4: ip_tunnel: Fix suspicious RCU usage warning in ip_tunnel_init_flow()
ipv4: ip_tunnel: Fix suspicious RCU usage warning in ip_tunnel_find()
mlxsw: spectrum_ipip: Fix memory leak when changing remote IPv6 address

Jan Schär (1):
ALSA: usb-audio: Add quirks for Dell WD19 dock

Jani Nikula (2):
drm/i915: move rawclk from runtime to display runtime info drm/xe/display: drop unused rawclk_freq and RUNTIME_INFO()

Jarkko Sakkinen (3):
tpm: Return tpm2_sessions_init() when null key creation fails
tpm: Rollback tpm2_load_null()
tpm: Lazily flush the auth session

Jason Gunthorpe (1):
PCI: Fix pci_enable_acs() support for the ACS quirks

Jason-JH.Lin (1):
drm/mediatek: ovl: Remove the color format comment for ovl_fmt_convert()

Javier Carrasco (4):
usb: typec: fix unreleased fwnode_handle in typec_port_register_altmodes()
usb: typec: qcom-pmic-typec: use fwnode_handle_put() to release fwnodes
usb: typec: qcom-pmic-typec: fix missing fwnode removal in error path
iio: light: veml6030: fix microlux value calculation

Jens Axboe (1):
io_uring/rw: fix missing NOWAIT check for O_DIRECT start write

Jeongjun Park (1):
mm: shmem: fix data-race in shmem_getattr()

Jianbo Liu (1):
macsec: Fix use-after-free while sending the offloading packet

Jinjie Ruan (5):
iio: gts-helper: Fix memory leaks for the error path of iio_gts_build_avail_scale_table()
iio: gts-helper: Fix memory leaks in iio_gts_build_avail_scale_table() drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic() drm/connector: hdmi: Fix memory leak in drm_display_mode_from_cea_vic() drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic()

Jiri Slaby (1):
perf trace: Fix non-listed archs in the syscalltbl routines

Johan Hovold (11):
phy: qcom: qmp-usb: fix NULL-deref on runtime suspend
phy: qcom: qmp-usb-legacy: fix NULL-deref on runtime suspend
phy: qcom: qmp-usbc: fix NULL-deref on runtime suspend
gpiolib: fix debugfs newline separators
gpiolib: fix debugfs dangling chip separator
arm64: dts: qcom: x1e80100-yoga-slim7x: fix nvme regulator boot glitch
arm64: dts: qcom: x1e80100-vivobook-s15: fix nvme regulator boot glitch
arm64: dts: qcom: x1e80100: fix PCIe4 interconnect
arm64: dts: qcom: x1e80100-qcp: fix nvme regulator boot glitch
arm64: dts: qcom: x1e80100-crd: fix nvme regulator boot glitch
arm64: dts: qcom: x1e80100: fix PCIe4 and PCIe6a PHY clocks

Johannes Berg (2):
wifi: cfg80211: clear wdev->cqm_config pointer on free
wifi: iwlwifi: mvm: fix 6 GHz scan construction

John Garry (1):
scsi: scsi_debug: Fix do_device_access() handling of unexpected SG copy length

Jouni Högander (1):
drm/i915/psr: Prevent Panel Replay if CRC calculation is enabled

Juha-Pekka Heikkila (1):
drm/i915/display: Don't enable decompression on Xe2 with Tile4

Julien Stephan (1):
dt-bindings: iio: adc: ad7380: fix ad7380-4 reference supply

Kailang Yang (1):
ALSA: hda/realtek: Limit internal Mic boost on Dell platform

Keith Busch (2):
nvme: module parameter to disable pi with offsets
nvme: re-fix error-handling for io_uring nvme-passthrough

Konrad Dybcio (1):

      arm64: dts: qcom: x1e80100: Fix up BAR spaces

Konstantin Komarov (8):
fs/ntfs3: Fix warning possible deadlock in ntfs_set_state fs/ntfs3: Stale inode instead of bad
fs/ntfs3: Add rough attr alloc_size check
fs/ntfs3: Fix possible deadlock in mi_read
fs/ntfs3: Additional check in ni_clear()
fs/ntfs3: Fix general protection fault in run_is_mapped_full fs/ntfs3: Additional check in ntfs_file_release fs/ntfs3: Sequential field availability check in mi_enum_attr()

Leon Romanovsky (1):
RDMA/cxgb4: Dump vendor specific QP details

Ley Foon Tan (1):

      net: stmmac: dwmac4: Fix high address display by updating reg_space[] from register values

Liankun Yang (1):
drm/mediatek: Fix get efuse issue for MT8188 DPTX

Lorenzo Stoakes (2):
fork: do not invoke uffd on fork if error occurs
fork: only invoke khugepaged, ksm hooks if no error

Manikanta Pubbisetty (1):
wifi: ath10k: Fix memory leak in management tx

Marco Elver (1):
kasan: Fix Software Tag-Based KASAN with GCC

Matt Fleming (1):
mm/page_alloc: let GFP_ATOMIC order-0 allocs access highatomic reserves

Matt Johnston (1):
mctp i2c: handle NULL header address

Matthew Auld (1):

      drm/i915: disable fbc due to Wa_16023588340

Matthew Brost (2):
drm/xe: Add mmio read before GGTT invalidate drm/xe: Don't short circuit TDR on jobs not started

Matthieu Baerts (NGI0) (1):
mptcp: init: protect sched with rcu_read_lock

Michal Wajdeczko (2):
drm/xe: Fix register definition order in xe_regs.h drm/xe: Kill regs/xe_sriov_regs.h

Mika Westerberg (1):
thunderbolt: Fix KASAN reported stack out-of-bounds read in tb_retimer_scan()

Miquel Sabaté Solà (1):
riscv: Prevent a bad reference count on CPU nodes

Miri Korenblit (1):
wifi: iwlwifi: mvm: really send iwl_txpower_constraints_cmd

Mitul Golani (3):
drm/i915/display: Cache adpative sync caps to use it later drm/i915/display: WA for Re-initialize dispcnlunitt1 xosc clock drm/i915/display/dp: Compute AS SDP when vrr is also enabled

Naohiro Aota (1):
btrfs: fix error propagation of split bios

Ovidiu Bunea (1):
Revert "drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35"

Pablo Neira Ayuso (2):
gtp: allow -1 to be specified as file description from userspace
netfilter: nft_payload: sanitize offset and length before calling skb_checksum()

Pali Rohár (2):
cifs: Improve creating native symlinks pointing to directory
cifs: Fix creating native symlinks pointing to current or parent directory

Patrisious Haddad (1):
RDMA/mlx5: Round max_rd_atomic/max_dest_rd_atomic up instead of down

Paulo Alcantara (2):
smb: client: fix parsing of device numbers
smb: client: set correct device number on nfs reparse points

Pedro Tammela (1):
net/sched: stop qdisc_tree_reduce_backlog on TC_H_ROOT

Pei Xiao (1):
slub/kunit: fix a WARNING due to unwrapped __kmalloc_cache_noprof

Peter Wang (1):
scsi: ufs: core: Fix another deadlock during RTC update

Pierre Gondois (1):
ACPI: CPPC: Make rmw_lock a raw_spin_lock

Ping-Ke Shih (1):
wifi: rtw89: pci: early chips only enable 36-bit DMA on specific PCI hosts

Qu Wenruo (1):
btrfs: merge btrfs_orig_bbio_end_io() into btrfs_bio_end_io()

Remi Pommarel (1):
wifi: ath11k: Fix invalid ring usage in full monitor mode

Richard Zhu (1):
phy: freescale: imx8m-pcie: Do CMN_RST just before PHY PLL lock check

Ryusuke Konishi (2):
nilfs2: fix kernel bug due to missing clearing of checked flag
nilfs2: fix potential deadlock with newly created symlinks

Sabyrzhan Tasbolatov (1):
x86/traps: move kmsan check after instrumentation_begin

Sai Teja Pottumuttu (1):
drm/xe/xe2hpg: Introduce performance tuning changes for Xe2_HPG

Selvin Xavier (2):
RDMA/bnxt_re: Fix the usage of control path spin locks RDMA/bnxt_re: synchronize the qp-handle table array

Shawn Wang (1):
sched/numa: Fix the potential null pointer dereference in task_numa_work()

Shekhar Chauhan (1):
drm/xe/xe2: Add performance turning changes

Shiju Jose (1):
cxl/events: Fix Trace DRAM Event Record

Sumeet Pawnikar (1):
powercap: intel_rapl_msr: Add PL4 support for Arrowlake-U

Sungwoo Kim (1):
Bluetooth: hci: fix null-ptr-deref in hci_read_supported_codecs

Suraj Kandpal (4):
drm/i915/hdcp: Add encoder check in intel_hdcp_get_capability drm/i915/hdcp: Add encoder check in hdcp2_get_capability drm/i915/dp: Clear VSC SDP during post ddi disable routine drm/i915/pps: Disable DPLS_GATING around pps sequence

Tejas Upadhyay (4):
drm/xe/xe2hpg: Add Wa_15016589081
drm/xe: Move enable host l2 VRAM post MCR init drm/xe: Define STATELESS_COMPRESSION_CTRL as mcr register drm/xe: Write all slices if its mcr register

Thomas Zimmermann (1):
drm/xe: Support 'nomodeset' kernel command-line option

Toke Høiland-Jørgensen (1):
bpf, test_run: Fix LIVE_FRAME frame update after a page has been recycled

Tvrtko Ursulin (1):
drm/amd/pm: Vangogh: Fix kernel memory out of bounds write

Uladzislau Rezki (Sony) (2):
rcu/kvfree: Add kvfree_rcu_barrier() API rcu/kvfree: Refactor kvfree_rcu_queue_batch()

Ville Syrjälä (1):
wifi: iwlegacy: Clear stale interrupts before resuming device

Vitaliy Shevtsov (1):
nvmet-auth: assign dh_key to NULL after kfree_sensitive

Vladimir Oltean (1):
net/sched: sch_api: fix xa_insert() error path in tcf_block_get_ext()

Vlastimil Babka (1):
mm, mmap: limit THP alignment of anonymous mappings to PMD-aligned sizes

Wang Liang (1):
net: fix crash when config small gso_max_size/gso_ipv4_max_size

WangYuli (1):
riscv: Use '%u' to format the output of 'cpu'

Wladislav Wiebe (1):
tools/mm: -Werror fixes in page-types/slabinfo

Xinyu Zhang (1):
block: fix sanity checks in blk_rq_map_user_bvec

Xiongfeng Wang (1):
firmware: arm_sdei: Fix the input parameter of cpuhp_remove_state()

Xiu Jianfeng (1):
cgroup: Fix potential overflow issue when checking max_depth

Yu Zhao (2):
mm: multi-gen LRU: remove MM_LEAF_OLD and MM_NONLEAF_TOTAL stats
mm: multi-gen LRU: use {ptep,pmdp}_clear_young_notify()

Yuanchu Xie (1):
mm: multi-gen LRU: ignore non-leaf pmd_young for force_scan=true

Yunhui Cui (1):
RISC-V: ACPI: fix early_ioremap to early_memremap

Zhang Rui (2):

      thermal: intel: int340x: processor: Remove MMIO RAPL CPU hotplug support
      thermal: intel: int340x: processor: Add MMIO RAPL PL4 support

Zhiguo Jiang (1):
mm: shrink skip folio mapped by an exiting process

Zhihao Cheng (1):
btrfs: fix use-after-free of block device file in __btrfs_free_extra_devids()

Zichen Xie (1):
netdevsim: Add trailing zero to terminate the string in nsim_nexthop_bucket_activity_write()

Zicheng Qu (2):
staging: iio: frequency: ad9832: fix division by zero in ad9832_calc_freqreg()
iio: adc: ad7124: fix division by zero in ad7124_set_channel_odr()

Zijun Hu (1):
usb: phy: Fix API devm_usb_put_phy() can not release the phy

Zongmin Zhou (1):
usbip: tools: Fix detach_port() invalid port error path

lei lu (1):
ntfs3: Add bounds checking to mi_enum_attr()

author maintainer
#1 lore raw
Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml +21 -0
index 899b777017ce..7b299ddfea30 100644
@@ -54,6 +54,10 @@ properties:
       A 2.5V to 3.3V supply for the external reference voltage. When omitted,
       the internal 2.5V reference is used.
 
+  refin-supply:
+    description:
+      A 2.5V to 3.3V supply for external reference voltage, for ad7380-4 only.
+
   aina-supply:
     description:
       The common mode voltage supply for the AINA- pin on pseudo-differential
@@ -122,6 +126,23 @@ allOf:
         ainc-supply: false
         aind-supply: false
 
+  # ad7380-4 uses refin-supply as external reference.
+  # All other chips from ad738x family use refio as optional external reference.
+  # When refio-supply is omitted, internal reference is used.
+  - if:
+      properties:
+        compatible:
+          enum:
+            - adi,ad7380-4
+    then:
+      properties:
+        refio-supply: false
+      required:
+        - refin-supply
+    else:
+      properties:
+        refin-supply: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/irq.h>
Documentation/driver-api/dpll.rst +21 -0
index ea8d16600e16..e6855cd37e85 100644
@@ -214,6 +214,27 @@ offset values are fractional with 3-digit decimal places and shell be
 divided with ``DPLL_PIN_PHASE_OFFSET_DIVIDER`` to get integer part and
 modulo divided to get fractional part.
 
+Embedded SYNC
+=============
+
+Device may provide ability to use Embedded SYNC feature. It allows
+to embed additional SYNC signal into the base frequency of a pin - a one
+special pulse of base frequency signal every time SYNC signal pulse
+happens. The user can configure the frequency of Embedded SYNC.
+The Embedded SYNC capability is always related to a given base frequency
+and HW capabilities. The user is provided a range of Embedded SYNC
+frequencies supported, depending on current base frequency configured for
+the pin.
+
+  ========================================= =================================
+  ``DPLL_A_PIN_ESYNC_FREQUENCY``            current Embedded SYNC frequency
+  ``DPLL_A_PIN_ESYNC_FREQUENCY_SUPPORTED``  nest available Embedded SYNC
+                                            frequency ranges
+    ``DPLL_A_PIN_FREQUENCY_MIN``            attr minimum value of frequency
+    ``DPLL_A_PIN_FREQUENCY_MAX``            attr maximum value of frequency
+  ``DPLL_A_PIN_ESYNC_PULSE``                pulse type of Embedded SYNC
+  ========================================= =================================
+
 Configuration commands group
 ============================
 
Documentation/netlink/specs/dpll.yaml +24 -0
index 94132d30e0e0..f2894ca35de8 100644
@@ -345,6 +345,26 @@ attribute-sets:
           Value is in PPM (parts per million).
           This may be implemented for example for pin of type
           PIN_TYPE_SYNCE_ETH_PORT.
+      -
+        name: esync-frequency
+        type: u64
+        doc: |
+          Frequency of Embedded SYNC signal. If provided, the pin is configured
+          with a SYNC signal embedded into its base clock frequency.
+      -
+        name: esync-frequency-supported
+        type: nest
+        multi-attr: true
+        nested-attributes: frequency-range
+        doc: |
+          If provided a pin is capable of embedding a SYNC signal (within given
+          range) into its base frequency signal.
+      -
+        name: esync-pulse
+        type: u32
+        doc: |
+          A ratio of high to low state of a SYNC signal pulse embedded
+          into base clock frequency. Value is in percents.
   -
     name: pin-parent-device
     subset-of: pin
@@ -510,6 +530,9 @@ operations:
             - phase-adjust-max
             - phase-adjust
             - fractional-frequency-offset
+            - esync-frequency
+            - esync-frequency-supported
+            - esync-pulse
 
       dump:
         request:
@@ -536,6 +559,7 @@ operations:
             - parent-device
             - parent-pin
             - phase-adjust
+            - esync-frequency
     -
       name: pin-create-ntf
       doc: Notification about pin appearing
Documentation/rust/arch-support.rst +1 -1
index 750ff371570a..54be7ddf3e57 100644
@@ -17,7 +17,7 @@ Architecture   Level of support  Constraints
 =============  ================  ==============================================
 ``arm64``      Maintained        Little Endian only.
 ``loongarch``  Maintained        \-
-``riscv``      Maintained        ``riscv64`` only.
+``riscv``      Maintained        ``riscv64`` and LLVM/Clang only.
 ``um``         Maintained        \-
 ``x86``        Maintained        ``x86_64`` only.
 =============  ================  ==============================================
Makefile +1 -1
index 318a5d60088e..692bbdf40fb5 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 11
-SUBLEVEL = 6
+SUBLEVEL = 7
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
arch/arm64/boot/dts/freescale/imx8ulp.dtsi +1 -1
index e32d5afcf4a9..43f543768444 100644
@@ -384,7 +384,7 @@ pcc4: clock-controller@29800000 {
 			};
 
 			flexspi2: spi@29810000 {
-				compatible = "nxp,imx8mm-fspi";
+				compatible = "nxp,imx8ulp-fspi";
 				reg = <0x29810000 0x10000>, <0x60000000 0x10000000>;
 				reg-names = "fspi_base", "fspi_mmap";
 				#address-cells = <1>;
arch/arm64/boot/dts/qcom/msm8939.dtsi +1 -1
index 46d9480cd464..39405713329b 100644
@@ -248,7 +248,7 @@ rpm: remoteproc {
 
 		smd-edge {
 			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-			mboxes = <&apcs1_mbox 0>;
+			qcom,ipc = <&apcs1_mbox 8 0>;
 			qcom,smd-edge = <15>;
 
 			rpm_requests: rpm-requests {
arch/arm64/boot/dts/qcom/x1e80100-asus-vivobook-s15.dts +2 -0
index 9caa14dda585..530db0913f91 100644
@@ -134,6 +134,8 @@ vreg_nvme: regulator-nvme {
 
 		pinctrl-0 = <&nvme_reg_en>;
 		pinctrl-names = "default";
+
+		regulator-boot-on;
 	};
 };
 
arch/arm64/boot/dts/qcom/x1e80100-crd.dts +2 -0
index e17ab8251e2a..f566bbf50d6e 100644
@@ -283,6 +283,8 @@ vreg_nvme: regulator-nvme {
 
 		pinctrl-names = "default";
 		pinctrl-0 = <&nvme_reg_en>;
+
+		regulator-boot-on;
 	};
 };
 
arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts +2 -0
index 1943bdbfb8c0..884595d98e64 100644
@@ -206,6 +206,8 @@ vreg_nvme: regulator-nvme {
 
 		pinctrl-0 = <&nvme_reg_en>;
 		pinctrl-names = "default";
+
+		regulator-boot-on;
 	};
 };
 
arch/arm64/boot/dts/qcom/x1e80100-qcp.dts +2 -0
index 8098e6730ae5..7bee11a5f6ee 100644
@@ -253,6 +253,8 @@ vreg_nvme: regulator-nvme {
 
 		pinctrl-names = "default";
 		pinctrl-0 = <&nvme_reg_en>;
+
+		regulator-boot-on;
 	};
 };
 
arch/arm64/boot/dts/qcom/x1e80100.dtsi +20 -14
index 6174160b56c4..bb2de6469972 100644
@@ -2895,9 +2895,9 @@ pcie6a: pci@1bf8000 {
 				    "mhi";
 			#address-cells = <3>;
 			#size-cells = <2>;
-			ranges = <0x01000000 0 0x00000000 0 0x70200000 0 0x100000>,
-				 <0x02000000 0 0x70300000 0 0x70300000 0 0x3d00000>;
-			bus-range = <0 0xff>;
+			ranges = <0x01000000 0x0 0x00000000 0x0 0x70200000 0x0 0x100000>,
+				 <0x02000000 0x0 0x70300000 0x0 0x70300000 0x0 0x1d00000>;
+			bus-range = <0x00 0xff>;
 
 			dma-coherent;
 
@@ -2973,14 +2973,16 @@ pcie6a_phy: phy@1bfc000 {
 
 			clocks = <&gcc GCC_PCIE_6A_PHY_AUX_CLK>,
 				 <&gcc GCC_PCIE_6A_CFG_AHB_CLK>,
-				 <&rpmhcc RPMH_CXO_CLK>,
+				 <&tcsr TCSR_PCIE_4L_CLKREF_EN>,
 				 <&gcc GCC_PCIE_6A_PHY_RCHNG_CLK>,
-				 <&gcc GCC_PCIE_6A_PIPE_CLK>;
+				 <&gcc GCC_PCIE_6A_PIPE_CLK>,
+				 <&gcc GCC_PCIE_6A_PIPEDIV2_CLK>;
 			clock-names = "aux",
 				      "cfg_ahb",
 				      "ref",
 				      "rchng",
-				      "pipe";
+				      "pipe",
+				      "pipediv2";
 
 			resets = <&gcc GCC_PCIE_6A_PHY_BCR>,
 				 <&gcc GCC_PCIE_6A_NOCSR_COM_PHY_BCR>;
@@ -3017,8 +3019,8 @@ pcie4: pci@1c08000 {
 				    "mhi";
 			#address-cells = <3>;
 			#size-cells = <2>;
-			ranges = <0x01000000 0 0x00000000 0 0x7c200000 0 0x100000>,
-				 <0x02000000 0 0x7c300000 0 0x7c300000 0 0x3d00000>;
+			ranges = <0x01000000 0x0 0x00000000 0x0 0x7c200000 0x0 0x100000>,
+				 <0x02000000 0x0 0x7c300000 0x0 0x7c300000 0x0 0x1d00000>;
 			bus-range = <0x00 0xff>;
 
 			dma-coherent;
@@ -3068,7 +3070,7 @@ pcie4: pci@1c08000 {
 			assigned-clocks = <&gcc GCC_PCIE_4_AUX_CLK>;
 			assigned-clock-rates = <19200000>;
 
-			interconnects = <&pcie_south_anoc MASTER_PCIE_4 QCOM_ICC_TAG_ALWAYS
+			interconnects = <&pcie_north_anoc MASTER_PCIE_4 QCOM_ICC_TAG_ALWAYS
 					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
 					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
 					 &cnoc_main SLAVE_PCIE_4 QCOM_ICC_TAG_ALWAYS>;
@@ -3105,14 +3107,16 @@ pcie4_phy: phy@1c0e000 {
 
 			clocks = <&gcc GCC_PCIE_4_AUX_CLK>,
 				 <&gcc GCC_PCIE_4_CFG_AHB_CLK>,
-				 <&rpmhcc RPMH_CXO_CLK>,
+				 <&tcsr TCSR_PCIE_2L_4_CLKREF_EN>,
 				 <&gcc GCC_PCIE_4_PHY_RCHNG_CLK>,
-				 <&gcc GCC_PCIE_4_PIPE_CLK>;
+				 <&gcc GCC_PCIE_4_PIPE_CLK>,
+				 <&gcc GCC_PCIE_4_PIPEDIV2_CLK>;
 			clock-names = "aux",
 				      "cfg_ahb",
 				      "ref",
 				      "rchng",
-				      "pipe";
+				      "pipe",
+				      "pipediv2";
 
 			resets = <&gcc GCC_PCIE_4_PHY_BCR>;
 			reset-names = "phy";
@@ -5700,7 +5704,8 @@ system-cache-controller@25000000 {
 			      <0 0x25a00000 0 0x200000>,
 			      <0 0x25c00000 0 0x200000>,
 			      <0 0x25e00000 0 0x200000>,
-			      <0 0x26000000 0 0x200000>;
+			      <0 0x26000000 0 0x200000>,
+			      <0 0x26200000 0 0x200000>;
 			reg-names = "llcc0_base",
 				    "llcc1_base",
 				    "llcc2_base",
@@ -5709,7 +5714,8 @@ system-cache-controller@25000000 {
 				    "llcc5_base",
 				    "llcc6_base",
 				    "llcc7_base",
-				    "llcc_broadcast_base";
+				    "llcc_broadcast_base",
+				    "llcc_broadcast_and_base";
 			interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
 		};
 
arch/mips/kernel/cmpxchg.c +1 -0
index e974a4954df8..c371def2302d 100644
@@ -102,3 +102,4 @@ unsigned long __cmpxchg_small(volatile void *ptr, unsigned long old,
 			return old;
 	}
 }
+EXPORT_SYMBOL(__cmpxchg_small);
arch/riscv/Kconfig +1 -1
index d11c2479d8e1..6651a5cbdc27 100644
@@ -172,7 +172,7 @@ config RISCV
 	select HAVE_REGS_AND_STACK_ACCESS_API
 	select HAVE_RETHOOK if !XIP_KERNEL
 	select HAVE_RSEQ
-	select HAVE_RUST if 64BIT
+	select HAVE_RUST if 64BIT && CC_IS_CLANG
 	select HAVE_SAMPLE_FTRACE_DIRECT
 	select HAVE_SAMPLE_FTRACE_DIRECT_MULTI
 	select HAVE_STACKPROTECTOR
arch/riscv/boot/dts/starfive/jh7110-common.dtsi +0 -2
index c7771b3b6475..d6c55f1cc96a 100644
@@ -128,7 +128,6 @@ &camss {
 	assigned-clocks = <&ispcrg JH7110_ISPCLK_DOM4_APB_FUNC>,
 			  <&ispcrg JH7110_ISPCLK_MIPI_RX0_PXL>;
 	assigned-clock-rates = <49500000>, <198000000>;
-	status = "okay";
 
 	ports {
 		#address-cells = <1>;
@@ -151,7 +150,6 @@ camss_from_csi2rx: endpoint {
 &csi2rx {
 	assigned-clocks = <&ispcrg JH7110_ISPCLK_VIN_SYS>;
 	assigned-clock-rates = <297000000>;
-	status = "okay";
 
 	ports {
 		#address-cells = <1>;
arch/riscv/boot/dts/starfive/jh7110-pine64-star64.dts +1 -2
index b720cdd15ed6..8e39fdc73ecb 100644
@@ -44,8 +44,7 @@ &pcie1 {
 };
 
 &phy0 {
-	rx-internal-delay-ps = <1900>;
-	tx-internal-delay-ps = <1500>;
+	rx-internal-delay-ps = <1500>;
 	motorcomm,rx-clk-drv-microamp = <2910>;
 	motorcomm,rx-data-drv-microamp = <2910>;
 	motorcomm,tx-clk-adj-enabled;
arch/riscv/kernel/acpi.c +2 -2
index ba957aaca5cb..71a3546c6f9e 100644
@@ -210,7 +210,7 @@ void __init __iomem *__acpi_map_table(unsigned long phys, unsigned long size)
 	if (!size)
 		return NULL;
 
-	return early_ioremap(phys, size);
+	return early_memremap(phys, size);
 }
 
 void __init __acpi_unmap_table(void __iomem *map, unsigned long size)
@@ -218,7 +218,7 @@ void __init __acpi_unmap_table(void __iomem *map, unsigned long size)
 	if (!map || !size)
 		return;
 
-	early_iounmap(map, size);
+	early_memunmap(map, size);
 }
 
 void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size)
arch/riscv/kernel/asm-offsets.c +0 -2
index b09ca5f944f7..cb09f0c4f62c 100644
@@ -4,8 +4,6 @@
  * Copyright (C) 2017 SiFive
  */
 
-#define GENERATING_ASM_OFFSETS
-
 #include <linux/kbuild.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
arch/riscv/kernel/cacheinfo.c +5 -2
index d6c108c50cba..d32dfdba083e 100644
@@ -75,8 +75,7 @@ int populate_cache_leaves(unsigned int cpu)
 {
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
 	struct cacheinfo *this_leaf = this_cpu_ci->info_list;
-	struct device_node *np = of_cpu_device_node_get(cpu);
-	struct device_node *prev = NULL;
+	struct device_node *np, *prev;
 	int levels = 1, level = 1;
 
 	if (!acpi_disabled) {
@@ -100,6 +99,10 @@ int populate_cache_leaves(unsigned int cpu)
 		return 0;
 	}
 
+	np = of_cpu_device_node_get(cpu);
+	if (!np)
+		return -ENOENT;
+
 	if (of_property_read_bool(np, "cache-size"))
 		ci_leaf_init(this_leaf++, CACHE_TYPE_UNIFIED, level);
 	if (of_property_read_bool(np, "i-cache-size"))
arch/riscv/kernel/cpu-hotplug.c +1 -1
index 28b58fc5ad19..a1e38ecfc8be 100644
@@ -58,7 +58,7 @@ void arch_cpuhp_cleanup_dead_cpu(unsigned int cpu)
 	if (cpu_ops->cpu_is_stopped)
 		ret = cpu_ops->cpu_is_stopped(cpu);
 	if (ret)
-		pr_warn("CPU%d may not have stopped: %d\n", cpu, ret);
+		pr_warn("CPU%u may not have stopped: %d\n", cpu, ret);
 }
 
 /*
arch/riscv/kernel/efi-header.S +1 -1
index 515b2dfbca75..c5f17c2710b5 100644
@@ -64,7 +64,7 @@ extra_header_fields:
 	.long	efi_header_end - _start			// SizeOfHeaders
 	.long	0					// CheckSum
 	.short	IMAGE_SUBSYSTEM_EFI_APPLICATION		// Subsystem
-	.short	0					// DllCharacteristics
+	.short	IMAGE_DLL_CHARACTERISTICS_NX_COMPAT	// DllCharacteristics
 	.quad	0					// SizeOfStackReserve
 	.quad	0					// SizeOfStackCommit
 	.quad	0					// SizeOfHeapReserve
arch/riscv/kernel/traps_misaligned.c +0 -2
index d4fd8af7aaf5..1b9867136b61 100644
@@ -136,8 +136,6 @@
 #define REG_PTR(insn, pos, regs)	\
 	(ulong *)((ulong)(regs) + REG_OFFSET(insn, pos))
 
-#define GET_RM(insn)			(((insn) >> 12) & 7)
-
 #define GET_RS1(insn, regs)		(*REG_PTR(insn, SH_RS1, regs))
 #define GET_RS2(insn, regs)		(*REG_PTR(insn, SH_RS2, regs))
 #define GET_RS1S(insn, regs)		(*REG_PTR(RVC_RS1S(insn), 0, regs))
arch/riscv/kernel/vdso/Makefile +1 -0
index f7ef8ad9b550..54a7fec25d5f 100644
@@ -18,6 +18,7 @@ obj-vdso = $(patsubst %, %.o, $(vdso-syms)) note.o
 
 ccflags-y := -fno-stack-protector
 ccflags-y += -DDISABLE_BRANCH_PROFILING
+ccflags-y += -fno-builtin
 
 ifneq ($(c-gettimeofday-y),)
   CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
arch/x86/include/asm/bug.h +12 -0
index a3ec87d198ac..806649c7f23d 100644
@@ -13,6 +13,18 @@
 #define INSN_UD2	0x0b0f
 #define LEN_UD2		2
 
+/*
+ * In clang we have UD1s reporting UBSAN failures on X86, 64 and 32bit.
+ */
+#define INSN_ASOP		0x67
+#define OPCODE_ESCAPE		0x0f
+#define SECOND_BYTE_OPCODE_UD1	0xb9
+#define SECOND_BYTE_OPCODE_UD2	0x0b
+
+#define BUG_NONE		0xffff
+#define BUG_UD1			0xfffe
+#define BUG_UD2			0xfffd
+
 #ifdef CONFIG_GENERIC_BUG
 
 #ifdef CONFIG_X86_32
arch/x86/kernel/traps.c +60 -11

102 lines not on this page · raw message

block/blk-map.c +1 -3
index 0e1167b23934..6ef2ec1f7d78 100644
@@ -600,9 +600,7 @@ static int blk_rq_map_user_bvec(struct request *rq, const struct iov_iter *iter)
 		if (nsegs >= nr_segs || bytes > UINT_MAX - bv->bv_len)
 			goto put_bio;
 		if (bytes + bv->bv_len > nr_iter)
-			goto put_bio;
-		if (bv->bv_offset + bv->bv_len > PAGE_SIZE)
-			goto put_bio;
+			break;
 
 		nsegs++;
 		bytes += bv->bv_len;
drivers/accel/ivpu/ivpu_debugfs.c +9 -0
index 6f86f8df30db..8d50981594d1 100644
@@ -108,6 +108,14 @@ static int reset_pending_show(struct seq_file *s, void *v)
 	return 0;
 }
 
+static int firewall_irq_counter_show(struct seq_file *s, void *v)
+{
+	struct ivpu_device *vdev = seq_to_ivpu(s);
+
+	seq_printf(s, "%d\n", atomic_read(&vdev->hw->firewall_irq_counter));
+	return 0;
+}
+
 static const struct drm_debugfs_info vdev_debugfs_list[] = {
 	{"bo_list", bo_list_show, 0},
 	{"fw_name", fw_name_show, 0},
@@ -116,6 +124,7 @@ static const struct drm_debugfs_info vdev_debugfs_list[] = {
 	{"last_bootmode", last_bootmode_show, 0},
 	{"reset_counter", reset_counter_show, 0},
 	{"reset_pending", reset_pending_show, 0},
+	{"firewall_irq_counter", firewall_irq_counter_show, 0},
 };
 
 static ssize_t
drivers/accel/ivpu/ivpu_hw.c +1 -0
index 27f0fe4d54e0..e69c0613513f 100644
@@ -249,6 +249,7 @@ int ivpu_hw_init(struct ivpu_device *vdev)
 	platform_init(vdev);
 	wa_init(vdev);
 	timeouts_init(vdev);
+	atomic_set(&vdev->hw->firewall_irq_counter, 0);
 
 	return 0;
 }
drivers/accel/ivpu/ivpu_hw.h +1 -0
index 1c0c98e3afb8..a96a05b2acda 100644
@@ -52,6 +52,7 @@ struct ivpu_hw_info {
 	int dma_bits;
 	ktime_t d0i3_entry_host_ts;
 	u64 d0i3_entry_vpu_ts;
+	atomic_t firewall_irq_counter;
 };
 
 int ivpu_hw_init(struct ivpu_device *vdev);
drivers/accel/ivpu/ivpu_hw_ip.c +4 -1
index dfd2f4a5b526..60b33fc59d96 100644
@@ -1062,7 +1062,10 @@ static void irq_wdt_mss_handler(struct ivpu_device *vdev)
 
 static void irq_noc_firewall_handler(struct ivpu_device *vdev)
 {
-	ivpu_pm_trigger_recovery(vdev, "NOC Firewall IRQ");
+	atomic_inc(&vdev->hw->firewall_irq_counter);
+
+	ivpu_dbg(vdev, IRQ, "NOC Firewall interrupt detected, counter %d\n",
+		 atomic_read(&vdev->hw->firewall_irq_counter));
 }
 
 /* Handler for IRQs from NPU core */
drivers/acpi/cppc_acpi.c +5 -4
index ed91dfd4fdca..544f53ae9cc0 100644
@@ -867,7 +867,7 @@ int acpi_cppc_processor_probe(struct acpi_processor *pr)
 
 	/* Store CPU Logical ID */
 	cpc_ptr->cpu_id = pr->id;
-	spin_lock_init(&cpc_ptr->rmw_lock);
+	raw_spin_lock_init(&cpc_ptr->rmw_lock);
 
 	/* Parse PSD data for this CPU */
 	ret = acpi_get_psd(cpc_ptr, handle);
@@ -1087,6 +1087,7 @@ static int cpc_write(int cpu, struct cpc_register_resource *reg_res, u64 val)
 	int pcc_ss_id = per_cpu(cpu_pcc_subspace_idx, cpu);
 	struct cpc_reg *reg = &reg_res->cpc_entry.reg;
 	struct cpc_desc *cpc_desc;
+	unsigned long flags;
 
 	size = GET_BIT_WIDTH(reg);
 
@@ -1126,7 +1127,7 @@ static int cpc_write(int cpu, struct cpc_register_resource *reg_res, u64 val)
 			return -ENODEV;
 		}
 
-		spin_lock(&cpc_desc->rmw_lock);
+		raw_spin_lock_irqsave(&cpc_desc->rmw_lock, flags);
 		switch (size) {
 		case 8:
 			prev_val = readb_relaxed(vaddr);
@@ -1141,7 +1142,7 @@ static int cpc_write(int cpu, struct cpc_register_resource *reg_res, u64 val)
 			prev_val = readq_relaxed(vaddr);
 			break;
 		default:
-			spin_unlock(&cpc_desc->rmw_lock);
+			raw_spin_unlock_irqrestore(&cpc_desc->rmw_lock, flags);
 			return -EFAULT;
 		}
 		val = MASK_VAL_WRITE(reg, prev_val, val);
@@ -1174,7 +1175,7 @@ static int cpc_write(int cpu, struct cpc_register_resource *reg_res, u64 val)
 	}
 
 	if (reg->space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY)
-		spin_unlock(&cpc_desc->rmw_lock);
+		raw_spin_unlock_irqrestore(&cpc_desc->rmw_lock, flags);
 
 	return ret_val;
 }
drivers/acpi/resource.c +2 -16
index a904bf9a7f7d..42c490149a43 100644
@@ -511,24 +511,10 @@ static const struct dmi_system_id irq1_level_low_skip_override[] = {
 		},
 	},
 	{
-		/* Asus Vivobook Pro N6506MV */
+		/* Asus Vivobook Pro N6506M* */
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
-			DMI_MATCH(DMI_BOARD_NAME, "N6506MV"),
-		},
-	},
-	{
-		/* Asus Vivobook Pro N6506MU */
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
-			DMI_MATCH(DMI_BOARD_NAME, "N6506MU"),
-		},
-	},
-	{
-		/* Asus Vivobook Pro N6506MJ */
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
-			DMI_MATCH(DMI_BOARD_NAME, "N6506MJ"),
+			DMI_MATCH(DMI_BOARD_NAME, "N6506M"),
 		},
 	},
 	{
drivers/base/core.c +40 -8

80 lines not on this page · raw message

drivers/base/module.c +0 -4
index c4eaa1158d54..5bc71bea883a 100644
@@ -7,7 +7,6 @@
 #include <linux/errno.h>
 #include <linux/slab.h>
 #include <linux/string.h>
-#include <linux/rcupdate.h>
 #include "base.h"
 
 static char *make_driver_name(const struct device_driver *drv)
@@ -102,9 +101,6 @@ void module_remove_driver(const struct device_driver *drv)
 	if (!drv)
 		return;
 
-	/* Synchronize with dev_uevent() */
-	synchronize_rcu();
-
 	sysfs_remove_link(&drv->p->kobj, "module");
 
 	if (drv->owner)
drivers/char/tpm/tpm-chip.c +10 -0
index 854546000c92..1ff99a7091bb 100644
@@ -674,6 +674,16 @@ EXPORT_SYMBOL_GPL(tpm_chip_register);
  */
 void tpm_chip_unregister(struct tpm_chip *chip)
 {
+#ifdef CONFIG_TCG_TPM2_HMAC
+	int rc;
+
+	rc = tpm_try_get_ops(chip);
+	if (!rc) {
+		tpm2_end_auth_session(chip);
+		tpm_put_ops(chip);
+	}
+#endif
+
 	tpm_del_legacy_sysfs(chip);
 	if (tpm_is_hwrng_enabled(chip))
 		hwrng_unregister(&chip->hwrng);
drivers/char/tpm/tpm-dev-common.c +3 -0
index c3fbbf4d3db7..48ff87444f85 100644
@@ -27,6 +27,9 @@ static ssize_t tpm_dev_transmit(struct tpm_chip *chip, struct tpm_space *space,
 	struct tpm_header *header = (void *)buf;
 	ssize_t ret, len;
 
+	if (chip->flags & TPM_CHIP_FLAG_TPM2)
+		tpm2_end_auth_session(chip);
+
 	ret = tpm2_prepare_space(chip, space, buf, bufsiz);
 	/* If the command is not implemented by the TPM, synthesize a
 	 * response with a TPM2_RC_COMMAND_CODE return for user-space.
drivers/char/tpm/tpm-interface.c +4 -2
index 5da134f12c9a..8134f002b121 100644
@@ -379,10 +379,12 @@ int tpm_pm_suspend(struct device *dev)
 
 	rc = tpm_try_get_ops(chip);
 	if (!rc) {
-		if (chip->flags & TPM_CHIP_FLAG_TPM2)
+		if (chip->flags & TPM_CHIP_FLAG_TPM2) {
+			tpm2_end_auth_session(chip);
 			tpm2_shutdown(chip, TPM2_SU_STATE);
-		else
+		} else {
 			rc = tpm1_pm_suspend(chip, tpm_suspend_pcr);
+		}
 
 		tpm_put_ops(chip);
 	}
drivers/char/tpm/tpm2-sessions.c +60 -40

186 lines not on this page · raw message

drivers/cxl/Kconfig +1 -0
index 99b5c25be079..b3fd0f1b7578 100644
@@ -60,6 +60,7 @@ config CXL_ACPI
 	default CXL_BUS
 	select ACPI_TABLE_LIB
 	select ACPI_HMAT
+	select CXL_PORT
 	help
 	  Enable support for host managed device memory (HDM) resources
 	  published by a platform's ACPI CXL memory layout description.  See
drivers/cxl/Makefile +14 -6
index db321f48ba52..2caa90fa4bf2 100644
@@ -1,13 +1,21 @@
 # SPDX-License-Identifier: GPL-2.0
+
+# Order is important here for the built-in case:
+# - 'core' first for fundamental init
+# - 'port' before platform root drivers like 'acpi' so that CXL-root ports
+#   are immediately enabled
+# - 'mem' and 'pmem' before endpoint drivers so that memdevs are
+#   immediately enabled
+# - 'pci' last, also mirrors the hardware enumeration hierarchy
 obj-y += core/
-obj-$(CONFIG_CXL_PCI) += cxl_pci.o
-obj-$(CONFIG_CXL_MEM) += cxl_mem.o
+obj-$(CONFIG_CXL_PORT) += cxl_port.o
 obj-$(CONFIG_CXL_ACPI) += cxl_acpi.o
 obj-$(CONFIG_CXL_PMEM) += cxl_pmem.o
-obj-$(CONFIG_CXL_PORT) += cxl_port.o
+obj-$(CONFIG_CXL_MEM) += cxl_mem.o
+obj-$(CONFIG_CXL_PCI) += cxl_pci.o
 
-cxl_mem-y := mem.o
-cxl_pci-y := pci.o
+cxl_port-y := port.o
 cxl_acpi-y := acpi.o
 cxl_pmem-y := pmem.o security.o
-cxl_port-y := port.o
+cxl_mem-y := mem.o
+cxl_pci-y := pci.o
drivers/cxl/acpi.c +7 -0
index 82b78e331d8e..432b7cfd12a8 100644
@@ -924,6 +924,13 @@ static void __exit cxl_acpi_exit(void)
 
 /* load before dax_hmem sees 'Soft Reserved' CXL ranges */
 subsys_initcall(cxl_acpi_init);
+
+/*
+ * Arrange for host-bridge ports to be active synchronous with
+ * cxl_acpi_probe() exit.
+ */
+MODULE_SOFTDEP("pre: cxl_port");
+
 module_exit(cxl_acpi_exit);
 MODULE_DESCRIPTION("CXL ACPI: Platform Support");
 MODULE_LICENSE("GPL v2");
drivers/cxl/core/hdm.c +42 -8

78 lines not on this page · raw message

drivers/cxl/core/port.c +10 -3
index 1d5007e3795a..d3237346f687 100644
@@ -2088,11 +2088,18 @@ static void cxl_bus_remove(struct device *dev)
 
 static struct workqueue_struct *cxl_bus_wq;
 
-static void cxl_bus_rescan_queue(struct work_struct *w)
+static int cxl_rescan_attach(struct device *dev, void *data)
 {
-	int rc = bus_rescan_devices(&cxl_bus_type);
+	int rc = device_attach(dev);
+
+	dev_vdbg(dev, "rescan: %s\n", rc ? "attach" : "detached");
 
-	pr_debug("CXL bus rescan result: %d\n", rc);
+	return 0;
+}
+
+static void cxl_bus_rescan_queue(struct work_struct *w)
+{
+	bus_for_each_dev(&cxl_bus_type, NULL, NULL, cxl_rescan_attach);
 }
 
 void cxl_bus_rescan(void)
drivers/cxl/core/region.c +13 -35

92 lines not on this page · raw message

drivers/cxl/core/trace.h +14 -3
index 9167cfba7f59..cdffebcf20a4 100644
@@ -279,7 +279,7 @@ TRACE_EVENT(cxl_generic_event,
 #define CXL_GMER_MEM_EVT_TYPE_ECC_ERROR			0x00
 #define CXL_GMER_MEM_EVT_TYPE_INV_ADDR			0x01
 #define CXL_GMER_MEM_EVT_TYPE_DATA_PATH_ERROR		0x02
-#define show_mem_event_type(type)	__print_symbolic(type,			\
+#define show_gmer_mem_event_type(type)	__print_symbolic(type,			\
 	{ CXL_GMER_MEM_EVT_TYPE_ECC_ERROR,		"ECC Error" },		\
 	{ CXL_GMER_MEM_EVT_TYPE_INV_ADDR,		"Invalid Address" },	\
 	{ CXL_GMER_MEM_EVT_TYPE_DATA_PATH_ERROR,	"Data Path Error" }	\
@@ -373,7 +373,7 @@ TRACE_EVENT(cxl_general_media,
 		"hpa=%llx region=%s region_uuid=%pUb",
 		__entry->dpa, show_dpa_flags(__entry->dpa_flags),
 		show_event_desc_flags(__entry->descriptor),
-		show_mem_event_type(__entry->type),
+		show_gmer_mem_event_type(__entry->type),
 		show_trans_type(__entry->transaction_type),
 		__entry->channel, __entry->rank, __entry->device,
 		__print_hex(__entry->comp_id, CXL_EVENT_GEN_MED_COMP_ID_SIZE),
@@ -391,6 +391,17 @@ TRACE_EVENT(cxl_general_media,
  * DRAM Event Record defines many fields the same as the General Media Event
  * Record.  Reuse those definitions as appropriate.
  */
+#define CXL_DER_MEM_EVT_TYPE_ECC_ERROR			0x00
+#define CXL_DER_MEM_EVT_TYPE_SCRUB_MEDIA_ECC_ERROR	0x01
+#define CXL_DER_MEM_EVT_TYPE_INV_ADDR			0x02
+#define CXL_DER_MEM_EVT_TYPE_DATA_PATH_ERROR		0x03
+#define show_dram_mem_event_type(type)  __print_symbolic(type,				\
+	{ CXL_DER_MEM_EVT_TYPE_ECC_ERROR,		"ECC Error" },			\
+	{ CXL_DER_MEM_EVT_TYPE_SCRUB_MEDIA_ECC_ERROR,	"Scrub Media ECC Error" },	\
+	{ CXL_DER_MEM_EVT_TYPE_INV_ADDR,		"Invalid Address" },		\
+	{ CXL_DER_MEM_EVT_TYPE_DATA_PATH_ERROR,		"Data Path Error" }		\
+)
+
 #define CXL_DER_VALID_CHANNEL				BIT(0)
 #define CXL_DER_VALID_RANK				BIT(1)
 #define CXL_DER_VALID_NIBBLE				BIT(2)
@@ -477,7 +488,7 @@ TRACE_EVENT(cxl_dram,
 		"hpa=%llx region=%s region_uuid=%pUb",
 		__entry->dpa, show_dpa_flags(__entry->dpa_flags),
 		show_event_desc_flags(__entry->descriptor),
-		show_mem_event_type(__entry->type),
+		show_dram_mem_event_type(__entry->type),
 		show_trans_type(__entry->transaction_type),
 		__entry->channel, __entry->rank, __entry->nibble_mask,
 		__entry->bank_group, __entry->bank,
drivers/cxl/cxl.h +2 -1
index 9afb407d438f..d437745ab172 100644
@@ -359,7 +359,7 @@ struct cxl_decoder {
 	struct cxl_region *region;
 	unsigned long flags;
 	int (*commit)(struct cxl_decoder *cxld);
-	int (*reset)(struct cxl_decoder *cxld);
+	void (*reset)(struct cxl_decoder *cxld);
 };
 
 /*
@@ -730,6 +730,7 @@ static inline bool is_cxl_root(struct cxl_port *port)
 int cxl_num_decoders_committed(struct cxl_port *port);
 bool is_cxl_port(const struct device *dev);
 struct cxl_port *to_cxl_port(const struct device *dev);
+void cxl_port_commit_reap(struct cxl_decoder *cxld);
 struct pci_bus;
 int devm_cxl_register_pci_bus(struct device *host, struct device *uport_dev,
 			      struct pci_bus *bus);
drivers/cxl/port.c +16 -1
index d7d5d982ce69..49733d2c38f1 100644
@@ -208,7 +208,22 @@ static struct cxl_driver cxl_port_driver = {
 	},
 };
 
-module_cxl_driver(cxl_port_driver);
+static int __init cxl_port_init(void)
+{
+	return cxl_driver_register(&cxl_port_driver);
+}
+/*
+ * Be ready to immediately enable ports emitted by the platform CXL root
+ * (e.g. cxl_acpi) when CONFIG_CXL_PORT=y.
+ */
+subsys_initcall(cxl_port_init);
+
+static void __exit cxl_port_exit(void)
+{
+	cxl_driver_unregister(&cxl_port_driver);
+}
+module_exit(cxl_port_exit);
+
 MODULE_DESCRIPTION("CXL: Port enumeration and services");
 MODULE_LICENSE("GPL v2");
 MODULE_IMPORT_NS(CXL);
drivers/dpll/dpll_netlink.c +130 -0

154 lines not on this page · raw message

drivers/dpll/dpll_nl.c +3 -2
index 1e95f5397cfc..fe9b6893d261 100644
@@ -62,7 +62,7 @@ static const struct nla_policy dpll_pin_get_dump_nl_policy[DPLL_A_PIN_ID + 1] =
 };
 
 /* DPLL_CMD_PIN_SET - do */
-static const struct nla_policy dpll_pin_set_nl_policy[DPLL_A_PIN_PHASE_ADJUST + 1] = {
+static const struct nla_policy dpll_pin_set_nl_policy[DPLL_A_PIN_ESYNC_FREQUENCY + 1] = {
 	[DPLL_A_PIN_ID] = { .type = NLA_U32, },
 	[DPLL_A_PIN_FREQUENCY] = { .type = NLA_U64, },
 	[DPLL_A_PIN_DIRECTION] = NLA_POLICY_RANGE(NLA_U32, 1, 2),
@@ -71,6 +71,7 @@ static const struct nla_policy dpll_pin_set_nl_policy[DPLL_A_PIN_PHASE_ADJUST +
 	[DPLL_A_PIN_PARENT_DEVICE] = NLA_POLICY_NESTED(dpll_pin_parent_device_nl_policy),
 	[DPLL_A_PIN_PARENT_PIN] = NLA_POLICY_NESTED(dpll_pin_parent_pin_nl_policy),
 	[DPLL_A_PIN_PHASE_ADJUST] = { .type = NLA_S32, },
+	[DPLL_A_PIN_ESYNC_FREQUENCY] = { .type = NLA_U64, },
 };
 
 /* Ops table for dpll */
@@ -138,7 +139,7 @@ static const struct genl_split_ops dpll_nl_ops[] = {
 		.doit		= dpll_nl_pin_set_doit,
 		.post_doit	= dpll_pin_post_doit,
 		.policy		= dpll_pin_set_nl_policy,
-		.maxattr	= DPLL_A_PIN_PHASE_ADJUST,
+		.maxattr	= DPLL_A_PIN_ESYNC_FREQUENCY,
 		.flags		= GENL_ADMIN_PERM | GENL_CMD_CAP_DO,
 	},
 };
drivers/firmware/arm_sdei.c +1 -1
index 285fe7ad490d..3e8051fe8296 100644
@@ -763,7 +763,7 @@ static int sdei_device_freeze(struct device *dev)
 	int err;
 
 	/* unregister private events */
-	cpuhp_remove_state(sdei_entry_point);
+	cpuhp_remove_state(sdei_hp_state);
 
 	err = sdei_unregister_shared();
 	if (err)
drivers/firmware/microchip/mpfs-auto-update.c +7 -35

81 lines not on this page · raw message

drivers/gpio/gpio-sloppy-logic-analyzer.c +3 -1
index aed6d1f6cfc3..6440d55bf2e1 100644
@@ -235,7 +235,9 @@ static int gpio_la_poll_probe(struct platform_device *pdev)
 	if (!priv)
 		return -ENOMEM;
 
-	devm_mutex_init(dev, &priv->blob_lock);
+	ret = devm_mutex_init(dev, &priv->blob_lock);
+	if (ret)
+		return ret;
 
 	fops_buf_size_set(priv, GPIO_LA_DEFAULT_BUF_SIZE);
 
drivers/gpio/gpiolib.c +3 -1
index 148bcfbf98e0..337971080dfd 100644
@@ -4834,6 +4834,8 @@ static void *gpiolib_seq_start(struct seq_file *s, loff_t *pos)
 		return NULL;
 
 	s->private = priv;
+	if (*pos > 0)
+		priv->newline = true;
 	priv->idx = srcu_read_lock(&gpio_devices_srcu);
 
 	list_for_each_entry_srcu(gdev, &gpio_devices, list,
@@ -4877,7 +4879,7 @@ static int gpiolib_seq_show(struct seq_file *s, void *v)
 
 	gc = srcu_dereference(gdev->chip, &gdev->srcu);
 	if (!gc) {
-		seq_printf(s, "%s%s: (dangling chip)",
+		seq_printf(s, "%s%s: (dangling chip)\n",
 			   priv->newline ? "\n" : "",
 			   dev_name(&gdev->dev));
 		return 0;
drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c +8 -1
index 403c177f2434..bbf43e668c1c 100644
@@ -51,6 +51,12 @@ MODULE_FIRMWARE("amdgpu/sdma_7_0_1.bin");
 #define SDMA0_HYP_DEC_REG_END 0x589a
 #define SDMA1_HYP_DEC_REG_OFFSET 0x20
 
+/*define for compression field for sdma7*/
+#define SDMA_PKT_CONSTANT_FILL_HEADER_compress_offset 0
+#define SDMA_PKT_CONSTANT_FILL_HEADER_compress_mask   0x00000001
+#define SDMA_PKT_CONSTANT_FILL_HEADER_compress_shift  16
+#define SDMA_PKT_CONSTANT_FILL_HEADER_COMPRESS(x) (((x) & SDMA_PKT_CONSTANT_FILL_HEADER_compress_mask) << SDMA_PKT_CONSTANT_FILL_HEADER_compress_shift)
+
 static void sdma_v7_0_set_ring_funcs(struct amdgpu_device *adev);
 static void sdma_v7_0_set_buffer_funcs(struct amdgpu_device *adev);
 static void sdma_v7_0_set_vm_pte_funcs(struct amdgpu_device *adev);
@@ -1611,7 +1617,8 @@ static void sdma_v7_0_emit_fill_buffer(struct amdgpu_ib *ib,
 				       uint64_t dst_offset,
 				       uint32_t byte_count)
 {
-	ib->ptr[ib->length_dw++] = SDMA_PKT_COPY_LINEAR_HEADER_OP(SDMA_OP_CONST_FILL);
+	ib->ptr[ib->length_dw++] = SDMA_PKT_CONSTANT_FILL_HEADER_OP(SDMA_OP_CONST_FILL) |
+		SDMA_PKT_CONSTANT_FILL_HEADER_COMPRESS(1);
 	ib->ptr[ib->length_dw++] = lower_32_bits(dst_offset);
 	ib->ptr[ib->length_dw++] = upper_32_bits(dst_offset);
 	ib->ptr[ib->length_dw++] = src_data;
drivers/gpu/drm/amd/display/dc/dml2/dml2_policy.c +1 -0
index 11c904ae2958..c4c52173ef22 100644
@@ -303,6 +303,7 @@ void build_unoptimized_policy_settings(enum dml_project_id project, struct dml_m
 	if (project == dml_project_dcn35 ||
 		project == dml_project_dcn351) {
 		policy->DCCProgrammingAssumesScanDirectionUnknownFinal = false;
+		policy->EnhancedPrefetchScheduleAccelerationFinal = 0;
 		policy->AllowForPStateChangeOrStutterInVBlankFinal = dml_prefetch_support_uclk_fclk_and_stutter_if_possible; /*new*/
 		policy->UseOnlyMaxPrefetchModes = 1;
 	}
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +14 -1
index 87672ca714de..80e60ea2d11e 100644
@@ -1234,6 +1234,14 @@ static void smu_init_xgmi_plpd_mode(struct smu_context *smu)
 	}
 }
 
+static bool smu_is_workload_profile_available(struct smu_context *smu,
+					      u32 profile)
+{
+	if (profile >= PP_SMC_POWER_PROFILE_COUNT)
+		return false;
+	return smu->workload_map && smu->workload_map[profile].valid_mapping;
+}
+
 static int smu_sw_init(void *handle)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
@@ -1257,7 +1265,6 @@ static int smu_sw_init(void *handle)
 	atomic_set(&smu->smu_power.power_gate.vpe_gated, 1);
 	atomic_set(&smu->smu_power.power_gate.umsch_mm_gated, 1);
 
-	smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT];
 	smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT] = 0;
 	smu->workload_prority[PP_SMC_POWER_PROFILE_FULLSCREEN3D] = 1;
 	smu->workload_prority[PP_SMC_POWER_PROFILE_POWERSAVING] = 2;
@@ -1266,6 +1273,12 @@ static int smu_sw_init(void *handle)
 	smu->workload_prority[PP_SMC_POWER_PROFILE_COMPUTE] = 5;
 	smu->workload_prority[PP_SMC_POWER_PROFILE_CUSTOM] = 6;
 
+	if (smu->is_apu ||
+	    !smu_is_workload_profile_available(smu, PP_SMC_POWER_PROFILE_FULLSCREEN3D))
+		smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT];
+	else
+		smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_FULLSCREEN3D];
+
 	smu->workload_setting[0] = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT;
 	smu->workload_setting[1] = PP_SMC_POWER_PROFILE_FULLSCREEN3D;
 	smu->workload_setting[2] = PP_SMC_POWER_PROFILE_POWERSAVING;
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c +3 -1
index 22737b11b1bf..1fe020f1f4db 100644
@@ -242,7 +242,9 @@ static int vangogh_tables_init(struct smu_context *smu)
 		goto err0_out;
 	smu_table->metrics_time = 0;
 
-	smu_table->gpu_metrics_table_size = max(sizeof(struct gpu_metrics_v2_3), sizeof(struct gpu_metrics_v2_2));
+	smu_table->gpu_metrics_table_size = sizeof(struct gpu_metrics_v2_2);
+	smu_table->gpu_metrics_table_size = max(smu_table->gpu_metrics_table_size, sizeof(struct gpu_metrics_v2_3));
+	smu_table->gpu_metrics_table_size = max(smu_table->gpu_metrics_table_size, sizeof(struct gpu_metrics_v2_4));
 	smu_table->gpu_metrics_table = kzalloc(smu_table->gpu_metrics_table_size, GFP_KERNEL);
 	if (!smu_table->gpu_metrics_table)
 		goto err1_out;
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +3 -3
index cb923e33fd6f..d53e162dcd8d 100644
@@ -2485,7 +2485,7 @@ static int smu_v13_0_0_set_power_profile_mode(struct smu_context *smu,
 	DpmActivityMonitorCoeffInt_t *activity_monitor =
 		&(activity_monitor_external.DpmActivityMonitorCoeffInt);
 	int workload_type, ret = 0;
-	u32 workload_mask;
+	u32 workload_mask, selected_workload_mask;
 
 	smu->power_profile_mode = input[size];
 
@@ -2552,7 +2552,7 @@ static int smu_v13_0_0_set_power_profile_mode(struct smu_context *smu,
 	if (workload_type < 0)
 		return -EINVAL;
 
-	workload_mask = 1 << workload_type;
+	selected_workload_mask = workload_mask = 1 << workload_type;
 
 	/* Add optimizations for SMU13.0.0/10.  Reuse the power saving profile */
 	if ((amdgpu_ip_version(smu->adev, MP1_HWIP, 0) == IP_VERSION(13, 0, 0) &&
@@ -2572,7 +2572,7 @@ static int smu_v13_0_0_set_power_profile_mode(struct smu_context *smu,
 					       workload_mask,
 					       NULL);
 	if (!ret)
-		smu->workload_mask = workload_mask;
+		smu->workload_mask = selected_workload_mask;
 
 	return ret;
 }
drivers/gpu/drm/i915/display/intel_alpm.c +1 -1
index 10689480338e..90a960fb1d14 100644
@@ -280,7 +280,7 @@ void intel_alpm_lobf_compute_config(struct intel_dp *intel_dp,
 	if (DISPLAY_VER(i915) < 20)
 		return;
 
-	if (!intel_dp_as_sdp_supported(intel_dp))
+	if (!intel_dp->as_sdp_supported)
 		return;
 
 	if (crtc_state->has_psr)
drivers/gpu/drm/i915/display/intel_backlight.c +5 -5
index 6c3333136737..ca28558a2c93 100644
@@ -1011,7 +1011,7 @@ static u32 cnp_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
 {
 	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 
-	return DIV_ROUND_CLOSEST(KHz(RUNTIME_INFO(i915)->rawclk_freq),
+	return DIV_ROUND_CLOSEST(KHz(DISPLAY_RUNTIME_INFO(i915)->rawclk_freq),
 				 pwm_freq_hz);
 }
 
@@ -1073,7 +1073,7 @@ static u32 pch_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
 {
 	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 
-	return DIV_ROUND_CLOSEST(KHz(RUNTIME_INFO(i915)->rawclk_freq),
+	return DIV_ROUND_CLOSEST(KHz(DISPLAY_RUNTIME_INFO(i915)->rawclk_freq),
 				 pwm_freq_hz * 128);
 }
 
@@ -1091,7 +1091,7 @@ static u32 i9xx_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
 	int clock;
 
 	if (IS_PINEVIEW(i915))
-		clock = KHz(RUNTIME_INFO(i915)->rawclk_freq);
+		clock = KHz(DISPLAY_RUNTIME_INFO(i915)->rawclk_freq);
 	else
 		clock = KHz(i915->display.cdclk.hw.cdclk);
 
@@ -1109,7 +1109,7 @@ static u32 i965_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
 	int clock;
 
 	if (IS_G4X(i915))
-		clock = KHz(RUNTIME_INFO(i915)->rawclk_freq);
+		clock = KHz(DISPLAY_RUNTIME_INFO(i915)->rawclk_freq);
 	else
 		clock = KHz(i915->display.cdclk.hw.cdclk);
 
@@ -1133,7 +1133,7 @@ static u32 vlv_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
 			clock = MHz(25);
 		mul = 16;
 	} else {
-		clock = KHz(RUNTIME_INFO(i915)->rawclk_freq);
+		clock = KHz(DISPLAY_RUNTIME_INFO(i915)->rawclk_freq);
 		mul = 128;
 	}
 
drivers/gpu/drm/i915/display/intel_display_device.c +5 -0
index dd7dce4b0e7a..ff3bac7dd9e3 100644
@@ -1474,6 +1474,9 @@ static void __intel_display_device_info_runtime_init(struct drm_i915_private *i9
 		}
 	}
 
+	display_runtime->rawclk_freq = intel_read_rawclk(i915);
+	drm_dbg_kms(&i915->drm, "rawclk rate: %d kHz\n", display_runtime->rawclk_freq);
+
 	return;
 
 display_fused_off:
@@ -1516,6 +1519,8 @@ void intel_display_device_info_print(const struct intel_display_device_info *inf
 	drm_printf(p, "has_hdcp: %s\n", str_yes_no(runtime->has_hdcp));
 	drm_printf(p, "has_dmc: %s\n", str_yes_no(runtime->has_dmc));
 	drm_printf(p, "has_dsc: %s\n", str_yes_no(runtime->has_dsc));
+
+	drm_printf(p, "rawclk rate: %u kHz\n", runtime->rawclk_freq);
 }
 
 /*
drivers/gpu/drm/i915/display/intel_display_device.h +2 -0
index 13453ea4daea..ad60c676c84d 100644
@@ -204,6 +204,8 @@ struct intel_display_runtime_info {
 		u16 step;
 	} ip;
 
+	u32 rawclk_freq;
+
 	u8 pipe_mask;
 	u8 cpu_transcoder_mask;
 	u16 port_mask;
drivers/gpu/drm/i915/display/intel_display_power.c +8 -0
index e288a1b21d7e..0af1e34ef2a7 100644
@@ -1704,6 +1704,14 @@ static void icl_display_core_init(struct drm_i915_private *dev_priv,
 	/* Wa_14011503030:xelpd */
 	if (DISPLAY_VER(dev_priv) == 13)
 		intel_de_write(dev_priv, XELPD_DISPLAY_ERR_FATAL_MASK, ~0);
+
+	/* Wa_15013987218 */
+	if (DISPLAY_VER(dev_priv) == 20) {
+		intel_de_rmw(dev_priv, SOUTH_DSPCLK_GATE_D,
+			     0, PCH_GMBUSUNIT_CLOCK_GATE_DISABLE);
+		intel_de_rmw(dev_priv, SOUTH_DSPCLK_GATE_D,
+			     PCH_GMBUSUNIT_CLOCK_GATE_DISABLE, 0);
+	}
 }
 
 static void icl_display_core_uninit(struct drm_i915_private *dev_priv)
drivers/gpu/drm/i915/display/intel_display_power_well.c +2 -2
index 919f712fef13..adf5d1fbccb5 100644
@@ -1176,9 +1176,9 @@ static void vlv_init_display_clock_gating(struct drm_i915_private *dev_priv)
 		       MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE);
 	intel_de_write(dev_priv, CBR1_VLV, 0);
 
-	drm_WARN_ON(&dev_priv->drm, RUNTIME_INFO(dev_priv)->rawclk_freq == 0);
+	drm_WARN_ON(&dev_priv->drm, DISPLAY_RUNTIME_INFO(dev_priv)->rawclk_freq == 0);
 	intel_de_write(dev_priv, RAWCLK_FREQ_VLV,
-		       DIV_ROUND_CLOSEST(RUNTIME_INFO(dev_priv)->rawclk_freq,
+		       DIV_ROUND_CLOSEST(DISPLAY_RUNTIME_INFO(dev_priv)->rawclk_freq,
 					 1000));
 }
 
drivers/gpu/drm/i915/display/intel_display_types.h +1 -0
index f9d3cc3c342b..160098708eba 100644
@@ -1806,6 +1806,7 @@ struct intel_dp {
 
 	/* connector directly attached - won't be use for modeset in mst world */
 	struct intel_connector *attached_connector;
+	bool as_sdp_supported;
 
 	struct drm_dp_tunnel *tunnel;
 	bool tunnel_suspended:1;
drivers/gpu/drm/i915/display/intel_display_wa.h +8 -0
index 63201d09852c..be644ab6ae00 100644
@@ -6,8 +6,16 @@
 #ifndef __INTEL_DISPLAY_WA_H__
 #define __INTEL_DISPLAY_WA_H__
 
+#include <linux/types.h>
+
 struct drm_i915_private;
 
 void intel_display_wa_apply(struct drm_i915_private *i915);
 
+#ifdef I915
+static inline bool intel_display_needs_wa_16023588340(struct drm_i915_private *i915) { return false; }
+#else
+bool intel_display_needs_wa_16023588340(struct drm_i915_private *i915);
+#endif
+
 #endif
drivers/gpu/drm/i915/display/intel_dp.c +17 -12
index ffc0d1b14045..4ec724e8b220 100644
@@ -130,14 +130,6 @@ bool intel_dp_is_edp(struct intel_dp *intel_dp)
 	return dig_port->base.type == INTEL_OUTPUT_EDP;
 }
 
-bool intel_dp_as_sdp_supported(struct intel_dp *intel_dp)
-{
-	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
-
-	return HAS_AS_SDP(i915) &&
-		drm_dp_as_sdp_supported(&intel_dp->aux, intel_dp->dpcd);
-}
-
 static void intel_dp_unset_edid(struct intel_dp *intel_dp);
 
 /* Is link rate UHBR and thus 128b/132b? */
@@ -2635,8 +2627,7 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
 	const struct drm_display_mode *adjusted_mode =
 		&crtc_state->hw.adjusted_mode;
 
-	if (!crtc_state->vrr.enable ||
-	    !intel_dp_as_sdp_supported(intel_dp))
+	if (!crtc_state->vrr.enable || !intel_dp->as_sdp_supported)
 		return;
 
 	crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
@@ -4402,8 +4393,11 @@ void intel_dp_set_infoframes(struct intel_encoder *encoder,
 	if (!enable && HAS_DSC(dev_priv))
 		val &= ~VDIP_ENABLE_PPS;
 
-	/* When PSR is enabled, this routine doesn't disable VSC DIP */
-	if (!crtc_state->has_psr)
+	/*
+	 * This routine disables VSC DIP if the function is called
+	 * to disable SDP or if it does not have PSR
+	 */
+	if (!enable || !crtc_state->has_psr)
 		val &= ~VIDEO_DIP_ENABLE_VSC_HSW;
 
 	intel_de_write(dev_priv, reg, val);
@@ -5921,6 +5915,15 @@ intel_dp_detect_dsc_caps(struct intel_dp *intel_dp, struct intel_connector *conn
 					  connector);
 }
 
+static void
+intel_dp_detect_sdp_caps(struct intel_dp *intel_dp)
+{
+	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
+
+	intel_dp->as_sdp_supported = HAS_AS_SDP(i915) &&
+		drm_dp_as_sdp_supported(&intel_dp->aux, intel_dp->dpcd);
+}
+
 static int
 intel_dp_detect(struct drm_connector *connector,
 		struct drm_modeset_acquire_ctx *ctx,
@@ -5991,6 +5994,8 @@ intel_dp_detect(struct drm_connector *connector,
 
 	intel_dp_detect_dsc_caps(intel_dp, intel_connector);
 
+	intel_dp_detect_sdp_caps(intel_dp);
+
 	intel_dp_mst_configure(intel_dp);
 
 	if (intel_dp->reset_link_params) {
drivers/gpu/drm/i915/display/intel_dp.h +0 -1
index a0f990a95ecc..9be539edf817 100644
@@ -85,7 +85,6 @@ void intel_dp_audio_compute_config(struct intel_encoder *encoder,
 				   struct drm_connector_state *conn_state);
 bool intel_dp_has_hdmi_sink(struct intel_dp *intel_dp);
 bool intel_dp_is_edp(struct intel_dp *intel_dp);
-bool intel_dp_as_sdp_supported(struct intel_dp *intel_dp);
 bool intel_dp_is_uhbr(const struct intel_crtc_state *crtc_state);
 bool intel_dp_has_dsc(const struct intel_connector *connector);
 int intel_dp_link_symbol_size(int rate);
drivers/gpu/drm/i915/display/intel_dp_aux.c +2 -2
index be58185a77c0..6420da69f3bb 100644
@@ -84,7 +84,7 @@ static u32 g4x_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
 	 * The clock divider is based off the hrawclk, and would like to run at
 	 * 2MHz.  So, take the hrawclk value and divide by 2000 and use that
 	 */
-	return DIV_ROUND_CLOSEST(RUNTIME_INFO(i915)->rawclk_freq, 2000);
+	return DIV_ROUND_CLOSEST(DISPLAY_RUNTIME_INFO(i915)->rawclk_freq, 2000);
 }
 
 static u32 ilk_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
@@ -104,7 +104,7 @@ static u32 ilk_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
 	if (dig_port->aux_ch == AUX_CH_A)
 		freq = i915->display.cdclk.hw.cdclk;
 	else
-		freq = RUNTIME_INFO(i915)->rawclk_freq;
+		freq = DISPLAY_RUNTIME_INFO(i915)->rawclk_freq;
 	return DIV_ROUND_CLOSEST(freq, 2000);
 }
 
drivers/gpu/drm/i915/display/intel_dp_hdcp.c +9 -2
index b0101d72b9c1..71bf014a57e5 100644
@@ -677,8 +677,15 @@ static
 int intel_dp_hdcp2_get_capability(struct intel_connector *connector,
 				  bool *capable)
 {
-	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct drm_dp_aux *aux = &dig_port->dp.aux;
+	struct intel_digital_port *dig_port;
+	struct drm_dp_aux *aux;
+
+	*capable = false;
+	if (!intel_attached_encoder(connector))
+		return -EINVAL;
+
+	dig_port = intel_attached_dig_port(connector);
+	aux = &dig_port->dp.aux;
 
 	return _intel_dp_hdcp2_get_capability(aux, capable);
 }
drivers/gpu/drm/i915/display/intel_fbc.c +6 -0
index 67116c9f1464..8488f82143a4 100644
@@ -56,6 +56,7 @@
 #include "intel_display_device.h"
 #include "intel_display_trace.h"
 #include "intel_display_types.h"
+#include "intel_display_wa.h"
 #include "intel_fbc.h"
 #include "intel_fbc_regs.h"
 #include "intel_frontbuffer.h"
@@ -1237,6 +1238,11 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
 		return 0;
 	}
 
+	if (intel_display_needs_wa_16023588340(i915)) {
+		plane_state->no_fbc_reason = "Wa_16023588340";
+		return 0;
+	}
+
 	/* WaFbcTurnOffFbcWhenHyperVisorIsUsed:skl,bxt */
 	if (i915_vtd_active(i915) && (IS_SKYLAKE(i915) || IS_BROXTON(i915))) {
 		plane_state->no_fbc_reason = "VT-d enabled";
drivers/gpu/drm/i915/display/intel_hdcp.c +6 -1
index b0440cc59c23..c2f42be26128 100644
@@ -203,11 +203,16 @@ int intel_hdcp_read_valid_bksv(struct intel_digital_port *dig_port,
 /* Is HDCP1.4 capable on Platform and Sink */
 bool intel_hdcp_get_capability(struct intel_connector *connector)
 {
-	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_digital_port *dig_port;
 	const struct intel_hdcp_shim *shim = connector->hdcp.shim;
 	bool capable = false;
 	u8 bksv[5];
 
+	if (!intel_attached_encoder(connector))
+		return capable;
+
+	dig_port = intel_attached_dig_port(connector);
+
 	if (!shim)
 		return capable;
 
drivers/gpu/drm/i915/display/intel_pps.c +13 -1
index 7ce926241e83..68141af4da54 100644
@@ -951,6 +951,14 @@ void intel_pps_on_unlocked(struct intel_dp *intel_dp)
 		intel_de_posting_read(dev_priv, pp_ctrl_reg);
 	}
 
+	/*
+	 * WA: 22019252566
+	 * Disable DPLS gating around power sequence.
+	 */
+	if (IS_DISPLAY_VER(dev_priv, 13, 14))
+		intel_de_rmw(dev_priv, SOUTH_DSPCLK_GATE_D,
+			     0, PCH_DPLSUNIT_CLOCK_GATE_DISABLE);
+
 	pp |= PANEL_POWER_ON;
 	if (!IS_IRONLAKE(dev_priv))
 		pp |= PANEL_POWER_RESET;
@@ -961,6 +969,10 @@ void intel_pps_on_unlocked(struct intel_dp *intel_dp)
 	wait_panel_on(intel_dp);
 	intel_dp->pps.last_power_on = jiffies;
 
+	if (IS_DISPLAY_VER(dev_priv, 13, 14))
+		intel_de_rmw(dev_priv, SOUTH_DSPCLK_GATE_D,
+			     PCH_DPLSUNIT_CLOCK_GATE_DISABLE, 0);
+
 	if (IS_IRONLAKE(dev_priv)) {
 		pp |= PANEL_POWER_RESET; /* restore panel reset bit */
 		intel_de_write(dev_priv, pp_ctrl_reg, pp);
@@ -1471,7 +1483,7 @@ static void pps_init_registers(struct intel_dp *intel_dp, bool force_disable_vdd
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
 	u32 pp_on, pp_off, port_sel = 0;
-	int div = RUNTIME_INFO(dev_priv)->rawclk_freq / 1000;
+	int div = DISPLAY_RUNTIME_INFO(dev_priv)->rawclk_freq / 1000;
 	struct pps_registers regs;
 	enum port port = dp_to_dig_port(intel_dp)->base.port;
 	const struct edp_power_seq *seq = &intel_dp->pps.pps_delays;
drivers/gpu/drm/i915/display/intel_psr.c +6 -0
index da242ba19ed9..0876fe53a6f9 100644
@@ -1605,6 +1605,12 @@ _panel_replay_compute_config(struct intel_dp *intel_dp,
 	if (!alpm_config_valid(intel_dp, crtc_state, true))
 		return false;
 
+	if (crtc_state->crc_enabled) {
+		drm_dbg_kms(&i915->drm,
+			    "Panel Replay not enabled because it would inhibit pipe CRC calculation\n");
+		return false;
+	}
+
 	return true;
 }
 
drivers/gpu/drm/i915/display/intel_tc.c +3 -0
index 9887967b2ca5..6f2ee7dbc43b 100644
@@ -393,6 +393,9 @@ void intel_tc_port_set_fia_lane_count(struct intel_digital_port *dig_port,
 	bool lane_reversal = dig_port->saved_port_bits & DDI_BUF_PORT_REVERSAL;
 	u32 val;
 
+	if (DISPLAY_VER(i915) >= 14)
+		return;
+
 	drm_WARN_ON(&i915->drm,
 		    lane_reversal && tc->mode != TC_PORT_LEGACY);
 
drivers/gpu/drm/i915/display/intel_vrr.c +1 -2
index 5a0da64c7db3..7e1d9c718214 100644
@@ -233,8 +233,7 @@ intel_vrr_compute_config(struct intel_crtc_state *crtc_state,
 		crtc_state->mode_flags |= I915_MODE_FLAG_VRR;
 	}
 
-	if (intel_dp_as_sdp_supported(intel_dp) &&
-	    crtc_state->vrr.enable) {
+	if (intel_dp->as_sdp_supported && crtc_state->vrr.enable) {
 		crtc_state->vrr.vsync_start =
 			(crtc_state->hw.adjusted_mode.crtc_vtotal -
 			 crtc_state->hw.adjusted_mode.vsync_start);
drivers/gpu/drm/i915/display/skl_universal_plane.c +0 -5
index ba5a628b4757..a1ab64db0130 100644
@@ -1085,11 +1085,6 @@ static u32 skl_plane_ctl(const struct intel_crtc_state *crtc_state,
 	if (DISPLAY_VER(dev_priv) == 13)
 		plane_ctl |= adlp_plane_ctl_arb_slots(plane_state);
 
-	if (GRAPHICS_VER(dev_priv) >= 20 &&
-	    fb->modifier == I915_FORMAT_MOD_4_TILED) {
-		plane_ctl |= PLANE_CTL_RENDER_DECOMPRESSION_ENABLE;
-	}
-
 	return plane_ctl;
 }
 
drivers/gpu/drm/i915/intel_device_info.c +0 -5
index eede5417cb3f..01a650253050 100644
@@ -124,7 +124,6 @@ void intel_device_info_print(const struct intel_device_info *info,
 #undef PRINT_FLAG
 
 	drm_printf(p, "has_pooled_eu: %s\n", str_yes_no(runtime->has_pooled_eu));
-	drm_printf(p, "rawclk rate: %u kHz\n", runtime->rawclk_freq);
 }
 
 #define ID(id) (id)
@@ -377,10 +376,6 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
 			 "Disabling ppGTT for VT-d support\n");
 		runtime->ppgtt_type = INTEL_PPGTT_NONE;
 	}
-
-	runtime->rawclk_freq = intel_read_rawclk(dev_priv);
-	drm_dbg(&dev_priv->drm, "rawclk rate: %d kHz\n", runtime->rawclk_freq);
-
 }
 
 /*
drivers/gpu/drm/i915/intel_device_info.h +0 -2
index df73ef94615d..643ff1bf74ee 100644
@@ -207,8 +207,6 @@ struct intel_runtime_info {
 
 	u16 device_id;
 
-	u32 rawclk_freq;
-
 	struct intel_step_info step;
 
 	unsigned int page_sizes; /* page sizes supported by the HW */
drivers/gpu/drm/mediatek/mtk_crtc.c +4 -43

66 lines not on this page · raw message

drivers/gpu/drm/mediatek/mtk_disp_ovl.c +2 -7
index 9d6d9fd8342e..064d03598ea2 100644
@@ -61,8 +61,8 @@
 #define OVL_CON_CLRFMT_RGB	(1 << 12)
 #define OVL_CON_CLRFMT_ARGB8888	(2 << 12)
 #define OVL_CON_CLRFMT_RGBA8888	(3 << 12)
-#define OVL_CON_CLRFMT_ABGR8888	(OVL_CON_CLRFMT_RGBA8888 | OVL_CON_BYTE_SWAP)
-#define OVL_CON_CLRFMT_BGRA8888	(OVL_CON_CLRFMT_ARGB8888 | OVL_CON_BYTE_SWAP)
+#define OVL_CON_CLRFMT_ABGR8888	(OVL_CON_CLRFMT_ARGB8888 | OVL_CON_BYTE_SWAP)
+#define OVL_CON_CLRFMT_BGRA8888	(OVL_CON_CLRFMT_RGBA8888 | OVL_CON_BYTE_SWAP)
 #define OVL_CON_CLRFMT_UYVY	(4 << 12)
 #define OVL_CON_CLRFMT_YUYV	(5 << 12)
 #define OVL_CON_CLRFMT_RGB565(ovl)	((ovl)->data->fmt_rgb565_is_0 ? \
@@ -379,11 +379,6 @@ void mtk_ovl_layer_off(struct device *dev, unsigned int idx,
 
 static unsigned int ovl_fmt_convert(struct mtk_disp_ovl *ovl, unsigned int fmt)
 {
-	/* The return value in switch "MEM_MODE_INPUT_FORMAT_XXX"
-	 * is defined in mediatek HW data sheet.
-	 * The alphabet order in XXX is no relation to data
-	 * arrangement in memory.
-	 */
 	switch (fmt) {
 	default:
 	case DRM_FORMAT_RGB565:
drivers/gpu/drm/mediatek/mtk_dp.c +84 -1

97 lines not on this page · raw message

drivers/gpu/drm/panthor/panthor_fw.c +2 -2
index ef232c0c2049..4e2d3a02ea06 100644
@@ -487,6 +487,7 @@ static int panthor_fw_load_section_entry(struct panthor_device *ptdev,
 					 struct panthor_fw_binary_iter *iter,
 					 u32 ehdr)
 {
+	ssize_t vm_pgsz = panthor_vm_page_size(ptdev->fw->vm);
 	struct panthor_fw_binary_section_entry_hdr hdr;
 	struct panthor_fw_section *section;
 	u32 section_size;
@@ -515,8 +516,7 @@ static int panthor_fw_load_section_entry(struct panthor_device *ptdev,
 		return -EINVAL;
 	}
 
-	if ((hdr.va.start & ~PAGE_MASK) != 0 ||
-	    (hdr.va.end & ~PAGE_MASK) != 0) {
+	if (!IS_ALIGNED(hdr.va.start, vm_pgsz) || !IS_ALIGNED(hdr.va.end, vm_pgsz)) {
 		drm_err(&ptdev->base, "Firmware corrupted, virtual addresses not page aligned: 0x%x-0x%x\n",
 			hdr.va.start, hdr.va.end);
 		return -EINVAL;
drivers/gpu/drm/panthor/panthor_gem.c +8 -3
index 38f560864879..be97d56bc011 100644
@@ -44,8 +44,7 @@ void panthor_kernel_bo_destroy(struct panthor_kernel_bo *bo)
 			to_panthor_bo(bo->obj)->exclusive_vm_root_gem != panthor_vm_root_gem(vm)))
 		goto out_free_bo;
 
-	ret = panthor_vm_unmap_range(vm, bo->va_node.start,
-				     panthor_kernel_bo_size(bo));
+	ret = panthor_vm_unmap_range(vm, bo->va_node.start, bo->va_node.size);
 	if (ret)
 		goto out_free_bo;
 
@@ -95,10 +94,16 @@ panthor_kernel_bo_create(struct panthor_device *ptdev, struct panthor_vm *vm,
 	}
 
 	bo = to_panthor_bo(&obj->base);
-	size = obj->base.size;
 	kbo->obj = &obj->base;
 	bo->flags = bo_flags;
 
+	/* The system and GPU MMU page size might differ, which becomes a
+	 * problem for FW sections that need to be mapped at explicit address
+	 * since our PAGE_SIZE alignment might cover a VA range that's
+	 * expected to be used for another section.
+	 * Make sure we never map more than we need.
+	 */
+	size = ALIGN(size, panthor_vm_page_size(vm));
 	ret = panthor_vm_alloc_va(vm, gpu_va, size, &kbo->va_node);
 	if (ret)
 		goto err_put_obj;
drivers/gpu/drm/panthor/panthor_mmu.c +13 -3
index ce8e8a93d707..837ba312f3a8 100644
@@ -826,6 +826,14 @@ void panthor_vm_idle(struct panthor_vm *vm)
 	mutex_unlock(&ptdev->mmu->as.slots_lock);
 }
 
+u32 panthor_vm_page_size(struct panthor_vm *vm)
+{
+	const struct io_pgtable *pgt = io_pgtable_ops_to_pgtable(vm->pgtbl_ops);
+	u32 pg_shift = ffs(pgt->cfg.pgsize_bitmap) - 1;
+
+	return 1u << pg_shift;
+}
+
 static void panthor_vm_stop(struct panthor_vm *vm)
 {
 	drm_sched_stop(&vm->sched, NULL);
@@ -1025,12 +1033,13 @@ int
 panthor_vm_alloc_va(struct panthor_vm *vm, u64 va, u64 size,
 		    struct drm_mm_node *va_node)
 {
+	ssize_t vm_pgsz = panthor_vm_page_size(vm);
 	int ret;
 
-	if (!size || (size & ~PAGE_MASK))
+	if (!size || !IS_ALIGNED(size, vm_pgsz))
 		return -EINVAL;
 
-	if (va != PANTHOR_VM_KERNEL_AUTO_VA && (va & ~PAGE_MASK))
+	if (va != PANTHOR_VM_KERNEL_AUTO_VA && !IS_ALIGNED(va, vm_pgsz))
 		return -EINVAL;
 
 	mutex_lock(&vm->mm_lock);
@@ -2366,11 +2375,12 @@ panthor_vm_bind_prepare_op_ctx(struct drm_file *file,
 			       const struct drm_panthor_vm_bind_op *op,
 			       struct panthor_vm_op_ctx *op_ctx)
 {
+	ssize_t vm_pgsz = panthor_vm_page_size(vm);
 	struct drm_gem_object *gem;
 	int ret;
 
 	/* Aligned on page size. */
-	if ((op->va | op->size) & ~PAGE_MASK)
+	if (!IS_ALIGNED(op->va | op->size, vm_pgsz))
 		return -EINVAL;
 
 	switch (op->flags & DRM_PANTHOR_VM_BIND_OP_TYPE_MASK) {
drivers/gpu/drm/panthor/panthor_mmu.h +1 -0
index 6788771071e3..8d21e83d8aba 100644
@@ -30,6 +30,7 @@ panthor_vm_get_bo_for_va(struct panthor_vm *vm, u64 va, u64 *bo_offset);
 
 int panthor_vm_active(struct panthor_vm *vm);
 void panthor_vm_idle(struct panthor_vm *vm);
+u32 panthor_vm_page_size(struct panthor_vm *vm);
 int panthor_vm_as(struct panthor_vm *vm);
 int panthor_vm_flush_all(struct panthor_vm *vm);
 
drivers/gpu/drm/panthor/panthor_sched.c +16 -4
index 4d1d5a342a4a..e9234488dc2b 100644
@@ -589,10 +589,11 @@ struct panthor_group {
 	 * @timedout: True when a timeout occurred on any of the queues owned by
 	 * this group.
 	 *
-	 * Timeouts can be reported by drm_sched or by the FW. In any case, any
-	 * timeout situation is unrecoverable, and the group becomes useless.
-	 * We simply wait for all references to be dropped so we can release the
-	 * group object.
+	 * Timeouts can be reported by drm_sched or by the FW. If a reset is required,
+	 * and the group can't be suspended, this also leads to a timeout. In any case,
+	 * any timeout situation is unrecoverable, and the group becomes useless. We
+	 * simply wait for all references to be dropped so we can release the group
+	 * object.
 	 */
 	bool timedout;
 
@@ -2640,6 +2641,12 @@ void panthor_sched_suspend(struct panthor_device *ptdev)
 		csgs_upd_ctx_init(&upd_ctx);
 		while (slot_mask) {
 			u32 csg_id = ffs(slot_mask) - 1;
+			struct panthor_csg_slot *csg_slot = &sched->csg_slots[csg_id];
+
+			/* We consider group suspension failures as fatal and flag the
+			 * group as unusable by setting timedout=true.
+			 */
+			csg_slot->group->timedout = true;
 
 			csgs_upd_ctx_queue_reqs(ptdev, &upd_ctx, csg_id,
 						CSG_STATE_TERMINATE,
@@ -3409,6 +3416,11 @@ panthor_job_create(struct panthor_file *pfile,
 		goto err_put_job;
 	}
 
+	if (!group_can_run(job->group)) {
+		ret = -EINVAL;
+		goto err_put_job;
+	}
+
 	if (job->queue_idx >= job->group->queue_count ||
 	    !job->group->queues[job->queue_idx]) {
 		ret = -EINVAL;
drivers/gpu/drm/tegra/drm.c +2 -2
index d79c76a287f2..6a29ac1b2d21 100644
@@ -1152,8 +1152,8 @@ static int host1x_drm_probe(struct host1x_device *dev)
 
 	if (host1x_drm_wants_iommu(dev) && device_iommu_mapped(dma_dev)) {
 		tegra->domain = iommu_paging_domain_alloc(dma_dev);
-		if (!tegra->domain) {
-			err = -ENOMEM;
+		if (IS_ERR(tegra->domain)) {
+			err = PTR_ERR(tegra->domain);
 			goto free;
 		}
 
drivers/gpu/drm/tests/drm_connector_test.c +12 -12
index 15e36a8db685..6bba97d0be88 100644
@@ -996,7 +996,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb(struct kunit *test)
 	unsigned long long rate;
 	struct drm_device *drm = &priv->drm;
 
-	mode = drm_display_mode_from_cea_vic(drm, 16);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1017,7 +1017,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc(struct kunit *test)
 	unsigned long long rate;
 	struct drm_device *drm = &priv->drm;
 
-	mode = drm_display_mode_from_cea_vic(drm, 16);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1038,7 +1038,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1(struct kunit *t
 	unsigned long long rate;
 	struct drm_device *drm = &priv->drm;
 
-	mode = drm_display_mode_from_cea_vic(drm, 1);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	rate = drm_hdmi_compute_mode_clock(mode, 10, HDMI_COLORSPACE_RGB);
@@ -1056,7 +1056,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc(struct kunit *test)
 	unsigned long long rate;
 	struct drm_device *drm = &priv->drm;
 
-	mode = drm_display_mode_from_cea_vic(drm, 16);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1077,7 +1077,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1(struct kunit *t
 	unsigned long long rate;
 	struct drm_device *drm = &priv->drm;
 
-	mode = drm_display_mode_from_cea_vic(drm, 1);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	rate = drm_hdmi_compute_mode_clock(mode, 12, HDMI_COLORSPACE_RGB);
@@ -1095,7 +1095,7 @@ static void drm_test_drm_hdmi_compute_mode_clock_rgb_double(struct kunit *test)
 	unsigned long long rate;
 	struct drm_device *drm = &priv->drm;
 
-	mode = drm_display_mode_from_cea_vic(drm, 6);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 6);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	KUNIT_ASSERT_TRUE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1118,7 +1118,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv420_valid(struct kunit
 	unsigned long long rate;
 	unsigned int vic = *(unsigned int *)test->param_value;
 
-	mode = drm_display_mode_from_cea_vic(drm, vic);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, vic);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1155,7 +1155,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc(struct kuni
 		drm_hdmi_compute_mode_clock_yuv420_vic_valid_tests[0];
 	unsigned long long rate;
 
-	mode = drm_display_mode_from_cea_vic(drm, vic);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, vic);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1180,7 +1180,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc(struct kuni
 		drm_hdmi_compute_mode_clock_yuv420_vic_valid_tests[0];
 	unsigned long long rate;
 
-	mode = drm_display_mode_from_cea_vic(drm, vic);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, vic);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1203,7 +1203,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc(struct kunit
 	struct drm_device *drm = &priv->drm;
 	unsigned long long rate;
 
-	mode = drm_display_mode_from_cea_vic(drm, 16);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1225,7 +1225,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc(struct kuni
 	struct drm_device *drm = &priv->drm;
 	unsigned long long rate;
 
-	mode = drm_display_mode_from_cea_vic(drm, 16);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
@@ -1247,7 +1247,7 @@ static void drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc(struct kuni
 	struct drm_device *drm = &priv->drm;
 	unsigned long long rate;
 
-	mode = drm_display_mode_from_cea_vic(drm, 16);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK);
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c +4 -4
index 34ee95d41f29..294773342e71 100644
@@ -441,7 +441,7 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode_vic_1(struct kunit *test)
 	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
 
-	mode = drm_display_mode_from_cea_vic(drm, 1);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	drm = &priv->drm;
@@ -555,7 +555,7 @@ static void drm_test_check_broadcast_rgb_full_cea_mode_vic_1(struct kunit *test)
 	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
 
-	mode = drm_display_mode_from_cea_vic(drm, 1);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	drm = &priv->drm;
@@ -671,7 +671,7 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode_vic_1(struct kunit *te
 	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
 
-	mode = drm_display_mode_from_cea_vic(drm, 1);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	drm = &priv->drm;
@@ -1263,7 +1263,7 @@ static void drm_test_check_output_bpc_format_vic_1(struct kunit *test)
 	ctx = drm_kunit_helper_acquire_ctx_alloc(test);
 	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
 
-	mode = drm_display_mode_from_cea_vic(drm, 1);
+	mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
 	/*
drivers/gpu/drm/tests/drm_kunit_helpers.c +42 -0

54 lines not on this page · raw message

drivers/gpu/drm/xe/Makefile +1 -0
index 1979614a90bd..1ff9602a52f6 100644
@@ -175,6 +175,7 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \
 	display/xe_display.o \
 	display/xe_display_misc.o \
 	display/xe_display_rps.o \
+	display/xe_display_wa.o \
 	display/xe_dsb_buffer.o \
 	display/xe_fb_pin.o \
 	display/xe_hdcp_gsc.o \
drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h +0 -1
index 1f1ad4d3ef51..a7d206133922 100644
@@ -116,7 +116,6 @@ struct i915_sched_attr {
 #define i915_gem_fence_wait_priority(fence, attr) do { (void) attr; } while (0)
 
 #define pdev_to_i915 pdev_to_xe_device
-#define RUNTIME_INFO(xe)		(&(xe)->info.i915_runtime)
 
 #define FORCEWAKE_ALL XE_FORCEWAKE_ALL
 
drivers/gpu/drm/xe/display/xe_display_wa.c new file +16 -0
new file mode 100644
index 000000000000..68e3d1959ad6
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2024 Intel Corporation
+ */
+
+#include "intel_display_wa.h"
+
+#include "xe_device.h"
+#include "xe_wa.h"
+
+#include <generated/xe_wa_oob.h>
+
+bool intel_display_needs_wa_16023588340(struct drm_i915_private *i915)
+{
+	return XE_WA(xe_root_mmio_gt(i915), 16023588340);
+}
drivers/gpu/drm/xe/regs/xe_gt_regs.h +16 -1
index 3c2865040058..660ff42e45a6 100644
@@ -80,7 +80,10 @@
 #define   LE_CACHEABILITY_MASK			REG_GENMASK(1, 0)
 #define   LE_CACHEABILITY(value)		REG_FIELD_PREP(LE_CACHEABILITY_MASK, value)
 
-#define XE2_GAMREQSTRM_CTRL			XE_REG(0x4194)
+#define STATELESS_COMPRESSION_CTRL		XE_REG_MCR(0x4148)
+#define   UNIFIED_COMPRESSION_FORMAT		REG_GENMASK(3, 0)
+
+#define XE2_GAMREQSTRM_CTRL			XE_REG_MCR(0x4194)
 #define   CG_DIS_CNTLBUS			REG_BIT(6)
 
 #define CCS_AUX_INV				XE_REG(0x4208)
@@ -91,6 +94,8 @@
 #define VE1_AUX_INV				XE_REG(0x42b8)
 #define   AUX_INV				REG_BIT(0)
 
+#define XE2_LMEM_CFG				XE_REG(0x48b0)
+
 #define XEHP_TILE_ADDR_RANGE(_idx)		XE_REG_MCR(0x4900 + (_idx) * 4)
 #define XEHP_FLAT_CCS_BASE_ADDR			XE_REG_MCR(0x4910)
 #define XEHP_FLAT_CCS_PTR			REG_GENMASK(31, 8)
@@ -100,12 +105,14 @@
 
 #define CHICKEN_RASTER_1			XE_REG_MCR(0x6204, XE_REG_OPTION_MASKED)
 #define   DIS_SF_ROUND_NEAREST_EVEN		REG_BIT(8)
+#define   DIS_CLIP_NEGATIVE_BOUNDING_BOX	REG_BIT(6)
 
 #define CHICKEN_RASTER_2			XE_REG_MCR(0x6208, XE_REG_OPTION_MASKED)
 #define   TBIMR_FAST_CLIP			REG_BIT(5)
 
 #define FF_MODE					XE_REG_MCR(0x6210)
 #define   DIS_TE_AUTOSTRIP			REG_BIT(31)
+#define   VS_HIT_MAX_VALUE_MASK			REG_GENMASK(25, 20)
 #define   DIS_MESH_PARTIAL_AUTOSTRIP		REG_BIT(16)
 #define   DIS_MESH_AUTOSTRIP			REG_BIT(15)
 
@@ -190,6 +197,7 @@
 #define GSCPSMI_BASE				XE_REG(0x880c)
 
 #define CCCHKNREG1				XE_REG_MCR(0x8828)
+#define   L3CMPCTRL				REG_BIT(23)
 #define   ENCOMPPERFFIX				REG_BIT(18)
 
 /* Fuse readout registers for GT */
@@ -364,6 +372,9 @@
 #define XEHP_L3NODEARBCFG			XE_REG_MCR(0xb0b4)
 #define   XEHP_LNESPARE				REG_BIT(19)
 
+#define L3SQCREG2				XE_REG_MCR(0xb104)
+#define   COMPMEMRD256BOVRFETCHEN		REG_BIT(20)
+
 #define L3SQCREG3				XE_REG_MCR(0xb108)
 #define   COMPPWOVERFETCHEN			REG_BIT(28)
 
@@ -403,6 +414,10 @@
 #define   INVALIDATION_BROADCAST_MODE_DIS	REG_BIT(12)
 #define   GLOBAL_INVALIDATION_MODE		REG_BIT(2)
 
+#define LMEM_CFG				XE_REG(0xcf58)
+#define   LMEM_EN				REG_BIT(31)
+#define   LMTT_DIR_PTR				REG_GENMASK(30, 0) /* in multiples of 64KB */
+
 #define HALF_SLICE_CHICKEN5			XE_REG_MCR(0xe188, XE_REG_OPTION_MASKED)
 #define   DISABLE_SAMPLE_G_PERFORMANCE		REG_BIT(0)
 
drivers/gpu/drm/xe/regs/xe_regs.h +8 -2
index 23e33ec84902..55bf47c99016 100644
@@ -24,11 +24,14 @@
 #define   LMEM_INIT				REG_BIT(7)
 #define   DRIVERFLR				REG_BIT(31)
 
+#define XEHP_CLOCK_GATE_DIS			XE_REG(0x101014)
+#define   SGSI_SIDECLK_DIS			REG_BIT(17)
+
 #define GU_DEBUG				XE_REG(0x101018)
 #define   DRIVERFLR_STATUS			REG_BIT(31)
 
-#define XEHP_CLOCK_GATE_DIS			XE_REG(0x101014)
-#define   SGSI_SIDECLK_DIS			REG_BIT(17)
+#define VIRTUAL_CTRL_REG			XE_REG(0x10108c)
+#define   GUEST_GTT_UPDATE_EN			REG_BIT(8)
 
 #define XEHP_MTCFG_ADDR				XE_REG(0x101800)
 #define   TILE_COUNT				REG_GENMASK(15, 8)
@@ -66,6 +69,9 @@
 #define   DISPLAY_IRQ				REG_BIT(16)
 #define   GT_DW_IRQ(x)				REG_BIT(x)
 
+#define VF_CAP_REG				XE_REG(0x1901f8, XE_REG_OPTION_VF)
+#define   VF_CAP				REG_BIT(0)
+
 #define PVC_RP_STATE_CAP			XE_REG(0x281014)
 
 #endif
drivers/gpu/drm/xe/regs/xe_sriov_regs.h deleted +0 -23
deleted file mode 100644
index 017b4ddd1ecf..000000000000
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/*
- * Copyright © 2023 Intel Corporation
- */
-
-#ifndef _REGS_XE_SRIOV_REGS_H_
-#define _REGS_XE_SRIOV_REGS_H_
-
-#include "regs/xe_reg_defs.h"
-
-#define XE2_LMEM_CFG			XE_REG(0x48b0)
-
-#define LMEM_CFG			XE_REG(0xcf58)
-#define   LMEM_EN			REG_BIT(31)
-#define   LMTT_DIR_PTR			REG_GENMASK(30, 0) /* in multiples of 64KB */
-
-#define VIRTUAL_CTRL_REG		XE_REG(0x10108c)
-#define   GUEST_GTT_UPDATE_EN		REG_BIT(8)
-
-#define VF_CAP_REG			XE_REG(0x1901f8, XE_REG_OPTION_VF)
-#define   VF_CAP			REG_BIT(0)
-
-#endif
drivers/gpu/drm/xe/xe_device_types.h +0 -6
index a7c7812d5791..ebdb6f2d1ca7 100644
@@ -297,12 +297,6 @@ struct xe_device {
 		u8 has_atomic_enable_pte_bit:1;
 		/** @info.has_device_atomics_on_smem: Supports device atomics on SMEM */
 		u8 has_device_atomics_on_smem:1;
-
-#if IS_ENABLED(CONFIG_DRM_XE_DISPLAY)
-		struct {
-			u32 rawclk_freq;
-		} i915_runtime;
-#endif
 	} info;
 
 	/** @irq: device interrupt state */
drivers/gpu/drm/xe/xe_ggtt.c +10 -0
index 0cdbc1296e88..226542bb1442 100644
@@ -309,6 +309,16 @@ static void ggtt_invalidate_gt_tlb(struct xe_gt *gt)
 
 static void xe_ggtt_invalidate(struct xe_ggtt *ggtt)
 {
+	struct xe_device *xe = tile_to_xe(ggtt->tile);
+
+	/*
+	 * XXX: Barrier for GGTT pages. Unsure exactly why this required but
+	 * without this LNL is having issues with the GuC reading scratch page
+	 * vs. correct GGTT page. Not particularly a hot code path so blindly
+	 * do a mmio read here which results in GuC reading correct GGTT page.
+	 */
+	xe_mmio_read32(xe_root_mmio_gt(xe), VF_CAP_REG);
+
 	/* Each GT in a tile has its own TLB to cache GGTT lookups */
 	ggtt_invalidate_gt_tlb(ggtt->tile->primary_gt);
 	ggtt_invalidate_gt_tlb(ggtt->tile->media_gt);
drivers/gpu/drm/xe/xe_gt.c +5 -5
index 0062a5e4d5fa..ba9f50c1faa6 100644
@@ -109,9 +109,9 @@ static void xe_gt_enable_host_l2_vram(struct xe_gt *gt)
 
 	if (!xe_gt_is_media_type(gt)) {
 		xe_mmio_write32(gt, SCRATCH1LPFC, EN_L3_RW_CCS_CACHE_FLUSH);
-		reg = xe_mmio_read32(gt, XE2_GAMREQSTRM_CTRL);
+		reg = xe_gt_mcr_unicast_read_any(gt, XE2_GAMREQSTRM_CTRL);
 		reg |= CG_DIS_CNTLBUS;
-		xe_mmio_write32(gt, XE2_GAMREQSTRM_CTRL, reg);
+		xe_gt_mcr_multicast_write(gt, XE2_GAMREQSTRM_CTRL, reg);
 	}
 
 	xe_gt_mcr_multicast_write(gt, XEHPC_L3CLOS_MASK(3), 0x3);
@@ -133,9 +133,9 @@ static void xe_gt_disable_host_l2_vram(struct xe_gt *gt)
 	if (WARN_ON(err))
 		return;
 
-	reg = xe_mmio_read32(gt, XE2_GAMREQSTRM_CTRL);
+	reg = xe_gt_mcr_unicast_read_any(gt, XE2_GAMREQSTRM_CTRL);
 	reg &= ~CG_DIS_CNTLBUS;
-	xe_mmio_write32(gt, XE2_GAMREQSTRM_CTRL, reg);
+	xe_gt_mcr_multicast_write(gt, XE2_GAMREQSTRM_CTRL, reg);
 
 	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
 }
@@ -555,7 +555,6 @@ int xe_gt_init_hwconfig(struct xe_gt *gt)
 
 	xe_gt_mcr_init_early(gt);
 	xe_pat_init(gt);
-	xe_gt_enable_host_l2_vram(gt);
 
 	err = xe_uc_init(&gt->uc);
 	if (err)
@@ -567,6 +566,7 @@ int xe_gt_init_hwconfig(struct xe_gt *gt)
 
 	xe_gt_topology_init(gt);
 	xe_gt_mcr_init(gt);
+	xe_gt_enable_host_l2_vram(gt);
 
 out_fw:
 	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
drivers/gpu/drm/xe/xe_gt_sriov_pf.c +1 -1
index 9dbba9ab7a9a..ef239440963c 100644
@@ -5,7 +5,7 @@
 
 #include <drm/drm_managed.h>
 
-#include "regs/xe_sriov_regs.h"
+#include "regs/xe_regs.h"
 
 #include "xe_gt_sriov_pf.h"
 #include "xe_gt_sriov_pf_config.h"
drivers/gpu/drm/xe/xe_guc_submit.c +12 -6
index dfd809e7bbd2..cbdd44567d10 100644
@@ -989,12 +989,22 @@ static void xe_guc_exec_queue_lr_cleanup(struct work_struct *w)
 static bool check_timeout(struct xe_exec_queue *q, struct xe_sched_job *job)
 {
 	struct xe_gt *gt = guc_to_gt(exec_queue_to_guc(q));
-	u32 ctx_timestamp = xe_lrc_ctx_timestamp(q->lrc[0]);
-	u32 ctx_job_timestamp = xe_lrc_ctx_job_timestamp(q->lrc[0]);
+	u32 ctx_timestamp, ctx_job_timestamp;
 	u32 timeout_ms = q->sched_props.job_timeout_ms;
 	u32 diff;
 	u64 running_time_ms;
 
+	if (!xe_sched_job_started(job)) {
+		xe_gt_warn(gt, "Check job timeout: seqno=%u, lrc_seqno=%u, guc_id=%d, not started",
+			   xe_sched_job_seqno(job), xe_sched_job_lrc_seqno(job),
+			   q->guc->id);
+
+		return xe_sched_invalidate_job(job, 2);
+	}
+
+	ctx_timestamp = xe_lrc_ctx_timestamp(q->lrc[0]);
+	ctx_job_timestamp = xe_lrc_ctx_job_timestamp(q->lrc[0]);
+
 	/*
 	 * Counter wraps at ~223s at the usual 19.2MHz, be paranoid catch
 	 * possible overflows with a high timeout.
@@ -1120,10 +1130,6 @@ guc_exec_queue_timedout_job(struct drm_sched_job *drm_job)
 		exec_queue_killed_or_banned_or_wedged(q) ||
 		exec_queue_destroyed(q);
 
-	/* Job hasn't started, can't be timed out */
-	if (!skip_timeout_check && !xe_sched_job_started(job))
-		goto rearm;
-
 	/*
 	 * XXX: Sampling timeout doesn't work in wedged mode as we have to
 	 * modify scheduling state to read timestamp. We could read the
drivers/gpu/drm/xe/xe_lmtt.c +1 -1
index 418661a88918..c5fdb36b6d33 100644
@@ -7,7 +7,7 @@
 
 #include <drm/drm_managed.h>
 
-#include "regs/xe_sriov_regs.h"
+#include "regs/xe_gt_regs.h"
 
 #include "xe_assert.h"
 #include "xe_bo.h"
drivers/gpu/drm/xe/xe_module.c +36 -3
index 499540add465..464ec24e2dd2 100644
@@ -8,6 +8,8 @@
 #include <linux/init.h>
 #include <linux/module.h>
 
+#include <drm/drm_module.h>
+
 #include "xe_drv.h"
 #include "xe_hw_fence.h"
 #include "xe_pci.h"
@@ -61,12 +63,23 @@ module_param_named_unsafe(wedged_mode, xe_modparam.wedged_mode, int, 0600);
 MODULE_PARM_DESC(wedged_mode,
 		 "Module's default policy for the wedged mode - 0=never, 1=upon-critical-errors[default], 2=upon-any-hang");
 
+static int xe_check_nomodeset(void)
+{
+	if (drm_firmware_drivers_only())
+		return -ENODEV;
+
+	return 0;
+}
+
 struct init_funcs {
 	int (*init)(void);
 	void (*exit)(void);
 };
 
 static const struct init_funcs init_funcs[] = {
+	{
+		.init = xe_check_nomodeset,
+	},
 	{
 		.init = xe_hw_fence_module_init,
 		.exit = xe_hw_fence_module_exit,
@@ -85,15 +98,35 @@ static const struct init_funcs init_funcs[] = {
 	},
 };
 
+static int __init xe_call_init_func(unsigned int i)
+{
+	if (WARN_ON(i >= ARRAY_SIZE(init_funcs)))
+		return 0;
+	if (!init_funcs[i].init)
+		return 0;
+
+	return init_funcs[i].init();
+}
+
+static void xe_call_exit_func(unsigned int i)
+{
+	if (WARN_ON(i >= ARRAY_SIZE(init_funcs)))
+		return;
+	if (!init_funcs[i].exit)
+		return;
+
+	init_funcs[i].exit();
+}
+
 static int __init xe_init(void)
 {
 	int err, i;
 
 	for (i = 0; i < ARRAY_SIZE(init_funcs); i++) {
-		err = init_funcs[i].init();
+		err = xe_call_init_func(i);
 		if (err) {
 			while (i--)
-				init_funcs[i].exit();
+				xe_call_exit_func(i);
 			return err;
 		}
 	}
@@ -106,7 +139,7 @@ static void __exit xe_exit(void)
 	int i;
 
 	for (i = ARRAY_SIZE(init_funcs) - 1; i >= 0; i--)
-		init_funcs[i].exit();
+		xe_call_exit_func(i);
 }
 
 module_init(xe_init);
drivers/gpu/drm/xe/xe_sriov.c +1 -1
index a274a5fb1401..5a1d65e4f19f 100644
@@ -5,7 +5,7 @@
 
 #include <drm/drm_managed.h>
 
-#include "regs/xe_sriov_regs.h"
+#include "regs/xe_regs.h"
 
 #include "xe_assert.h"
 #include "xe_device.h"
drivers/gpu/drm/xe/xe_tuning.c +20 -1
index d4e6fa918942..faa1bf42e50e 100644
@@ -39,12 +39,23 @@ static const struct xe_rtp_entry_sr gt_tunings[] = {
 	},
 	{ XE_RTP_NAME("Tuning: Compression Overfetch"),
 	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, XE_RTP_END_VERSION_UNDEFINED)),
-	  XE_RTP_ACTIONS(CLR(CCCHKNREG1, ENCOMPPERFFIX)),
+	  XE_RTP_ACTIONS(CLR(CCCHKNREG1, ENCOMPPERFFIX),
+			 SET(CCCHKNREG1, L3CMPCTRL))
 	},
 	{ XE_RTP_NAME("Tuning: Enable compressible partial write overfetch in L3"),
 	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, XE_RTP_END_VERSION_UNDEFINED)),
 	  XE_RTP_ACTIONS(SET(L3SQCREG3, COMPPWOVERFETCHEN))
 	},
+	{ XE_RTP_NAME("Tuning: L2 Overfetch Compressible Only"),
+	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, XE_RTP_END_VERSION_UNDEFINED)),
+	  XE_RTP_ACTIONS(SET(L3SQCREG2,
+			     COMPMEMRD256BOVRFETCHEN))
+	},
+	{ XE_RTP_NAME("Tuning: Stateless compression control"),
+	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, XE_RTP_END_VERSION_UNDEFINED)),
+	  XE_RTP_ACTIONS(FIELD_SET(STATELESS_COMPRESSION_CTRL, UNIFIED_COMPRESSION_FORMAT,
+				   REG_FIELD_PREP(UNIFIED_COMPRESSION_FORMAT, 0)))
+	},
 	{}
 };
 
@@ -93,6 +104,14 @@ static const struct xe_rtp_entry_sr lrc_tunings[] = {
 				   REG_FIELD_PREP(L3_PWM_TIMER_INIT_VAL_MASK, 0x7f)))
 	},
 
+	/* Xe2_HPG */
+
+	{ XE_RTP_NAME("Tuning: vs hit max value"),
+	  XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
+	  XE_RTP_ACTIONS(FIELD_SET(FF_MODE, VS_HIT_MAX_VALUE_MASK,
+				   REG_FIELD_PREP(VS_HIT_MAX_VALUE_MASK, 0x3f)))
+	},
+
 	{}
 };
 
drivers/gpu/drm/xe/xe_wa.c +4 -0
index e648265d081b..e2d7ccc6f144 100644
@@ -733,6 +733,10 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
 			     DIS_PARTIAL_AUTOSTRIP |
 			     DIS_AUTOSTRIP))
 	},
+	{ XE_RTP_NAME("15016589081"),
+	  XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
+	  XE_RTP_ACTIONS(SET(CHICKEN_RASTER_1, DIS_CLIP_NEGATIVE_BOUNDING_BOX))
+	},
 
 	{}
 };
drivers/iio/adc/ad7124.c +1 -1
index 108e9ccab1ef..e00074c88522 100644
@@ -645,7 +645,7 @@ static int ad7124_write_raw(struct iio_dev *indio_dev,
 
 	switch (info) {
 	case IIO_CHAN_INFO_SAMP_FREQ:
-		if (val2 != 0) {
+		if (val2 != 0 || val == 0) {
 			ret = -EINVAL;
 			break;
 		}
drivers/iio/industrialio-gts-helper.c +3 -1
index 59d7615c0f56..5f131bc1a01e 100644
@@ -307,13 +307,15 @@ static int iio_gts_build_avail_scale_table(struct iio_gts *gts)
 	if (ret)
 		goto err_free_out;
 
+	for (i = 0; i < gts->num_itime; i++)
+		kfree(per_time_gains[i]);
 	kfree(per_time_gains);
 	gts->per_time_avail_scale_tables = per_time_scales;
 
 	return 0;
 
 err_free_out:
-	for (i--; i; i--) {
+	for (i--; i >= 0; i--) {
 		kfree(per_time_scales[i]);
 		kfree(per_time_gains[i]);
 	}
drivers/iio/light/veml6030.c +1 -1
index 9630de1c578e..621428885455 100644
@@ -522,7 +522,7 @@ static int veml6030_read_raw(struct iio_dev *indio_dev,
 			}
 			if (mask == IIO_CHAN_INFO_PROCESSED) {
 				*val = (reg * data->cur_resolution) / 10000;
-				*val2 = (reg * data->cur_resolution) % 10000;
+				*val2 = (reg * data->cur_resolution) % 10000 * 100;
 				return IIO_VAL_INT_PLUS_MICRO;
 			}
 			*val = reg;
drivers/infiniband/hw/bnxt_re/qplib_fp.c +4 -0
index 03d517be9c52..560a0f7bff85 100644
@@ -1532,9 +1532,11 @@ int bnxt_qplib_destroy_qp(struct bnxt_qplib_res *res,
 	u32 tbl_indx;
 	int rc;
 
+	spin_lock_bh(&rcfw->tbl_lock);
 	tbl_indx = map_qp_id_to_tbl_indx(qp->id, rcfw);
 	rcfw->qp_tbl[tbl_indx].qp_id = BNXT_QPLIB_QP_ID_INVALID;
 	rcfw->qp_tbl[tbl_indx].qp_handle = NULL;
+	spin_unlock_bh(&rcfw->tbl_lock);
 
 	bnxt_qplib_rcfw_cmd_prep((struct cmdq_base *)&req,
 				 CMDQ_BASE_OPCODE_DESTROY_QP,
@@ -1545,8 +1547,10 @@ int bnxt_qplib_destroy_qp(struct bnxt_qplib_res *res,
 				sizeof(resp), 0);
 	rc = bnxt_qplib_rcfw_send_message(rcfw, &msg);
 	if (rc) {
+		spin_lock_bh(&rcfw->tbl_lock);
 		rcfw->qp_tbl[tbl_indx].qp_id = qp->id;
 		rcfw->qp_tbl[tbl_indx].qp_handle = qp;
+		spin_unlock_bh(&rcfw->tbl_lock);
 		return rc;
 	}
 
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c +19 -19
index 7294221b3316..e82bd37158ad 100644
@@ -290,7 +290,6 @@ static int __send_message(struct bnxt_qplib_rcfw *rcfw,
 	struct bnxt_qplib_hwq *hwq;
 	u32 sw_prod, cmdq_prod;
 	struct pci_dev *pdev;
-	unsigned long flags;
 	u16 cookie;
 	u8 *preq;
 
@@ -301,7 +300,7 @@ static int __send_message(struct bnxt_qplib_rcfw *rcfw,
 	/* Cmdq are in 16-byte units, each request can consume 1 or more
 	 * cmdqe
 	 */
-	spin_lock_irqsave(&hwq->lock, flags);
+	spin_lock_bh(&hwq->lock);
 	required_slots = bnxt_qplib_get_cmd_slots(msg->req);
 	free_slots = HWQ_FREE_SLOTS(hwq);
 	cookie = cmdq->seq_num & RCFW_MAX_COOKIE_VALUE;
@@ -311,7 +310,7 @@ static int __send_message(struct bnxt_qplib_rcfw *rcfw,
 		dev_info_ratelimited(&pdev->dev,
 				     "CMDQ is full req/free %d/%d!",
 				     required_slots, free_slots);
-		spin_unlock_irqrestore(&hwq->lock, flags);
+		spin_unlock_bh(&hwq->lock);
 		return -EAGAIN;
 	}
 	if (msg->block)
@@ -367,7 +366,7 @@ static int __send_message(struct bnxt_qplib_rcfw *rcfw,
 	wmb();
 	writel(cmdq_prod, cmdq->cmdq_mbox.prod);
 	writel(RCFW_CMDQ_TRIG_VAL, cmdq->cmdq_mbox.db);
-	spin_unlock_irqrestore(&hwq->lock, flags);
+	spin_unlock_bh(&hwq->lock);
 	/* Return the CREQ response pointer */
 	return 0;
 }
@@ -486,7 +485,6 @@ static int __bnxt_qplib_rcfw_send_message(struct bnxt_qplib_rcfw *rcfw,
 {
 	struct creq_qp_event *evnt = (struct creq_qp_event *)msg->resp;
 	struct bnxt_qplib_crsqe *crsqe;
-	unsigned long flags;
 	u16 cookie;
 	int rc;
 	u8 opcode;
@@ -512,12 +510,12 @@ static int __bnxt_qplib_rcfw_send_message(struct bnxt_qplib_rcfw *rcfw,
 		rc = __poll_for_resp(rcfw, cookie);
 
 	if (rc) {
-		spin_lock_irqsave(&rcfw->cmdq.hwq.lock, flags);
+		spin_lock_bh(&rcfw->cmdq.hwq.lock);
 		crsqe = &rcfw->crsqe_tbl[cookie];
 		crsqe->is_waiter_alive = false;
 		if (rc == -ENODEV)
 			set_bit(FIRMWARE_STALL_DETECTED, &rcfw->cmdq.flags);
-		spin_unlock_irqrestore(&rcfw->cmdq.hwq.lock, flags);
+		spin_unlock_bh(&rcfw->cmdq.hwq.lock);
 		return -ETIMEDOUT;
 	}
 
@@ -628,7 +626,6 @@ static int bnxt_qplib_process_qp_event(struct bnxt_qplib_rcfw *rcfw,
 	u16 cookie, blocked = 0;
 	bool is_waiter_alive;
 	struct pci_dev *pdev;
-	unsigned long flags;
 	u32 wait_cmds = 0;
 	int rc = 0;
 
@@ -637,17 +634,21 @@ static int bnxt_qplib_process_qp_event(struct bnxt_qplib_rcfw *rcfw,
 	case CREQ_QP_EVENT_EVENT_QP_ERROR_NOTIFICATION:
 		err_event = (struct creq_qp_error_notification *)qp_event;
 		qp_id = le32_to_cpu(err_event->xid);
+		spin_lock(&rcfw->tbl_lock);
 		tbl_indx = map_qp_id_to_tbl_indx(qp_id, rcfw);
 		qp = rcfw->qp_tbl[tbl_indx].qp_handle;
+		if (!qp) {
+			spin_unlock(&rcfw->tbl_lock);
+			break;
+		}
+		bnxt_qplib_mark_qp_error(qp);
+		rc = rcfw->creq.aeq_handler(rcfw, qp_event, qp);
+		spin_unlock(&rcfw->tbl_lock);
 		dev_dbg(&pdev->dev, "Received QP error notification\n");
 		dev_dbg(&pdev->dev,
 			"qpid 0x%x, req_err=0x%x, resp_err=0x%x\n",
 			qp_id, err_event->req_err_state_reason,
 			err_event->res_err_state_reason);
-		if (!qp)
-			break;
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/infiniband/hw/bnxt_re/qplib_rcfw.h +2 -0
index 45996e60a0d0..07779aeb7575 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/hw/cxgb4/provider.c +1 -0
index 246b739ddb2b..9008584946c6 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/hw/mlx5/qp.c +2 -2
index e39b1a101e97..10ce3b44f645 100644

Lines of this file are not shown. View the raw message.

drivers/input/input.c +73 -61

134 lines not on this page · raw message

drivers/input/touchscreen/edt-ft5x06.c +18 -1
index e70415f189a5..126b0ed85aa5 100644

Lines of this file are not shown. View the raw message.

drivers/misc/mei/client.c +2 -2
index 9d090fa07516..be011cef12e5 100644

Lines of this file are not shown. View the raw message.

drivers/misc/sgi-gru/grukservices.c +0 -2
index 37e804bbb1f2..205945ce9e86 100644

Lines of this file are not shown. View the raw message.

drivers/misc/sgi-gru/grumain.c +0 -4
index 0f5b09e290c8..3036c15f3689 100644

Lines of this file are not shown. View the raw message.

drivers/misc/sgi-gru/grutlbpurge.c +0 -2
index 10921cd2608d..1107dd3e2e9f 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/host/sdhci-pci-gli.c +24 -14
index 0f81586a19df..68ce4920e01e 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/amd/mvme147.c +3 -4
index c156566c0906..f19b04b92fa9 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_dpll.c +290 -3

293 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_dpll.h +1 -0
index 93172e93995b..c320f1bf7d6d 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_ptp_hw.c +19 -2
index 3a33e6b9b313..ec8db830ac73 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_ptp_hw.h +1 -0
index 0852a34ade91..6cedc1a906af 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mediatek/mtk_wed_wo.h +2 -2
index 87a67fa3868d..c01b1e8428f6 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlxsw/pci.c +17 -8
index 060e5b939211..d6f37456fb31 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c +24 -2
index d761a1235994..7ea798a4949e 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c +7 -0
index 5b174cb95eb8..d94081c7658e 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c +8 -0
index 84d3a8551b03..071f128aa490 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h +2 -0
index 17d9120db5fe..4f980dcd3958 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +17 -5
index f3a1b179aaea..02368917efb4 100644

Lines of this file are not shown. View the raw message.

drivers/net/gtp.c +13 -9
index 2e94d10348cc..4cb925321785 100644

Lines of this file are not shown. View the raw message.

drivers/net/macsec.c +1 -2
index 2a31d09d43ed..edee2870f62a 100644

Lines of this file are not shown. View the raw message.

drivers/net/mctp/mctp-i2c.c +3 -0
index 4dc057c121f5..e70fb6687994 100644

Lines of this file are not shown. View the raw message.

drivers/net/netdevsim/fib.c +3 -1
index a1f91ff8ec56..f108e363b716 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ath/ath10k/wmi-tlv.c +6 -1
index dbaf26d6a7a6..16d07d619b4d 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ath/ath10k/wmi.c +2 -0
index fe2344598364..1d58452ed8ca 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ath/ath11k/dp_rx.c +5 -2
index c087d8a0f5b2..40088e62572e 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/brcm80211/Kconfig +1 -0
index 3a1a35b5672f..19d0c003f626 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlegacy/common.c +14 -1
index 9d33a66a49b5..958dd4f9bc69 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlegacy/common.h +12 -0
index 69687fcf963f..027dae5619a3 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/iwl-drv.c +19 -9
index aaaabd67f959..3709039a294d 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/iwl-drv.h +3 -0
index 1549ff429549..6a1d31892417 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/fw.c +4 -6
index 08c4898c8f1a..49d5278d078a 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +10 -2
index 1ebcc6417ece..63b2c6fe3f8a 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c +23 -11
index 3c99396ad369..c4ccc353a8fd 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/scan.c +3 -3
index 3a9018595ea9..cfc50c7b2949 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/realtek/rtlwifi/rtl8192du/sw.c +0 -1
index d069a81ac617..cc699efa9c79 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/realtek/rtw89/pci.c +41 -7

48 lines not on this page · raw message

drivers/nvme/host/core.c +17 -2
index a6fb1359a7e1..89ad4217f860 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/ioctl.c +5 -2
index 15c93ce07e26..2cb35c4528a9 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/target/auth.c +1 -0
index 8bc3f431c77f..8c41a47dfed1 100644

Lines of this file are not shown. View the raw message.

drivers/pci/pci.c +9 -5
index 85ced6958d6d..51407c376a22 100644

Lines of this file are not shown. View the raw message.

drivers/phy/freescale/phy-fsl-imx8m-pcie.c +5 -5
index 11fcb1867118..e98361dcdead 100644

Lines of this file are not shown. View the raw message.

drivers/phy/qualcomm/phy-qcom-qmp-usb-legacy.c +1 -0
index 6d0ba39c1943..8bf951b0490c 100644

Lines of this file are not shown. View the raw message.

drivers/phy/qualcomm/phy-qcom-qmp-usb.c +1 -0
index 9b0eb87b1680..f91446d1d2c3 100644

Lines of this file are not shown. View the raw message.

drivers/phy/qualcomm/phy-qcom-qmp-usbc.c +1 -0
index 5cbc5fd529eb..dea3456f88b1 100644

Lines of this file are not shown. View the raw message.

drivers/powercap/intel_rapl_msr.c +1 -0
index 733a36f67fbc..1f4c5389676a 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/scsi_debug.c +4 -6
index a9d8a9c62663..e41698218e62 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/scsi_transport_fc.c +2 -2
index 7d088b8da075..2270732b353c 100644

Lines of this file are not shown. View the raw message.

drivers/soc/qcom/pmic_glink.c +22 -3
index 9606222993fd..baa4ac6704a9 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-fsl-dspi.c +5 -1
index 191de1917f83..3fa990fb59c7 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-geni-qcom.c +5 -3
index 6f4057330444..fa967be4f9a1 100644

Lines of this file are not shown. View the raw message.

drivers/staging/iio/frequency/ad9832.c +5 -2
index 6c390c4eb26d..492612e8f8ba 100644

Lines of this file are not shown. View the raw message.

drivers/thermal/intel/int340x_thermal/processor_thermal_rapl.c +24 -46

70 lines not on this page · raw message

drivers/thunderbolt/retimer.c +3 -2
index 721319329afa..7db9869a9f3f 100644

Lines of this file are not shown. View the raw message.

drivers/thunderbolt/tb.c +42 -6

48 lines not on this page · raw message

drivers/ufs/core/ufshcd.c +1 -1
index 09408642a6ef..83567388a7b5 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-pci.c +4 -2
index df0c5c4f4508..e629b3442640 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-ring.c +8 -8
index 785183f0b5f9..4479e949fa64 100644

Lines of this file are not shown. View the raw message.

drivers/usb/phy/phy.c +1 -1
index 06e0fb23566c..06f789097989 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/class.c +1 -0
index d61b4c74648d..1eb240604cf6 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c +6 -4
index 501eddb294e4..b80eb2d78d88 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/tcpm/tcpm.c +7 -3
index 4b02d6474259..3bcf104543e9 100644

Lines of this file are not shown. View the raw message.

fs/afs/dir.c +25 -0
index f8622ed72e08..ada363af5aab 100644

Lines of this file are not shown. View the raw message.

fs/afs/dir_edit.c +89 -2

91 lines not on this page · raw message

fs/afs/internal.h +2 -0
index 6e1d3c4daf72..b306c0980870 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/bio.c +22 -40

62 lines not on this page · raw message

fs/btrfs/bio.h +3 -0
index d9dd5276093d..043f94562166 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/defrag.c +5 -5
index f6dbda37a361..990ef97accec 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/extent_map.c +6 -1
index 72ae8f64482c..b56ec83bf952 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/volumes.c +1 -0
index fcedc43ef291..0485143cd75e 100644

Lines of this file are not shown. View the raw message.

fs/dax.c +28 -17

45 lines not on this page · raw message

fs/iomap/buffered-io.c +1 -6
index 8e6edb662818..c8e984be3982 100644

Lines of this file are not shown. View the raw message.

fs/nfs/delegation.c +5 -0
index 20cb2008f9e4..035ba52742a5 100644

Lines of this file are not shown. View the raw message.

fs/nfsd/nfs4proc.c +3 -5
index 5768b2ff1d1d..8b78d493e301 100644

Lines of this file are not shown. View the raw message.

fs/nilfs2/namei.c +3 -0
index 4905063790c5..9b108052d9f7 100644

Lines of this file are not shown. View the raw message.

fs/nilfs2/page.c +1 -0
index 7f9073d5c5a5..097e2c7f7f71 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/file.c +8 -1
index d31eae611fe0..906ee60d91cb 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/frecord.c +3 -1
index 60c975ac38e6..2a017b5c8101 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/inode.c +11 -4
index 6b0bdc474e76..4804eb9628bb 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/lznt.c +3 -0
index 4aae598d6d88..fdc9b2ebf341 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/namei.c +1 -1
index 0a70c3658546..02b745f117a5 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/ntfs_fs.h +1 -1
index e5255a251929..79047cd54611 100644

Lines of this file are not shown. View the raw message.

fs/ntfs3/record.c +15 -16
index 6c76503edc20..f810f0419d25 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/file.c +8 -0
index ccc57038a977..02d2beb7ddb9 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/cifs_unicode.c +14 -3
index 79d99a913944..4cc6e0896fad 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/reparse.c +166 -8

174 lines not on this page · raw message

fs/smb/client/reparse.h +1 -8
index 2c0644bc4e65..158e7b7aae64 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb2inode.c +2 -1
index a6dab60e2c01..cdb0e028e73c 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb2proto.h +1 -0
index b208232b12a2..5e0855fefcfe 100644

Lines of this file are not shown. View the raw message.

fs/userfaultfd.c +28 -0
index 27a3e9285fbf..2f302da629cb 100644

Lines of this file are not shown. View the raw message.

fs/xfs/xfs_filestream.c +12 -11
index e3aaa0555597..88bd23ce74cd 100644

Lines of this file are not shown. View the raw message.

fs/xfs/xfs_trace.h +5 -10
index 180ce697305a..f681a195a744 100644

Lines of this file are not shown. View the raw message.

include/acpi/cppc_acpi.h +1 -1
index e1720d930666..a451ca4c207b 100644

Lines of this file are not shown. View the raw message.

include/drm/drm_kunit_helpers.h +4 -0
index e7cc17ee4934..afdd46ef04f7 100644

Lines of this file are not shown. View the raw message.

include/linux/bpf_mem_alloc.h +3 -0
index aaf004d94322..e45162ef59bb 100644

Lines of this file are not shown. View the raw message.

include/linux/compiler-gcc.h +4 -0
index f805adaa316e..cd6f9aae311f 100644

Lines of this file are not shown. View the raw message.

include/linux/device.h +3 -0
index 34eb20f5966f..02d840f5c226 100644

Lines of this file are not shown. View the raw message.

include/linux/dpll.h +15 -0
index d275736230b3..81f7b623d0ba 100644

Lines of this file are not shown. View the raw message.

include/linux/input.h +9 -1
index 89a0be6ee0e2..cd866b020a01 100644

Lines of this file are not shown. View the raw message.

include/linux/iomap.h +19 -0
index 6fc1c858013d..034399030609 100644

Lines of this file are not shown. View the raw message.

include/linux/ksm.h +4 -6
index 11690dacd986..ec9c05044d4f 100644

Lines of this file are not shown. View the raw message.

include/linux/mmzone.h +3 -4
index 1dc6248feb83..fd04c8e94225 100644

Lines of this file are not shown. View the raw message.

include/linux/rcutiny.h +5 -0
index d9ac7b136aea..522123050ff8 100644

Lines of this file are not shown. View the raw message.

include/linux/rcutree.h +1 -0
index 254244202ea9..58e7db80f3a8 100644

Lines of this file are not shown. View the raw message.

include/linux/tick.h +8 -0
index 72744638c5b0..99c9c5a7252a 100644

Lines of this file are not shown. View the raw message.

include/linux/ubsan.h +5 -0
index bff7445498de..d8219cbe09ff 100644

Lines of this file are not shown. View the raw message.

include/linux/userfaultfd_k.h +5 -0
index a12bcf042551..f4a45a37229a 100644

Lines of this file are not shown. View the raw message.

include/net/ip_tunnels.h +1 -1
index 1db2417b8ff5..35d1e09940b2 100644

Lines of this file are not shown. View the raw message.

include/trace/events/afs.h +6 -1
index 450c44c83a5d..a0aed1a428a1 100644

Lines of this file are not shown. View the raw message.

include/uapi/linux/dpll.h +3 -0
index 0c13d7f1a1bc..b0654ade7b7e 100644

Lines of this file are not shown. View the raw message.

io_uring/rw.c +21 -2
index 6b3bc0876f7f..19e2c1f9c4a2 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/cgroup.c +18 -1
index 8ba73042a239..479a2ea5d9af 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/helpers.c +14 -7
index cc8c00864a68..8419de44c517 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/lpm_trie.c +1 -1
index 0218a5132ab5..9b60eda0f727 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/memalloc.c +13 -1
index dec892ded031..b2c7a4c49be7 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/verifier.c +6 -3
index 77b60896200e..626c5284ca5a 100644

Lines of this file are not shown. View the raw message.

kernel/cgroup/cgroup.c +2 -2
index c8e4b62b436a..6ba7dd2ab771 100644

Lines of this file are not shown. View the raw message.

kernel/fork.c +8 -6
index 6b97fb2ac4af..dc08a2374733 100644

Lines of this file are not shown. View the raw message.

kernel/rcu/tree.c +106 -12

118 lines not on this page · raw message

kernel/resource.c +1 -3
index 1681ab5012e1..4f3df25176ca 100644

Lines of this file are not shown. View the raw message.

kernel/sched/fair.c +2 -2
index 1d2cbdb162a6..425348b8d9eb 100644

Lines of this file are not shown. View the raw message.

lib/Kconfig.ubsan +2 -2
index bdda600f8dfb..1d4aa7a83b3a 100644

Lines of this file are not shown. View the raw message.

lib/codetag.c +3 -0
index afa8a2d4f317..d1fbbb7c2ec3 100644

Lines of this file are not shown. View the raw message.

lib/iov_iter.c +4 -2
index 4a6a9f419bd7..b892894228b0 100644

Lines of this file are not shown. View the raw message.

lib/slub_kunit.c +1 -1
index e6667a28c014..af5b9c41d5b3 100644

Lines of this file are not shown. View the raw message.

mm/kasan/kasan_test.c +0 -27
index 7b32be2a3cf0..9efde47f8069 100644

Lines of this file are not shown. View the raw message.

mm/migrate.c +1 -1
index 368ab3878fa6..75b858bd6aa5 100644

Lines of this file are not shown. View the raw message.

mm/mmap.c +2 -1
index 18fddcce03b8..8a04f29aa423 100644

Lines of this file are not shown. View the raw message.

mm/page_alloc.c +5 -5
index 91ace8ca97e2..ec459522c293 100644

Lines of this file are not shown. View the raw message.

mm/rmap.c +18 -6
index 2490e727e2dc..3d89847f01da 100644

Lines of this file are not shown. View the raw message.

mm/shmem.c +2 -0
index 27f496d6e43e..941d12713952 100644

Lines of this file are not shown. View the raw message.

mm/shrinker.c +5 -3
index dc5d2a6fcfc4..4a93fd433689 100644

Lines of this file are not shown. View the raw message.

mm/vmscan.c +60 -49

109 lines not on this page · raw message

net/bluetooth/hci_sync.c +11 -7
index ae7a5817883a..c0203a2b5107 100644

Lines of this file are not shown. View the raw message.

net/bpf/test_run.c +1 -0
index 6d7a442ceb89..501ec4249fed 100644

Lines of this file are not shown. View the raw message.

net/core/dev.c +4 -0
index dd87f5fb2f3a..25f20c5cc8f5 100644

Lines of this file are not shown. View the raw message.

net/core/rtnetlink.c +2 -2
index 97a38a7e1b2c..3c5dead0c71c 100644

Lines of this file are not shown. View the raw message.

net/core/sock_map.c +4 -0
index 219fd8f1ca2a..0550837775d5 100644

Lines of this file are not shown. View the raw message.

net/ipv4/ip_tunnel.c +1 -1
index 5cffad42fe8c..49937878d5e8 100644

Lines of this file are not shown. View the raw message.

net/ipv6/netfilter/nf_reject_ipv6.c +7 -8
index 7db0437140bf..9ae2b2725bf9 100644

Lines of this file are not shown. View the raw message.

net/mac80211/Kconfig +1 -1
index 13438cc0a6b1..cf0f7780fb10 100644

Lines of this file are not shown. View the raw message.

net/mac80211/cfg.c +2 -1
index b02b84ce2130..f2b5c18417ef 100644

Lines of this file are not shown. View the raw message.

net/mac80211/key.c +25 -17

42 lines not on this page · raw message

net/mptcp/protocol.c +2 -0
index d4b3bc46cdaa..ec87b36f0d45 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nft_payload.c +3 -0
index 50429cbd42da..2db38c06bede 100644

Lines of this file are not shown. View the raw message.

net/netfilter/x_tables.c +1 -1
index da5d929c7c85..709840612f0d 100644

Lines of this file are not shown. View the raw message.

net/sched/cls_api.c +1 -0
index 17d97bbe890f..bbc778c233c8 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_api.c +1 -1
index 2eefa4783879..a1d27bc039a3 100644

Lines of this file are not shown. View the raw message.

net/sunrpc/xprtrdma/ib_client.c +1 -0
index 8507cd4d8921..28c68b5f6823 100644

Lines of this file are not shown. View the raw message.

net/wireless/core.c +1 -0
index 4d5d351bd0b5..c9ebf9449fcc 100644

Lines of this file are not shown. View the raw message.

rust/kernel/device.rs +3 -12
index 851018eef885..c8199ee079ef 100644

Lines of this file are not shown. View the raw message.

rust/kernel/firmware.rs +1 -1
index dee5b4b18aec..13a374a5cdb7 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_realtek.c +20 -3
index 2583081c0a3a..660fd984a928 100644

Lines of this file are not shown. View the raw message.

sound/soc/codecs/cs42l51.c +5 -2
index e4827b8c2bde..6e51954bdb1e 100644

Lines of this file are not shown. View the raw message.

sound/soc/soc-dapm.c +2 -0
index e39df5d10b07..1647b24ca34d 100644

Lines of this file are not shown. View the raw message.

sound/usb/mixer_quirks.c +3 -0
index 5f09f9f205ce..d1cf32837be4 100644

Lines of this file are not shown. View the raw message.

tools/mm/page-types.c +5 -4
index 8d5595b6c59f..2a4ca4dd2da8 100644

Lines of this file are not shown. View the raw message.

tools/mm/slabinfo.c +3 -1
index cfaeaea71042..04e9e6ba86ea 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/python.c +3 -0
index 31a223eaf8e6..ee3d43a7ba45 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/syscalltbl.c +10 -0
index 0dd26b991b3f..351da249f1cc 100644

Lines of this file are not shown. View the raw message.

tools/testing/cxl/test/cxl.c +5 -9
index 90d5afd52dd0..c5bbd89b3192 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/uffd-common.c +2 -3
index 852e7281026e..717539eddf98 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/uffd-common.h +2 -1
index 3e6228d8e0dc..a70ae10b5f62 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/uffd-unit-tests.c +6 -15
index c8a3b1c7edff..b3d21eed203d 100644

Lines of this file are not shown. View the raw message.

tools/usb/usbip/src/usbip_detach.c +1 -0
index b29101986b5a..6b78d4a81e95 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.