]> git.ipfire.org Git - thirdparty/kernel/linux.git/log
thirdparty/kernel/linux.git
7 weeks agostaging: rtl8723bs: remove unused DBG_RX_DUMP_EAP code
Andrei Khomenkov [Sun, 10 May 2026 13:43:08 +0000 (16:43 +0300)] 
staging: rtl8723bs: remove unused DBG_RX_DUMP_EAP code

Remove the DBG_RX_DUMP_EAP code since it is not used as the macro
is not defined anywhere.

Signed-off-by: Andrei Khomenkov <khomenkov@mailbox.org>
Link: https://patch.msgid.link/20260510134315.64295-3-khomenkov@mailbox.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: remove unused DBG_FIXED_CHAN code
Andrei Khomenkov [Sun, 10 May 2026 13:43:07 +0000 (16:43 +0300)] 
staging: rtl8723bs: remove unused DBG_FIXED_CHAN code

Remove the DBG_FIXED_CHAN code since it is not used as the macro
is not defined anywhere.

Signed-off-by: Andrei Khomenkov <khomenkov@mailbox.org>
Link: https://patch.msgid.link/20260510134315.64295-2-khomenkov@mailbox.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agoiommu: Warn on premature unblock during DMA aliased sibling reset
Nicolin Chen [Sat, 25 Apr 2026 01:15:27 +0000 (18:15 -0700)] 
iommu: Warn on premature unblock during DMA aliased sibling reset

When two aliased siblings are in the same iommu_group, they might share the
same RID. The reset functions don't support this case, though it is unclear
whether there is a real case of having an ATS capable device on a PCI/PCI-X
bus.

Theoretically, however, if two aliased devices are resetting concurrently,
one might be unblocked prematurely in the middle of the reset by the other
sibling who completes the reset first.

This isn't a regression from this series but it's better to spit a warning,
so we can know if such use case is common enough for us to make subsequent
patches for its coverage.

Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu: Fix WARN_ON in __iommu_group_set_domain_nofail() due to reset
Nicolin Chen [Sat, 25 Apr 2026 01:15:26 +0000 (18:15 -0700)] 
iommu: Fix WARN_ON in __iommu_group_set_domain_nofail() due to reset

In __iommu_group_set_domain_internal(), concurrent domain attachments are
rejected when any device in the group is recovering. This is necessary to
fence concurrent attachments to a multi-device group where devices might
share the same RID due to PCI DMA alias quirks, but triggers the WARN_ON in
__iommu_group_set_domain_nofail().

Other IOMMU_SET_DOMAIN_MUST_SUCCEED callers in detach/teardown paths, such
as __iommu_group_set_core_domain and __iommu_release_dma_ownership, should
not be rejected, as the domain would be freed anyway in these nofail paths
while group->domain is still pointing to it. So pci_dev_reset_iommu_done()
could trigger a UAF when re-attaching group->domain.

Honor the IOMMU_SET_DOMAIN_MUST_SUCCEED flag, allowing the callers through
the group->recovery_cnt fence, so as to update the group->domain pointer.
Instead add a gdev->blocked check in the device iteration loop, to prevent
any concurrent per-device detachment.

Fixes: c279e83953d9 ("iommu: Introduce pci_dev_reset_iommu_prepare/done()")
Cc: stable@vger.kernel.org
Closes: https://sashiko.dev/#/patchset/20260407194644.171304-1-nicolinc%40nvidia.com
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu: Fix ATS invalidation timeouts during __iommu_remove_group_pasid()
Nicolin Chen [Sat, 25 Apr 2026 01:15:25 +0000 (18:15 -0700)] 
iommu: Fix ATS invalidation timeouts during __iommu_remove_group_pasid()

If a device is blocked, its PASID domains are already detached. Repeating
iommu_remove_dev_pasid() is unnecessary and might trigger ATS invalidation
timeouts.

Skip the iommu_remove_dev_pasid() call upon gdev->blocked.

Fixes: c279e83953d9 ("iommu: Introduce pci_dev_reset_iommu_prepare/done()")
Cc: stable@vger.kernel.org
Closes: https://sashiko.dev/#/patchset/20260407194644.171304-1-nicolinc%40nvidia.com
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu: Fix nested pci_dev_reset_iommu_prepare/done()
Nicolin Chen [Sat, 25 Apr 2026 01:15:24 +0000 (18:15 -0700)] 
iommu: Fix nested pci_dev_reset_iommu_prepare/done()

Shuai found that cxl_reset_bus_function() calls pci_reset_bus_function()
internally while both are calling pci_dev_reset_iommu_prepare/done().

As pci_dev_reset_iommu_prepare() doesn't support re-entry, the inner call
will trigger a WARN_ON and return -EBUSY, resulting in failing the entire
device reset.

On the other hand, removing the outer calls in the PCI callers is unsafe.
As pointed out by Kevin, device-specific quirks like reset_hinic_vf_dev()
execute custom firmware waits after their inner pcie_flr() completes. If
the IOMMU protection relies solely on the inner reset, the IOMMU will be
unblocked prematurely while the device is still resetting.

Instead, fix this by making pci_dev_reset_iommu_prepare/done() reentrant.

Introduce gdev->reset_depth to handle the re-entries on the same device.

Fixes: c279e83953d9 ("iommu: Introduce pci_dev_reset_iommu_prepare/done()")
Cc: stable@vger.kernel.org
Reported-by: Shuai Xue <xueshuai@linux.alibaba.com>
Closes: https://lore.kernel.org/all/absKsk7qQOwzhpzv@Asurada-Nvidia/
Suggested-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Shuai Xue <xueshuai@linux.alibaba.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu: Fix pasid attach in pci_dev_reset_iommu_prepare/done()
Nicolin Chen [Sat, 25 Apr 2026 01:15:23 +0000 (18:15 -0700)] 
iommu: Fix pasid attach in pci_dev_reset_iommu_prepare/done()

Now the helpers handle per-gdev resets. Replace __iommu_set_group_pasid()
with set_dev_pasid() accordingly, in the pci_dev_reset_iommu_done().

Also add max_pasids check as other callers.

Fixes: c279e83953d9 ("iommu: Introduce pci_dev_reset_iommu_prepare/done()")
Cc: stable@vger.kernel.org
Reported-by: Shuai Xue <xueshuai@linux.alibaba.com>
Closes: https://lore.kernel.org/all/ad858513-09fc-455e-bbc5-fe38a225cc78@linux.alibaba.com/
Reviewed-by: Shuai Xue <xueshuai@linux.alibaba.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu: Replace per-group resetting_domain with per-gdev blocked flag
Nicolin Chen [Sat, 25 Apr 2026 01:15:22 +0000 (18:15 -0700)] 
iommu: Replace per-group resetting_domain with per-gdev blocked flag

The core tracks device resetting states with a per-group resetting_domain,
while a reset is actually per group-device. Such a mismatch might lead to
confusion and even difficulty to untangle per-gdev handling requirement.

Shuai found that cxl_reset_bus_function() calls pci_reset_bus_function()
internally while both are calling pci_dev_reset_iommu_prepare/done(). And
the solution requires the core to track at the group_device level as well.

Introduce a 'blocked' flag to struct group_device, to allow a multi-device
group to isolate concurrent device resets independently.

As the reset routine is per gdev, it cannot clear group->resetting_domain
without iterating over the device list to ensure no other device is being
reset. Simplify it by replacing the resetting_domain with a 'recovery_cnt'
in the struct iommu_group.

No functional change. But this is essential to apply following bug fixes.

Fixes: c279e83953d9 ("iommu: Introduce pci_dev_reset_iommu_prepare/done()")
Cc: stable@vger.kernel.org
Reported-by: Shuai Xue <xueshuai@linux.alibaba.com>
Closes: https://lore.kernel.org/all/absKsk7qQOwzhpzv@Asurada-Nvidia/
Reviewed-by: Shuai Xue <xueshuai@linux.alibaba.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu: Fix kdocs of pci_dev_reset_iommu_done()
Nicolin Chen [Sat, 25 Apr 2026 01:15:21 +0000 (18:15 -0700)] 
iommu: Fix kdocs of pci_dev_reset_iommu_done()

Remove the duplicated word. No functional change.

Fixes: c279e83953d9 ("iommu: Introduce pci_dev_reset_iommu_prepare/done()")
Reviewed-by: Shuai Xue <xueshuai@linux.alibaba.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu: Fix NULL group->domain dereference in pci_dev_reset_iommu_done()
Nicolin Chen [Sat, 25 Apr 2026 01:15:20 +0000 (18:15 -0700)] 
iommu: Fix NULL group->domain dereference in pci_dev_reset_iommu_done()

