Skip to content

[pull] master from torvalds:master #1971

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 163 commits into from
Jul 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
1ac9aa4
Input: iqs626a - replace snprintf() with scnprintf()
jlabundy Jan 5, 2025
05286c5
Input: fsia6b - suppress buffer truncation warning for phys
m42uko Jun 4, 2025
4ecc731
Input: atkbd - switch to use scnprintf() to suppress truncation warning
dtor Jun 4, 2025
1babc85
Input: alps - switch to use scnprintf() to suppress truncation warning
dtor Jun 4, 2025
ce098f2
Input: lifebook - switch to use scnprintf() to suppress truncation wa…
dtor Jun 4, 2025
805f5bb
Input: psmouse - switch to use scnprintf() to suppress truncation war…
dtor Jun 4, 2025
c8892c2
platform/x86: portwell-ec: Move watchdog device under correct platfor…
Ivanhu5866 Jun 16, 2025
109f4d2
platform/mellanox: mlxbf-tmfifo: fix vring_desc.len assignment
dthompso Jun 13, 2025
c44f79c
dt-bindings: HID: i2c-hid: elan: Introduce Elan eKTH8D18
wens Jun 17, 2025
155c1e5
Input: Fully open-code compatible for grepping
krzk Jun 13, 2025
f4b048a
Input: apple_z2 - drop default ARCH_APPLE in Kconfig
svenpeter42 Jun 12, 2025
7e2c421
usb: cdnsp: do not disable slot for disabled slot
Jun 19, 2025
630a1de
usb: dwc3: Abort suspend on soft disconnect failure
May 28, 2025
cee4392
Logitech C-270 even more broken
oneukum Jun 5, 2025
8f5b7e2
usb: hub: fix detection of high tier USB3 devices behind suspended hubs
matnyman Jun 11, 2025
3b18405
usb: acpi: fix device link removal
Jun 11, 2025
31a6afb
usb: chipidea: udc: disconnect/reconnect from host when do suspend/re…
Jun 14, 2025
f6c7bc4
Revert "usb: gadget: u_serial: Add null pointer check in gs_start_io"
Jun 17, 2025
c529c37
usb: gadget: u_serial: Fix race condition in TTY wakeup
Jun 17, 2025
3eff494
usb: xhci: Skip xhci_reset in xhci_resume if xhci is being removed
roychl666 May 22, 2025
7aed153
Revert "usb: xhci: Implement xhci_handshake_check_state() helper"
roychl666 May 22, 2025
6a68d28
selftests/coredump: Fix "socket_detect_userspace_client" test failure
covanam Jun 20, 2025
cbe4134
fs: export anon_inode_make_secure_inode() and fix secretmem LSM bypass
shivankgarg98 Jun 20, 2025
dbee298
fuse: fix fuse_fill_write_pages() upper bound calculation
joannekoong Jun 14, 2025
bec1519
usb: typec: tcpm: apply vbus before data bringup in tcpm_src_attach
Jun 18, 2025
2831a81
usb: cdnsp: Fix issue with CV Bad Descriptor test
pawellcdns Jun 20, 2025
af4db5a
usb: typec: altmodes/displayport: do not index invalid pin_assignments
Jun 18, 2025
099cf1f
usb: typec: displayport: Fix potential deadlock
Jun 24, 2025
d0f8ee8
platform/x86: dell-lis3lv02d: Add Latitude 5500
paulmenzel Jun 22, 2025
7dc6b2d
platform/x86: asus-nb-wmi: add DMI quirk for ASUS Zenbook Duo UX8406CA
rahulc07 Jun 24, 2025
b511bbf
platform/x86: thinkpad_acpi: handle HKEY 0x1402 event
mrhpearson Jun 20, 2025
173bbec
platform/mellanox: mlxbf-pmc: Fix duplicate event ID for CACHE_DATA1
aloktiwa Jun 19, 2025
c3ac7e3
platform/mellanox: Fix spelling and comment clarity in Mellanox drivers
aloktiwa Jun 22, 2025
d07143b
platform/mellanox: nvsw-sn2201: Fix bus number in adapter error message
aloktiwa Jun 22, 2025
a49e1e2
usb: hub: Fix flushing and scheduling of delayed work that tunes runt…
matnyman Jun 26, 2025
cf0b812
platform/x86: wmi: Fix WMI event enablement
Wer-Wolf Jun 19, 2025
50b6914
platform/x86: wmi: Update documentation of WCxx/WExx ACPI methods
Wer-Wolf Jun 19, 2025
62e062a
iommu/rockchip: prevent iommus dead loop when two masters share one I…
Jun 23, 2025
2d22b63
drm/mipi-dsi: Add dev_is_mipi_dsi function
mripard Jun 26, 2025
073667f
drm/panel: panel-simple: make panel_dpi_probe return a panel_desc
mripard Jun 26, 2025
921c41e
drm/panel: panel-simple: Make panel_simple_probe return its panel
mripard Jun 26, 2025
47c0826
drm/panel: panel-simple: Add function to look panel data up
mripard Jun 26, 2025
f6faebc
drm/panel: panel-simple: get rid of panel_dpi hack
mripard Jun 26, 2025
615cc42
drm/vesadrm: Avoid NULL-ptr deref in vesadrm_pmi_cmap_write()
Jun 17, 2025
96de8f8
bcachefs: mark invalid_btree_id autofix
bharadwaj-raju Jun 27, 2025
35ecea2
Input: xpad - adjust error handling for disconnect
superm1 Jun 27, 2025
77451cb
Input: xpad - return errors from xpad_try_sending_next_out_packet() up
superm1 Jun 27, 2025
22c69d7
Input: xpad - support Acer NGR 200 Controller
niltonperimneto Jun 27, 2025
80e0839
usb: dwc3: gadget: Fix TRB reclaim logic for short transfers and ZLPs
js731ca Jun 25, 2025
cbc889a
usb: xhci: quirk for data loss in ISOC transfers
RajuRangoju Jun 27, 2025
cd65ee8
xhci: Disable stream for xHC controller with XHCI_BROKEN_STREAMS
Jun 27, 2025
2b857d6
xhci: dbctty: disable ECHO flag by default
Jun 27, 2025
efe3e3a
xhci: dbc: Flush queued requests before stopping dbc
matnyman Jun 27, 2025
14da585
bcachefs: fix btree_trans_peek_prev_journal()
Jun 29, 2025
18665ea
drm/exynos: Don't use %pK through printk
t-8ch Jun 18, 2025
b846350
drm/exynos: exynos7_drm_decon: add vblank check in IRQ handling
Jun 26, 2025
5d91394
drm/exynos: fimd: Guard display clock control with runtime PM calls
mszyprow Jun 18, 2025
2ab3ba3
drm/bridge: samsung-dsim: Don't use %pK through printk
t-8ch Jun 18, 2025
ca46946
regulator: core: fix NULL dereference on unbind due to stale coupling…
alessandrocarminati Jun 26, 2025
eeca209
regulator: tps65219: Fix devm_kmalloc size allocation
shramamoorthy Jun 20, 2025
d85d038
spi: spi-qpic-snand: reallocate BAM transactions
juhosg Jun 18, 2025
ddaad4a
mtd: nand: qpic_common: prevent out of bounds access of BAM arrays
juhosg Jun 18, 2025
96893cd
spi: Raise limit on number of chip selects to 24
marckleinebudde Jun 29, 2025
fa60c09
spi: spi-fsl-dspi: Clear completion counter before initiating transfer
james-c-linaro Jun 27, 2025
63f4970
Input: iqs7222 - explicitly define number of external channels
jlabundy Jun 30, 2025
caa7c7a
drm/i915/selftests: Change mock_request() to return error pointers
Jun 25, 2025
7da6c15
drm/i915/dsi: Fix NULL pointer deref in vlv_dphy_param_init()
Jun 26, 2025
2e96d2d
nvme: Fix incorrect cdw15 value in passthru error logging
aloktiwa Jun 28, 2025
ba806c9
nvme: correctly account for namespace head reference counter
shroffni Jun 26, 2025
190f4c2
nvmet: fix memory leak of bio integrity
logost Jun 25, 2025
14005c9
nvme-pci: refresh visible attrs after being checked
ehristev Jun 13, 2025
6f49743
riscv: Require clang-17 or newer for kCFI
nathanchance Jun 12, 2025
2b29be9
riscv: cpu_ops_sbi: Use static array for boot_data
dramforever Jun 24, 2025
eb617dd
platform/x86: dell-wmi-sysman: Fix WMI data block retrieval in sysfs …
kuu-rt Jun 30, 2025
e1af6f0
platform/x86: Update swnode graph for amd isp4
Jun 18, 2025
11cba47
platform/x86: hp-bioscfg: Fix class device unregistration
kuu-rt Jun 26, 2025
5ff1fbb
platform/x86: think-lmi: Fix class device unregistration
kuu-rt Jun 26, 2025
314e5ad
platform/x86: dell-wmi-sysman: Fix class device unregistration
kuu-rt Jun 26, 2025
690be4b
platform/x86/intel/hid: Add Wildcat Lake support
spandruvada Jun 17, 2025
b1c26e0
Move FCH header to a location accessible by all archs
superm1 Jun 10, 2025
af14ed3
i2c: Re-enable piix4 driver on non-x86
superm1 Jun 10, 2025
644bec1
platform/mellanox: mlxreg-lc: Fix logic error in power state check
aloktiwa Jun 30, 2025
2b95a7d
dma-buf: fix timeout handling in dma_resv_wait_timeout v2
ChristianKoenigAMD Jan 28, 2025
97e000a
drm/ttm: fix error handling in ttm_buffer_object_transfer
ChristianKoenigAMD Jun 13, 2025
4ec24e9
spi: spi-qpic-snand: avoid memory corruption
broonie Jun 30, 2025
9bd9c80
usb: hub: Fix flushing of delayed work used for post resume purposes
matnyman Jun 27, 2025
f172ffd
regulator: sy8824x: Fix ID table driver_data
xhackerustc Jun 29, 2025
6729c13
regulator: mp886x: Fix ID table driver_data
xhackerustc Jun 29, 2025
eb028cd
drm/bridge: panel: move prepare_prev_first handling to drm_panel_brid…
lumag Feb 20, 2025
e8537ca
drm/bridge: aux-hpd-bridge: fix assignment of the of_node
lumag Jun 8, 2025
a106b6a
Input: alps - use scnprintf() to suppress truncation warning
andy-shev Jun 30, 2025
905967e
drm/amdgpu/sdma5.x: suspend KFD queues in ring reset
alexdeucher Jun 16, 2025
6246136
amdkfd: MTYPE_UC for ext-coherent system memory
dayatsin-amd Jun 19, 2025
e54c5de
drm/amdgpu: Include sdma_4_4_4.bin
kentrussell Jun 24, 2025
cf23423
drm/amdkfd: Don't call mmput from MMU notifier callback
PhilipYangA Jun 20, 2025
f3e58d8
drm/amdgpu: Fix memory leak in amdgpu_ctx_mgr_entity_fini
Jun 24, 2025
34659c1
drm/amdkfd: add hqd_sdma_get_doorbell callbacks for gfx7/8
alexdeucher Jun 25, 2025
84f2902
drm/amd/display: Added case for when RR equals panel's max RR using f…
Jun 19, 2025
39d8145
drm/amd/display: Don't allow OLED to go down to fully off
superm1 Jun 19, 2025
fbf913c
bcachefs: Fix incorrect transaction restart handling
alanskind Jun 30, 2025
7dfede7
drm/vmwgfx: Fix guests running with TDX/SEV
Jun 18, 2025
a5aa7bc
drm/i915/gt: Fix timeline left held on VMA alloc error
jkrzyszt-intel Jun 11, 2025
8cadce9
drm/i915/gsc: mei interrupt top half should be in irq disabled context
junxiaoc Apr 25, 2025
d681107
nvme-multipath: fix suspicious RCU usage warning
Jun 30, 2025
04a8ff1
spi: cadence-quadspi: fix cleanup of rx_chan on failure paths
Jun 30, 2025
01ed88a
ublk: don't queue request if the associated uring_cmd is canceled
Jul 1, 2025
0d519bb
brd: fix sleeping function called from invalid context in brd_insert_…
YuKuai-huawei Jun 30, 2025
2d5cff2
drm/xe: Fix out-of-bounds field write in MI_STORE_DATA_IMM
Yogayaojia Jun 12, 2025
8c44dac
eventpoll: Fix priority inversion problem
covanam May 27, 2025
da8cf4b
netfs: Fix hang due to missing case in final DIO read result collection
dhowells Jul 1, 2025
9df7b5e
netfs: Fix double put of request
dhowells Jul 1, 2025
1a6d45f
netfs: Provide helpers to perform NETFS_RREQ_IN_PROGRESS flag wangling
dhowells Jul 1, 2025
09623e3
netfs: Fix looping in wait functions
dhowells Jul 1, 2025
97d8e8e
netfs: Fix ref leak on inserted extra subreq in write retry
dhowells Jul 1, 2025
e67e75e
smb: client: set missing retry flag in smb2_writev_callback()
pcacjr Jul 1, 2025
0e60bae
smb: client: set missing retry flag in cifs_readv_callback()
pcacjr Jul 1, 2025
74ee76b
smb: client: set missing retry flag in cifs_writev_callback()
pcacjr Jul 1, 2025
2e06589
netfs: Fix i_size updating
dhowells Jul 1, 2025
5e1e6ec
netfs: Merge i_size update functions
dhowells Jul 1, 2025
4e32541
netfs: Renumber the NETFS_RREQ_* flags to make traces easier to read
dhowells Jul 1, 2025
90b3ccf
netfs: Update tracepoints in a number of ways
dhowells Jul 1, 2025
d5cb81b
Merge patch series "netfs, cifs: Fixes to retry-related code"
brauner Jul 1, 2025
afcad92
drm/xe: Make WA BB part of LRC BO
mbrost05 Jun 12, 2025
d839076
drm/xe/guc_pc: Add _locked variant for min/max freq
lucasdemarchi Jun 18, 2025
4cec909
drm/xe/xe_guc_pc: Lock once to update stashed frequencies
lucasdemarchi Jun 18, 2025
a1eec6c
drm/xe: Split xe_device_td_flush()
lucasdemarchi Jun 18, 2025
a5c7dcd
drm/xe/bmg: Update Wa_14022085890
vsbelgaum Jun 12, 2025
84c0b4a
drm/xe/bmg: Update Wa_22019338487
vsbelgaum Jun 18, 2025
de6acfd
drm/xe: Fix kconfig prompt
lucasdemarchi Jun 11, 2025
aa18d57
drm/xe: Allow dropping kunit dependency as built-in
Jun 27, 2025
8af39ec
drm/sched: Increment job count before swapping tail spsc queue
mbrost05 Jun 13, 2025
c6e8d51
bcachefs: Work around deadlock to btree node rewrites in journal replay
Jul 1, 2025
94426e4
bcachefs: opts.casefold_disabled
Jun 26, 2025
bf906c9
Merge tag 'amd-drm-fixes-6.16-2025-07-01' of https://gitlab.freedeskt…
airlied Jul 2, 2025
5307dce
drm/gem: Acquire references on GEM handles for framebuffers
Jun 30, 2025
8dab34c
platform/x86: think-lmi: Create ksets consecutively
kuu-rt Jun 30, 2025
9110056
platform/x86: think-lmi: Fix kobject cleanup
kuu-rt Jun 30, 2025
4f30f94
platform/x86: think-lmi: Fix sysfs group cleanup
kuu-rt Jun 30, 2025
1e7ab6f
anon_inode: rework assertions
brauner Jul 2, 2025
5903a74
Merge tag 'riscv-fixes-6.16-rc4' of ssh://gitolite.kernel.org/pub/scm…
palmer-dabbelt Jul 2, 2025
226862f
drm/v3d: Disable interrupts before resetting the GPU
mairacanal Jun 28, 2025
c9764fd
regulator: gpio: Fix the out-of-bounds access to drvdata::gpiods
Mani-Sadhasivam Jul 3, 2025
d008fc6
drm/xe: Extend WA 14018094691 to BMG
dceraolo Jun 13, 2025
5459e16
drm/xe: Do not wedge device on killed exec queues
mbrost05 Jun 24, 2025
75ef7b8
Merge tag 'nvme-6.16-2025-07-03' of git://git.infradead.org/nvme into…
axboe Jul 3, 2025
b91e11e
Merge tag 'drm-misc-fixes-2025-07-03' of https://gitlab.freedesktop.o…
airlied Jul 3, 2025
afd30ac
Merge tag 'drm-intel-fixes-2025-07-03' of https://gitlab.freedesktop.…
airlied Jul 3, 2025
ac2ad73
Merge tag 'exynos-drm-fixes-for-v6.16-rc4' of git://git.kernel.org/pu…
airlied Jul 3, 2025
8f954c4
Merge tag 'samsung-dsim-fixes-for-v6.16-rc4' of git://git.kernel.org/…
airlied Jul 3, 2025
da8d8e9
Merge tag 'drm-xe-fixes-2025-07-03' of https://gitlab.freedesktop.org…
airlied Jul 4, 2025
4cf6584
Input: cs40l50-vibra - fix potential NULL dereference in cs40l50_uplo…
Jul 4, 2025
25b1b75
iommu/vt-d: Assign devtlb cache tag on ATS enablement
LuBaolu Jun 28, 2025
2eb7f03
Merge tag 'vfs-6.16-rc5.fixes' of git://git.kernel.org/pub/scm/linux/…
torvalds Jul 4, 2025
482deed
Merge tag 'bcachefs-2025-07-03' of git://evilpiepirate.org/bcachefs
torvalds Jul 4, 2025
1880df2
Merge tag 'block-6.16-20250704' of git://git.kernel.dk/linux
torvalds Jul 4, 2025
923d401
Merge tag 'iommu-fixes-v6.16-rc4' of git://git.kernel.org/pub/scm/lin…
torvalds Jul 4, 2025
42bb9b6
Merge tag 'drm-fixes-2025-07-04' of https://gitlab.freedesktop.org/dr…
torvalds Jul 4, 2025
d46971e
Merge tag 'input-for-v6.16-rc4' of git://git.kernel.org/pub/scm/linux…
torvalds Jul 4, 2025
3c2bd25
Merge tag 'usb-6.16-rc5' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Jul 4, 2025
df46426
Merge tag 'platform-drivers-x86-v6.16-3' of git://git.kernel.org/pub/…
torvalds Jul 4, 2025
a1d8128
Merge tag 'spi-fix-v6.16-rc4' of git://git.kernel.org/pub/scm/linux/k…
torvalds Jul 4, 2025
4b02ed4
Merge tag 'regulator-fix-v6.16-rc4' of git://git.kernel.org/pub/scm/l…
torvalds Jul 4, 2025
c435a4f
Merge tag 'riscv-for-linus-6.16-rc5' of git://git.kernel.org/pub/scm/…
torvalds Jul 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions Documentation/devicetree/bindings/input/elan,ekth6915.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
$id: http://devicetree.org/schemas/input/elan,ekth6915.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Elan eKTH6915 touchscreen controller
title: Elan I2C-HID touchscreen controllers

