Linux 6.12.36
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.12.36 kernel.
All users of the 6.12 kernel series must upgrade.
The updated 6.12.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.12.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/serial/8250.yaml | 2 Documentation/netlink/specs/tc.yaml | 4 Makefile | 2 arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi | 12 arch/riscv/include/asm/cmpxchg.h | 2 arch/riscv/include/asm/pgtable.h | 1 arch/riscv/kernel/traps_misaligned.c | 4 arch/riscv/mm/cacheflush.c | 15 arch/um/drivers/ubd_user.c | 2 arch/um/include/asm/asm-prototypes.h | 5 arch/um/kernel/trap.c | 129 + arch/x86/include/uapi/asm/debugreg.h | 21 arch/x86/kernel/cpu/common.c | 24 arch/x86/kernel/fpu/signal.c | 11 arch/x86/kernel/fpu/xstate.h | 22 arch/x86/kernel/traps.c | 34 arch/x86/um/asm/checksum.h | 3 drivers/accel/ivpu/ivpu_debugfs.c | 84 + drivers/accel/ivpu/ivpu_drv.c | 6 drivers/accel/ivpu/ivpu_drv.h | 10 drivers/accel/ivpu/ivpu_hw.c | 21 drivers/accel/ivpu/ivpu_hw.h | 5 drivers/accel/ivpu/ivpu_job.c | 201 +- drivers/accel/ivpu/ivpu_job.h | 2 drivers/accel/ivpu/ivpu_jsm_msg.c | 46 drivers/ata/ahci.c | 2 drivers/cxl/core/region.c | 7 drivers/dma/idxd/cdev.c | 4 drivers/dma/xilinx/xilinx_dma.c | 2 drivers/edac/amd64_edac.c | 57 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 64 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 30 drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 12 drivers/gpu/drm/amd/amdgpu/amdgpu_job.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 16 drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 17 drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 2 drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 6 drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h | 677 +++++----- drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx12.asm | 82 - drivers/gpu/drm/amd/amdkfd/kfd_device.c | 3 drivers/gpu/drm/amd/amdkfd/kfd_events.c | 1 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_v9.c | 2 drivers/gpu/drm/amd/display/dc/dml2/dml21/dml21_translation_helper.c | 1 drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4_calcs.c | 5 drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c | 1 drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c | 9 drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 3 drivers/gpu/drm/ast/ast_mode.c | 6 drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 32 drivers/gpu/drm/bridge/ti-sn65dsi86.c | 109 + drivers/gpu/drm/drm_fbdev_dma.c | 219 ++- drivers/gpu/drm/etnaviv/etnaviv_sched.c | 5 drivers/gpu/drm/i915/display/vlv_dsi.c | 4 drivers/gpu/drm/i915/i915_pmu.c | 2 drivers/gpu/drm/msm/dp/dp_display.c | 11 drivers/gpu/drm/msm/dp/dp_drm.c | 5 drivers/gpu/drm/msm/msm_gpu_devfreq.c | 1 drivers/gpu/drm/scheduler/sched_entity.c | 1 drivers/gpu/drm/tegra/dc.c | 17 drivers/gpu/drm/tegra/hub.c | 4 drivers/gpu/drm/tegra/hub.h | 3 drivers/gpu/drm/tiny/cirrus.c | 1 drivers/gpu/drm/udl/udl_drv.c | 2 drivers/gpu/drm/xe/display/xe_display.c | 2 drivers/gpu/drm/xe/xe_ggtt.c | 11 drivers/gpu/drm/xe/xe_gpu_scheduler.h | 10 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 8 drivers/gpu/drm/xe/xe_guc_ct.c | 7 drivers/gpu/drm/xe/xe_guc_ct.h | 5 drivers/gpu/drm/xe/xe_guc_pc.c | 2 drivers/gpu/drm/xe/xe_guc_submit.c | 23 drivers/gpu/drm/xe/xe_guc_types.h | 5 drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 54 drivers/gpu/drm/xe/xe_vm.c | 8 drivers/hid/hid-lenovo.c | 11 drivers/hid/wacom_sys.c | 7 drivers/hwmon/pmbus/max34440.c | 48 drivers/hwtracing/coresight/coresight-core.c | 3 drivers/hwtracing/coresight/coresight-priv.h | 1 drivers/i2c/busses/i2c-robotfuzz-osif.c | 6 drivers/i2c/busses/i2c-tiny-usb.c | 6 drivers/iio/adc/ad_sigma_delta.c | 4 drivers/iio/dac/Makefile | 2 drivers/iio/dac/ad3552r-common.c | 248 +++ drivers/iio/dac/ad3552r.c | 557 +------- drivers/iio/dac/ad3552r.h | 223 +++ drivers/iio/pressure/zpa2326.c | 2 drivers/leds/led-class-multicolor.c | 3 drivers/mailbox/mailbox.c | 2 drivers/md/bcache/super.c | 7 drivers/md/dm-raid.c | 2 drivers/md/dm-vdo/indexer/volume.c | 24 drivers/md/md-bitmap.c | 2 drivers/media/usb/uvc/uvc_ctrl.c | 34 drivers/mfd/max14577.c | 1 drivers/misc/tps6594-pfsm.c | 3 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 drivers/net/ethernet/freescale/enetc/enetc_hw.h | 2 drivers/net/ethernet/pensando/ionic/ionic_txrx.c | 12 drivers/net/ethernet/realtek/r8169.h | 1 drivers/net/ethernet/realtek/r8169_main.c | 23 drivers/net/ethernet/realtek/r8169_phy_config.c | 10 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 11 drivers/net/ethernet/wangxun/libwx/wx_lib.c | 6 drivers/net/phy/realtek.c | 54 drivers/nvme/host/tcp.c | 22 drivers/pci/controller/dwc/pci-imx6.c | 15 drivers/pci/controller/dwc/pcie-designware.c | 5 drivers/pci/controller/pcie-apple.c | 7 drivers/s390/crypto/pkey_api.c | 2 drivers/scsi/megaraid/megaraid_sas_base.c | 6 drivers/spi/spi-cadence-quadspi.c | 12 drivers/spi/spi-fsl-qspi.c | 36 drivers/staging/rtl8723bs/core/rtw_security.c | 44 drivers/tty/serial/8250/8250_pci1xxxx.c | 10 drivers/tty/serial/imx.c | 17 drivers/tty/serial/serial_base_bus.c | 1 drivers/tty/serial/uartlite.c | 25 drivers/ufs/core/ufshcd.c | 6 drivers/usb/class/cdc-wdm.c | 23 drivers/usb/common/usb-conn-gpio.c | 25 drivers/usb/core/usb.c | 14 drivers/usb/dwc2/gadget.c | 6 drivers/usb/gadget/function/f_hid.c | 19 drivers/usb/gadget/function/f_tcm.c | 4 drivers/usb/typec/altmodes/displayport.c | 4 drivers/usb/typec/mux.c | 4 drivers/usb/typec/tcpm/tcpm.c | 3 fs/btrfs/backref.h | 4 fs/btrfs/direct-io.c | 4 fs/btrfs/disk-io.c | 5 fs/btrfs/extent_io.h | 2 fs/btrfs/extent_map.c | 132 + fs/btrfs/extent_map.h | 3 fs/btrfs/fs.h | 2 fs/btrfs/inode.c | 297 ++-- fs/btrfs/ordered-data.c | 14 fs/btrfs/raid56.c | 5 fs/btrfs/super.c | 13 fs/btrfs/tests/extent-io-tests.c | 6 fs/btrfs/volumes.c | 6 fs/btrfs/zstd.c | 2 fs/ceph/file.c | 2 fs/f2fs/file.c | 38 fs/f2fs/super.c | 30 fs/fuse/dir.c | 11 fs/jfs/jfs_dmap.c | 41 fs/namespace.c | 8 fs/nfs/inode.c | 51 fs/nfs/nfs4proc.c | 25 fs/overlayfs/util.c | 4 fs/proc/task_mmu.c | 2 fs/smb/client/cifs_debug.c | 23 fs/smb/client/cifsglob.h | 2 fs/smb/client/cifspdu.h | 6 fs/smb/client/cifssmb.c | 1 fs/smb/client/connect.c | 58 fs/smb/client/misc.c | 8 fs/smb/client/sess.c | 21 fs/smb/client/smb2ops.c | 14 fs/smb/client/smbdirect.c | 513 +++---- fs/smb/client/smbdirect.h | 64 fs/smb/client/trace.h | 24 fs/smb/common/smbdirect/smbdirect.h | 37 fs/smb/common/smbdirect/smbdirect_pdu.h | 55 fs/smb/common/smbdirect/smbdirect_socket.h | 43 fs/smb/server/connection.h | 1 fs/smb/server/smb2pdu.c | 72 - fs/smb/server/smb2pdu.h | 3 include/net/bluetooth/hci_core.h | 2 include/uapi/drm/ivpu_accel.h | 6 include/uapi/linux/vm_sockets.h | 4 io_uring/kbuf.c | 1 io_uring/kbuf.h | 1 io_uring/net.c | 46 io_uring/rsrc.c | 23 io_uring/rsrc.h | 1 lib/group_cpus.c | 9 lib/maple_tree.c | 4 mm/damon/sysfs-schemes.c | 1 mm/gup.c | 14 mm/vma.c | 27 net/atm/clip.c | 11 net/atm/resources.c | 3 net/bluetooth/hci_core.c | 34 net/bluetooth/l2cap_core.c | 9 net/core/selftests.c | 5 net/mac80211/chan.c | 3 net/mac80211/ieee80211_i.h | 12 net/mac80211/iface.c | 12 net/mac80211/link.c | 94 + net/mac80211/util.c | 2 net/sunrpc/clnt.c | 9 net/unix/af_unix.c | 31 rust/Makefile | 2 rust/macros/module.rs | 1 sound/pci/hda/hda_bind.c | 2 sound/pci/hda/hda_intel.c | 3 sound/pci/hda/patch_realtek.c | 2 sound/soc/amd/yc/acp6x-mach.c | 7 sound/soc/codecs/rt1320-sdw.c | 17 sound/soc/codecs/wcd9335.c | 40 sound/usb/quirks.c | 2 sound/usb/stream.c | 2 tools/lib/bpf/btf_dump.c | 3 tools/lib/bpf/libbpf.c | 10 tools/testing/selftests/bpf/progs/test_global_map_resize.c | 16 212 files changed, 3777 insertions(+), 2218 deletions(-)
Adin Scannell (1):
libbpf: Fix possible use-after-free for externs
Aidan Stewart (1):
serial: core: restore of_node information in sysfs
Al Viro (1):
attach_recursive_mnt(): do not lock the covering tree when sliding something under it
Alex Deucher (2):
drm/amdgpu/discovery: optionally use fw based ip discovery drm/amdgpu: switch job hw_fence to amdgpu_fence
Alex Hung (2):
drm/amd/display: Check dce_hwseq before dereferencing it drm/amd/display: Fix mpv playback corruption on weston
Alexis Czezar Torreno (1):
hwmon: (pmbus/max34440) Fix support for max34451
Andres Traumann (1):
ALSA: hda/realtek: Bass speaker fixup for ASUS UM5606KA
Andrzej Kacprowski (1):
accel/ivpu: Remove copy engine support
Andy Chiu (1):
riscv: add a data fence for CMODX in the kernel mode
Andy Shevchenko (1):
usb: Add checks for snprintf() calls in usb_alloc_dev()
Angelo Dureghello (3):
iio: dac: ad3552r: changes to use FIELD_PREP
iio: dac: ad3552r: extract common code (no changes in behavior intended)
iio: dac: ad3552r-common: fix ad3541/2r ranges
Aradhya Bhatia (5):
drm/bridge: cdns-dsi: Fix the clock variable for mode_valid() drm/bridge: cdns-dsi: Fix phy de-init and flag it so drm/bridge: cdns-dsi: Fix connecting to next bridge drm/bridge: cdns-dsi: Check return value when getting default PHY config drm/bridge: cdns-dsi: Wait for Clk and Data Lanes to be ready
Arnd Bergmann (1):
drm/i915: fix build error some more
Avadhut Naik (1):
EDAC/amd64: Fix size calculation for Non-Power-of-Two DIMMs
Benjamin Berg (1):
um: use proper care when taking mmap lock during segfault
Cezary Rojewski (1):
ALSA: hda: Ignore unsol events for cards being shut down
Chance Yang (1):
usb: common: usb-conn-gpio: use a unique name for usb connector device
Chang S. Bae (2):
x86/fpu: Refactor xfeature bitmask update code for sigframe XSAVE x86/pkeys: Simplify PKRU update in signal frame
Chao Yu (2):
f2fs: don't over-report free space or inodes in statvfs
f2fs: fix to zero post-eof page
Chen Yu (1):
scsi: megaraid_sas: Fix invalid node index
Chen Yufeng (1):
usb: potential integer overflow in usbg_make_tpg()
Chenyuan Yang (1):
misc: tps6594-pfsm: Add NULL pointer check in tps6594_pfsm_probe()
Daniele Ceraolo Spurio (1):
drm/xe: Fix early wedge on GuC load failure
Dave Kleikamp (1):
fs/jfs: consolidate sanity checking in dbMount
David Hildenbrand (2):
fs/proc/task_mmu: fix PAGE_IS_PFNZERO detection for the huge zero folio mm/gup: revert "mm: gup: fix infinite loop within __get_longterm_locked"
David Howells (2):
cifs: Fix the smbd_response slab to allow usercopy
cifs: Fix reading into an ITER_FOLIOQ from the smbdirect code
David Sterba (1):
btrfs: use unsigned types for constants defined as bit shifts
Dmitry Kandybka (1):
ceph: fix possible integer overflow in ceph_zero_objects()
Dragan Simic (1):
arm64: dts: rockchip: Add avdd HDMI supplies to RockPro64 board dtsi
Eric Dumazet (1):
atm: clip: prevent NULL deref in clip_push()
FUJITA Tomonori (1):
rust: module: place cleanup_module() in .exit.text section
Fabio Estevam (1):
serial: imx: Restore original RXTL for console to fix data loss
Fedor Pchelkin (1):
s390/pkey: Prevent overflow in size calculation for memdup_user()
Filipe Manana (5):
btrfs: fix qgroup reservation leak on failure to allocate ordered extent
btrfs: fix a race between renames and directory logging
btrfs: skip inodes without loaded extent maps when shrinking extent maps
btrfs: make the extent map shrinker run asynchronously as a work queue job
btrfs: do regular iput instead of delayed iput during extent map shrinking
Frank Min (1):
drm/amdgpu: Add kicker device detection
Frédéric Danis (1):
Bluetooth: L2CAP: Fix L2CAP MTU negotiation
Greg Kroah-Hartman (1):
Linux 6.12.36
Guang Yuan Wu (1):
fuse: fix race between concurrent setattrs from multiple nodes
Han Xu (1):
spi: fsl-qspi: use devm function instead of driver remove
Han Young (1):
NFSv4: Always set NLINK even if the server doesn't support it
Hannes Reinecke (2):
nvme-tcp: fix I/O stalls on congested sockets
nvme-tcp: sanitize request list handling
Haoxiang Li (1):
drm/xe/display: Add check for alloc_ordered_workqueue()
Hector Martin (1):
PCI: apple: Fix missing OF node reference in apple_pcie_setup_port
Heiner Kallweit (3):
r8169: add support for RTL8125D
net: phy: realtek: merge the drivers for internal NBase-T PHY's
net: phy: realtek: add RTL8125D-internal PHY
Heinz Mauelshagen (1):
dm-raid: fix variable in journal device check
Iusico Maxim (1):
HID: lenovo: Restrict F7/9/11 mode to compact keyboards only
Jakub Kicinski (2):
netlink: specs: tc: replace underscores with dashes in names
net: selftests: fix TCP packet checksum
Jakub Lewalski (1):
tty: serial: uartlite: register uart driver in init
James Clark (1):
coresight: Only check bottom two claim bits
Janne Grunau (1):
PCI: apple: Set only available ports up
Jay Cornwall (2):
drm/amdkfd: Fix race in GWS queue scheduling drm/amdkfd: Fix instruction hazard in gfx12 trap handler
Jayesh Choudhary (1):
drm/bridge: ti-sn65dsi86: Add HPD for DisplayPort connector type
Jens Axboe (6):
io_uring/net: improve recv bundles
io_uring/net: only retry recv bundle for a full transfer io_uring/net: only consider msg_inq if larger than 1 io_uring/net: always use current transfer count for buffer put io_uring/net: mark iov as dynamically allocated even for single segments io_uring/kbuf: flag partial buffer mappings
Jesse Zhang (1):
drm/amdgpu: Fix SDMA UTC_L1 handling during start/stop sequences
Jiawen Wu (2):
net: libwx: fix the creation of page_pool
net: libwx: fix Tx L4 checksum
Johannes Berg (1):
wifi: mac80211: finish link init before RCU publish
John Olender (1):
drm/amdgpu: amdgpu_vram_mgr_new(): Clamp lpfn to total vram
Jonathan Cameron (1):
iio: pressure: zpa2326: Use aligned_s64 for the timestamp
Jonathan Kim (1):
drm/amdkfd: remove gfx 12 trap handler page size cap
Joonas Lahtinen (1):
Revert "drm/i915/gem: Allow EXEC_CAPTURE on recoverable contexts on DG1"
Jos Wang (1):
usb: typec: displayport: Receive DP Status Update NAK request exit dp altmode
Karol Wachowski (5):
accel/ivpu: Do not fail on cmdq if failed to allocate preemption buffers accel/ivpu: Make command queue ID allocated on XArray accel/ivpu: Separate DB ID and CMDQ ID allocations from CMDQ allocation accel/ivpu: Add debugfs interface for setting HWS priority bands accel/ivpu: Trigger device recovery on engine reset/resume failure
Kees Cook (1):
ovl: Check for NULL d_inode() in ovl_dentry_upper()
Kevin Hao (1):
spi: fsl-qspi: Fix double cleanup in probe error path
Khairul Anuar Romli (1):
spi: spi-cadence-quadspi: Fix pm runtime unbalance
Krzysztof Kozlowski (2):
mfd: max14577: Fix wakeup source leaks on device unbind
ASoC: codecs: wcd9335: Fix missing free of regulator supplies
Kuniyuki Iwashima (4):
af_unix: Don't leave consecutive consumed OOB skbs.
Bluetooth: hci_core: Fix use-after-free in vhci_flush()
af_unix: Don't set -ECONNRESET for consumed OOB skb.
atm: Release atm_dev_mutex after removing procfs in atm_dev_deregister().
Lachlan Hodges (1):
wifi: mac80211: fix beacon interval calculation overflow
Liam R. Howlett (1):
maple_tree: fix MA_STATE_PREALLOC flag in mas_preallocate()
Lin.Cao (1):
drm/scheduler: signal scheduled fence when kill job
Linggang Zeng (1):
bcache: fix NULL pointer in cache_set_flush()
Lorenzo Stoakes (1):
mm/vma: reset VMA iterator on commit_merge() OOM failure
Lucas De Marchi (2):
drm/xe: Fix memset on iomem
drm/xe: Fix taking invalid lock on wedge
Mario Limonciello (2):
ALSA: usb-audio: Add a quirk for Lenovo Thinkpad Thunderbolt 3 dock drm/amd: Adjust output for discovery error handling
Mark Harmstone (1):
btrfs: update superblock's device bytes_used when dropping chunk
Matthew Auld (3):
drm/xe/vm: move rebind_work init earlier drm/xe/sched: stop re-submitting signalled jobs drm/xe/guc_submit: add back fix
Matthew Sakai (1):
dm vdo indexer: don't read request structure after enqueuing
Maíra Canal (1):
drm/etnaviv: Protect the scheduler's pending list with its lock
Michael Grzeschik (2):
usb: dwc2: also exit clock_gating when stopping udc while suspended
usb: typec: mux: do not return on EOPNOTSUPP in {mux, switch}_set
Michal Wajdeczko (1):
drm/xe: Process deferred GGTT node removals on device unwind
Muna Sinada (2):
wifi: mac80211: Add link iteration macro for link data
wifi: mac80211: Create separate links for VLAN interfaces
Nam Cao (2):
Revert "riscv: Define TASK_SIZE_MAX for __access_ok()"
Revert "riscv: misaligned: fix sleeping function called during misaligned access handling"
Namjae Jeon (2):
ksmbd: allow a filename to contain special characters on SMB3.1.1 posix extension
ksmbd: provide zero as a unique ID to the Mac client
Naohiro Aota (1):
btrfs: zoned: fix extent range end unlock in cow_file_range()
Nathan Chancellor (1):
staging: rtl8723bs: Avoid memset() in aes_cipher() and aes_decipher()
Nikhil Jha (1):
sunrpc: don't immediately retransmit on seqno miss
Niklas Cassel (1):
ata: ahci: Use correct DMI identifier for ASUSPRO-D840SA LPM quirk
Olga Kornievskaia (1):
NFSv4.2: fix listxattr to return selinux security label
Oliver Schramm (1):
ASoC: amd: yc: Add DMI quirk for Lenovo IdeaPad Slim 5 15
Pali Rohár (3):
cifs: Correctly set SMB1 SessionKey field in Session Setup Request
cifs: Fix cifs_query_path_info() for Windows NT servers
cifs: Fix encoding of SMB1 Session Setup NTLMSSP Request in non-UNICODE mode
Paulo Alcantara (1):
smb: client: fix potential deadlock when reconnecting channels
Pavel Begunkov (2):
io_uring/rsrc: fix folio unpinning io_uring/rsrc: don't rely on user vaddr alignment
Peng Fan (2):
mailbox: Not protect module_put with spin_lock_irqsave
ASoC: codec: wcd9335: Convert to GPIO descriptors
Penglei Jiang (1):
io_uring: fix potential page leak in io_sqe_buffer_register()
Peter Korsgaard (1):
usb: gadget: f_hid: wake up readers on disable/unbind
Philip Yang (1):
drm/amdgpu: seq64 memory unmap uses uninterruptible lock
Purva Yeshi (1):
iio: adc: ad_sigma_delta: Fix use of uninitialized status_pos
Qasim Ijaz (3):
HID: wacom: fix memory leak on kobject creation failure
HID: wacom: fix memory leak on sysfs attribute creation failure
HID: wacom: fix kobject reference count leak
Qingfang Deng (1):
net: stmmac: Fix accessing freed irq affinity_hint
Qiu-ji Chen (1):
drm/tegra: Fix a possible null pointer dereference
Qu Wenruo (3):
btrfs: handle csum tree error with rescue=ibadroots correctly
btrfs: factor out nocow ordered extent and extent map generation into a helper
btrfs: do proper folio cleanup when cow_file_range() failed
Rengarajan S (1):
8250: microchip: pci1xxxx: Add PCIe Hot reset disable support for Rev C0 and later devices
Ricardo Ribalda (1):
media: uvcvideo: Rollback non processed entities on error
Richard Zhu (1):
PCI: imx6: Add workaround for errata ERR051624
Robert Hodaszi (1):
usb: cdc-wdm: avoid setting WDM_READ for ZLP-s
Robert Richter (1):
cxl/region: Add a dev_err() on missing target list entries
Rudraksha Gupta (1):
rust: arm: fix unknown (to Clang) argument '-mno-fdpic'
Sagi Grimberg (1):
NFSv4.2: fix setattr caching of TIME_[MODIFY|ACCESS]_SET when timestamps are delegated
Salvatore Bonaccorso (1):
ALSA: hda/realtek: Fix built-in mic on ASUS VivoBook X507UAR
Sami Tolvanen (1):
um: Add cmpxchg8b_emu and checksum functions to asm-prototypes.h
Sasha Levin (5):
drm/xe: Carve out wopcm portion from the stolen memory
usb: typec: tcpm: PSSourceOffTimer timeout in PR_Swap enters ERROR_RECOVERY drm/msm/dp: account for widebus and yuv420 during mode validation riscv/atomic: Do proper sign extension also for unsigned in arch_cmpxchg
btrfs: fix use-after-free on inode when scanning root during em shrinking
Scott Mayhew (1):
NFSv4: xattr handlers should check for absent nfs filehandles
SeongJae Park (1):
mm/damon/sysfs-schemes: free old damon_sysfs_scheme_filter->memcg_path on write
Shuming Fan (1):
ASoC: rt1320: fix speaker noise when volume bar is 100%
Simon Horman (1):
net: enetc: Correct endianness handling in _enetc_rd_reg64
Stefan Metzmacher (8):
smb: client: remove \t from TP_printk statements
smb: smbdirect: add smbdirect_pdu.h with protocol definitions
smb: client: make use of common smbdirect_pdu.h
smb: smbdirect: add smbdirect.h with public structures
smb: smbdirect: add smbdirect_socket.h
smb: client: make use of common smbdirect_socket
smb: smbdirect: introduce smbdirect_socket_parameters
smb: client: make use of common smbdirect_socket_parameters
Stefano Garzarella (1):
vsock/uapi: fix linux/vm_sockets.h userspace compilation errors
Stephan Gerhold (1):
drm/msm/gpu: Fix crash when throttling GPU immediately during boot
Sven Schwermer (1):
leds: multicolor: Fix intensity setting while SW blinking
Thierry Reding (1):
drm/tegra: Assign plane type before registration
Thomas Fourier (1):
ethernet: ionic: Fix DMA mapping tests
Thomas Gessler (1):
dmaengine: xilinx_dma: Set dma_device directions
Thomas Zeitlhofer (1):
HID: wacom: fix crash in wacom_aes_battery_handler()
Thomas Zimmermann (4):
drm/ast: Fix comment on modeset lock drm/cirrus-qemu: Fix pitch programming
drm/udl: Unregister device before cleaning up on disconnect drm/fbdev-dma: Add shadow buffering for deferred I/O
Tiwei Bie (1):
um: ubd: Add missing error check in start_io_thread()
Vasiliy Kovalev (1):
jfs: validate AG parameters in dbMount() to prevent crashes
Vijendar Mukunda (1):
ALSA: hda: Add new pci id for AMD GPU display HD audio controller
Ville Syrjälä (2):
drm/i915/gem: Allow EXEC_CAPTURE on recoverable contexts on DG1 drm/i915/dsi: Fix off by one in BXT_MIPI_TRANS_VTOTAL
Wenbin Yao (1):
PCI: dwc: Make link training more robust by setting PORT_LOGIC_LINK_WIDTH to one lane
Wentao Liang (1):
drm/amd/display: Add null pointer check for get_first_active_display()
Wolfram Sang (3):
i2c: tiny-usb: disable zero-length read messages
i2c: robotfuzz-osif: disable zero-length read messages drm/bridge: ti-sn65dsi86: make use of debugfs_init callback
Xin Li (Intel) (1):
x86/traps: Initialize DR6 by writing its architectural reset value
Yan Zhai (1):
bnxt: properly flush XDP redirect lists
Yao Zi (1):
dt-bindings: serial: 8250: Make clocks and clock-frequency exclusive
Yi Sun (1):
dmaengine: idxd: Check availability of workqueue allocated by idxd wq driver before using
Yifan Zhang (1):
amd/amdkfd: fix a kfd_process ref leak
Yihan Zhu (1):
drm/amd/display: Fix RMCM programming seq errors
Youngjun Lee (1):
ALSA: usb-audio: Fix out-of-bounds read in snd_usb_get_audioformat_uac3()
Yu Kuai (2):
md/md-bitmap: fix dm-raid max_write_behind setting lib/group_cpus: fix NULL pointer dereference from group_cpus_evenly()
Yuan Chen (1):
libbpf: Fix null pointer dereference in btf_dump__free on allocation failure
Zhang Zekun (1):
PCI: apple: Use helper function for_each_child_of_node_scoped()
Zhongwei Zhang (1):
drm/amd/display: Correct non-OLED pre_T11_delay.
Ziqi Chen (1):
scsi: ufs: core: Don't perform UFS clkscaling during host async scan
anvithdosapati (1):
scsi: ufs: core: Fix clk scaling to be conditional in reset and restore
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/serial/8250.yaml +1 -1
@@ -45,7 +45,7 @@ allOf: - ns16550 - ns16550a then: - anyOf: + oneOf: - required: [ clock-frequency ] - required: [ clocks ]
Documentation/netlink/specs/tc.yaml +2 -2
@@ -227,7 +227,7 @@ definitions: type: u8 doc: log(P_max / (qth-max - qth-min)) - - name: Scell_log + name: Scell-log type: u8 doc: cell size for idle damping -
@@ -248,7 +248,7 @@ definitions: name: DPs type: u32 - - name: def_DP + name: def-DP type: u32 - name: grio
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 12 -SUBLEVEL = 35 +SUBLEVEL = 36 EXTRAVERSION = NAME = Baby Opossum Posse
arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi +12 -0
@@ -227,6 +227,16 @@ vcc5v0_usb: vcc5v0-usb { vin-supply = <&vcc12v_dcin>; }; + vcca_0v9: vcca-0v9 { + compatible = "regulator-fixed"; + regulator-name = "vcca_0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc3v3_sys>; + }; + vdd_log: vdd-log { compatible = "pwm-regulator"; pwms = <&pwm2 0 25000 1>;
@@ -312,6 +322,8 @@ &gmac { }; &hdmi { + avdd-0v9-supply = <&vcca_0v9>; + avdd-1v8-supply = <&vcc1v8_dvp>; ddc-i2c-bus = <&i2c3>; pinctrl-names = "default"; pinctrl-0 = <&hdmi_cec>;
arch/riscv/include/asm/cmpxchg.h +1 -1
@@ -169,7 +169,7 @@break ; \case 4 : \__arch_cmpxchg (".w" ,".w" sc_sfx, prepend, append, \ - __ret, __ptr, (long), __old, __new); \ + __ret, __ptr, (long)(int)(long), __old, __new); \break ; \case 8 : \ __arch_cmpxchg(".d", ".d" sc_sfx, prepend, append, \
arch/riscv/include/asm/pgtable.h +0 -1
@@ -916,7 +916,6 @@ static inline pte_t pte_swp_clear_exclusive(pte_t pte)*/ #ifdef CONFIG_64BIT #define TASK_SIZE_64 (PGDIR_SIZE * PTRS_PER_PGD / 2) -#define TASK_SIZE_MAX LONG_MAX#ifdef CONFIG_COMPAT #define TASK_SIZE_32 (_AC(0x80000000, UL) - PAGE_SIZE)
arch/riscv/kernel/traps_misaligned.c +2 -2
@@ -429,7 +429,7 @@ int handle_misaligned_load(struct pt_regs *regs) val.data_u64 =0 ;if (user_mode (regs)) { -if (copy_from_user_nofault (&val, (u8 __user *)addr, len)) +if (copy_from_user (&val, (u8 __user *)addr, len))return -1 ; }else {memcpy (&val, (u8 *)addr, len);
@@ -530,7 +530,7 @@ int handle_misaligned_store(struct pt_regs *regs)return -EOPNOTSUPP ;if (user_mode (regs)) { -if (copy_to_user_nofault ((u8 __user *)addr, &val, len)) +if (copy_to_user ((u8 __user *)addr, &val, len))return -1 ; }else {memcpy ((u8 *)addr, &val, len);
arch/riscv/mm/cacheflush.c +14 -1
@@ -24,7 +24,20 @@ void flush_icache_all(void)if (num_online_cpus () <2 )return ; -else if (riscv_use_sbi_for_rfence ()) + +/* +* Make sure all previous writes to the D$ are ordered before making +* the IPI. The RISC-V spec states that a hart must execute a data fence +* before triggering a remote fence.i in order to make the modification +* visable for remote harts. +* +* IPIs on RISC-V are triggered by MMIO writes to either CLINT or +* S-IMSIC, so the fence ensures previous data writes "happen before" +* the MMIO. +*/ +RISCV_FENCE (w, o); + +if (riscv_use_sbi_for_rfence ())sbi_remote_fence_i (NULL );else on_each_cpu (ipi_remote_fence_i,NULL ,1 );
arch/um/drivers/ubd_user.c +1 -1
@@ -41,7 +41,7 @@ int start_io_thread(unsigned long sp, int *fd_out) *fd_out = fds[1 ]; err =os_set_fd_block (*fd_out,0 ); - err =os_set_fd_block (kernel_fd,0 ); + err |=os_set_fd_block (kernel_fd,0 );if (err) {printk ("start_io_thread - failed to set nonblocking I/O.\n" ); goto out_close;
arch/um/include/asm/asm-prototypes.h +5 -0
@@ -1 +1,6 @@#include <asm-generic/asm-prototypes.h> +#include <asm/checksum.h> + +#ifdef CONFIG_UML_X86 +extern void cmpxchg8b_emu (void ); +#endif
arch/um/kernel/trap.c +117 -12
144 lines not on this page · raw message
arch/x86/include/uapi/asm/debugreg.h +20 -1
@@ -15,7 +15,26 @@which debugging register was responsible for the trap. The other bits are either reserved or not of interest to us. */ -/* Define reserved bits in DR6 which are always set to 1 */ +/* +* Define bits in DR6 which are set to 1 by default. +* +* This is also the DR6 architectural value following Power-up, Reset or INIT. +* +* Note, with the introduction of Bus Lock Detection (BLD) and Restricted +* Transactional Memory (RTM), the DR6 register has been modified: +* +* 1) BLD flag (bit 11) is no longer reserved to 1 if the CPU supports +* Bus Lock Detection. The assertion of a bus lock could clear it. +* +* 2) RTM flag (bit 16) is no longer reserved to 1 if the CPU supports +* restricted transactional memory. #DB occurred inside an RTM region +* could clear it. +* +* Apparently, DR6.BLD and DR6.RTM are active low bits. +* +* As a result, DR6_RESERVED is an incorrect name now, but it is kept for +* compatibility. +*/ #define DR6_RESERVED (0xFFFF0FF0)#define DR_TRAP0 (0x1)/* db0 */
arch/x86/kernel/cpu/common.c +10 -14
@@ -2145,20 +2145,16 @@ EXPORT_PER_CPU_SYMBOL(__stack_chk_guard);#endif /* CONFIG_X86_64 */ -/* -* Clear all 6 debug registers: -*/ -static void clear_all_debug_regs (void ) +static void initialize_debug_regs (void ) { -int i; - -for (i =0 ; i <8 ; i++) { -/* Ignore db4, db5 */ -if ((i ==4 ) || (i ==5 )) -continue ; - -set_debugreg (0 , i); - } +/* Control register first -- to make sure everything is disabled. */ +set_debugreg (0 ,7 ); +set_debugreg (DR6_RESERVED ,6 ); +/* dr5 and dr4 don't exist */ +set_debugreg (0 ,3 ); +set_debugreg (0 ,2 ); +set_debugreg (0 ,1 ); +set_debugreg (0 ,0 ); }#ifdef CONFIG_KGDB
@@ -2319,7 +2315,7 @@ void cpu_init(void)load_mm_ldt (&init_mm); -clear_all_debug_regs (); +initialize_debug_regs ();dbg_restore_debug_regs ();doublefault_init_cpu_tss ();
arch/x86/kernel/fpu/signal.c +1 -10
@@ -119,7 +119,6 @@ static inline bool save_xstate_epilog(void __user *buf, int ia32_frame, {struct xregs_state __user *x = buf;struct _fpx_sw_bytes sw_bytes = {}; -u32 xfeatures;int err;/* Setup the bytes not touched by the [f]xsave and reserved for SW. */
@@ -132,12 +131,6 @@ static inline bool save_xstate_epilog(void __user *buf, int ia32_frame, err |=__put_user (FP_XSTATE_MAGIC2 , (__u32 __user *)(buf + fpstate->user_size)); -/* -* Read the xfeatures which we copied (directly from the cpu or -* from the state in task struct) to the user buffers. -*/ - err |=__get_user (xfeatures, (__u32 __user *)&x->header.xfeatures); -/* * For legacy compatible, we always set FP/SSE bits in the bit * vector while saving the state to the user context. This will
@@ -149,9 +142,7 @@ static inline bool save_xstate_epilog(void __user *buf, int ia32_frame,* header as well as change any contents in the memory layout. * xrestore as part of sigreturn will capture all the changes. */ - xfeatures |=XFEATURE_MASK_FPSSE ; - - err |=__put_user (xfeatures, (__u32 __user *)&x->header.xfeatures); + err |=set_xfeature_in_sigframe (x,XFEATURE_MASK_FPSSE );return !err; }
arch/x86/kernel/fpu/xstate.h +16 -6
@@ -69,21 +69,31 @@ static inline u64 xfeatures_mask_independent(void)return fpu_kernel_cfg.independent_features; } +static inline int set_xfeature_in_sigframe (struct xregs_state __user *xbuf,u64 mask) +{ +u64 xfeatures; +int err; + +/* Read the xfeatures value already saved in the user buffer */ + err =__get_user (xfeatures, &xbuf->header.xfeatures); + xfeatures |= mask; + err |=__put_user (xfeatures, &xbuf->header.xfeatures); + +return err; +} +/* * Update the value of PKRU register that was already pushed onto the signal frame. */ -static inline int update_pkru_in_sigframe (struct xregs_state __user *buf,u64 mask,u32 pkru) +static inline int update_pkru_in_sigframe (struct xregs_state __user *buf,u32 pkru) { -u64 xstate_bv;int err;if (unlikely (!cpu_feature_enabled (X86_FEATURE_OSPKE )))return 0 ;/* Mark PKRU as in-use so that it is restored correctly. */ - xstate_bv = (mask &xfeatures_in_use ()) |XFEATURE_MASK_PKRU ; - - err =__put_user (xstate_bv, &buf->header.xfeatures); + err =set_xfeature_in_sigframe (buf,XFEATURE_MASK_PKRU );if (err)return err;
@@ -304,7 +314,7 @@ static inline int xsave_to_user_sigframe(struct xregs_state __user *buf, u32 pkrclac ();if (!err) - err =update_pkru_in_sigframe (buf, mask, pkru); + err =update_pkru_in_sigframe (buf, pkru);return err; }
arch/x86/kernel/traps.c +21 -13
@@ -977,24 +977,32 @@ static bool is_sysenter_singlestep(struct pt_regs *regs)#endif } -static __always_inline unsigned long debug_read_clear_dr6 (void ) +static __always_inline unsigned long debug_read_reset_dr6 (void ) {unsigned long dr6; +get_debugreg (dr6,6 ); + dr6 ^=DR6_RESERVED ;/* Flip to positive polarity */ +/* * The Intel SDM says: * -* Certain debug exceptions may clear bits 0-3. The remaining -* contents of the DR6 register are never cleared by the -* processor. To avoid confusion in identifying debug -* exceptions, debug handlers should clear the register before -* returning to the interrupted task. +* Certain debug exceptions may clear bits 0-3 of DR6. +* +* BLD induced #DB clears DR6.BLD and any other debug +* exception doesn't modify DR6.BLD. * -* Keep it simple: clear DR6 immediately. +* RTM induced #DB clears DR6.RTM and any other debug +* exception sets DR6.RTM. +* +* To avoid confusion in identifying debug exceptions, +* debug handlers should set DR6.BLD and DR6.RTM, and +* clear other DR6 bits before returning. +* +* Keep it simple: write DR6 with its architectural reset +* value 0xFFFF0FF0, defined as DR6_RESERVED, immediately. */ -get_debugreg (dr6,6 );set_debugreg (DR6_RESERVED ,6 ); - dr6 ^=DR6_RESERVED ;/* Flip to positive polarity */ return dr6; }
@@ -1194,13 +1202,13 @@ static noinstr void exc_debug_user(struct pt_regs *regs, unsigned long dr6)/* IST stack entry */ DEFINE_IDTENTRY_DEBUG (exc_debug) { -exc_debug_kernel (regs,debug_read_clear_dr6 ()); +exc_debug_kernel (regs,debug_read_reset_dr6 ()); }/* User entry, runs on regular task stack */ DEFINE_IDTENTRY_DEBUG_USER (exc_debug) { -exc_debug_user (regs,debug_read_clear_dr6 ()); +exc_debug_user (regs,debug_read_reset_dr6 ()); }#ifdef CONFIG_X86_FRED
@@ -1219,7 +1227,7 @@ DEFINE_FREDENTRY_DEBUG(exc_debug) {/* * FRED #DB stores DR6 on the stack in the format which -* debug_read_clear_dr6() returns for the IDT entry points. +* debug_read_reset_dr6() returns for the IDT entry points. */ unsigned long dr6 =fred_event_data (regs);
@@ -1234,7 +1242,7 @@ DEFINE_FREDENTRY_DEBUG(exc_debug)/* 32 bit does not have separate entry points. */ DEFINE_IDTENTRY_RAW (exc_debug) { -unsigned long dr6 =debug_read_clear_dr6 (); +unsigned long dr6 =debug_read_reset_dr6 ();if (user_mode (regs))exc_debug_user (regs, dr6);
arch/x86/um/asm/checksum.h +3 -0
@@ -20,6 +20,9 @@*/ extern __wsum csum_partial (const void *buff,int len,__wsum sum); +/* Do not call this directly. Declared for export type visibility. */ +extern __visible __wsum csum_partial_copy_generic(const void *src, void *dst, int len); +/** * csum_fold - Fold and invert a 32bit checksum. * sum: 32bit unfolded sum
drivers/accel/ivpu/ivpu_debugfs.c +84 -0
96 lines not on this page · raw message
drivers/accel/ivpu/ivpu_drv.c +6 -0
@@ -102,6 +102,8 @@ static void file_priv_release(struct kref *ref)pm_runtime_get_sync (vdev->drm.dev);mutex_lock (&vdev->context_list_lock);file_priv_unbind (vdev, file_priv); +drm_WARN_ON (&vdev->drm, !xa_empty (&file_priv->cmdq_xa)); +xa_destroy (&file_priv->cmdq_xa);mutex_unlock (&vdev->context_list_lock);pm_runtime_put_autosuspend (vdev->drm.dev);
@@ -261,6 +263,10 @@ static int ivpu_open(struct drm_device *dev, struct drm_file *file) file_priv->job_limit.min =FIELD_PREP (IVPU_JOB_ID_CONTEXT_MASK , (file_priv->ctx.id -1 )); file_priv->job_limit.max = file_priv->job_limit.min |IVPU_JOB_ID_JOB_MASK ; +xa_init_flags (&file_priv->cmdq_xa,XA_FLAGS_ALLOC1 ); + file_priv->cmdq_limit.min =IVPU_CMDQ_MIN_ID ; + file_priv->cmdq_limit.max =IVPU_CMDQ_MAX_ID ; +mutex_unlock (&vdev->context_list_lock);drm_dev_exit (idx);
drivers/accel/ivpu/ivpu_drv.h +6 -4
@@ -50,11 +50,11 @@#define IVPU_JOB_ID_JOB_MASK GENMASK(7, 0)#define IVPU_JOB_ID_CONTEXT_MASK GENMASK(31, 8) -#define IVPU_NUM_ENGINES 2#define IVPU_NUM_PRIORITIES 4 -#define IVPU_NUM_CMDQS_PER_CTX (IVPU_NUM_ENGINES * IVPU_NUM_PRIORITIES) +#define IVPU_NUM_CMDQS_PER_CTX (IVPU_NUM_PRIORITIES) -#define IVPU_CMDQ_INDEX (engine, priority) ((engine) * IVPU_NUM_PRIORITIES + (priority)) +#define IVPU_CMDQ_MIN_ID 1 +#define IVPU_CMDQ_MAX_ID 255#define IVPU_PLATFORM_SILICON 0#define IVPU_PLATFORM_SIMICS 2
@@ -174,13 +174,15 @@ struct ivpu_file_priv {struct kref ref;struct ivpu_device *vdev;struct mutex lock;/* Protects cmdq */ -struct ivpu_cmdq *cmdq[IVPU_NUM_CMDQS_PER_CTX ]; +struct xarray cmdq_xa;struct ivpu_mmu_context ctx;struct mutex ms_lock;/* Protects ms_instance_list, ms_info_bo */ struct list_head ms_instance_list;struct ivpu_bo *ms_info_bo;struct xa_limit job_limit;u32 job_id_next; +struct xa_limit cmdq_limit; +u32 cmdq_id_next;bool has_mmu_faults;bool bound;bool aborted;
drivers/accel/ivpu/ivpu_hw.c +21 -0
@@ -110,6 +110,26 @@ static void timeouts_init(struct ivpu_device *vdev) } } +static void priority_bands_init (struct ivpu_device *vdev) +{ +/* Idle */ + vdev->hw->hws.grace_period[VPU_JOB_SCHEDULING_PRIORITY_BAND_IDLE ] =0 ; + vdev->hw->hws.process_grace_period[VPU_JOB_SCHEDULING_PRIORITY_BAND_IDLE ] =50000 ; + vdev->hw->hws.process_quantum[VPU_JOB_SCHEDULING_PRIORITY_BAND_IDLE ] =160000 ; +/* Normal */ + vdev->hw->hws.grace_period[VPU_JOB_SCHEDULING_PRIORITY_BAND_NORMAL ] =50000 ; + vdev->hw->hws.process_grace_period[VPU_JOB_SCHEDULING_PRIORITY_BAND_NORMAL ] =50000 ; + vdev->hw->hws.process_quantum[VPU_JOB_SCHEDULING_PRIORITY_BAND_NORMAL ] =300000 ; +/* Focus */ + vdev->hw->hws.grace_period[VPU_JOB_SCHEDULING_PRIORITY_BAND_FOCUS ] =50000 ; + vdev->hw->hws.process_grace_period[VPU_JOB_SCHEDULING_PRIORITY_BAND_FOCUS ] =50000 ; + vdev->hw->hws.process_quantum[VPU_JOB_SCHEDULING_PRIORITY_BAND_FOCUS ] =200000 ; +/* Realtime */ + vdev->hw->hws.grace_period[VPU_JOB_SCHEDULING_PRIORITY_BAND_REALTIME ] =0 ; + vdev->hw->hws.process_grace_period[VPU_JOB_SCHEDULING_PRIORITY_BAND_REALTIME ] =50000 ; + vdev->hw->hws.process_quantum[VPU_JOB_SCHEDULING_PRIORITY_BAND_REALTIME ] =200000 ; +} +static void memory_ranges_init (struct ivpu_device *vdev) {if (ivpu_hw_ip_gen (vdev) ==IVPU_HW_IP_37XX ) {
@@ -248,6 +268,7 @@ int ivpu_hw_init(struct ivpu_device *vdev) {ivpu_hw_btrs_info_init (vdev);ivpu_hw_btrs_freq_ratios_init (vdev); +priority_bands_init (vdev);memory_ranges_init (vdev);platform_init (vdev);wa_init (vdev);
drivers/accel/ivpu/ivpu_hw.h +5 -0
@@ -45,6 +45,11 @@ struct ivpu_hw_info {u8 pn_ratio;u32 profiling_freq; } pll; +struct { +u32 grace_period[VPU_HWS_NUM_PRIORITY_BANDS ]; +u32 process_quantum[VPU_HWS_NUM_PRIORITY_BANDS ]; +u32 process_grace_period[VPU_HWS_NUM_PRIORITY_BANDS ]; + } hws;u32 tile_fuse;u32 sku;u16 config;
drivers/accel/ivpu/ivpu_job.c +118 -83
354 lines not on this page · raw message
drivers/accel/ivpu/ivpu_job.h +2 -0
@@ -28,8 +28,10 @@ struct ivpu_cmdq {struct ivpu_bo *secondary_preempt_buf;struct ivpu_bo *mem;u32 entry_count; +u32 id;u32 db_id;bool db_registered; +u8 priority; };/**
drivers/accel/ivpu/ivpu_jsm_msg.c +22 -24
98 lines not on this page · raw message
drivers/ata/ahci.c +1 -1
@@ -1456,7 +1456,7 @@ static bool ahci_broken_lpm(struct pci_dev *pdev) { .matches = { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_VERSION, "ASUSPRO D840MB_M840SA"), + DMI_MATCH(DMI_PRODUCT_NAME, "ASUSPRO D840MB_M840SA"), }, /* 320 is broken, there is no known good version. */ },
drivers/cxl/core/region.c +7 -0
@@ -1781,6 +1781,13 @@ static int find_pos_and_ways(struct cxl_port *port, struct range *range, }put_device (dev); +if (rc) +dev_err (port->uport_dev, +"failed to find %s:%s in target list of %s\n" , +dev_name (&port->dev), +dev_name (port->parent_dport->dport_dev), +dev_name (&cxlsd->cxld.dev)); +return rc; }
drivers/dma/idxd/cdev.c +3 -1
@@ -354,7 +354,9 @@ static void idxd_cdev_evl_drain_pasid(struct idxd_wq *wq, u32 pasid)set_bit (h, evl->bmap); h = (h +1 ) % size; } -drain_workqueue (wq->wq); +if (wq->wq) +drain_workqueue (wq->wq); +mutex_unlock (&evl->lock); }
drivers/dma/xilinx/xilinx_dma.c +2 -0
@@ -2906,6 +2906,8 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,return -EINVAL ; } + xdev->common.directions |= chan->direction; +/* Request the interrupt */ chan->irq =of_irq_get (node, chan->tdest);if (chan->irq <0 )
drivers/edac/amd64_edac.c +36 -21
104 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +1 -1
@@ -1902,7 +1902,7 @@ static void amdgpu_ib_preempt_mark_partial_job(struct amdgpu_ring *ring)continue ; } job =to_amdgpu_job (s_job); -if (preempted && (&job->hw_fence) == fence) +if (preempted && (&job->hw_fence.base) == fence)/* mark the job as preempted */ job->preemption_status |=AMDGPU_IB_PREEMPTED ; }
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +1 -1
@@ -5861,7 +5861,7 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,* * job->base holds a reference to parent fence */ -if (job &&dma_fence_is_signaled (&job->hw_fence)) { +if (job &&dma_fence_is_signaled (&job->hw_fence.base)) { job_signaled = true;dev_info (adev->dev,"Guilty job already signaled, skipping HW reset" ); goto skip_hw_reset;
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +43 -21
99 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +7 -23
@@ -41,22 +41,6 @@#include "amdgpu_trace.h" #include "amdgpu_reset.h" -/* -* Fences mark an event in the GPUs pipeline and are used -* for GPU/CPU synchronization. When the fence is written, -* it is expected that all buffers associated with that fence -* are no longer in use by the associated ring on the GPU and -* that the relevant GPU caches have been flushed. -*/ - -struct amdgpu_fence { -struct dma_fence base; - -/* RB, DMA, etc. */ -struct amdgpu_ring *ring; -ktime_t start_timestamp; -}; -static struct kmem_cache *amdgpu_fence_slab;int amdgpu_fence_slab_init (void )
@@ -151,12 +135,12 @@ int amdgpu_fence_emit(struct amdgpu_ring *ring, struct dma_fence **f, struct amd am_fence =kmem_cache_alloc (amdgpu_fence_slab,GFP_ATOMIC );if (am_fence ==NULL )return -ENOMEM ; - fence = &am_fence->base; - am_fence->ring = ring; }else {/* take use of job-embedded fence */ - fence = &job->hw_fence; + am_fence = &job->hw_fence; } + fence = &am_fence->base; + am_fence->ring = ring; seq = ++ring->fence_drv.sync_seq;if (job && job->job_run_counter) {
@@ -718,7 +702,7 @@ void amdgpu_fence_driver_clear_job_fences(struct amdgpu_ring *ring)* it right here or we won't be able to track them in fence_drv * and they will remain unsignaled during sa_bo free. */ - job = container_of(old, struct amdgpu_job, hw_fence); + job = container_of(old, struct amdgpu_job, hw_fence.base);if (!job->base.s_fence && !dma_fence_is_signaled (old))dma_fence_signal (old);RCU_INIT_POINTER (*ptr,NULL );
@@ -780,7 +764,7 @@ static const char *amdgpu_fence_get_timeline_name(struct dma_fence *f)static const char *amdgpu_job_fence_get_timeline_name (struct dma_fence *f) { - struct amdgpu_job *job = container_of(f, struct amdgpu_job, hw_fence); + struct amdgpu_job *job = container_of(f, struct amdgpu_job, hw_fence.base);return (const char *)to_amdgpu_ring (job->base.sched)->name; }
@@ -810,7 +794,7 @@ static bool amdgpu_fence_enable_signaling(struct dma_fence *f)*/ static bool amdgpu_job_fence_enable_signaling (struct dma_fence *f) { - struct amdgpu_job *job = container_of(f, struct amdgpu_job, hw_fence); + struct amdgpu_job *job = container_of(f, struct amdgpu_job, hw_fence.base);if (!timer_pending (&to_amdgpu_ring (job->base.sched)->fence_drv.fallback_timer))amdgpu_fence_schedule_fallback (to_amdgpu_ring (job->base.sched));
@@ -845,7 +829,7 @@ static void amdgpu_job_fence_free(struct rcu_head *rcu) struct dma_fence *f = container_of(rcu, struct dma_fence, rcu);/* free job if fence has a parent job */ -kfree (container_of(f ,struct amdgpu_job ,hw_fence )); + kfree(container_of(f, struct amdgpu_job, hw_fence.base)); }/**
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +6 -6
@@ -259,8 +259,8 @@ void amdgpu_job_free_resources(struct amdgpu_job *job)/* Check if any fences where initialized */ if (job->base.s_fence && job->base.s_fence->finished.ops) f = &job->base.s_fence->finished; -else if (job->hw_fence.ops) - f = &job->hw_fence; +else if (job->hw_fence.base.ops) + f = &job->hw_fence.base;else f =NULL ;
@@ -277,10 +277,10 @@ static void amdgpu_job_free_cb(struct drm_sched_job *s_job)amdgpu_sync_free (&job->explicit_sync);/* only put the hw fence if has embedded fence */ -if (!job->hw_fence.ops) +if (!job->hw_fence.base.ops)kfree (job);else -dma_fence_put (&job->hw_fence); +dma_fence_put (&job->hw_fence.base); } void amdgpu_job_set_gang_leader(struct amdgpu_job *job,
@@ -309,10 +309,10 @@ void amdgpu_job_free(struct amdgpu_job *job)if (job->gang_submit != &job->base.s_fence->scheduled)dma_fence_put (job->gang_submit); -if (!job->hw_fence.ops) +if (!job->hw_fence.base.ops)kfree (job);else -dma_fence_put (&job->hw_fence); +dma_fence_put (&job->hw_fence.base); }struct dma_fence *amdgpu_job_submit (struct amdgpu_job *job)
drivers/gpu/drm/amd/amdgpu/amdgpu_job.h +1 -1
@@ -48,7 +48,7 @@ struct amdgpu_job {struct drm_sched_job base;struct amdgpu_vm *vm;struct amdgpu_sync explicit_sync; -struct dma_fence hw_fence; +struct amdgpu_fence hw_fence;struct dma_fence *gang_submit;uint32_t preamble_status;uint32_t preemption_status;
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h +16 -0
@@ -126,6 +126,22 @@ struct amdgpu_fence_driver {struct dma_fence **fences; }; +/* +* Fences mark an event in the GPUs pipeline and are used +* for GPU/CPU synchronization. When the fence is written, +* it is expected that all buffers associated with that fence +* are no longer in use by the associated ring on the GPU and +* that the relevant GPU caches have been flushed. +*/ + +struct amdgpu_fence { +struct dma_fence base; + +/* RB, DMA, etc. */ +struct amdgpu_ring *ring; +ktime_t start_timestamp; +}; +extern const struct drm_sched_backend_ops amdgpu_sched_ops;void amdgpu_fence_driver_clear_job_fences (struct amdgpu_ring *ring);
drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c +1 -1
@@ -133,7 +133,7 @@ void amdgpu_seq64_unmap(struct amdgpu_device *adev, struct amdgpu_fpriv *fpriv) vm = &fpriv->vm; -drm_exec_init (&exec,DRM_EXEC_INTERRUPTIBLE_WAIT ,0 ); +drm_exec_init (&exec,0 ,0 ); drm_exec_until_all_locked(&exec) { r =amdgpu_vm_lock_pd (vm, &exec,0 );if (likely (!r))
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +17 -0
@@ -30,6 +30,10 @@#define AMDGPU_UCODE_NAME_MAX (128) +static const struct kicker_device kicker_device_list[] = { + {0x744B ,0x00 }, +}; +static void amdgpu_ucode_print_common_hdr (const struct common_firmware_header *hdr) {DRM_DEBUG ("size_bytes: %u\n" ,le32_to_cpu (hdr->size_bytes));
@@ -1383,6 +1387,19 @@ static const char *amdgpu_ucode_legacy_naming(struct amdgpu_device *adev, int blreturn NULL ; } +bool amdgpu_is_kicker_fw (struct amdgpu_device *adev) +{ +int i; + +for (i =0 ; i <ARRAY_SIZE (kicker_device_list); i++) { +if (adev->pdev->device == kicker_device_list[i].device && + adev->pdev->revision == kicker_device_list[i].revision) +return true; + } + +return false; +} +void amdgpu_ucode_ip_version_decode (struct amdgpu_device *adev,int block_type,char *ucode_prefix,int len) {int maj, min, rev;
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h +6 -0
@@ -595,6 +595,11 @@ struct amdgpu_firmware {uint64_t fw_buf_mc; }; +struct kicker_device { +unsigned short device; +u8 revision; +}; +void amdgpu_ucode_print_mc_hdr (const struct common_firmware_header *hdr);void amdgpu_ucode_print_smc_hdr (const struct common_firmware_header *hdr);void amdgpu_ucode_print_imu_hdr (const struct common_firmware_header *hdr);
@@ -622,5 +627,6 @@ amdgpu_ucode_get_load_type(struct amdgpu_device *adev, int load_type);const char *amdgpu_ucode_name (enum AMDGPU_UCODE_ID ucode_id);void amdgpu_ucode_ip_version_decode (struct amdgpu_device *adev,int block_type,char *ucode_prefix,int len); +bool amdgpu_is_kicker_fw (struct amdgpu_device *adev);#endif
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +1 -1
@@ -463,7 +463,7 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,int r; lpfn = (u64 )place->lpfn <<PAGE_SHIFT ; -if (!lpfn) +if (!lpfn || lpfn > man->size) lpfn = man->size; fpfn = (u64 )place->fpfn <<PAGE_SHIFT ;
drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c +5 -1
@@ -485,7 +485,7 @@ static void sdma_v4_4_2_inst_gfx_stop(struct amdgpu_device *adev, {struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES ];u32 doorbell_offset, doorbell; -u32 rb_cntl, ib_cntl; +u32 rb_cntl, ib_cntl, sdma_cntl;int i;for_each_inst (i, inst_mask) {
@@ -497,6 +497,9 @@ static void sdma_v4_4_2_inst_gfx_stop(struct amdgpu_device *adev, ib_cntl =RREG32_SDMA (i, regSDMA_GFX_IB_CNTL); ib_cntl =REG_SET_FIELD (ib_cntl,SDMA_GFX_IB_CNTL ,IB_ENABLE ,0 );WREG32_SDMA (i, regSDMA_GFX_IB_CNTL, ib_cntl); + sdma_cntl =RREG32_SDMA (i, regSDMA_CNTL); + sdma_cntl =REG_SET_FIELD (sdma_cntl,SDMA_CNTL ,UTC_L1_ENABLE ,0 ); +WREG32_SDMA (i, regSDMA_CNTL, sdma_cntl);if (sdma[i]->use_doorbell) { doorbell =RREG32_SDMA (i, regSDMA_GFX_DOORBELL);
@@ -953,6 +956,7 @@ static int sdma_v4_4_2_inst_start(struct amdgpu_device *adev,/* set utc l1 enable flag always to 1 */ temp =RREG32_SDMA (i, regSDMA_CNTL); temp =REG_SET_FIELD (temp,SDMA_CNTL ,UTC_L1_ENABLE ,1 ); +WREG32_SDMA (i, regSDMA_CNTL, temp);if (amdgpu_ip_version (adev,SDMA0_HWIP ,0 ) <IP_VERSION (4 ,4 ,5 )) {/* enable context empty interrupt during initialization */
drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h +360 -317
741 lines not on this page · raw message
drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx12.asm +44 -38
143 lines not on this page · raw message
drivers/gpu/drm/amd/amdkfd/kfd_device.c +2 -1
@@ -537,7 +537,8 @@ static void kfd_cwsr_init(struct kfd_dev *kfd) kfd->cwsr_isa = cwsr_trap_gfx11_hex; kfd->cwsr_isa_size =sizeof (cwsr_trap_gfx11_hex); }else { -BUILD_BUG_ON (sizeof (cwsr_trap_gfx12_hex) >PAGE_SIZE ); +BUILD_BUG_ON (sizeof (cwsr_trap_gfx12_hex) + >KFD_CWSR_TMA_OFFSET ); kfd->cwsr_isa = cwsr_trap_gfx12_hex; kfd->cwsr_isa_size =sizeof (cwsr_trap_gfx12_hex); }
drivers/gpu/drm/amd/amdkfd/kfd_events.c +1 -0
@@ -1315,6 +1315,7 @@ void kfd_signal_poison_consumed_event(struct kfd_node *dev, u32 pasid) user_gpu_id =kfd_process_get_user_gpu_id (p, dev->id);if (unlikely (user_gpu_id == -EINVAL )) {WARN_ONCE (1 ,"Could not get user_gpu_id from dev->id:%x\n" , dev->id); +kfd_unref_process (p);return ; }
drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_v9.c +1 -1
@@ -237,7 +237,7 @@ static int pm_map_queues_v9(struct packet_manager *pm, uint32_t *buffer, packet->bitfields2.engine_sel = engine_sel__mes_map_queues__compute_vi; - packet->bitfields2.gws_control_queue = q->gws ?1 :0 ; + packet->bitfields2.gws_control_queue = q->properties.is_gws ?1 :0 ; packet->bitfields2.extended_engine_sel = extended_engine_sel__mes_map_queues__legacy_engine_sel; packet->bitfields2.queue_type =
drivers/gpu/drm/amd/display/dc/dml2/dml21/dml21_translation_helper.c +1 -0
@@ -762,6 +762,7 @@ static void populate_dml21_plane_config_from_plane_state(struct dml2_context *dm plane->pixel_format = dml2_420_10;break ;case SURFACE_PIXEL_FORMAT_GRPH_ARGB16161616 : +case SURFACE_PIXEL_FORMAT_GRPH_ABGR16161616 :case SURFACE_PIXEL_FORMAT_GRPH_ARGB16161616F :case SURFACE_PIXEL_FORMAT_GRPH_ABGR16161616F : plane->pixel_format = dml2_444_64;
drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4_calcs.c +4 -1
@@ -4651,7 +4651,10 @@ static void calculate_tdlut_setting(//the tdlut is fetched during the 2 row times of prefetch. if (p->setup_for_tdlut) { *p->tdlut_groups_per_2row_ub = (unsigned int )math_ceil2 ((double ) *p->tdlut_bytes_per_frame / *p->tdlut_bytes_per_group,1 ); - *p->tdlut_opt_time = (*p->tdlut_bytes_per_frame - p->cursor_buffer_size *1024 ) / tdlut_drain_rate; +if (*p->tdlut_bytes_per_frame > p->cursor_buffer_size *1024 ) + *p->tdlut_opt_time = (*p->tdlut_bytes_per_frame - p->cursor_buffer_size *1024 ) / tdlut_drain_rate; +else + *p->tdlut_opt_time =0 ; *p->tdlut_drain_time = p->cursor_buffer_size *1024 / tdlut_drain_rate; }
drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c +1 -0
@@ -909,6 +909,7 @@ static void populate_dml_surface_cfg_from_plane_state(enum dml_project_id dml2_p out->SourcePixelFormat[location] = dml_420_10;break ;case SURFACE_PIXEL_FORMAT_GRPH_ARGB16161616 : +case SURFACE_PIXEL_FORMAT_GRPH_ABGR16161616 :case SURFACE_PIXEL_FORMAT_GRPH_ARGB16161616F :case SURFACE_PIXEL_FORMAT_GRPH_ABGR16161616F : out->SourcePixelFormat[location] = dml_444_64;
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c +5 -4
@@ -951,8 +951,8 @@ void dce110_edp_backlight_control(struct dc_context *ctx = link->ctx;struct bp_transmitter_control cntl = {0 };uint8_t pwrseq_instance =0 ; -unsigned int pre_T11_delay =OLED_PRE_T11_DELAY ; -unsigned int post_T7_delay =OLED_POST_T7_DELAY ; +unsigned int pre_T11_delay = (link->dpcd_sink_ext_caps.bits.oled ?OLED_PRE_T11_DELAY :0 ); +unsigned int post_T7_delay = (link->dpcd_sink_ext_caps.bits.oled ?OLED_POST_T7_DELAY :0 );if (dal_graphics_object_id_get_connector_id (link->link_enc->connector) !=CONNECTOR_ID_EDP ) {
@@ -1067,7 +1067,8 @@ void dce110_edp_backlight_control(if (!enable) {/*follow oem panel config's requirement*/ pre_T11_delay += link->panel_config.pps.extra_pre_t11_ms; -msleep (pre_T11_delay); +if (pre_T11_delay) +msleep (pre_T11_delay); } }
@@ -1216,7 +1217,7 @@ void dce110_blank_stream(struct pipe_ctx *pipe_ctx)struct dce_hwseq *hws = link->dc->hwseq;if (link->local_sink && link->local_sink->sink_signal ==SIGNAL_TYPE_EDP ) { -if (!link->skip_implict_edp_power_control) +if (!link->skip_implict_edp_power_control && hws) hws->funcs.edp_backlight_control (link, false); link->dc->hwss.set_abm_immediate_disable (pipe_ctx); }
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c +3 -0
@@ -368,6 +368,9 @@ enum mod_hdcp_status mod_hdcp_hdcp1_enable_encryption(struct mod_hdcp *hdcp)struct mod_hdcp_display *display =get_first_active_display (hdcp);enum mod_hdcp_status status =MOD_HDCP_STATUS_SUCCESS ; +if (!display) +return MOD_HDCP_STATUS_DISPLAY_NOT_FOUND ; +mutex_lock (&psp->hdcp_context.mutex); hdcp_cmd = (struct ta_hdcp_shared_memory *)psp->hdcp_context.context.mem_context.shared_buf;memset (hdcp_cmd,0 ,sizeof (struct ta_hdcp_shared_memory ));
drivers/gpu/drm/ast/ast_mode.c +3 -3
@@ -1319,9 +1319,9 @@ static void ast_mode_config_helper_atomic_commit_tail(struct drm_atomic_state *s/* * Concurrent operations could possibly trigger a call to -* drm_connector_helper_funcs.get_modes by trying to read the -* display modes. Protect access to I/O registers by acquiring -* the I/O-register lock. Released in atomic_flush(). +* drm_connector_helper_funcs.get_modes by reading the display +* modes. Protect access to registers by acquiring the modeset +* lock. */ mutex_lock (&ast->modeset_lock);drm_atomic_helper_commit_tail (state);
drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +26 -6
@@ -568,15 +568,18 @@ static int cdns_dsi_check_conf(struct cdns_dsi *dsi,struct phy_configure_opts_mipi_dphy *phy_cfg = &output->phy_opts.mipi_dphy;unsigned long dsi_hss_hsa_hse_hbp;unsigned int nlanes = output->dev->lanes; +int mode_clock = (mode_valid_check ? mode->clock : mode->crtc_clock);int ret; ret =cdns_dsi_mode2cfg (dsi, mode, dsi_cfg, mode_valid_check);if (ret)return ret; -phy_mipi_dphy_get_default_config (mode->crtc_clock *1000 , -mipi_dsi_pixel_format_to_bpp (output->dev->format), - nlanes, phy_cfg); + ret =phy_mipi_dphy_get_default_config (mode_clock *1000 , +mipi_dsi_pixel_format_to_bpp (output->dev->format), + nlanes, phy_cfg); +if (ret) +return ret; ret =cdns_dsi_adjust_phy_config (dsi, dsi_cfg, phy_cfg, mode, mode_valid_check);if (ret)
@@ -680,6 +683,11 @@ static void cdns_dsi_bridge_post_disable(struct drm_bridge *bridge)struct cdns_dsi_input *input =bridge_to_cdns_dsi_input (bridge);struct cdns_dsi *dsi =input_to_dsi (input); + dsi->phy_initialized = false; + dsi->link_initialized = false; +phy_power_off (dsi->dphy); +phy_exit (dsi->dphy); +pm_runtime_put (dsi->base.dev); }
@@ -761,7 +769,7 @@ static void cdns_dsi_bridge_enable(struct drm_bridge *bridge)struct phy_configure_opts_mipi_dphy *phy_cfg = &output->phy_opts.mipi_dphy;unsigned long tx_byte_period;struct cdns_dsi_cfg dsi_cfg; -u32 tmp, reg_wakeup, div; +u32 tmp, reg_wakeup, div, status;int nlanes;if (WARN_ON (pm_runtime_get_sync (dsi->base.dev) <0 ))
@@ -778,6 +786,19 @@ static void cdns_dsi_bridge_enable(struct drm_bridge *bridge)cdns_dsi_hs_init (dsi);cdns_dsi_init_link (dsi); +/* +* Now that the DSI Link and DSI Phy are initialized, +* wait for the CLK and Data Lanes to be ready. +*/ + tmp =CLK_LANE_RDY ; +for (int i =0 ; i < nlanes; i++) + tmp |=DATA_LANE_RDY (i); + +if (readl_poll_timeout (dsi->regs +MCTL_MAIN_STS , status, + (tmp == (status & tmp)),100 ,500000 )) +dev_err (dsi->base.dev, +"Timed Out: DSI-DPhy Clock and Data Lanes not ready.\n" ); +writel (HBP_LEN (dsi_cfg.hbp) |HSA_LEN (dsi_cfg.hsa), dsi->regs +VID_HSIZE1 ); writel(HFP_LEN(dsi_cfg.hfp) | HACT_LEN(dsi_cfg.hact),
@@ -952,7 +973,7 @@ static int cdns_dsi_attach(struct mipi_dsi_host *host, bridge =drm_panel_bridge_add_typed (panel,DRM_MODE_CONNECTOR_DSI ); }else { - bridge =of_drm_find_bridge (dev->dev.of_node); + bridge =of_drm_find_bridge (np);if (!bridge) bridge =ERR_PTR (-EINVAL ); }
@@ -1152,7 +1173,6 @@ static int __maybe_unused cdns_dsi_suspend(struct device *dev)clk_disable_unprepare (dsi->dsi_sys_clk);clk_disable_unprepare (dsi->dsi_p_clk);reset_control_assert (dsi->dsi_p_rst); - dsi->link_initialized = false;return 0 ; }
drivers/gpu/drm/bridge/ti-sn65dsi86.c +70 -39
155 lines not on this page · raw message
drivers/gpu/drm/drm_fbdev_dma.c +156 -63
179 lines not on this page · raw message
drivers/gpu/drm/etnaviv/etnaviv_sched.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/scheduler/sched_entity.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/display/xe_display.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c +30 -24
54 lines not on this page · raw message
drivers/hwmon/pmbus/max34440.c +44 -4
48 lines not on this page · raw message
drivers/hwtracing/coresight/coresight-core.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/hwtracing/coresight/coresight-priv.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/i2c/busses/i2c-robotfuzz-osif.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/iio/dac/ad3552r-common.c new file +248 -0
248 lines not on this page · raw message
drivers/iio/dac/ad3552r.c +73 -484
557 lines not on this page · raw message
drivers/iio/dac/ad3552r.h new file +223 -0
223 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc_hw.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_txrx.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +16 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_phy_config.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +4 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/wangxun/libwx/wx_lib.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/phy/realtek.c +44 -10
54 lines not on this page · raw message
drivers/pci/controller/dwc/pcie-designware.c +1 -4
Lines of this file are not shown. View the raw message.
drivers/scsi/megaraid/megaraid_sas_base.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_security.c +14 -30
44 lines not on this page · raw message
drivers/tty/serial/8250/8250_pci1xxxx.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/usb/typec/altmodes/displayport.c +4 -0
Lines of this file are not shown. View the raw message.
fs/btrfs/extent_map.c +102 -30
132 lines not on this page · raw message
fs/btrfs/inode.c +173 -124
297 lines not on this page · raw message
fs/jfs/jfs_dmap.c +13 -28
41 lines not on this page · raw message
fs/nfs/inode.c +47 -4
51 lines not on this page · raw message
fs/smb/client/connect.c +36 -22
58 lines not on this page · raw message
fs/smb/client/smbdirect.c +240 -273
513 lines not on this page · raw message
fs/smb/client/smbdirect.h +6 -58
64 lines not on this page · raw message
fs/smb/common/smbdirect/smbdirect.h new file +37 -0
Lines of this file are not shown. View the raw message.
fs/smb/common/smbdirect/smbdirect_pdu.h new file +55 -0
55 lines not on this page · raw message
fs/smb/common/smbdirect/smbdirect_socket.h new file +43 -0
43 lines not on this page · raw message
fs/smb/server/smb2pdu.c +44 -28
72 lines not on this page · raw message
io_uring/net.c +39 -7
46 lines not on this page · raw message
net/mac80211/link.c +88 -6
94 lines not on this page · raw message
tools/testing/selftests/bpf/progs/test_global_map_resize.c +16 -0
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.