summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-05-04drm/bridge: lontium-lt8912b: Do not generate HFPMax Krummenacher
The datasheet of lontium-lt8912b doesn't require blanking during the HFP period. Thus use LP during HFP. Tested with a samsung-dsim (i.MX8 MM) and a tc358768 DPI to DSI bridge as the DSI host. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Link: https://patch.msgid.link/20250728150059.2642055-1-max.oss.09@gmail.com Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2026-05-04drm/bridge: ti-sn65dsi83: add test pattern generation supportLuca Ceresoli
Generation of a test pattern output is a useful tool for panel bringup and debugging, and very simple to support with this chip. The value of REG_VID_CHA_ACTIVE_LINE_LENGTH_LOW needs to be divided by two for the test pattern to work in dual LVDS mode. While not clearly stated in the datasheet, this is needed according to the DSI Tuner [0] output. And some dual-LVDS panels refuse to show any picture without this division by two. [0] https://www.ti.com/tool/DSI-TUNER Reviewed-by: Louis Chauvet <louis.chauvet@boootlin.com> Link: https://patch.msgid.link/20260416-ti-sn65dsi83-dual-lvds-fixes-and-test-pattern-v3-1-143886aebc6b@bootlin.com Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2026-05-04i2c: Compare the return value of gpiod_get_direction against ↵Nikola Z. Ivanov
GPIO_LINE_DIRECTION_OUT The GPIO_LINE_DIRECTION_* definitions have just recently been exposed to gpio consumers.h by breaking them out in a separate defs.h file. Use this to validate the gpio direction instead of the hard-coded literal. Signed-off-by: Nikola Z. Ivanov <zlatistiv@gmail.com> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
2026-05-04media: dt-bindings: media: renesas,vsp1: Document RZ/G3ETommaso Merciai
The VSPD block on the RZ/G3E SoC is identical to the one found on the RZ/G2L SoC. No driver changes are required, as `renesas,r9a07g044-vsp2` will be used as a fallback compatible string on the RZ/G3E SoC. Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Link: https://patch.msgid.link/c1e2eb36af01e0cddd8050ba70847c3a0821c91e.1775636898.git.tommaso.merciai.xr@bp.renesas.com Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: dt-bindings: media: renesas,fcp: Document RZ/G3E SoCTommaso Merciai
The FCPVD block on the RZ/G3E SoC is identical to the one found on the RZ/G2L SoC. No driver changes are required, as `renesas,fcpv` will be used as a fallback compatible string on the RZ/G3E SoC. Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Link: https://patch.msgid.link/5aaf561a66c24639477a99d3861ca969a81673f0.1775636898.git.tommaso.merciai.xr@bp.renesas.com Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: dt-bindings: media: renesas,vsp1: Document RZ/G3L VSPDBiju Das
The VSPD block on the RZ/G3L SoC is identical to the one found on the RZ/G2L SoC. Document RZ/G3L VSPD. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Link: https://patch.msgid.link/20260330105637.130189-1-biju.das.jz@bp.renesas.com Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: dt-bindings: media: renesas,fcp: Document RZ/G3L FCPVD IPBiju Das
The FCPVD block on the RZ/G3L SoC is identical to the one found on the RZ/G2L SoC. Document RZ/G3L FCPVD IP. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Link: https://patch.msgid.link/20260330110012.131273-1-biju.das.jz@bp.renesas.com Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04drm/ipv3: add CONFIG_OF dependency for DRM_OF_DISPLAY_MODE_BRIDGEArnd Bergmann
Without this, not all dependencies are met here. Depends on [n]: HAS_IOMEM [=y] && DRM [=y] && DRM_BRIDGE [=y] && OF [=n] Selected by [y]: - DRM_IMX_PARALLEL_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_IMX [=y] - DRM_IMX_LDB [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_IMX [=y] && COMMON_CLK [=y] Fixes: ba2db93cf3d5 ("drm/bridge: Move legacy bridge driver out of imx directory for multi-platform use") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Reviewed-by: Damon Ding <damon.ding@rock-chips.com> Link: https://patch.msgid.link/20260429140024.192432-1-arnd@kernel.org Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2026-05-04soc: renesas: Add R-Car X5H PRR supportWolfram Sang
On R-Car X5H, PRR is inside the MFIS memory block, so we need to access it similar to e.g. RZ/G2L. Suggested-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://patch.msgid.link/20260402112709.13002-4-wsa+renesas@sang-engineering.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2026-05-04soc: renesas: Add Renesas R-Car MFIS driverWolfram Sang
Renesas R-Car MFIS offers multiple features but most importantly mailboxes and hwspinlocks. Because they share a common register space and a common register unprotection mechanism, a single driver was chosen to handle all dependencies. (MFD and auxiliary bus have been tried as well, but they failed because of circular dependencies.) In this first step, the driver implements common register access and a mailbox controller. hwspinlock support will be added incrementally, once the subsystem allows out-of-directory drivers. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Acked-by: Jassi Brar <jassisinghbrar@gmail.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://patch.msgid.link/20260402112709.13002-3-wsa+renesas@sang-engineering.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2026-05-04parisc: Fix IRQ leak in LASI driverHongling Zeng
When request_irq() succeeds but gsc_common_setup() fails later, the IRQ is never released. Fix this by adding proper error handling with goto labels to ensure resources are released in LIFO order. Detected by Smatch: drivers/parisc/lasi.c:216 lasi_init_chip() warn: 'lasi->gsc_irq.irq' from request_irq() not released on lines: 207. Reported-by: kernel test robot <lkp@intel.com> Reported-by: Dan Carpenter <error27@gmail.com> Closes: https://lore.kernel.org/r/202604180957.4QdAIxP6-lkp@intel.com/ Signed-off-by: Hongling Zeng <zenghongling@kylinos.cn> Cc: stable@vger.kernel.org Signed-off-by: Helge Deller <deller@gmx.de>
2026-05-04Merge tag 'renesas-r8a78000-dt-binding-defs-tag1' into renesas-drivers-for-v7.2Geert Uytterhoeven
Renesas R-Car X5H MFIS DT Binding Definitions DT bindings and binding definitions for the Renesas R-Car X5H (R8A78000) Multifunctional Interface (MFIS), shared by driver and DT source files.
2026-05-04dt-bindings: soc: renesas: Document MFIS IP coreWolfram Sang
Document the Renesas Multifunctional Interface (MFIS) as found on the Renesas R-Car X5H (r8a78000) SoC. MFIS includes features like Mailbox/HW Spinlock/Product Register/Error Injection/Error Detection and the likes. Family-compatible values are not introduced here because MFIS is usually very different per SoC. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://patch.msgid.link/20260402112709.13002-2-wsa+renesas@sang-engineering.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2026-05-04staging: rtl8723bs: os_dep: avoid NULL pointer dereference in rtw_cbuf_allocShyam Sunder Reddy Padira
The return value of kzalloc_flex() is used without ensuring that the allocation succeeded, and the pointer is dereferenced unconditionally. Guard the access to the allocated structure to avoid a potential NULL pointer dereference if the allocation fails. Fixes: 980cd426a257 ("staging: rtl8723bs: replace rtw_zmalloc() with kzalloc()") Cc: stable <stable@kernel.org> Signed-off-by: Shyam Sunder Reddy Padira <shyamsunderreddypadira@gmail.com> Reviewed-by: Dan Carpenter <error27@gmail.com> Link: https://patch.msgid.link/20260414071308.4781-2-shyamsunderreddypadira@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-05-04i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctlMingyu Wang
While fuzzing with Syzkaller, a persistent `schedule_timeout: wrong timeout value` warning was observed, accompanied by SMBus controller state machine corruption. The I2C_TIMEOUT ioctl accepts a user-provided timeout in multiples of 10 ms. The user argument is checked against INT_MAX, but it is subsequently multiplied by 10 before being passed to msecs_to_jiffies(). A malicious user can pass a large value (e.g., 429496729) that passes the `arg > INT_MAX` check but overflows when multiplied by 10. This results in a truncated 32-bit unsigned value that bypasses the internal `(int)m < 0` check in `msecs_to_jiffies()`. The truncated value is then assigned to `client->adapter->timeout` (a signed 32-bit int), which is reinterpreted as a negative number. When passed to wait_for_completion_timeout(), this negative value undergoes sign extension to a 64-bit unsigned long, triggering the `schedule_timeout` warning and causing premature returns. This leaves the SMBus state machine in an unrecoverable state, constituting a local Denial of Service (DoS). Fix this by bounding the user argument to `INT_MAX / 10`. Signed-off-by: Mingyu Wang <25181214217@stu.xidian.edu.cn> [wsa: move the comment as well] Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
2026-05-04staging: vme_user: fix root device leak on init failureJohan Hovold
Make sure to deregister and free the root device in case module initialisation fails. Fixes: 658bcdae9c67 ("vme: Adding Fake VME driver") Cc: stable@vger.kernel.org # 4.9 Cc: Martyn Welch <martyn@welchs.me.uk> Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://patch.msgid.link/20260424104910.2619349-1-johan@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-05-04drm/i915/display: move display funcs under modeset sub-structJani Nikula
Move generic crtc-ish modeset related functions under a new modeset sub-struct of struct intel_display. Rename struct intel_display_funcs to intel_modeset_funcs to make it a little bit more specific. Remove the funcs sub-struct. The funcs sub-struct of struct intel_display seems unnecessary. Instead of display->funcs.FEATURE, prefer display->FEATURE.funcs. Reviewed-by: Nemesa Garg <nemesa.garg@intel.com> Link: https://patch.msgid.link/7849de3a5c9755639c179917c6a298de9ac832c0.1777537663.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2026-05-04drm/i915/display: move cdclk funcs under cdclk sub-structJani Nikula
Move cdclk related functions under cdclk sub-struct of struct intel_display. The funcs sub-struct of struct intel_display seems unnecessary. Instead of display->funcs.FEATURE, prefer display->FEATURE.funcs. Reviewed-by: Nemesa Garg <nemesa.garg@intel.com> Link: https://patch.msgid.link/a3cadca7cfd03486404af497fa62efb8e2d2adcd.1777537663.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2026-05-04drm/i915/display: move dpll funcs under dpll sub-structJani Nikula
Move dpll related functions under dpll sub-struct of struct intel_display. The funcs sub-struct of struct intel_display seems unnecessary. Instead of display->funcs.FEATURE, prefer display->FEATURE.funcs. Reviewed-by: Nemesa Garg <nemesa.garg@intel.com> Link: https://patch.msgid.link/02efd924d7efdf42655f5c9bfd0f79a6df5fe2b4.1777537663.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2026-05-04drm/i915/display: move hotplug irq funcs under hotplug sub-structJani Nikula
Move hotplug irq related functions under hotplug sub-struct of struct intel_display. The funcs sub-struct of struct intel_display seems unnecessary. Instead of display->funcs.FEATURE, prefer display->FEATURE.funcs. Reviewed-by: Nemesa Garg <nemesa.garg@intel.com> Link: https://patch.msgid.link/9419cff5038d60a6c95c247b83f54b6559067e0d.1777537663.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2026-05-04drm/i915/display: move watermark funcs under wm sub-structJani Nikula
Move watermark related functions under wm sub-struct of struct intel_display. The funcs sub-struct of struct intel_display seems unnecessary. Instead of display->funcs.FEATURE, prefer display->FEATURE.funcs. Reviewed-by: Nemesa Garg <nemesa.garg@intel.com> Link: https://patch.msgid.link/6b74ab66692dce20b2a6a8cb8cfdef222b2983ca.1777537663.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2026-05-04drm/i915/display: move fdi funcs under fdi sub-structJani Nikula
Move fdi related functions under fdi sub-struct of struct intel_display. The funcs sub-struct of struct intel_display seems unnecessary. Instead of display->funcs.FEATURE, prefer display->FEATURE.funcs. Reviewed-by: Nemesa Garg <nemesa.garg@intel.com> Link: https://patch.msgid.link/c48bad63ec94259773d05ef056268b02e119d635.1777537663.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2026-05-04drm/i915/display: move color funcs under color sub-structJani Nikula
Move color related functions under color sub-struct of struct intel_display. The funcs sub-struct of struct intel_display seems unnecessary. Instead of display->funcs.FEATURE, prefer display->FEATURE.funcs. Reviewed-by: Nemesa Garg <nemesa.garg@intel.com> Link: https://patch.msgid.link/77cc5dd365f3346c4cbbe7a5d883bca413138c94.1777537663.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2026-05-04drm/i915/display: move audio funcs under audio sub-structJani Nikula
Move audio related functions under audio sub-struct of struct intel_display. The funcs sub-struct of struct intel_display seems unnecessary. Instead of display->funcs.FEATURE, prefer display->FEATURE.funcs. Reviewed-by: Nemesa Garg <nemesa.garg@intel.com> Link: https://patch.msgid.link/60d626286b77c2faa9ff0518855dd083906b24be.1777537663.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2026-05-04x86/entry: Zap the #VC entry user and kernel macrosBorislav Petkov (AMD)
Drop the separate kernel and user macros in favor of calling a single #VC C handler which multiplexes between the kernel and user #VC entry points by looking at CS's RPL. Zap unused DEFINE_IDTENTRY_VC while at it. There should be no functionality change resulting from this - just code simplification. Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Nikunj A. Dadhania <nikunj@amd.com> Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com> Acked-by: Joerg Roedel <joerg.roedel@amd.com> Tested-by: Nikunj A. Dadhania <nikunj@amd.com> Link: https://patch.msgid.link/20260420164352.32129-1-bp@kernel.org
2026-05-04i2c: acpi: Add ELAN0678 to i2c_acpi_force_100khz_device_idsNiels Franke
The ELAN0678 touchpad (04F3:3195) found in the Lenovo ThinkPad X13 exhibits excessive smoothing when the I2C bus runs at 400KHz, making the touchpad feel sluggish when plugged into AC power. This is the same issue previously fixed for ELAN06FA. The device's ACPI table (Lenovo TP-R22) specifies 0x00061A80 (400KHz) for the I2cSerialBusV2 descriptor. Forcing the bus to 100KHz eliminates the sluggish behavior. Signed-off-by: Niels Franke <nielsfranke@gmail.com> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> [wsa: kept the sorting] Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
2026-05-04fbdev: udlfb: add vm_ops to dlfb_ops_mmap to prevent use-after-freeRajat Gupta
dlfb_ops_mmap() uses remap_pfn_range() to map vmalloc framebuffer pages to userspace but sets no vm_ops on the VMA. This means the kernel cannot track active mmaps. When dlfb_realloc_framebuffer() replaces the backing buffer via FBIOPUT_VSCREENINFO, existing mmap PTEs are not invalidated. On USB disconnect, dlfb_ops_destroy() calls vfree() on the old pages while userspace PTEs still reference them, resulting in a use-after-free: the process retains read/write access to freed kernel pages. Add vm_operations_struct with open/close callbacks that maintain an atomic mmap_count on struct dlfb_data. In dlfb_realloc_framebuffer(), check mmap_count and return -EBUSY if the buffer is currently mapped, preventing buffer replacement while userspace holds stale PTEs. Tested with PoC using dummy_hcd + raw_gadget USB device emulation. Signed-off-by: Rajat Gupta <rajgupt@qti.qualcomm.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: stable@vger.kernel.org Signed-off-by: Helge Deller <deller@gmx.de>
2026-05-04dt-bindings: i2c: apple,i2c: Add t8122 compatibleJanne Grunau
The i2c block on the Apple silicon t8122 (M3) SoC is compatible with the existing driver. Add "apple,t8122-i2c" as SoC specific compatible under "apple,t8103-i2c" used by the deriver. Signed-off-by: Janne Grunau <j@jannau.net> Acked-by: Andi Shyti <andi.shyti@kernel.org> Acked-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
2026-05-04iommu/amd: Fix precedence order in set_dte_passthrough()Weinan Liu
Bitwise OR | operator has a higher precedence than the ternary ?: operatior. It will be incorrectly evaluated as: new->data[1] |= (FIELD_PREP(...) | dev_data->ats_enabled) ? DTE_FLAG_IOTLB : 0; Wrap the conditional operation in parentheses to enforce the correct evaluation order. Fixes: 93eee2a49c1b ("iommu/amd: Refactor logic to program the host page table in DTE") Signed-off-by: Weinan Liu <wnliu@google.com> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Reviewed-by: Vasant Hegde <vasant.hegde@amd.com> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2026-05-04Merge tag 'drm-xe-next-2026-04-30' of ↵Dave Airlie
https://gitlab.freedesktop.org/drm/xe/kernel into drm-next UAPI Changes: - Debugfs multi-LRC engine info (Xin Wang, 2 commits) Expose multi-LRC engine classes in the debugfs engine info output and improve the output readability. - drm/drm_ras: Add clear-error-counter netlink command to drm_ras Cross-subsystem Changes: Core Changes: - drm/gpusvm: Reject VMAs with VM_IO or VM_PFNMAP when creating SVM ranges - drm/i915/display: switch to including common step file directly Driver Changes: - Engine initialization cleanup (Matt Roper, 10 commits) Clean up engine initialization code inherited from i915 by moving hardware programming (CCS enablement, HWSTAM, GFX_MODE, BLIT_CCTL, STOP_RING) into the RTP infrastructure. This makes the programming visible and verifiable via debugfs, and applies consistently across both normal and execlist init paths. Also fixes the name/definition of GFX_MODE, marks BCS engines as belonging to the GT forcewake domain, and drops the now-unused xe_hw_engine_mmio_write32() helper. - PF fair scheduling auto-provisioning (Michal Wajdeczko, 13 commits) Fix several corner cases in SR-IOV PF scheduling policy provisioning, then auto-provision PF and all VFs with 16ms execution-quantum and preemption-timeout defaults. This prevents a VF from monopolizing the GPU by submitting workloads without gaps, without requiring the user to configure sysfs manually. - System Controller support for CRI/Xe3p (Anoop Vijay + Raag Jadav, 10 commits) Add xe_sysctrl infrastructure for communicating with the System Controller firmware entity on CRI/Xe3p discrete GPU platforms via a mailbox interface. Includes type definitions, register definitions, mailbox communication, initialization, power management, interrupt handling, and event dispatch. Builds on this to add initial RAS correctable error handling, using sysctrl interrupts to receive threshold-crossed events. - PXP state machine fixes (Daniele Ceraolo Spurio, 4 commits) Fix PXP state machine handling: reject PXP sessions on PTL platforms with older GSC firmware that does not support it, fix the restart flag not being cleared after jumping back in pxp_start, remove incorrect handling of an impossible state during suspend, and clean up termination status on failure. - Reset/wedge/unload corner case fixes (Zhanjun Dong + Matthew Brost, 5 commits) Fix memory leaks and fence signal failures that occurred during GPU reset, device wedging, and driver unload by forcefully tearing down remaining exec queues in GuC submit fini, always killing queues in pause/abort, and triggering queue cleanup when not in wedged mode 2. Also ensures GuC CT state transitions via STOP before DISABLED. - Wedge path memory allocation fixes (Matthew Brost, 3 commits) Avoid GFP_KERNEL allocations in xe_device_declare_wedged(), which runs in the DMA-fence signaling path. Also drops the guc_submit_wedged_fini devm registration from xe_guc_submit_wedge() to clean up the wedge shutdown sequence. - PAT type cleanup and invalid index hardening (Xin Wang, 3 commits) Standardize pat_index fields to u16 across the driver, default XE_CACHE_NONE_COMPRESSION to XE_PAT_INVALID_IDX (matching WB_COMPRESSION), and introduce xe_cache_pat_idx() — a macro helper that validates cache_mode bounds and asserts on invalid PAT indices before returning the index. - Reject unsafe PAT indices for CPU cached memory (Jia Yao, 2 commits) Reject incoherent (coh_none) PAT indices for CPU cached memory in both the madvise ioctl and vm_bind with CPU_ADDR_MIRROR flag, closing a security gap where the GPU could bypass CPU caches and observe stale or sensitive data. - OA improvements for CRI device memory (Ashutosh Dixit, 3 commits) Move OA buffer access to the xe_map layer to support both system and device memory (required for CRI), switch OA buffer mmap to use drm_gem_mmap_obj, and implement workaround Wa_14026633728. - xe_drm.h documentation fixes (Shuicheng Lin, 6 commits) Fix multiple documentation issues in the xe_drm.h UAPI header: typos, spelling errors, grammar, wrong names and references, kernel-doc cross-reference syntax, and broken code examples. - kernel-doc syntax fixes in xe headers (Shuicheng Lin, 4 commits) Fix kernel-doc syntax issues across xe header files: missing '@' prefixes on member tags, stale/mismatched member tags, comment syntax errors, and type/parameter name mismatches in references. - Buffer object and DMA-buf resource leak fixes (Shuicheng Lin, 4 commits) Fix resource leaks on error paths: DMA-buf attachment leak in xe_gem_prime_import(), BO leak in xe_dma_buf_init_obj() on allocation failure, and BO leaks in xe_bo_init_locked() on GGTT flag validation and unaligned size validation failures. - Include guard cleanup (Shuicheng Lin, 5 commits) Fix and standardize include guards across xe header files: normalize double-underscore guards to single, add missing leading/trailing underscores, add missing _H suffixes, and add guards to previously unprotected headers. - VF CCS memory pool (Satyanarayana K V P, 2 commits) Switch VF CCS read/write operations from the DRM sub-allocator to DRM mm, fixing allocation failures in fence-disabled mode where the sub-allocator's hole cursor assumption breaks. Also introduces a general BO-backed memory pool with shadow support using drm_mm. - i915/xe step definition unification (Jani Nikula, 3 commits) Complete the migration to the shared intel_step header: switch xe from its own xe_step enum to the shared intel_step naming and definitions, and update i915 display code to include the common step header directly. - Xe3p GT tuning fixes (3 commits) Three Xe3p GT tuning corrections: fix the register offset for GAMSTLB_CTRL, stop applying the CCCHKNREG1 tuning from Xe3p onward (no longer needed), and mark ROW_CHICKEN5 as a masked register. - Forcewake cleanup in GT and GuC PC (Raag Jadav, 3 commits) Drop a redundant forcewake reference in xe_gt, reorder forcewake usage in xe_guc_pc_fini_hw() to avoid a redundant hold, and convert xe_guc_pc_stop() to void since it can no longer fail. - SVM garbage collector fix on close (Matthew Brost, 2 commits) Disable the SVM garbage collector work item when an SVM is closed to prevent use-after-free when the GC fires after the SVM is freed. - Admin-only PF mode (Satyanarayana K V P, 2 commits) Derive an "admin-only PF" mode flag from xe_device state instead of using a local flag, and restrict device query responses when running in admin-only PF mode to avoid exposing internal state. - Enable hwmon energy attributes and accepted power limit for CRI (2 commits) Enable energy consumption hwmon attributes for the CRI platform and add support for reading the accepted (sustained) power limit via hwmon. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Thomas Hellstrom <thomas.hellstrom@linux.intel.com> Link: https://patch.msgid.link/afNSeZJHC3X2m3-N@fedora
2026-05-04i2c: stm32f7: reinit_completion() per transfer not per msgMarek Vasut
Currently, the driver may repeatedly call reinit_completion() during transfer which contains multiple messages, while another thread is waiting for the completion. This happens during transfer with more than 1 message, invoked via stm32f7_i2c_xfer_core() -> stm32f7_i2c_xfer_msg(). After invoking the stm32f7_i2c_xfer_msg() to start transfer, stm32f7_i2c_xfer_core() calls wait_for_completion_timeout() to wait for completion of the transfer of all messages. When the first message transfer completes, the hard IRQ handler triggers, and detects transfer completion, which leads to stm32f7_i2c_isr_event_thread() IRQ thread being started. The stm32f7_i2c_isr_event_thread() calls stm32f7_i2c_xfer_msg() in case there are more messages. Without this change, the second and later stm32f7_i2c_xfer_msg() would call reinit_completion() on the completion which is still being waited for in stm32f7_i2c_xfer_core(). Fix this by moving the reinit_completion() into stm32f7_i2c_xfer_core(), together with wait_for_completion_timeout(). Since stm32f7_i2c_xfer_core() now waits for completion of the entire transfer, increase the default timeout. This fixes sporadic transfer timeouts on STM32MP25xx during kernel boot. Fixes: aeb068c57214 ("i2c: i2c-stm32f7: add driver") Signed-off-by: Marek Vasut <marex@nabladev.com> [wsa: reworded commit subject] Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
2026-05-04dt-bindings: i2c: amlogic: Add compatible for T7 SOCRonald Claveau
Add the T7 SOC compatible which fallback to AXG compatible. Acked-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
2026-05-04i2c: testunit: Replace system_long_wq with system_dfl_long_wqMarco Crivellari
Currently the code enqueue work items using {queue|mod}_delayed_work(), using system_long_wq. This workqueue should be used when long works are expected, but it is a per-cpu workqueue. This is important because queue_delayed_work() queue the work using: queue_delayed_work_on(WORK_CPU_UNBOUND, ...); Note that WORK_CPU_UNBOUND = NR_CPUS. This would end up calling __queue_delayed_work() that does: if (housekeeping_enabled(HK_TYPE_TIMER)) { // [....] } else { if (likely(cpu == WORK_CPU_UNBOUND)) add_timer_global(timer); else add_timer_on(timer, cpu); } So when cpu == WORK_CPU_UNBOUND the timer is global and is not using a specific CPU. Later, when __queue_work() is called: if (req_cpu == WORK_CPU_UNBOUND) { if (wq->flags & WQ_UNBOUND) cpu = wq_select_unbound_cpu(raw_smp_processor_id()); else cpu = raw_smp_processor_id(); } Because the wq is not unbound, it takes the CPU where the timer fired and enqueue the work on that CPU. The consequence of all of this is that the work can run anywhere, depending on where the timer fired. Recently, a new unbound workqueue specific for long running work has been added: c116737e972e ("workqueue: Add system_dfl_long_wq for long unbound works") So change system_long_wq with system_dfl_long_wq so that the work may benefit from scheduler task placement. Signed-off-by: Marco Crivellari <marco.crivellari@suse.com> [wsa: remove FIXME as well] Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
2026-05-04gpiolib: move legacy interface into linux/gpio/legacy.hArnd Bergmann
Split the old contents from gpio.h for clarity. Ideally any driver that still includes linux/gpio.h can now be ported over to use either linux/gpio/legacy.h or linux/gpio/consumer.h, with the original file getting removed once that is complete. No functional changes intended for now. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Link: https://patch.msgid.link/20260428154522.2861492-1-arnd@kernel.org Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-05-04gpio: altera: Use generic MMIO GPIOLinus Walleij
If we use the generic GPIO lib for MMIO in the Altera driver we do not only cut down on the code, we also get get/set_multiple for free. Keep the local raw spinlock instead of reusing the bgpio spinlock because it makes the gpiochip and irqchip nicely orthogonal. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://patch.msgid.link/20260427-gpio-mmio-more-v3-3-fe1882351424@kernel.org Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-05-04gpio: altera: User gc helper variableLinus Walleij
Make the code easier to read by adding a local gpio_chip *gc variable. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://patch.msgid.link/20260427-gpio-mmio-more-v3-2-fe1882351424@kernel.org Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-05-04gpio: devres: Use devres parent if undefinedLinus Walleij
If the user did not pass a parent in the struct gpio_chip then use the device used for devres as parent. This is quite intuitive and can help avoiding having to assign parent explicitly in every driver using devres to add the gpiochip. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://patch.msgid.link/20260427-gpio-mmio-more-v3-1-fe1882351424@kernel.org Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-05-04media: v4l2-common: Add YUV24 format infoNas Chung
The YUV24 format is missing an entry in the v4l2_format_info(). The YUV24 format is the packed YUV 4:4:4 formats with 8 bits per component. Fixes: 0376a51fbe5e ("media: v4l: Add packed YUV444 24bpp pixel format") Signed-off-by: Nas Chung <nas.chung@chipsnmedia.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: verisilicon: remove hantro_run declarationRouven Czerwinski
The function hantro_run() is declared but never defined nor used, remove the dangling declaration. Signed-off-by: Rouven Czerwinski <rouven.czerwinski@linaro.org> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: cedrus: Fix failure to clean up hardware on probe failureSamuel Holland
If V4L2 device fails to register, then SRAM still be claimed and as a result driver will not be able to probe again. cedrus 1c0e000.video-codec: Failed to claim SRAM cedrus 1c0e000.video-codec: Failed to probe hardware cedrus 1c0e000.video-codec: probe with driver cedrus failed with error -16 cedrus_hw_remove undoes everything that was previously done by cedrus_hw_probe, such as disabling runtime power management and releasing the claimed SRAM and reserved memory region. Signed-off-by: Samuel Holland <samuel@sholland.org> Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com> Fixes: 50e761516f2b ("media: platform: Add Cedrus VPU decoder driver") Acked-by: Paul Kocialkowski <paulk@sys-base.io> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: cedrus: Fix missing cleanup in error pathSamuel Holland
According to the documentation struct v4l2_fh has to be cleaned up with v4l2_fh_exit() before being freed. [1] Currently there is no actual bug here, when v4l2_fh_exit() isn't called. v4l2_fh_exit() in this case only destroys internal mutex. But it may change in the future, when v4l2_fh_init/v4l2_fh_exit will be enhanced. 1. https://docs.kernel.org/driver-api/media/v4l2-fh.html Signed-off-by: Samuel Holland <samuel@sholland.org> Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com> Fixes: 50e761516f2b ("media: platform: Add Cedrus VPU decoder driver") Cc: stable@vger.kernel.org Acked-by: Paul Kocialkowski <paulk@sys-base.io> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: chips-media: wave5: Fix Reports from Kernel Lock ValidatorBrandon Brnich
handle_dynamic_resolution change requires that the state_lock be acquired based on the lockdep_assert_held. However, the handle_dynamic_resolution_change call in initialize_sequence does not properly obtain the lock before calling. Since the v4l2_ctrl_find and s_ctrl can sleep, they should not be called while a lock is already held. Store off the fbc_buf_count then properly update control once lock has been freed. Signed-off-by: Brandon Brnich <b-brnich@ti.com> Tested-by: Jackson Lee <jackson.lee@chipsnmedia.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: chips-media: wave5: Release m2m_ctx after Instance Removed from ListBrandon Brnich
Possible use after free if IRQ thread manages to obtain spinlock between m2m_ctx release and wave5_release function removing stream instance from list of active instances. The IRQ thread looks for the m2m_ctx which is freed so null pointer dereference occurs. Signed-off-by: Brandon Brnich <b-brnich@ti.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Tested-by: Jackson Lee <jackson.lee@chipsnmedia.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: rkvdec: vdpu383: Drop bitfields for the bitwriterDetlev Casanova
The VDPU383 support for hevc and h264 use structs with bitfields to represent the SPS and PPS. Because the fields are mostly unaligned and numerous, it brings compiler issues, especially with clang. To prevent that, switch to using the global bitwriter previously introduced instead. Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: rkvdec: common: Drop bitfields for the bitwriterDetlev Casanova
Currently, the common code files for hevc and h264 use structs with bitfields to represent the HW RPS buffer. Because the bitfields are mostly unaligned and numerous, it brings compiler issues, especially with clang. To prevent that, switch to using the global bitwriter previously introduced instead. Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: rkvdec: Use the global bitwriter instead of local oneDetlev Casanova
Both rkvdec-h264.c and rkvdec-hevc.c use their own bitwriter function and macros. Move to using the global one introduced before. Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: rkvdec: Introduce a global bitwriter helperDetlev Casanova
The use of structures with bitfields is good when the values are somewhat aligned. More mis-alignement means that compilers need to do more gymnastics to edit the fields values. Some cases have been reported with CLang on specific architectures like armhf and hexagon, where the compiler would allocate a bigger local stack than needed or even completely freeze during compilation. Some fixes have been provided to ease the issues, but the real fix here is to use a bitwriter instead of heavily unaligned bitfields. This is a preparation commit to provide a global bitwriter interface for the whole driver. Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04media: verisilicon: Export only needed pixels formatsBenjamin Gaignard
Some pixel formats can only be produced if the decoder outputs reference pictures directly. In some cases, such as AV1 film-grain, the use of the post-processor is strictly required. In this case, only enumerate the post-processor supported formats. The exception is when V4L2_FMTDESC_FLAG_ENUM_ALL is set, in this case, we enumerate everything regardless of the state. Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> Fixes: bcd4f091cf1e ("media: verisilicon: Use V4L2_FMTDESC_FLAG_ENUM_ALL flag") Cc: stable@vger.kernel.org Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-05-04wifi: cw1200: Revert "Fix locking in error paths"Bart Van Assche
Revert commit d98c24617a83 ("wifi: cw1200: Fix locking in error paths") because it introduces a locking bug instead of fixing a locking bug. cw1200_wow_resume() unlocks priv->conf_mutex. Hence, adding mutex_unlock(&priv->conf_mutex) just after cw1200_wow_resume() is wrong. Reported-by: Ben Hutchings <ben@decadent.org.uk> Closes: https://lore.kernel.org/all/408661f69f263266b028713e1412ba36d457e63d.camel@decadent.org.uk/ Fixes: d98c24617a83 ("wifi: cw1200: Fix locking in error paths") Signed-off-by: Bart Van Assche <bvanassche@acm.org> Link: https://patch.msgid.link/20260430174418.1845431-1-bvanassche@acm.org Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2026-05-04drm/bridge: analogix_dp: Extract error pointer from correct variableEthan Tidmore
In devm_drm_panel_bridge_add() error path the pointer error should be extracted from dp->plat_data->next_bridge but instead it is extracted from bridge, which is a valid pointer and not part of this error path. Extract error pointer from correct variable. Detected by Smatch: drivers/gpu/drm/bridge/analogix/analogix_dp_core.c:1489 analogix_dp_bind() warn: passing a valid pointer to 'PTR_ERR' Fixes: 1b86a69b61df4 ("drm/bridge: analogix_dp: Apply panel_bridge helper") Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com> Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Reviewed-by: Damon Ding <damon.ding@rock-chips.com> Link: https://patch.msgid.link/20260429030840.704252-1-ethantidmore06@gmail.com [Luca: add lkp report lines] Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202605032334.MuQfn1mP-lkp@intel.com/ Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>