maintainers:
- Douglas Anderson <[email protected]>

description:
Supports the Elan eKTH6915 touchscreen controller.
This touchscreen controller uses the i2c-hid protocol with a reset GPIO.
Supports the Elan eKTH6915 and other I2C-HID touchscreen controllers.
These touchscreen controller use the i2c-hid protocol with a reset GPIO.

allOf:
- $ref: /schemas/input/touchscreen/touchscreen.yaml#
Expand All @@ -23,12 +23,14 @@ properties:
- enum:
- elan,ekth5015m
- const: elan,ekth6915
- items:
- const: elan,ekth8d18
- const: elan,ekth6a12nay
- enum:
- elan,ekth6915
- elan,ekth6a12nay

reg:
const: 0x10
reg: true

interrupts:
maxItems: 1
Expand Down
14 changes: 9 additions & 5 deletions Documentation/wmi/acpi-interface.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Offset Size (in bytes) Content

The WMI object flags control whether the method or notification ID is used:

- 0x1: Data block usage is expensive and must be explicitly enabled/disabled.
- 0x1: Data block is expensive to collect.
- 0x2: Data block contains WMI methods.
- 0x4: Data block contains ASCIZ string.
- 0x8: Data block describes a WMI event, use notification ID instead
Expand Down Expand Up @@ -83,14 +83,18 @@ event as hexadecimal value. Their first parameter is an integer with a value
of 0 if the WMI event should be disabled, other values will enable
the WMI event.