Local sashiko review pointed it out that group->domain could be NULL when
a default domain fails to allocate during the first probe, which can crash
at domain->ops->attach_dev dereference in __iommu_attach_device() invoked
by pci_dev_reset_iommu_done().

pci_dev_reset_iommu_prepare() is fine as an old_domain pointer can be NULL.

Skip the re-attach in pci_dev_reset_iommu_done() to fix the bug.

Fixes: c279e83953d9 ("iommu: Introduce pci_dev_reset_iommu_prepare/done()")
Cc: stable@vger.kernel.org
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agostaging: rtl8723bs: Fix block comment style in ieee80211.h
Pramod Maurya [Sun, 10 May 2026 17:52:06 +0000 (13:52 -0400)] 
staging: rtl8723bs: Fix block comment style in ieee80211.h

Move trailing '*/' to a new line in multi-line block comments, add
proper ' * ' prefix to comment continuation lines, and consolidate
the OUI_MICROSOFT multi-line comment into a single line.

Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
Link: https://patch.msgid.link/20260510175207.563378-4-pramod.nexgen@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: Replace __attribute__((packed)) with __packed in ieee80211.h
Pramod Maurya [Sun, 10 May 2026 17:52:04 +0000 (13:52 -0400)] 
staging: rtl8723bs: Replace __attribute__((packed)) with __packed in ieee80211.h

Replace the verbose __attribute__ ((packed)) with the preferred
kernel shorthand __packed in struct eapol and struct ieee80211_snap_hdr.

Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
Link: https://patch.msgid.link/20260510175207.563378-2-pramod.nexgen@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: Remove multiple blank lines in include headers
Pramod Maurya [Sun, 10 May 2026 17:51:02 +0000 (13:51 -0400)] 
staging: rtl8723bs: Remove multiple blank lines in include headers

Remove superfluous consecutive blank lines from rtl8723bs include
header files as flagged by checkpatch.pl.

Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
Link: https://patch.msgid.link/20260510175103.562518-2-pramod.nexgen@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agoclk: renesas: r9a08g046: Add RSPI clocks and resets
Biju Das [Tue, 5 May 2026 07:15:39 +0000 (08:15 +0100)] 
clk: renesas: r9a08g046: Add RSPI clocks and resets

Add clock and reset definitions for the three RSPI (Serial Peripheral
Interface) channels on the RZ/G3L (R9A08G046) SoC.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260505071544.8965-4-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
7 weeks agoclk: renesas: r9a08g046: Add SSIF-2 clocks and resets
Biju Das [Tue, 5 May 2026 07:15:38 +0000 (08:15 +0100)] 
clk: renesas: r9a08g046: Add SSIF-2 clocks and resets

Add SSIF-2 clock and reset entries on the RZ/G3L SoC.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260505071544.8965-3-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
7 weeks agoclk: renesas: r9a08g046: Add RSCI clocks and resets
Biju Das [Tue, 5 May 2026 07:15:37 +0000 (08:15 +0100)] 
clk: renesas: r9a08g046: Add RSCI clocks and resets

Add clock and reset entries for the Serial Communications Interfaces
(RSCI) found on the RZ/G3L SoC.  This includes various dividers and mux
clocks needed for the four RSCI channels.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260505071544.8965-2-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
7 weeks agostaging: rtl8723bs: Replace __attribute__((__packed__)) with __packed in rtl8723b_hal.h
Pramod Maurya [Sun, 10 May 2026 11:03:34 +0000 (07:03 -0400)] 
staging: rtl8723bs: Replace __attribute__((__packed__)) with __packed in rtl8723b_hal.h

Replace __attribute__((__packed__)) with the preferred __packed macro
to fix a checkpatch.pl warning.

Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
Link: https://patch.msgid.link/20260510110338.98540-1-pramod.nexgen@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: Replace __attribute__((packed)) with __packed in wifi.h
Pramod Maurya [Sun, 10 May 2026 10:36:26 +0000 (06:36 -0400)] 
staging: rtl8723bs: Replace __attribute__((packed)) with __packed in wifi.h

Replace all occurrences of __attribute__((packed)) with the preferred
__packed macro in wifi.h to fix checkpatch.pl warnings.

Signed-off-by: Pramod Maurya <pramod.nexgen@gmail.com>
Link: https://patch.msgid.link/20260510103630.80917-1-pramod.nexgen@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agoiommu/amd: Bounds-check devid in __rlookup_amd_iommu()
Jose Fernandez (Anthropic) [Tue, 21 Apr 2026 19:26:13 +0000 (19:26 +0000)] 
iommu/amd: Bounds-check devid in __rlookup_amd_iommu()

iommu_device_register() walks every device on the PCI bus via
bus_for_each_dev() and calls amd_iommu_probe_device() for each. The
inlined check_device() path computes the device's sbdf, calls
rlookup_amd_iommu() to find the owning IOMMU, and only afterwards
verifies devid <= pci_seg->last_bdf. __rlookup_amd_iommu() indexes
rlookup_table[devid] with no bounds check of its own, so for a PCI
device whose BDF is not described by the IVRS, the lookup reads past
the end of the allocation before the caller's bounds check can run.