Those ACPI methods are always called even for WMI events not registered as
being expensive to collect to match the behavior of the Windows driver.

WCxx ACPI methods
-----------------
Similar to the ``WExx`` ACPI methods, except that it controls data collection
instead of events and thus the last two characters of the ACPI method name are
the method ID of the data block to enable/disable.
Similar to the ``WExx`` ACPI methods, except that instead of WMI events it controls
data collection of data blocks registered as being expensive to collect. Thus the
last two characters of the ACPI method name are the method ID of the data block
to enable/disable.

Those ACPI methods are also called before setting data blocks to match the
behaviour of the Windows driver.
behavior of the Windows driver.

_WED ACPI method
----------------
Expand Down
3 changes: 2 additions & 1 deletion arch/riscv/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@ config RISCV
select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
select ARCH_STACKWALK
select ARCH_SUPPORTS_ATOMIC_RMW
select ARCH_SUPPORTS_CFI_CLANG
# clang >= 17: https://github.com/llvm/llvm-project/commit/62fa708ceb027713b386c7e0efda994f8bdc27e2
select ARCH_SUPPORTS_CFI_CLANG if CLANG_VERSION >= 170000
select ARCH_SUPPORTS_DEBUG_PAGEALLOC if MMU
select ARCH_SUPPORTS_HUGE_PFNMAP if TRANSPARENT_HUGEPAGE
select ARCH_SUPPORTS_HUGETLBFS if MMU
Expand Down
6 changes: 3 additions & 3 deletions arch/riscv/kernel/cpu_ops_sbi.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ const struct cpu_operations cpu_ops_sbi;

/*
* Ordered booting via HSM brings one cpu at a time. However, cpu hotplug can
* be invoked from multiple threads in parallel. Define a per cpu data
* be invoked from multiple threads in parallel. Define an array of boot data
* to handle that.
*/
static DEFINE_PER_CPU(struct sbi_hart_boot_data, boot_data);
static struct sbi_hart_boot_data boot_data[NR_CPUS];

static int sbi_hsm_hart_start(unsigned long hartid, unsigned long saddr,
unsigned long priv)
Expand Down Expand Up @@ -67,7 +67,7 @@ static int sbi_cpu_start(unsigned int cpuid, struct task_struct *tidle)
unsigned long boot_addr = __pa_symbol(secondary_start_sbi);
unsigned long hartid = cpuid_to_hartid_map(cpuid);
unsigned long hsm_data;
struct sbi_hart_boot_data *bdata = &per_cpu(boot_data, cpuid);
struct sbi_hart_boot_data *bdata = &boot_data[cpuid];

/* Make sure tidle is updated */
smp_mb();
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/cpu/amd.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#include <linux/sched/clock.h>
#include <linux/random.h>
#include <linux/topology.h>
#include <asm/amd/fch.h>
#include <linux/platform_data/x86/amd-fch.h>
#include <asm/processor.h>
#include <asm/apic.h>
#include <asm/cacheinfo.h>
Expand Down
6 changes: 4 additions & 2 deletions drivers/block/brd.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,15 @@ static struct page *brd_insert_page(struct brd_device *brd, sector_t sector,

rcu_read_unlock();
page = alloc_page(gfp | __GFP_ZERO | __GFP_HIGHMEM);
rcu_read_lock();
if (!page)
if (!page) {
rcu_read_lock();
return ERR_PTR(-ENOMEM);
}

xa_lock(&brd->brd_pages);
ret = __xa_cmpxchg(&brd->brd_pages, sector >> PAGE_SECTORS_SHIFT, NULL,
page, gfp);
rcu_read_lock();
if (ret) {
xa_unlock(&brd->brd_pages);
__free_page(page);
Expand Down
11 changes: 6 additions & 5 deletions drivers/block/ublk_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -1442,15 +1442,16 @@ static void ublk_queue_rqs(struct rq_list *rqlist)
struct ublk_queue *this_q = req->mq_hctx->driver_data;
struct ublk_io *this_io = &this_q->ios[req->tag];

if (ublk_prep_req(this_q, req, true) != BLK_STS_OK) {
rq_list_add_tail(&requeue_list, req);
continue;
}

if (io && !ublk_belong_to_same_batch(io, this_io) &&
!rq_list_empty(&submit_list))
ublk_queue_cmd_list(io, &submit_list);
io = this_io;

if (ublk_prep_req(this_q, req, true) == BLK_STS_OK)
rq_list_add_tail(&submit_list, req);
else
rq_list_add_tail(&requeue_list, req);
rq_list_add_tail(&submit_list, req);
}

if (!rq_list_empty(&submit_list))
Expand Down
12 changes: 7 additions & 5 deletions drivers/dma-buf/dma-resv.c
Original file line number Diff line number Diff line change
Expand Up @@ -685,11 +685,13 @@ long dma_resv_wait_timeout(struct dma_resv *obj, enum dma_resv_usage usage,
dma_resv_iter_begin(&cursor, obj, usage);
dma_resv_for_each_fence_unlocked(&cursor, fence) {

ret = dma_fence_wait_timeout(fence, intr, ret);
if (ret <= 0) {
dma_resv_iter_end(&cursor);
return ret;
}
ret = dma_fence_wait_timeout(fence, intr, timeout);
if (ret <= 0)
break;

/* Even for zero timeout the return value is 1 */
if (timeout)
timeout = ret;
}
dma_resv_iter_end(&cursor);

Expand Down
8 changes: 8 additions & 0 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
Original file line number Diff line number Diff line change
Expand Up @@ -561,6 +561,13 @@ static uint32_t read_vmid_from_vmfault_reg(struct amdgpu_device *adev)
return REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS, VMID);
}