This was harmless before commit e874c666b15b ("iommu/amd: Change
rlookup, irq_lookup, and alias to use kvalloc()"): the table was a
zeroed page-order allocation, so the over-read returned NULL and the
caller's NULL check skipped the device. After that commit the table is
a tight kvcalloc() and the over-read returns adjacent slab contents,
which check_device() then dereferences as a struct amd_iommu *,
causing a boot-time GPF.

Seen on Google Compute Engine ct6e VMs, where the virtualized IVRS
describes only the four TPU endpoints 00:04.0-07.0; the gVNIC at
00:08.0 (devid 0x40) indexes 56 bytes past the 456-byte allocation,
into the adjacent kmalloc-512 slab object:

  pci 0000:00:04.0: Adding to iommu group 0
  pci 0000:00:05.0: Adding to iommu group 1
  pci 0000:00:06.0: Adding to iommu group 2
  pci 0000:00:07.0: Adding to iommu group 3
  Oops: general protection fault, probably for non-canonical address 0x3a64695f78746382: 0000 [#1] SMP NOPTI
  CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.22 #1
  Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/06/2025
  RIP: 0010:amd_iommu_probe_device+0x54/0x3a0
  Call Trace:
   __iommu_probe_device+0x107/0x520
   probe_iommu_group+0x29/0x50
   bus_for_each_dev+0x7e/0xe0
   iommu_device_register+0xc9/0x240
   iommu_go_to_state+0x9c0/0x1c60
   amd_iommu_init+0x14/0x40
   pci_iommu_init+0x16/0x60
   do_one_initcall+0x47/0x2f0

Guard the array access in __rlookup_amd_iommu(). With the fix applied
on 6.18.22, the gVNIC at 00:08.0 is skipped cleanly and the VM boots.

Fixes: e874c666b15b ("iommu/amd: Change rlookup, irq_lookup, and alias to use kvalloc()")
Cc: stable@vger.kernel.org
Reported-by: Ziyuan Chen <zc@anthropic.com>
Tested-by: Ziyuan Chen <zc@anthropic.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Assisted-by: Claude:unspecified
Signed-off-by: Jose Fernandez (Anthropic) <jose.fernandez@linux.dev>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu/amd: Remove unused IOMMU_IN/OUT_ADDR_BIT_SIZE macros
Wei Wang [Tue, 21 Apr 2026 10:00:38 +0000 (18:00 +0800)] 
iommu/amd: Remove unused IOMMU_IN/OUT_ADDR_BIT_SIZE macros

The macros IOMMU_IN/OUT_ADDR_BIT_SIZE became unused after commit
2fdf6db436e3 ("iommu/amd: Remove AMD io_pgtable support"), which removed
the last references in io_pgtable.c and io_pgtable_v2.c. Remove them to
clean up unused definitions.

Signed-off-by: Wei Wang <wei.w.wang@hotmail.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agostaging: rtl8723bs: remove unnecessary braces
Shivam Gupta [Thu, 7 May 2026 17:52:18 +0000 (23:22 +0530)] 
staging: rtl8723bs: remove unnecessary braces

Remove unnecessary braces around a single statement block
reported by checkpatch.

Signed-off-by: Shivam Gupta <shivgupta751157@gmail.com>
Reviewed-by: Nikolay Kulikov <nikolayof23@gmail.com>
Link: https://patch.msgid.link/20260507175218.16831-1-shivgupta751157@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: Replace uint with unsigned int in core
Aidan Russell [Mon, 4 May 2026 23:48:46 +0000 (16:48 -0700)] 
staging: rtl8723bs: Replace uint with unsigned int in core

Replace the uint type with unsigned int in the rtl8723bs core code.

This removes unnecessary typedef use and moves the driver closer to
standards.

No functional changes intended.

Signed-off-by: Aidan Russell <aidanlrussell@gmail.com>
Link: https://patch.msgid.link/20260504234846.114912-1-aidanlrussell@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: remove unnecessary blank lines in rtw_recv.c
Jennifer Guo [Sun, 10 May 2026 06:58:29 +0000 (23:58 -0700)] 
staging: rtl8723bs: remove unnecessary blank lines in rtw_recv.c

Remove unnecessary blank lines around braces {}.

This fixes the following checkpatch.pl checks in rtw_recv.c:
- CHECK: Blank lines aren't necessary after an open brace '{'
- CHECK: Blank lines aren't necessary before a close brace '}'

Signed-off-by: Jennifer Guo <guojy.bj@gmail.com>
Link: https://patch.msgid.link/20260510065829.68957-1-guojy.bj@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: remove commented out code from odm.c
Jennifer Guo [Sat, 9 May 2026 05:12:40 +0000 (22:12 -0700)] 
staging: rtl8723bs: remove commented out code from odm.c

Remove commented out case statements for better readability.

This also fixes the checkpatch.pl warning:
WARNING: Block comments use * on subsequent lines.

Signed-off-by: Jennifer Guo <guojy.bj@gmail.com>
Reviewed-by: Nikolay Kulikov <nikolayof23@gmail.com>
Link: https://patch.msgid.link/20260509051240.5807-1-guojy.bj@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: move block comment terminator to new line
Jennifer Guo [Sat, 9 May 2026 04:23:10 +0000 (21:23 -0700)] 
staging: rtl8723bs: move block comment terminator to new line

Move block comment terminator '*/' to separate line in order to
adhere to the kernel coding style.

This fixes the following checkpatch.pl warning:
  WARNING: Block comments use a trailing */ on a separate line

Signed-off-by: Jennifer Guo <guojy.bj@gmail.com>
Link: https://patch.msgid.link/20260509042310.4745-3-guojy.bj@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: fix block comment alignment in hal/ source files
Jennifer Guo [Sat, 9 May 2026 04:23:09 +0000 (21:23 -0700)] 
staging: rtl8723bs: fix block comment alignment in hal/ source files

Add leading whitespace to block comments in order to adhere to
the kernel coding style.

This fixes the following checkpatch.pl warning:
  WARNING: Block comments should align the * on each line.

Signed-off-by: Jennifer Guo <guojy.bj@gmail.com>
Link: https://patch.msgid.link/20260509042310.4745-2-guojy.bj@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agoiommupt: Encode IOMMU_MMIO/IOMMU_CACHE via RISC-V Svpbmt bits
Fangyu Yu [Fri, 17 Apr 2026 14:07:46 +0000 (22:07 +0800)] 
iommupt: Encode IOMMU_MMIO/IOMMU_CACHE via RISC-V Svpbmt bits

When the RISC-V IOMMU page table format support Svpbmt, PBMT provides
a way to tag mappings with page-based memory types. Encode memory type
via PBMT in RISC-V IOMMU PTEs:

  - IOMMU_MMIO   -> PBMT=IO
  - !IOMMU_MMIO && !IOMMU_CACHE -> PBMT=NC
  - otherwise    -> PBMT=Normal (PBMT=0)

Only touch PBMT when PT_FEAT_RISCV_SVPBMT is advertised.

Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Reviewed-by: Guo Ren <guoren@kernel.org>
Reviewed-by: Nutty Liu <nutty.liu@hotmail.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu/riscv: Advertise Svpbmt support to generic page table
Fangyu Yu [Fri, 17 Apr 2026 14:07:45 +0000 (22:07 +0800)] 
iommu/riscv: Advertise Svpbmt support to generic page table

The RISC-V IOMMU can optionally support Svpbmt page-based memory types
in its page table format. When present,the generic page table code can
use this capability to encode memory attributes (e.g. MMIO vs normal
memory) in PTEs.

Signed-off-by: Fangyu Yu <fangyu.yu@linux.alibaba.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Reviewed-by: Guo Ren <guoren@kernel.org>
Reviewed-by: Nutty Liu <nutty.liu@hotmail.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agostaging: rtl8723bs: fix block comment alignment in hal/ header files
Jennifer Guo [Thu, 7 May 2026 17:42:56 +0000 (10:42 -0700)] 
staging: rtl8723bs: fix block comment alignment in hal/ header files

Add leading whitespace to block comments in order to adhere to
the kernel coding style.

This fixes the following checkpatch.pl warning:
  WARNING: Block comments should align the * on each line.

Signed-off-by: Jennifer Guo <guojy.bj@gmail.com>
Link: https://patch.msgid.link/20260507174256.5319-1-guojy.bj@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: remove commented out enum values from odm_types.h
Jennifer Guo [Thu, 7 May 2026 05:00:11 +0000 (22:00 -0700)] 
staging: rtl8723bs: remove commented out enum values from odm_types.h

Found these commented out enum values, while checking for block comment
issues with checkpatch.pl. These seem to be ok to remove for cleanup.

I verified via:
git grep 'RT_STATUS_' drivers/staging/rtl8723bs/
to check there are no other occurrences.

Signed-off-by: Jennifer Guo <guojy.bj@gmail.com>
Link: https://patch.msgid.link/20260507050011.17066-1-guojy.bj@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: rtl8723bs: remove unnecessary block comment
Jennifer Guo [Tue, 5 May 2026 18:54:31 +0000 (11:54 -0700)] 
staging: rtl8723bs: remove unnecessary block comment

Found a block comment formatting warning in odm_interface.h
via checkpatch.pl. As far as I can tell, this block comment is no
longer useful. Hence proposing to remove it.

Signed-off-by: Jennifer Guo <guojy.bj@gmail.com>
Link: https://patch.msgid.link/20260505185431.27037-1-guojy.bj@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agoarm64: dts: rockchip: Add verisilicon IOMMU node on RK3588
Benjamin Gaignard [Wed, 15 Apr 2026 07:23:40 +0000 (09:23 +0200)] 
arm64: dts: rockchip: Add verisilicon IOMMU node on RK3588

Add the device tree node for the Verisilicon IOMMU present
in the RK3588 SoC.
This IOMMU handles address translation for the VPU hardware blocks.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu: Add verisilicon IOMMU driver
Benjamin Gaignard [Wed, 15 Apr 2026 07:23:39 +0000 (09:23 +0200)] 
iommu: Add verisilicon IOMMU driver

The Verisilicon IOMMU hardware block can be found in combination
with Verisilicon hardware video codecs (encoders or decoders) on
different SoCs.
Enable it will allow us to use non contiguous memory allocators
for Verisilicon video codecs.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agodt-bindings: iommu: verisilicon: Add binding for VSI IOMMU
Benjamin Gaignard [Wed, 15 Apr 2026 07:23:38 +0000 (09:23 +0200)] 
dt-bindings: iommu: verisilicon: Add binding for VSI IOMMU

Add a device tree binding for the Verisilicon (VSI) IOMMU.
This IOMMU sits in front of hardware encoder and decoder
blocks on SoCs using Verisilicon IP, such as the Rockchip RK3588.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agostaging: sm750fb: change 2 CamelCase variables to snake_case
Jennifer Guo [Sun, 10 May 2026 06:29:08 +0000 (23:29 -0700)] 
staging: sm750fb: change 2 CamelCase variables to snake_case

Renames these variables inside struct init_status to adhere to
kernel coding style:
- powerMode -> power_mode
- resetMemory -> reset_memory

This fixes the following checkpatch.pl checks:
- CHECK: Avoid CamelCase: <powerMode>
- CHECK: Avoid CamelCase: <resetMemory>

Signed-off-by: Jennifer Guo <guojy.bj@gmail.com>
Link: https://patch.msgid.link/20260510062908.67848-3-guojy.bj@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: sm750fb: rename CamelCase variable and drop prefix
Jennifer Guo [Sun, 10 May 2026 06:29:07 +0000 (23:29 -0700)] 
staging: sm750fb: rename CamelCase variable and drop prefix

Renames the CamelCase variable 'pvMem' in struct sm750_dev to 'vmem'.
Dropping the pointer prefix 'p'.

This fixes the following checkpatch.pl check:
CHECK: Avoid CamelCase: <pvMem>

Signed-off-by: Jennifer Guo <guojy.bj@gmail.com>
Link: https://patch.msgid.link/20260510062908.67848-2-guojy.bj@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: most: net: replace pr_err with netdev_err
Maha Maryam Javaid [Fri, 8 May 2026 06:04:38 +0000 (11:04 +0500)] 
staging: most: net: replace pr_err with netdev_err

Replace remaining pr_err() calls with netdev_err() where a net device
is available to provide better context in error messages.

Lines in skb_to_mep() are left as pr_err() since no net device
context is available there.

Signed-off-by: Maha Maryam Javaid <mahamaryamjavaid@gmail.com>
Link: https://patch.msgid.link/20260508060438.20156-1-mahamaryamjavaid@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: sm750fb: remove unnecessary initializations
Ahmet Sezgin Duran [Mon, 4 May 2026 20:46:12 +0000 (23:46 +0300)] 
staging: sm750fb: remove unnecessary initializations

Remove two instances of `ret = 0` initializations since the variable
is overridden unconditionally before being used.

Signed-off-by: Ahmet Sezgin Duran <ahmet@sezginduran.net>
Link: https://patch.msgid.link/20260504204612.55657-1-ahmet@sezginduran.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agoARM: dts: ixp4xx: use phandle-based GPIOs in mi424wr
Mohamed Ayman [Tue, 5 May 2026 09:36:07 +0000 (11:36 +0200)] 
ARM: dts: ixp4xx: use phandle-based GPIOs in mi424wr

Convert remaining legacy integer GPIO specifiers to phandle-based
descriptors in intel-ixp42x-actiontec-mi424wr.dtsi.

All other GPIOs in this file already use &gpio0/&gpio1. These are the
last remaining legacy users in the IXP4xx DTS files.

Signed-off-by: Mohamed Ayman <mohamedaymanworkspace@gmail.com>
Link: https://lore.kernel.org/20260428191029.809462-1-mohamedaymanworkspace@gmail.com
Signed-off-by: Linus Walleij <linusw@kernel.org>
Link: https://lore.kernel.org/r/20260505-ixp4xx-dts-v1-1-02f4a92a9697@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
7 weeks agoarm64: dts: realtek: Add pinctrl support for RTD1625
Yu-Chun Lin [Tue, 5 May 2026 10:58:36 +0000 (18:58 +0800)] 
arm64: dts: realtek: Add pinctrl support for RTD1625

Add the pinctrl nodes for the Realtek RTD1625 SoC.

Reviewed-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Link: https://lore.kernel.org/r/20260505105838.1014771-1-eleanor.lin@realtek.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
7 weeks agogpio: add GPIO controller found on Waveshare DSI TOUCH panels
Dmitry Baryshkov [Thu, 7 May 2026 09:01:33 +0000 (12:01 +0300)] 
gpio: add GPIO controller found on Waveshare DSI TOUCH panels

The Waveshare DSI TOUCH family of panels has separate on-board GPIO
controller, which controls power supplies to the panel and the touch
screen and provides reset pins for both the panel and the touchscreen.
Also it provides a simple PWM controller for panel backlight. Add
support for this GPIO controller.

Tested-by: Riccardo Mereu <r.mereu@arduino.cc>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260507-waveshare-dsi-touch-v5-2-d2ac7ccc22d4@oss.qualcomm.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
7 weeks agodt-bindings: gpio: describe Waveshare GPIO controller
Dmitry Baryshkov [Thu, 7 May 2026 09:01:32 +0000 (12:01 +0300)] 
dt-bindings: gpio: describe Waveshare GPIO controller

The Waveshare DSI TOUCH family of panels has separate on-board GPIO
controller, which controls power supplies to the panel and the touch
screen and provides reset pins for both the panel and the touchscreen.
Also it provides a simple PWM controller for panel backlight.

Add bindings for these GPIO controllers. As overall integration might be
not very obvious (and it differs significantly from the bindings used by
the original drivers), provide complete example with the on-board
regulators and the DSI panel.

Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260507-waveshare-dsi-touch-v5-1-d2ac7ccc22d4@oss.qualcomm.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
7 weeks agosoc: renesas: Convert to of_machine_get_match()
Geert Uytterhoeven [Mon, 2 Mar 2026 16:29:11 +0000 (17:29 +0100)] 
soc: renesas: Convert to of_machine_get_match()

Use the of_machine_get_match() helper to avoid accessing of_root
directly, which is planned to become private.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Link: https://patch.msgid.link/10876b30a8bdb7d1cfcc2f23fb859f2ffea335fe.1772468323.git.geert+renesas@glider.be
7 weeks agopower: sequencing: print power sequencing device parent in debugfs
Chen-Yu Tsai [Thu, 7 May 2026 05:29:41 +0000 (13:29 +0800)] 
power: sequencing: print power sequencing device parent in debugfs

The debugfs summary currently shows the power sequencing device's name.
This is not really helpful since the device name is always "pwrseq.N".

Also print the parent device's name. This would likely be the device
node name from the device tree, something like "nvme-connector". This
would make it much easier for the developer to associate the summary
with a certain device.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://patch.msgid.link/20260507052943.3133349-1-wenst@chromium.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
7 weeks agoiommu/amd: Remove latent out-of-bounds access in IOMMU debugfs
Eder Zulian [Fri, 10 Apr 2026 12:55:50 +0000 (14:55 +0200)] 
iommu/amd: Remove latent out-of-bounds access in IOMMU debugfs

In iommu_mmio_write() and iommu_capability_write(), the variables
dbg_mmio_offset and dbg_cap_offset are declared as int. However, they
are populated using kstrtou32_from_user(). If a user provides a
sufficiently large value, it can become a negative integer.

Prior to this patch, the AMD IOMMU debugfs implementation was already
protected by different mechanisms.

1. #define OFS_IN_SZ 8 ensures the user string <= 8 bytes, so
   e.g. 0xffffffff isn't a valid input.

  if (cnt > OFS_IN_SZ)
     return -EINVAL;

2. Implicit type promotion in iommu_mmio_write(), dbg_mmio_offset is int
   and iommu->mmio_phys_end is u64

  if (dbg_mmio_offset > iommu->mmio_phys_end - sizeof(u64))
      return -EINVAL;

3. The show handlers would currently catch the negative number and
   refuse to perform the read.

Replace kstrtou32_from_user() with kstrtos32_from_user() to parse the
input, and check for negative values to explicitly prevent out-of-bounds
memory accesses directly in iommu_mmio_write() and
iommu_capability_write().

Signed-off-by: Eder Zulian <ezulian@redhat.com>
Fixes: 7a4ee419e8c1 ("iommu/amd: Add debugfs support to dump IOMMU MMIO registers")
Cc: stable@vger.kernel.org
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agostaging: vme_user: simplify boolean comparisons
Shyam Sunder Reddy Padira [Tue, 5 May 2026 20:01:44 +0000 (01:31 +0530)] 
staging: vme_user: simplify boolean comparisons

Replace explicit comparisons against zero with logical Not operator.
This follows the standard kernel coding style for boolean logic.

No functional changes.

Signed-off-by: Shyam Sunder Reddy Padira <shyamsunderreddypadira@gmail.com>
Link: https://patch.msgid.link/20260505200145.160377-1-shyamsunderreddypadira@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agostaging: vme_user: remove unnecessary NULL initialization before list iteration
Shyam Sunder Reddy Padira [Tue, 5 May 2026 19:23:20 +0000 (00:53 +0530)] 
staging: vme_user: remove unnecessary NULL initialization before list iteration

Remove redundant NULL initialization for list iterator because
variables used as iterators in list_for_each_entry() do not require
initialization, as the macro assigns them before first use.

No functional change.

Signed-off-by: Shyam Sunder Reddy Padira <shyamsunderreddypadira@gmail.com>
Link: https://patch.msgid.link/20260505192320.107936-1-shyamsunderreddypadira@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agoiommu/amd: Add support for Hygon family 18h model 4h IOAPIC
Fu Hao [Tue, 7 Apr 2026 08:25:40 +0000 (16:25 +0800)] 
iommu/amd: Add support for Hygon family 18h model 4h IOAPIC

The SB IOAPIC is on the device 0xb from Hygon family 18h model 4h.

Signed-off-by: Fu Hao <fuhao@open-hieco.net>
Tested-by: Tingyin Duan <tingyin.duan@gmail.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agosched_ext: Fix ops->priv clobber on concurrent attach/detach
Andrea Righi [Mon, 11 May 2026 06:18:12 +0000 (08:18 +0200)] 
sched_ext: Fix ops->priv clobber on concurrent attach/detach

Under heavy concurrent attach/detach operations, scx_claim_exit() can
trigger a NULL pointer dereference. This can be reproduced running the
reload_loop kselftests inside a virtme-ng session:

 $ vng -v -- ./tools/testing/selftests/sched_ext/runner -t reload_loop
 ...
 BUG: kernel NULL pointer dereference, address: 0000000000000400
 RIP: 0010:scx_claim_exit+0x3b/0x120
 Call Trace:
  <TASK>
  bpf_scx_unreg+0x45/0xb0
  bpf_struct_ops_map_link_dealloc+0x39/0x50
  bpf_link_release+0x18/0x20
  __fput+0x10b/0x2e0
  __x64_sys_close+0x47/0xa0

The underlying race (diagnosed by Tejun Heo) is a stomp of @ops->priv,
not a missing NULL check:

  T2 unreg(K)                       T1 reg(K)
  -----------                       ---------
  sch = ops->priv = sch_b800
  scx_disable; flush_disable_work
    [scx_root_disable: scx_root=NULL,
     mutex_unlock, state=DISABLED]
                                    mutex_lock; state ok
                                    scx_alloc_and_add_sched:
                                      ops->priv = sch_a800
                                    scx_root = sch_a800; init=0
                                    state=ENABLED; mutex_unlock
    [flush returns]
  RCU_INIT_POINTER(ops->priv, NULL) <-- clobbers sch_a800
  kobject_put(sch_b800)

T1 acquires scx_enable_mutex inside scx_root_disable()'s mutex_unlock
window and starts a fresh attach on the same kdata, assigning sch_a800
to @ops->priv. T2 then continues out of scx_disable()/flush_disable_work
and clobbers @ops->priv to NULL, leaking sch_a800; the bpf_link is gone
but state stays SCX_ENABLED, so all future attaches fail with -EBUSY
permanently. The next bpf_scx_unreg() on that kdata then reads NULL
@ops->priv and dereferences it in scx_claim_exit().

Make @ops->priv the lifecycle binding: in scx_root_enable_workfn() and
scx_sub_enable_workfn(), after the existing state check and still under
scx_enable_mutex, refuse with -EBUSY if @ops->priv is non-NULL. This
rejects an attempt to reuse a kdata that is still bound to a previous
scheduler instance, closing the race without changing the unreg side.

Fixes: 105dcd005be2 ("sched_ext: Introduce scx_prog_sched()")
Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
7 weeks agoiommu/amd: Remove dead code for exclusion ranges in IVMD
Yu Zhang [Tue, 31 Mar 2026 15:25:50 +0000 (23:25 +0800)] 
iommu/amd: Remove dead code for exclusion ranges in IVMD

Exclusion ranges in IVMD are treated as unity mappings with r&w
permissions since commit 0bbe4ced53e3 ("iommu/amd: Fix the
overwritten field in IVMD header"), using 1:1 mappings. And IOMMU
Exclusion Base & Range Limit Registers (0x0020/0x0028) are actually
no longer used.

As a result, several definitions and code paths became dead code:

 - exclusion_start/exclusion_length in struct amd_iommu are never
   assigned,
 - iommu_set_exclusion_range() always returns 0 now.
 - MMIO_EXCL_ENABLE_MASK & MMIO_EXCL_ALLOW_MASK are only used by
   the removed iommu_set_exclusion_range().
 - DEV_ENTRY_EX is no longer set in any DTE.
 - IOMMU_UNITY_MAP_FLAG_EXCL_RANGE is no longer set, thus the
   IOMMU_RESV_RESERVED branch in amd_iommu_get_resv_regions() is
   no longer reachable.

Just remove all of the dead code. No functional change.

Signed-off-by: Yu Zhang <zhangyu1@linux.microsoft.com>
Reviewed-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Reviewed-by: Jacob Pan <jacob.pan@linux.microsoft.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoUSB: serial: whiteheat: drop termbits include
Johan Hovold [Mon, 11 May 2026 07:14:48 +0000 (09:14 +0200)] 
USB: serial: whiteheat: drop termbits include

The termios definitions are provided by the termios.h header file which
is included by tty.h so drop the redundant asm/termbits.h include
directive.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
7 weeks agoUSB: serial: add missing atomic includes
Johan Hovold [Mon, 11 May 2026 07:14:47 +0000 (09:14 +0200)] 
USB: serial: add missing atomic includes

Add the missing atomic.h include to the two driver that use it but did
not include it directly.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
7 weeks agoUSB: serial: garmin_gps: drop unused atomic include
Johan Hovold [Mon, 11 May 2026 07:14:46 +0000 (09:14 +0200)] 
USB: serial: garmin_gps: drop unused atomic include

This driver no longer uses anything from atomic.h so drop the unused
include directive.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
7 weeks agoUSB: serial: drop unused moduleparam includes
Johan Hovold [Mon, 11 May 2026 07:14:45 +0000 (09:14 +0200)] 
USB: serial: drop unused moduleparam includes

These drivers (and usb-serial.c) no longer use anything from
moduleparam.h so drop the unnecessary include directives.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
7 weeks agoUSB: serial: drop unused uaccess includes
Johan Hovold [Mon, 11 May 2026 07:14:44 +0000 (09:14 +0200)] 
USB: serial: drop unused uaccess includes

These drivers (and usb-serial.c) no longer use anything from uaccess.h
directly so drop the unnecessary include directives.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
7 weeks agoUSB: serial: xr: add missing uaccess include
Johan Hovold [Mon, 11 May 2026 07:14:43 +0000 (09:14 +0200)] 
USB: serial: xr: add missing uaccess include

Add the missing uaccess.h include, which is needed since TIOCSRS485
support was added, instead of relying on the header being included
indirectly.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
7 weeks agoUSB: serial: drop unused tty_flip includes
Johan Hovold [Mon, 11 May 2026 07:14:42 +0000 (09:14 +0200)] 
USB: serial: drop unused tty_flip includes

These drivers (and usb-serial.c) no longer use anything from tty_flip.h
directly so drop the unnecessary include directives.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
7 weeks agoUSB: serial: drop unused tty_driver includes
Johan Hovold [Mon, 11 May 2026 07:14:41 +0000 (09:14 +0200)] 
USB: serial: drop unused tty_driver includes

USB serial drivers do not use anything from tty_driver.h directly (only
core does) so drop the unnecessary include directives.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
7 weeks agoiommu/amd: Fix a stale comment about which legacy mode is user visible
Sean Christopherson [Sat, 15 Mar 2025 03:21:48 +0000 (20:21 -0700)] 
iommu/amd: Fix a stale comment about which legacy mode is user visible

Update a stale comment about which of the legacy modes is visible to the
user, i.e. can be forced via amd_iommu_intr=legacy.

Fixes: b74aa02d7a30 ("iommu/amd: Fix legacy interrupt remapping for x2APIC-enabled system")
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Vasant Hegde <vasant.hegde@amd.com>
Reviewed-by: Wei Wang <wei.w.wang@hotmail.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoiommu/amd: Explicitly bail from enable_iommus_vapic() when in legacy mode
Sean Christopherson [Sat, 15 Mar 2025 03:09:28 +0000 (20:09 -0700)] 
iommu/amd: Explicitly bail from enable_iommus_vapic() when in legacy mode

Bail early from enable_iommus_vapic() if IOMMUs are configured for either
of the legacy modes, as it's absurdly difficult to see that
iommu_ga_log_enable() is guaranteed to fail because iommu_init_ga_log()
skips allocating the ga_log.

Opportunistically have iommu_ga_log_enable() WARN if it's called without
IOMMUs being configured to support AVIC/vAPIC.

Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Vasant Hegde <vasant.hegde@amd.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
7 weeks agoDocumentation/gpu: add remaining DOC: comments to Intel display documentation
Jani Nikula [Fri, 8 May 2026 10:20:49 +0000 (13:20 +0300)] 
Documentation/gpu: add remaining DOC: comments to Intel display documentation

Not all of the overview DOC: comments in the display driver are
incorporated into the documentation. Add the missing ones, including
some function documentation.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/589c46cf9a46763f4fbb7e1756656e6d71ba1431.1778235406.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
7 weeks agoDocumentation/gpu: use === for Intel display section heading underlines
Jani Nikula [Fri, 8 May 2026 10:20:48 +0000 (13:20 +0300)] 
Documentation/gpu: use === for Intel display section heading underlines

Prefer to use === instead of --- for top level section heading
underlines to allow using the latter for sub-headings later.

While at it, fix the underline lenghts where needed.

Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/f49968792220ca3ff24efde813550850340d092e.1778235406.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
7 weeks agoDocumentation/gpu: add dedicated documentation for Intel display
Jani Nikula [Fri, 8 May 2026 10:20:47 +0000 (13:20 +0300)] 
Documentation/gpu: add dedicated documentation for Intel display

Nowadays, the display support for drm/i915 and drm/xe is shared between
the drivers, even though the code is located under drm/i915/display.

The drm/i915 documentation has everything, including display topics, in
one huge page, while the drm/xe documentation is well-organized but
hardly mentions display. It's not great, to put it mildly.

Split out the Intel display documentation to a dedicated directory,
Documentation/gpu/intel-display. Also directly split the
functionality/feature documentation to dedicated pages to keep the main
index page high level and readable. We'll want to organize this further,
but just sort them alphabetically for starters.

Drop the boilerplate documentation sections that don't actually document
anything.

Cross-reference drm/i915, drm/xe, and intel-display.

Tested-by: Randy Dunlap <rdunlap@infradead.org>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/21bfa7777eb0926eadd309d4c6f5c9cf48405cf0.1778235406.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
7 weeks agoUSB: serial: mxuport: update number-of-ports encoding
Johan Hovold [Thu, 7 May 2026 14:11:14 +0000 (16:11 +0200)] 
USB: serial: mxuport: update number-of-ports encoding

In preparation for adding support for 3, 5, 6 and 7 port devices, replace
the current one-bit-per-type encoding of the number of ports with a more
compact four bit encoding (2..16 ports or undefined).

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
7 weeks agodrm/panel: Make drm_panel_init() static
Albert Esteve [Fri, 8 May 2026 07:04:50 +0000 (09:04 +0200)] 
drm/panel: Make drm_panel_init() static

Now that all panel drivers use devm_drm_panel_alloc(),
there are no external callers of drm_panel_init().
Make it static to prevent new users from bypassing the
refcounted allocation path.

Remove stale references to drm_panel_init() in kdocs.

Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260508-drm_panel_init_rm-v2-10-0bd4ac429971@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
7 weeks agodrm/panel/startek-kd070fhfid015: Use refcounted allocation in place of devm_kzalloc()
Albert Esteve [Fri, 8 May 2026 07:04:49 +0000 (09:04 +0200)] 
drm/panel/startek-kd070fhfid015: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel. In the call to the new API, avoid using explicit type and use
__typeof() for more type safety.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260508-drm_panel_init_rm-v2-9-0bd4ac429971@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
7 weeks agodrm/panel/truly-nt35597: Use refcounted allocation in place of devm_kzalloc()
Albert Esteve [Fri, 8 May 2026 07:04:48 +0000 (09:04 +0200)] 
drm/panel/truly-nt35597: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel. In the call to the new API, avoid using explicit type and use
__typeof() for more type safety.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260508-drm_panel_init_rm-v2-8-0bd4ac429971@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
7 weeks agodrm/panel/sharp-ls043t1le01: Use refcounted allocation in place of devm_kzalloc()
Albert Esteve [Fri, 8 May 2026 07:04:47 +0000 (09:04 +0200)] 
drm/panel/sharp-ls043t1le01: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel. In the call to the new API, avoid using explicit type and use
__typeof() for more type safety.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260508-drm_panel_init_rm-v2-7-0bd4ac429971@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
7 weeks agodrm/panel/tdo-tl070wsh30: Use refcounted allocation in place of devm_kzalloc()
Albert Esteve [Fri, 8 May 2026 07:04:46 +0000 (09:04 +0200)] 
drm/panel/tdo-tl070wsh30: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel. In the call to the new API, avoid using explicit type and use
__typeof() for more type safety.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260508-drm_panel_init_rm-v2-6-0bd4ac429971@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
7 weeks agodrm/panel/ilitek-ili9806e: Use refcounted allocation in place of devm_kzalloc()
Albert Esteve [Fri, 8 May 2026 07:04:45 +0000 (09:04 +0200)] 
drm/panel/ilitek-ili9806e: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel. In the call to the new API, avoid using explicit type and use
__typeof() for more type safety.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260508-drm_panel_init_rm-v2-5-0bd4ac429971@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
7 weeks agodrm/panel/lxd-m9189a: Use refcounted allocation in place of devm_kzalloc()
Albert Esteve [Fri, 8 May 2026 07:04:44 +0000 (09:04 +0200)] 
drm/panel/lxd-m9189a: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel. In the call to the new API, avoid using explicit type and use
__typeof() for more type safety.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260508-drm_panel_init_rm-v2-4-0bd4ac429971@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
7 weeks agodrm/panel/novatek-nt37700f: Use refcounted allocation in place of devm_kzalloc()
Albert Esteve [Fri, 8 May 2026 07:04:43 +0000 (09:04 +0200)] 
drm/panel/novatek-nt37700f: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel. In the call to the new API, avoid using explicit type and use
__typeof() for more type safety.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260508-drm_panel_init_rm-v2-3-0bd4ac429971@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
7 weeks agodrm/panel/samsung-s6e63m0: Use refcounted allocation in place of devm_kzalloc()
Albert Esteve [Fri, 8 May 2026 07:04:42 +0000 (09:04 +0200)] 
drm/panel/samsung-s6e63m0: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel. In the call to the new API, avoid using explicit type and use
__typeof() for more type safety.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260508-drm_panel_init_rm-v2-2-0bd4ac429971@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
7 weeks agodrm/panel/visionox-g2647fb105: Use refcounted allocation in place of devm_kzalloc()
Albert Esteve [Fri, 8 May 2026 07:04:41 +0000 (09:04 +0200)] 
drm/panel/visionox-g2647fb105: Use refcounted allocation in place of devm_kzalloc()

Move to using the new API devm_drm_panel_alloc() to allocate the
panel. In the call to the new API, avoid using explicit type and use
__typeof() for more type safety. Also deduplicate the prepare_prev_first
assignment that was set both before and after drm_panel_init().

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Albert Esteve <aesteve@redhat.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260508-drm_panel_init_rm-v2-1-0bd4ac429971@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
7 weeks agodrm/i915/ddi: Fix cleanup after HDMI connector init failure
Imre Deak [Thu, 7 May 2026 06:59:40 +0000 (09:59 +0300)] 
drm/i915/ddi: Fix cleanup after HDMI connector init failure

Perform the missing DDI DP connector cleanup steps after HDMI connector
initialization failure during DDI encoder/connector initialization.

This fixes the leaked DP MST encoder, AUX state, and connector object.

Reported-by: Sashiko <sashiko-bot@kernel.org>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patch.msgid.link/20260507065940.2046690-2-imre.deak@intel.com
7 weeks agodrm/i915/ddi: Fix cleanup after DP connector init failure
Imre Deak [Thu, 7 May 2026 06:59:39 +0000 (09:59 +0300)] 
drm/i915/ddi: Fix cleanup after DP connector init failure

Fix the error path during DDI encoder/connector initialization by
calling the missing TC port cleanup function.

This fixes the leaked TC port state.

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patch.msgid.link/20260507065940.2046690-1-imre.deak@intel.com
7 weeks agoMerge tag 'v7.1-rc3' into staging-next
Greg Kroah-Hartman [Mon, 11 May 2026 06:48:31 +0000 (08:48 +0200)] 
Merge tag 'v7.1-rc3' into staging-next

We need the staging fixes in here to build off of.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agoMerge tag 'v7.1-rc3' into usb-next
Greg Kroah-Hartman [Mon, 11 May 2026 06:46:54 +0000 (08:46 +0200)] 
Merge tag 'v7.1-rc3' into usb-next

We need the USB fixes in here as well to test and work off of.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 weeks agoarm: dts: allwinner: t113s: enable watchdog for reboot
Michal Piekos [Wed, 6 May 2026 10:14:31 +0000 (12:14 +0200)] 
arm: dts: allwinner: t113s: enable watchdog for reboot

Reboot hangs on T113s boards because no restart handler is
available.

Enable the SoC watchdog whose driver registers a restart handler.

Tested on LCPI-PC-T113/F113.

Signed-off-by: Michal Piekos <michal.piekos@mmpsystems.pl>
Link: https://patch.msgid.link/20260506-t113-mangopi-reboot-hang-v3-1-fa15a360a520@mmpsystems.pl
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
7 weeks agoarm64: dts: allwinner: h616: add hstimer node
Michal Piekos [Wed, 6 May 2026 15:10:29 +0000 (17:10 +0200)] 
arm64: dts: allwinner: h616: add hstimer node

Describe high speed timer block on Allwinner H616.

Tested on Orange Pi Zero 3:
- hstimer is registered as clocksource
- switching clocksource at runtime works
- after rating increase hstimer operates as a broadcast clockevent device

Signed-off-by: Michal Piekos <michal.piekos@mmpsystems.pl>
Reviewed-by: Chen-Yu Tsai <wens@kernel.org>
Link: https://patch.msgid.link/20260506-h616-t113s-hstimer-v4-4-591d425863d6@mmpsystems.pl
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
7 weeks agoriscv: dts: allwinner: d1s-t113: add hstimer node
Michal Piekos [Wed, 6 May 2026 15:10:28 +0000 (17:10 +0200)] 
riscv: dts: allwinner: d1s-t113: add hstimer node

Describe high speed timer block on Allwinner D1S-T113.

Tested on LCPI-PC-T113/F113:
- hstimer is registered as clocksource
- switching clocksource at runtime works
- after rating increase hstimer operates as a broadcast clockevent device

Signed-off-by: Michal Piekos <michal.piekos@mmpsystems.pl>
Reviewed-by: Chen-Yu Tsai <wens@kernel.org>
Link: https://patch.msgid.link/20260506-h616-t113s-hstimer-v4-3-591d425863d6@mmpsystems.pl
[wens@kernel.org: change subject prefix from "arm" to "riscv"]
[wens@kernel.org: fix interrupt representation]
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
7 weeks agodrm/i915/dp: Drop call to intel_panel_fixed_mode() from compute_config
Ankit Nautiyal [Thu, 30 Apr 2026 13:12:20 +0000 (18:42 +0530)] 
drm/i915/dp: Drop call to intel_panel_fixed_mode() from compute_config

At the moment, in intel_dp_compute_config(), intel_panel_fixed_mode() is
called to check if the panel has any fixed mode or not. If it is an eDP
and has the fixed mode, then intel_panel_compute_config() is called.

However, the intel_panel_compute_config already checks if the panel
supports a fixed mode and returns early if it doesn't. This makes the
earlier check in the caller redundant.
Remove this extra check for intel_panel_fixed_mode().

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patch.msgid.link/20260430131220.3891497-6-ankit.k.nautiyal@intel.com
7 weeks agodrm/i915/intel_sdvo: Drop call to intel_panel_fixed_mode() from compute_config
Ankit Nautiyal [Thu, 30 Apr 2026 13:12:19 +0000 (18:42 +0530)] 
drm/i915/intel_sdvo: Drop call to intel_panel_fixed_mode() from compute_config

Currently, in intel_sdvo_compute_config(), intel_panel_fixed_mode() is
called to get the fixed mode. However, since the call is made after
intel_panel_compute_config, that copies the selected fixed mode to the
adjusted mode, we can directly use the crtc_state->hw.adjusted_mode.

So remove the extra call to intel_panel_fixed_mode() and use adjusted
mode instead.

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patch.msgid.link/20260430131220.3891497-5-ankit.k.nautiyal@intel.com
7 weeks agodrm/i915/intel_dvo: Drop call to intel_panel_fixed_mode() from compute_config
Ankit Nautiyal [Thu, 30 Apr 2026 13:12:18 +0000 (18:42 +0530)] 
drm/i915/intel_dvo: Drop call to intel_panel_fixed_mode() from compute_config

The function intel_dvo_compute_config() calls intel_panel_fixed_mode() only
to check if there is a valid fixed_mode and based on that it then calls
intel_panel_compute_config().

However, since the intel_panel_compute_config() already checks for
fixed_mode and we can drop the call to intel_panel_fixed_mode().

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patch.msgid.link/20260430131220.3891497-4-ankit.k.nautiyal@intel.com
7 weeks agodrm/i915/intel_panel: Avoid calls to intel_panel_fixed_mode() in mode_valid
Ankit Nautiyal [Thu, 30 Apr 2026 13:12:17 +0000 (18:42 +0530)] 
drm/i915/intel_panel: Avoid calls to intel_panel_fixed_mode() in mode_valid

Currently, most callers of intel_panel_mode_valid() also call
intel_panel_fixed_mode(). This is done either to check for the presence of
a fixed mode for the connector or to get the clock of the fixed mode, which
is then compared against the max dotclock for the pipe.

Since intel_panel_mode_valid() already calls intel_panel_fixed_mode()
internally, we can avoid yet another call to intel_panel_fixed_mode() from
the caller.

Remove the redundant call to intel_panel_fixed_mode() in mode_valid paths.
To get the clock for the fixed mode, extend the helper
intel_panel_mode_valid() to accept 'target_clock' as an out param.
The 'target_clock' can then be used by the callers to check against the
max dotclock.

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patch.msgid.link/20260430131220.3891497-3-ankit.k.nautiyal@intel.com
7 weeks agodrm/i915/intel_sdvo: Check fixed_mode->clock against max_dotclock in mode_valid
Ankit Nautiyal [Thu, 30 Apr 2026 13:12:16 +0000 (18:42 +0530)] 
drm/i915/intel_sdvo: Check fixed_mode->clock against max_dotclock in mode_valid

For LVDS SDVO, mode validation checks the requested mode against the
pipe max dotclock, but does not validate the selected fixed mode clock.

After intel_panel_mode_valid(), get the fixed mode and validate its
clock against the max dotclock.

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patch.msgid.link/20260430131220.3891497-2-ankit.k.nautiyal@intel.com
7 weeks agodrm/i915/hdcp: Skip inactive MST connectors when building stream list
Suraj Kandpal [Tue, 5 May 2026 09:40:22 +0000 (15:10 +0530)] 
drm/i915/hdcp: Skip inactive MST connectors when building stream list

intel_hdcp_required_content_stream() walks every connector on the
digital port to populate hdcp_port_data->streams[]. The only filter is
connector_status_disconnected, which reflects physical presence on the
MST topology, not whether the connector currently drives a stream.
On a multi-sink MST setup where only a subset of sinks are modeset,
the loop can pick a sibling MST connector that is connected but has
no active CRTC / VC payload. intel_conn_to_vcpi() then logs "MST
Payload not present" and returns 0, and the bogus StreamID=0 is
written to the repeater in RepeaterAuth_Stream_Manage (DPCD 0x693F0).
Authentication completes, but the repeater shortly raises
LINK_INTEGRITY_FAILURE (RxStatus 0x69493 bit4) because the StreamID
does not match any stream on its input. The HDCP check work then
tears the link down, the Content Protection property drops back to
DESIRED, and userspace observes a spurious HDCP enable failure.
Filter the connector iteration to only those with a CRTC assigned in
the new atomic state, so intel_conn_to_vcpi() is called for the
connector actually being enabled and reads its real VCPI from the MST
topology state.

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Santhosh Reddy Guddati <santhosh.reddy.guddati@intel.com>
Link: https://patch.msgid.link/20260505094022.4064256-1-suraj.kandpal@intel.com
7 weeks agoarm64: dts: cix: Add CPU idle states for Sky1
Devin Li [Thu, 7 May 2026 06:59:56 +0000 (14:59 +0800)] 
arm64: dts: cix: Add CPU idle states for Sky1

Add PSCI-based CPU idle state definitions for the Sky1 SoC,
enabling core and cluster level power management through
ARM PSCI firmware.

Three idle states are defined:

- CPU_SLEEP_0: Core idle state for A520 cores
  (psci-suspend-param 0x0010000), entry-latency 34us,
  exit-latency 100us

- CPU_SLEEP_1: Core idle state for A720 cores
  (psci-suspend-param 0x10000), entry-latency 31us,
  exit-latency 79us

- CLUSTER_SLEEP_0: Cluster idle state shared by all cores
  (psci-suspend-param 0x1010000), entry-latency 41us,
  exit-latency 104us

A520 cores (cpu0-3) reference CPU_SLEEP_0 and CLUSTER_SLEEP_0,
while A720 cores (cpu4-11) reference CPU_SLEEP_1 and
CLUSTER_SLEEP_0.

Signed-off-by: Devin Li <Devin.Li@cixtech.com>
Link: https://lore.kernel.org/r/20260507065956.3900087-1-Devin.Li@cixtech.com
Signed-off-by: Peter Chen <peter.chen@cixtech.com>
7 weeks agoarm64: dts: cix: Add SCMI performance domains for CPUFreq on Sky1
Devin Li [Wed, 6 May 2026 02:52:54 +0000 (10:52 +0800)] 
arm64: dts: cix: Add SCMI performance domains for CPUFreq on Sky1

Add SCMI Protocol 13 (Performance) node under ap_to_pm_scmi with
domains.

Define SKY1_PERF_* macros in sky1-power.h for all performance domain
IDs (CPU L/B0/B1/M0/M1, GPU, DSU, NPU, VPU, CI700, NI700), and
wire each CPU node to its corresponding performance domain using
power-domains and power-domain-names properties.

Signed-off-by: Devin Li <Devin.Li@cixtech.com>
Link: https://lore.kernel.org/r/20260506025254.3602623-1-Devin.Li@cixtech.com
Signed-off-by: Peter Chen <peter.chen@cixtech.com>
7 weeks agoplatform/chrome: cros_kbd_led_backlight: Drop CONFIG_MFD_CROS_EC_DEV ifdeffery
Thomas Weißschuh [Sat, 4 Apr 2026 07:55:28 +0000 (09:55 +0200)] 
platform/chrome: cros_kbd_led_backlight: Drop CONFIG_MFD_CROS_EC_DEV ifdeffery

The ifdeffery is unnecessary, as the compiler can already optimize away
all of the mfd-specific code based on the IS_ENABLED() in
keyboard_led_is_mfd_device().

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20260404-cros_kbd_led-cleanup-v1-3-0dc1100d54e3@weissschuh.net
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
7 weeks agoplatform/chrome: cros_kbd_led_backlight: Pass keyboard_led as parameter
Thomas Weißschuh [Sat, 4 Apr 2026 07:55:27 +0000 (09:55 +0200)] 
platform/chrome: cros_kbd_led_backlight: Pass keyboard_led as parameter

Make the code simpler to read by passing the 'struct keyboard_led' as
a parameter to the 'init' callbacks instead of relying on the platform
device driver data.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20260404-cros_kbd_led-cleanup-v1-2-0dc1100d54e3@weissschuh.net
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
7 weeks agoplatform/chrome: cros_kbd_led_backlight: Drop max_brightness from driver data
Thomas Weißschuh [Sat, 4 Apr 2026 07:55:26 +0000 (09:55 +0200)] 
platform/chrome: cros_kbd_led_backlight: Drop max_brightness from driver data

The maximum brightness is always 100. There is no need to read that from
the driver data.

Remove the superfluous driver data.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20260404-cros_kbd_led-cleanup-v1-1-0dc1100d54e3@weissschuh.net
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
7 weeks agoplatform/chrome: Resolve kb_wake_angle visibility race
Tzung-Bi Shih [Tue, 7 Apr 2026 10:26:15 +0000 (10:26 +0000)] 
platform/chrome: Resolve kb_wake_angle visibility race

A race condition exists between the probe of cros-ec-sysfs and
cros-ec-sensorhub.

The `kb_wake_angle` attribute should only be visible if the sensor hub
detects two or more accelerometers.  If cros_ec_sysfs_probe() runs
before cros_ec_sensorhub_register() completes sensor enumeration, the
sysfs attributes are created while `has_kb_wake_angle` is still false,
hiding `kb_wake_angle` incorrectly.

Store the created attribute group pointer in `ec_dev->group`.  When
the sensor hub completes sensor enumeration, it checks for this group
and calls sysfs_update_group() to notify the sysfs core to re-evaluate
attribute visibility.  This ensures the `kb_wake_angle` attribute
visibility is correctly updated regardless of the driver probe order.

Co-developed-by: Gwendal Grignou <gwendal@chromium.org>
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Link: https://lore.kernel.org/r/20260407102615.1605317-1-tzungbi@kernel.org
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
7 weeks agoselftests/sched_ext: Fix build error in dequeue selftest
Andrea Righi [Sun, 10 May 2026 17:52:11 +0000 (19:52 +0200)] 
selftests/sched_ext: Fix build error in dequeue selftest

Building the dequeue selftest with newer compilers (e.g., gcc 16)
triggers the following error:

 dequeue.c:28:22: error: variable 'sum' set but not used

The 'volatile' qualifier prevents the writes from being optimized away,
but does not silence the unused variable 'sum' is indeed only written
and never read.

Consume 'sum' via an empty asm() with a register input constraint. This
forces the compiler to keep the accumulated value (preserving the CPU
stress loop) and avoiding the build error.

Fixes: 658ad2259b3e ("selftests/sched_ext: Add test to validate ops.dequeue() semantics")
Signed-off-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
7 weeks agoselftests/cgroup: Fix string comparison in write_test
Hongfu Li [Mon, 11 May 2026 01:39:57 +0000 (09:39 +0800)] 
selftests/cgroup: Fix string comparison in write_test

Use string comparison (!=) instead of numeric comparison (-ne) for
cpuset values like "0-1".
For example:
$ [[ "0-1" != "2-3" ]] && echo "true" || echo "false"
true
$ [[ "0-1" -ne "2-3" ]] && echo "true" || echo "false"
false

Signed-off-by: Hongfu Li <lihongfu@kylinos.cn>
Signed-off-by: Tejun Heo <tj@kernel.org>
7 weeks agoselftests/cgroup: Fix cg_read_strcmp() empty string comparison
Hongfu Li [Sat, 9 May 2026 08:03:28 +0000 (16:03 +0800)] 
selftests/cgroup: Fix cg_read_strcmp() empty string comparison

cg_read_strcmp() allocated a buffer sized to strlen(expected) + 1,
then passed it to read_text() which calls read(fd, buf, size-1).

When comparing against an empty string (""), strlen("") = 0 gives a
1-byte buffer, and read() is asked to read 0 bytes.  The file content
is never actually read, so strcmp("", buf) always returns 0 regardless
of the real content.  This caused cg_test_proc_killed() to always
report the cgroup as empty immediately, making OOM tests pass without
verifying that processes were killed.

Signed-off-by: Hongfu Li <lihongfu@kylinos.cn>
Signed-off-by: Tejun Heo <tj@kernel.org>
7 weeks agocgroup/dmem: Return -ENOMEM on failed pool preallocation
Guopeng Zhang [Mon, 11 May 2026 01:31:50 +0000 (09:31 +0800)] 
cgroup/dmem: Return -ENOMEM on failed pool preallocation

get_cg_pool_unlocked() handles allocation failures under dmemcg_lock by
dropping the lock, preallocating a pool with GFP_KERNEL, and retrying the
locked lookup and creation path.

If the fallback allocation fails too, pool remains NULL. Since the loop
condition is while (!pool), the function can keep retrying instead of
propagating the allocation failure to the caller.

Set pool to ERR_PTR(-ENOMEM) when the fallback allocation fails so the
loop exits through the existing common return path. The callers already
handle ERR_PTR() from get_cg_pool_unlocked(), so this restores the
expected error path.

Fixes: b168ed458dde ("kernel/cgroup: Add "dmem" memory accounting cgroup")
Cc: stable@vger.kernel.org # v6.14+
Signed-off-by: Guopeng Zhang <zhangguopeng@kylinos.cn>
Signed-off-by: Tejun Heo <tj@kernel.org>
7 weeks agoASoC: core: Move all users to deferrable card binding
Cezary Rojewski [Thu, 30 Apr 2026 14:07:52 +0000 (16:07 +0200)] 
ASoC: core: Move all users to deferrable card binding

Commit a3375522bb5e2 ("ASoC: core: Complete support for card rebinding")
completed the feature and at the same time divided ASoC users into two
groups:

1) cards that fail to enumerate the moment one of the components is
   not available
2) cards that succeed to enumerate even if some of their components
   become available late

Given the component-based nature of ASoC, approach 2) is preferred and
can be used by all ASoC users.  By dropping 1) the card binding code can
also be simplified.

Flatten code that is currently conditional based on ->devres_dev and
convert snd_soc_rebind_card() to call_soc_bind_card().  The latter is a
selector between managed and unmanaged card-binding behaviour to keep
non-devm users happy.

With rebinding being the default, devm_snd_soc_register_card() takes
form of its deferrable friend - all the devm job is already done by
devm_snd_soc_bind_card().

Suggested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20260430140752.766130-1-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
7 weeks agoASoC: soc_sdw_utils: skip aux device if it is not present
Mark Brown [Mon, 11 May 2026 01:05:36 +0000 (10:05 +0900)] 
ASoC: soc_sdw_utils: skip aux device if it is not present

Bard Liao <yung-chuan.liao@linux.intel.com> says:

ASoC: soc_sdw_utils: skip aux device if it is not present

Similarly to codec endpoints that may not be used [1], aux devices (like
HID) also may not be used. Hence skip aux devices which are not present.

Also update the comment above is_sdca_endpoint_present().

[1] https://lore.kernel.org/all/20250414063239.85200-12-yung-chuan.liao@linux.intel.com/

Link: https://patch.msgid.link/20260508094750.1246796-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
7 weeks agoASoC: soc_sdw_utils: Change comment into proper kernel doc
Maciej Strozek [Fri, 8 May 2026 09:47:50 +0000 (17:47 +0800)] 
ASoC: soc_sdw_utils: Change comment into proper kernel doc

Update the comment above is_sdca_endpoint_present().

Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20260508094750.1246796-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>