static uint32_t kgd_hqd_sdma_get_doorbell(struct amdgpu_device *adev,
int engine, int queue)

{
return 0;
}

const struct kfd2kgd_calls gfx_v7_kfd2kgd = {
.program_sh_mem_settings = kgd_program_sh_mem_settings,
.set_pasid_vmid_mapping = kgd_set_pasid_vmid_mapping,
Expand All @@ -578,4 +585,5 @@ const struct kfd2kgd_calls gfx_v7_kfd2kgd = {
.set_scratch_backing_va = set_scratch_backing_va,
.set_vm_context_page_table_base = set_vm_context_page_table_base,
.read_vmid_from_vmfault_reg = read_vmid_from_vmfault_reg,
.hqd_sdma_get_doorbell = kgd_hqd_sdma_get_doorbell,
};
8 changes: 8 additions & 0 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
Original file line number Diff line number Diff line change
Expand Up @@ -582,6 +582,13 @@ static void set_vm_context_page_table_base(struct amdgpu_device *adev,
lower_32_bits(page_table_base));
}

static uint32_t kgd_hqd_sdma_get_doorbell(struct amdgpu_device *adev,
int engine, int queue)

{
return 0;
}

const struct kfd2kgd_calls gfx_v8_kfd2kgd = {
.program_sh_mem_settings = kgd_program_sh_mem_settings,
.set_pasid_vmid_mapping = kgd_set_pasid_vmid_mapping,
Expand All @@ -599,4 +606,5 @@ const struct kfd2kgd_calls gfx_v8_kfd2kgd = {
get_atc_vmid_pasid_mapping_info,
.set_scratch_backing_va = set_scratch_backing_va,
.set_vm_context_page_table_base = set_vm_context_page_table_base,
.hqd_sdma_get_doorbell = kgd_hqd_sdma_get_doorbell,
};
1 change: 1 addition & 0 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
Original file line number Diff line number Diff line change
Expand Up @@ -944,6 +944,7 @@ static void amdgpu_ctx_mgr_entity_fini(struct amdgpu_ctx_mgr *mgr)
drm_sched_entity_fini(entity);
}
}
kref_put(&ctx->refcount, amdgpu_ctx_fini);
}
}

Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
#include "amdgpu_ras.h"

MODULE_FIRMWARE("amdgpu/sdma_4_4_2.bin");
MODULE_FIRMWARE("amdgpu/sdma_4_4_4.bin");
MODULE_FIRMWARE("amdgpu/sdma_4_4_5.bin");

static const struct amdgpu_hwip_reg_entry sdma_reg_list_4_4_2[] = {
Expand Down
7 changes: 6 additions & 1 deletion drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
Original file line number Diff line number Diff line change
Expand Up @@ -1543,8 +1543,13 @@ static int sdma_v5_0_reset_queue(struct amdgpu_ring *ring, unsigned int vmid)
{
struct amdgpu_device *adev = ring->adev;
u32 inst_id = ring->me;
int r;

amdgpu_amdkfd_suspend(adev, true);
r = amdgpu_sdma_reset_engine(adev, inst_id);
amdgpu_amdkfd_resume(adev, true);

return amdgpu_sdma_reset_engine(adev, inst_id);
return r;
}

static int sdma_v5_0_stop_queue(struct amdgpu_ring *ring)
Expand Down
7 changes: 6 additions & 1 deletion drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
Original file line number Diff line number Diff line change
Expand Up @@ -1456,8 +1456,13 @@ static int sdma_v5_2_reset_queue(struct amdgpu_ring *ring, unsigned int vmid)
{
struct amdgpu_device *adev = ring->adev;
u32 inst_id = ring->me;
int r;

amdgpu_amdkfd_suspend(adev, true);
r = amdgpu_sdma_reset_engine(adev, inst_id);
amdgpu_amdkfd_resume(adev, true);

return amdgpu_sdma_reset_engine(adev, inst_id);
return r;
}

static int sdma_v5_2_stop_queue(struct amdgpu_ring *ring)
Expand Down
45 changes: 21 additions & 24 deletions drivers/gpu/drm/amd/amdkfd/kfd_svm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1171,13 +1171,12 @@ svm_range_split_head(struct svm_range *prange, uint64_t new_start,
}

static void
svm_range_add_child(struct svm_range *prange, struct mm_struct *mm,
struct svm_range *pchild, enum svm_work_list_ops op)
svm_range_add_child(struct svm_range *prange, struct svm_range *pchild, enum svm_work_list_ops op)
{
pr_debug("add child 0x%p [0x%lx 0x%lx] to prange 0x%p child list %d\n",
pchild, pchild->start, pchild->last, prange, op);

pchild->work_item.mm = mm;
pchild->work_item.mm = NULL;
pchild->work_item.op = op;
list_add_tail(&pchild->child_list, &prange->child_list);
}
Expand Down Expand Up @@ -1278,7 +1277,7 @@ svm_range_get_pte_flags(struct kfd_node *node,
mapping_flags |= ext_coherent ? AMDGPU_VM_MTYPE_UC : AMDGPU_VM_MTYPE_NC;
/* system memory accessed by the dGPU */
} else {
if (gc_ip_version < IP_VERSION(9, 5, 0))
if (gc_ip_version < IP_VERSION(9, 5, 0) || ext_coherent)
mapping_flags |= AMDGPU_VM_MTYPE_UC;
else
mapping_flags |= AMDGPU_VM_MTYPE_NC;
Expand Down Expand Up @@ -2394,15 +2393,17 @@ svm_range_add_list_work(struct svm_range_list *svms, struct svm_range *prange,
prange->work_item.op != SVM_OP_UNMAP_RANGE)
prange->work_item.op = op;
} else {
prange->work_item.op = op;

/* Pairs with mmput in deferred_list_work */
mmget(mm);
prange->work_item.mm = mm;
list_add_tail(&prange->deferred_list,
&prange->svms->deferred_range_list);
pr_debug("add prange 0x%p [0x%lx 0x%lx] to work list op %d\n",
prange, prange->start, prange->last, op);
/* Pairs with mmput in deferred_list_work.
* If process is exiting and mm is gone, don't update mmu notifier.
*/
if (mmget_not_zero(mm)) {
prange->work_item.mm = mm;
prange->work_item.op = op;
list_add_tail(&prange->deferred_list,
&prange->svms->deferred_range_list);
pr_debug("add prange 0x%p [0x%lx 0x%lx] to work list op %d\n",
prange, prange->start, prange->last, op);
}
}
spin_unlock(&svms->deferred_list_lock);
}
Expand All @@ -2416,8 +2417,7 @@ void schedule_deferred_list_work(struct svm_range_list *svms)
}

static void
svm_range_unmap_split(struct mm_struct *mm, struct svm_range *parent,
struct svm_range *prange, unsigned long start,
svm_range_unmap_split(struct svm_range *parent, struct svm_range *prange, unsigned long start,
unsigned long last)
{
struct svm_range *head;
Expand All @@ -2438,12 +2438,12 @@ svm_range_unmap_split(struct mm_struct *mm, struct svm_range *parent,
svm_range_split(tail, last + 1, tail->last, &head);

if (head != prange && tail != prange) {
svm_range_add_child(parent, mm, head, SVM_OP_UNMAP_RANGE);
svm_range_add_child(parent, mm, tail, SVM_OP_ADD_RANGE);
svm_range_add_child(parent, head, SVM_OP_UNMAP_RANGE);
svm_range_add_child(parent, tail, SVM_OP_ADD_RANGE);
} else if (tail != prange) {
svm_range_add_child(parent, mm, tail, SVM_OP_UNMAP_RANGE);
svm_range_add_child(parent, tail, SVM_OP_UNMAP_RANGE);
} else if (head != prange) {
svm_range_add_child(parent, mm, head, SVM_OP_UNMAP_RANGE);
svm_range_add_child(parent, head, SVM_OP_UNMAP_RANGE);
} else if (parent != prange) {
prange->work_item.op = SVM_OP_UNMAP_RANGE;
}
Expand Down Expand Up @@ -2520,14 +2520,14 @@ svm_range_unmap_from_cpu(struct mm_struct *mm, struct svm_range *prange,
l = min(last, pchild->last);
if (l >= s)
svm_range_unmap_from_gpus(pchild, s, l, trigger);
svm_range_unmap_split(mm, prange, pchild, start, last);
svm_range_unmap_split(prange, pchild, start, last);
mutex_unlock(&pchild->lock);
}
s = max(start, prange->start);
l = min(last, prange->last);
if (l >= s)
svm_range_unmap_from_gpus(prange, s, l, trigger);
svm_range_unmap_split(mm, prange, prange, start, last);
svm_range_unmap_split(prange, prange, start, last);

if (unmap_parent)
svm_range_add_list_work(svms, prange, mm, SVM_OP_UNMAP_RANGE);
Expand Down Expand Up @@ -2570,8 +2570,6 @@ svm_range_cpu_invalidate_pagetables(struct mmu_interval_notifier *mni,

if (range->event == MMU_NOTIFY_RELEASE)
return true;
if (!mmget_not_zero(mni->mm))
return true;

start = mni->interval_tree.start;
last = mni->interval_tree.last;
Expand All @@ -2598,7 +2596,6 @@ svm_range_cpu_invalidate_pagetables(struct mmu_interval_notifier *mni,
}

svm_range_unlock(prange);
mmput(mni->mm);

return true;
}
Expand Down
12 changes: 7 additions & 5 deletions drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
Original file line number Diff line number Diff line change
Expand Up @@ -3610,13 +3610,15 @@ static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)

luminance_range = &conn_base->display_info.luminance_range;

if (luminance_range->max_luminance) {
caps->aux_min_input_signal = luminance_range->min_luminance;
if (luminance_range->max_luminance)
caps->aux_max_input_signal = luminance_range->max_luminance;
} else {
caps->aux_min_input_signal = 0;
else
caps->aux_max_input_signal = 512;
}

if (luminance_range->min_luminance)
caps->aux_min_input_signal = luminance_range->min_luminance;
else
caps->aux_min_input_signal = 1;

min_input_signal_override = drm_get_panel_min_brightness_quirk(aconnector->drm_edid);
if (min_input_signal_override >= 0)
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/amd/display/dc/dc_hw_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -974,6 +974,7 @@ struct dc_crtc_timing {
uint32_t pix_clk_100hz;

uint32_t min_refresh_in_uhz;
uint32_t max_refresh_in_uhz;

uint32_t vic;
uint32_t hdmi_vic;
Expand Down
Loading