summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)AuthorFilesLines
2026-03-03drm/i915/dp: Fix DSC state computationImre Deak3-0/+16
When computing the encoder/CRTC state multiple times, such as during iteration over the possible pipe joiner configurations, it must be ensured that all state is explicitly initialized each time. At the moment, this is not guaranteed for the DSC/FEC state within the encoder/CRTC state. In one iteration trying a pipe joiner configuration, the DSC state may get initialized without computing the full CRTC/encoder state due to the given joiner configuration being impossible. When the same CRTC/encoder state is recomputed in a subsequent iteration, the previously set non-zero - now stale - DSC/FEC state may still be present, which is unexpected if a non-DSC configuration is being computed. This can lead to a DSC state mismatch error if multiple joiner configurations are evaluated and the working configuration ultimately turns out to be a non-DSC one. Follow the existing pattern and compute the full (DSC/FEC) state on all code paths (including now the non-DSC path as well) to fix the issue. Fixes: 1f1e3e5c65f6 ("drm/i915/dp: Rework pipe joiner logic in compute_config") Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/7512 Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Signed-off-by: Imre Deak <imre.deak@intel.com> Link: https://patch.msgid.link/20260302102838.1522499-1-imre.deak@intel.com
2026-03-03drm/vc4: Test for imported buffers with drm_gem_is_imported()Thomas Zimmermann2-2/+2
Instead of testing import_attach for imported GEM buffers, invoke drm_gem_is_imported() to do the test. The test itself does not change. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Cc: Maxime Ripard <mripard@kernel.org> Cc: Dave Stevenson <dave.stevenson@raspberrypi.com> Cc: "Maíra Canal" <mcanal@igalia.com> Cc: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com> Reviewed-by: Maíra Canal <mcanal@igalia.com> Link: https://patch.msgid.link/20260227133113.235940-12-tzimmermann@suse.de
2026-03-03drm/gma500: Create framebuffers with drm_gem_fb_create()Thomas Zimmermann2-101/+9
Replace gma500's internal framebuffer creation with DRM's standard helper drm_gem_fb_create(). The result is equivalent. Only keep the existing tests for color depth and pitch alignment. v2: - rebase on upstream changes Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Link: https://patch.msgid.link/20260206133458.226467-6-tzimmermann@suse.de
2026-03-03drm/gma500: fbdev: Use a DRM client bufferThomas Zimmermann1-23/+26
Replace the internal DRM framebuffer with a DRM client buffer. The client buffer allocates the DRM framebuffer on a file and also uses GEM object handles via the regular ADDFB2 interfaces. This unifies framebuffer allocation for clients in user space and gma500's internal fbdev emulation. Also simplify the clean-up side of the fbdev emulation. Later patches will allow for streamlining gma500's framebuffer code and DRM's fbdev emulation in general. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Link: https://patch.msgid.link/20260206133458.226467-5-tzimmermann@suse.de
2026-03-03drm/gma500: fbdev: Calculate buffer geometry with format helpersThomas Zimmermann1-32/+28
Replace the geometry and size calculation in gma500's fbdev emulation with DRM format helpers. This consists of 4CC lookup from the fbdev parameters, format loockup, pitch calculation and size calculation. Then allocate the GEM buffer object for the framebuffer memory from the calculated size. As before, fallback to 16-bit colors if the stolen memory is insufficient for 32-bit colors. But look at the result from psb_gem_create() instead of guessing before the allocation. The new method is more reliable when others allocate from stolen video memory (e.g., cursors). Set up mode_cmd with the calculated values just before allocating the framebuffer. This code will later be replaced with a DRM client buffer. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Link: https://patch.msgid.link/20260206133458.226467-4-tzimmermann@suse.de
2026-03-03drm/gma500: fbdev: Set framebuffer size to GEM object sizeThomas Zimmermann1-2/+2
Framebuffer emulation sets the size of the available memory to the value that has been requested. As the allocated GEM buffer object acts as full framebuffer memory, set the size to the value of the actually allocated buffer. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Link: https://patch.msgid.link/20260206133458.226467-3-tzimmermann@suse.de
2026-03-03drm/client: Export drm_client_buffer_create()Thomas Zimmermann1-1/+2
The helper drm_client_buffer_create() will be required by various drivers for fbdev emulation. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Link: https://patch.msgid.link/20260206133458.226467-2-tzimmermann@suse.de
2026-03-03drm/bridge: waveshare-dsi: Register and attach our DSI device at probeMarek Vasut1-6/+1
In order to avoid any probe ordering issue, the best practice is to move the secondary MIPI-DSI device registration and attachment to the MIPI-DSI host at probe time. Besides solving the probe ordering problems, this makes the bridge work with R-Car DU. The R-Car DU will attempt to locate the DSI host bridge in its own rcar_du_probe()->rcar_du_modeset_init()->rcar_du_encoder_init() by calling of_drm_find_bridge() which calls of_drm_find_and_get_bridge() and iterates over bridge_list to locate the DSI host bridge. However, unless the WS driver calls mipi_dsi_attach() in probe(), the DSI host bridge .attach callback rcar_mipi_dsi_host_attach() is not called and the DSI host bridge is not added into bridge_list. Therefore the of_drm_find_and_get_bridge() called from du_probe() will never find the DSI host bridge and probe will indefinitelly fail with -EPROBE_DEFER. The circular dependency here is, that if rcar_du_encoder_init() would manage to find the DSI host bridge, it would call the WS driver .attach callback ws_bridge_bridge_attach(), but this is too late and can never happen. This change avoids the circular dependency. Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> Link: https://patch.msgid.link/20260206125801.78705-1-marek.vasut+renesas@mailbox.org Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2026-03-03gpu/buddy: Introduce gpu_buddy_assert() for kunit-aware assertionsSanjay Yadav1-8/+28
Introduce gpu_buddy_assert(), a small helper that wraps WARN_ON() and, when CONFIG_KUNIT is enabled, also calls kunit_fail_current_test() so that any active KUnit test is marked as failed. In non-KUnit builds the macro reduces to WARN_ON(), preserving existing behaviour. Stringify the asserted condition in the failure message to make it easy to identify which assertion fired. Leave the WARN_ON() in gpu_buddy_block_trim() unchanged, as it returns -EINVAL and the caller already observes the failure via the return code. Cc: Christian König <christian.koenig@amd.com> Cc: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com> Suggested-by: Matthew Auld <matthew.auld@intel.com> Signed-off-by: Sanjay Yadav <sanjay.kumar.yadav@intel.com> Reviewed-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com> Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com> Link: https://patch.msgid.link/20260227130037.53615-2-sanjay.kumar.yadav@intel.com
2026-03-03tee: shm: Remove refcounting of kernel pagesMatthew Wilcox1-27/+0
Earlier TEE subsystem assumed to refcount all the memory pages to be shared with TEE implementation to be refcounted. However, the slab allocations within the kernel don't allow refcounting kernel pages. It is rather better to trust the kernel clients to not free pages while being shared with TEE implementation. Hence, remove refcounting of kernel pages from register_shm_helper() API. Fixes: b9c0e49abfca ("mm: decline to manipulate the refcount on a slab page") Reported-by: Marco Felsch <m.felsch@pengutronix.de> Reported-by: Sven Püschel <s.pueschel@pengutronix.de> Signed-off-by: Matthew Wilcox <willy@infradead.org> Co-developed-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Tested-by: Sven Püschel <s.pueschel@pengutronix.de> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
2026-03-03dma-buf: Suppress a thread-safety complaintBart Van Assche1-1/+4
Handle all possible dma_resv_lock() return values. This patch prepares for enabling compile-time thread-safety analysis. This will cause the compiler to check whether all dma_resv_lock() return values are handled. Signed-off-by: Bart Van Assche <bvanassche@acm.org> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Christian König <christian.koenig@amd.com> Link: https://lore.kernel.org/r/20260227165501.2062829-1-bvanassche@acm.org
2026-03-03gpio: rockchip: Call pinctrl for gpio configMatthijs Kooijman1-1/+1
Pinctrl is responsible for bias settings and possibly other pin config, so call gpiochip_generic_config to apply such config values. This might also include settings that pinctrl does not support, but then it can return ENOTSUPP as appropriate. Signed-off-by: Matthijs Kooijman <matthijs@stdin.nl> Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-03-03pinctrl: microchip-mssio: Fix missing return in probeFelix Gu1-1/+1
In mpfs_pinctrl_probe(), when pctrl->regmap fails, it just print out an error message without return, which could lead serious errors. Fixes: 488d704ed7b7 ("pinctrl: add polarfire soc mssio pinctrl driver") Signed-off-by: Felix Gu <ustc.gu@gmail.com> Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-03-03pinctrl: core: use dev_err_probe() when applying stateMichal Piekos1-1/+2
When applying a pinctrl state, -EPROBE_DEFER may be returned if dependencies are not ready and the consumer will retry probing. This is normal probe ordering behaviour and not a real error. However, pinctrl core currently logs: "Error applying setting, reverse things back" even when the return value is -EPROBE_DEFER, resulting in noisy boot-time error messages. Replace dev_err() with dev_err_probe() to handle -EPROBE_DEFER consistently and suppress error logging for deferred probes. No functional change intended. Signed-off-by: Michal Piekos <michal.piekos@mmpsystems.pl> Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-03-03cpufreq: tegra194: Rename Tegra239 to Tegra238Thierry Reding1-2/+2
This chip identifies as Tegra238, so update the device tree compatible string and data structures associated with it to use the correct name. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2026-03-03drm/i915/backlight: Provide clear description on how backlight level is ↵Suraj Kandpal1-5/+14
controlled Currently it takes us multiple log prints to arrive at the conclusion on how we are actually controlling backlight level. Make the logging concise. Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Link: https://patch.msgid.link/20260302040613.3324049-8-suraj.kandpal@intel.com
2026-03-03drm/i915/backlight: Update debug log during backlight setupSuraj Kandpal1-1/+2
With luminance_set which represents PANEL_LUMINANCE_OVERRIDE, we have another variable to decide if we use PWM or DPCD. Make drm_dbg_kms log represent that. Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Link: https://patch.msgid.link/20260302040613.3324049-7-suraj.kandpal@intel.com
2026-03-03drm/i915/backlight: Short circuit intel_dp_aux_supports_hdr_backlightSuraj Kandpal1-2/+2
intel_dp_aux_supports_hdr_backlight() prints debug message for intel HDR backlight version. This is fine when dealing with eDP 1.4b and lower. When we are talking about eDP 1.5 it causes confusion in logs since we need to use VESA AUX backlight functions but this print causes confusion as to which path code take. Short circuit this function with a eDP version check. Make sure this is only called if eDP <= 1.4b Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Link: https://patch.msgid.link/20260302040613.3324049-6-suraj.kandpal@intel.com
2026-03-03drm/i915/backlight: Check luminance_set when disabling PWM via AUX VESA ↵Suraj Kandpal1-1/+2
backlight When deciding what if PWM funcs need to be disabled take into account luminance_set too. We do this since it is also used to decide if we are enabling PWM backlight funcs or not. Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15671 Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Link: https://patch.msgid.link/20260302040613.3324049-5-suraj.kandpal@intel.com
2026-03-03drm/i915/backlight: Take luminance_set into account for VESA backlightSuraj Kandpal1-1/+2
When deciding what functions to enable to help control backlight we used to only check aux_enable. Now with PANEL_LUMINANCE_OVERRIDE in picture we need to take care that we do not enable PWM function if luminance_set is set. Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15671 Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Link: https://patch.msgid.link/20260302040613.3324049-4-suraj.kandpal@intel.com
2026-03-03drm/i915/backlight: Use intel_panel variable instead of intel_connectorSuraj Kandpal1-1/+1
Use the intel_panel variable since it has already been declared and looks cleaner. Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Link: https://patch.msgid.link/20260302040613.3324049-3-suraj.kandpal@intel.com
2026-03-03wifi: rtlwifi: pci: fix possible use-after-free caused by unfinished ↵Duoming Zhou1-0/+1
irq_prepare_bcn_tasklet The irq_prepare_bcn_tasklet is initialized in rtl_pci_init() and scheduled when RTL_IMR_BCNINT interrupt is triggered by hardware. But it is never killed in rtl_pci_deinit(). When the rtlwifi card probe fails or is being detached, the ieee80211_hw is deallocated. However, irq_prepare_bcn_tasklet may still be running or pending, leading to use-after-free when the freed ieee80211_hw is accessed in _rtl_pci_prepare_bcn_tasklet(). Similar to irq_tasklet, add tasklet_kill() in rtl_pci_deinit() to ensure that irq_prepare_bcn_tasklet is properly terminated before the ieee80211_hw is released. The issue was identified through static analysis. Fixes: 0c8173385e54 ("rtl8192ce: Add new driver") Signed-off-by: Duoming Zhou <duoming@zju.edu.cn> Acked-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260223045522.48377-1-duoming@zju.edu.cn
2026-03-03wifi: rtw88: check for PCI upstream bridge existenceFedor Pchelkin1-1/+2
pci_upstream_bridge() returns NULL if the device is on a root bus. If 8821CE is installed in the system with such a PCI topology, the probing routine will crash. This has probably been unnoticed as 8821CE is mostly supplied in laptops where there is a PCI-to-PCI bridge located upstream from the device. However the card might be installed on a system with different configuration. Check if the bridge does exist for the specific workaround to be applied. Found by Linux Verification Center (linuxtesting.org) with Svace static analysis tool. Fixes: 24f5e38a13b5 ("rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE") Cc: stable@vger.kernel.org Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru> Acked-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260220094730.49791-1-pchelkin@ispras.ru
2026-03-03net: sparx5: replace sparx5_start() with sparx5_forwarding_init()Daniel Machon1-8/+2
With all subsystem initializations moved out, sparx5_start() only sets up forwarding (UPSIDs, CPU ports, masks, PGIDs, FCS, watermarks). Rename it to sparx5_forwarding_init() and make it void since it cannot fail. This removes sparx5_start() entirely. Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Link: https://patch.msgid.link/20260227-sparx5-init-deinit-v2-9-10ba54ccf005@microchip.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: sparx5: move FDMA/XTR initialization out of sparx5_start()Daniel Machon1-46/+63
Move the Frame DMA and register-based extraction initialization out of sparx5_start() and into a new sparx5_frame_io_init() function, called from probe(). Also, add sparx5_frame_io_deinit() for the cleanup path. Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Link: https://patch.msgid.link/20260227-sparx5-init-deinit-v2-8-10ba54ccf005@microchip.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: sparx5: move PTP IRQ handling out of sparx5_start()Daniel Machon2-23/+29
Move the PTP IRQ request into sparx5_ptp_init() so all PTP setup is done in one place. Also move the sparx5_ptp_init() call to right before sparx5_register_netdevs() and add a cleanup_ptp label. Update remove() to disable the PTP IRQ and reorder ptp_deinit accordingly. Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Link: https://patch.msgid.link/20260227-sparx5-init-deinit-v2-7-10ba54ccf005@microchip.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: sparx5: move remaining init functions from start() to probe()Daniel Machon1-8/+4
Move sparx5_pgid_init(), sparx5_vlan_init(), and sparx5_board_init() from sparx5_start() to probe(). These functions do not require cleanup. Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Link: https://patch.msgid.link/20260227-sparx5-init-deinit-v2-6-10ba54ccf005@microchip.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: sparx5: move calendar initialization to probeDaniel Machon3-12/+20
Move the calendar initialization from sparx5_start() to probe() by creating a new sparx5_calendar_init() wrapper function that calls both sparx5_config_auto_calendar() and sparx5_config_dsm_calendar(). Calendar initialization does not require cleanup. Also, make the individual calendar config functions static since they are now only called from within sparx5_calendar.c. Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Link: https://patch.msgid.link/20260227-sparx5-init-deinit-v2-5-10ba54ccf005@microchip.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: sparx5: move stats initialization and add deinit functionDaniel Machon3-8/+20
The sparx5_stats_init() function starts a worker thread which needs to be cleaned up. Move the initialization code to probe() and add a deinit() function for proper teardown. Also, rename sparx_stats_init() to sparx5_stats_init() to match the driver naming convention. Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Link: https://patch.msgid.link/20260227-sparx5-init-deinit-v2-4-10ba54ccf005@microchip.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: sparx5: move MAC table initialization and add deinit functionDaniel Machon3-33/+44
Consolidate all MAC table initialization from sparx5_start() into sparx5_mact_init(), move it to probe(), and add a deinit function for proper teardown. Also, make sparx5_mact_pull_work() static since it is only used within sparx5_mactable.c. Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Link: https://patch.msgid.link/20260227-sparx5-init-deinit-v2-3-10ba54ccf005@microchip.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: sparx5: move VCAP initialization to probeDaniel Machon3-8/+12
Move the VCAP initialization code from sparx5_start() to probe(). Add proper error handling with a cleanup_vcap label and sparx5_vcap_deinit() call. Also, rename sparx5_vcap_destroy() to sparx5_vcap_deinit() to stay consistent with the naming. Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Link: https://patch.msgid.link/20260227-sparx5-init-deinit-v2-2-10ba54ccf005@microchip.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: sparx5: move netdev and notifier block registration to probeDaniel Machon1-20/+21
Move netdev registration and notifier block registration from sparx5_start() to probe(). This allows proper cleanup via goto-based error labels in probe(). Also, remove the sparx5_cleanup_ports() helper as its functionality is now split between sparx5_unregister_netdevs() and sparx5_destroy_netdevs() called at appropriate points. Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Link: https://patch.msgid.link/20260227-sparx5-init-deinit-v2-1-10ba54ccf005@microchip.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03wifi: rtw89: ser: post-recover DMAC state to prevent LPSZong-Zhe Yang3-1/+8
If entering LPS during SER (system error recovery), IMR might fail to be re-enabled after SER. Then, the next SER would not be noticed well. After FW v0.35.100.0, Wi-Fi 7 chipsets adjust the order in which SER recovers DMAC state to prevent LPS from being in the middle of SER. Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260213061552.29997-13-pkshih@realtek.com
2026-03-03wifi: rtw89: ser: Wi-Fi 7 reset HALT C2H after reading itZong-Zhe Yang1-1/+6
When a SER (system error recovery) interrupt happens, driver reads HALT C2H register to get the error status via MAC. For Wi-Fi 7 chipset, driver needs to reset HALT C2H register after reading it to make FW aware that. Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260213061552.29997-12-pkshih@realtek.com
2026-03-03wifi: rtw89: debug: add SER SW counters to count simulationZong-Zhe Yang3-0/+15
Some chipsets, e.g. Wi-Fi 7, will not record SER (system error recovery), which are triggered by simulations, in the HW counters. Their HW counters only record the SER happen in field. However for verification, it's still needed to check if simulations are triggered. So, add SW counters to count any causes that SER happen. But, SW can only count L1 and L2. SW does not involve L0 SER, so SW cannot count it. Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260213061552.29997-11-pkshih@realtek.com
2026-03-03wifi: rtw89: rfk: add hardware version to rtw89_fw_h2c_rf_pre_ntfy_mcc for ↵Ping-Ke Shih2-0/+3
new WiFi 7 firmware The RF calibration in firmware needs proper hardware version to select corresponding logic, so add the field to H2C command accordingly. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260213061552.29997-10-pkshih@realtek.com
2026-03-03wifi: rtw89: add H2C command to protect TX/RX for unused PHYKuan-Chung Chen5-0/+148
For BE chips, the unused PHY should pause transmissions and receptions. This ensures that no unexpected packets are routed to an inactive PHY, which could otherwise trigger SER L0 and lead to TX hang. Signed-off-by: Kuan-Chung Chen <damon.chen@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260213061552.29997-9-pkshih@realtek.com
2026-03-03wifi: rtw89: 8851b: update supported firmware format to 1Zong-Zhe Yang1-1/+1
More data will be included in Firmware file and loaded via FW elements. Increase RTL8851B FW format to 1 to prevent old driver from failing to recognize FW with FW elements. Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260213061552.29997-8-pkshih@realtek.com
2026-03-03net: stmmac: move DMA configuration validation to driver probeRussell King (Oracle)1-5/+5
Move the DMA configuration validation from stmmac_init_dma_engine() to the start of the driver probe function. The platform glue is expected to supply the DMA configuration, and a non-zero programmable burst length (bpl). Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuY3-0000000Avnq-1Spv@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: simplify atds initialisationRussell King (Oracle)1-3/+4
atds is boolean, and there is only one place that its value is changed. Simplify this to a boolean assignment. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuXy-0000000Avnk-10Q8@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: move initialisation of dma_cfg->atdsRussell King (Oracle)1-3/+7
Move the initialisation of priv->plat->dma_cfg->atds, which indicates that 8 32-bit word descriptors are being used for pre-v4.0 cores, after the call to stmmac_hwif_init(), which will initialise priv->extend_desc and priv->mode (the descriptor mode.) We don't need to re-evaluate this in stmmac_init_dma_engine() - as the state that it depends on only changes in stmmac_hwif_init() which is only called in the probe path. Also, once set, no code clears this flag. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuXt-0000000Avnc-0UYC@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: make dma_cfg mixed/fixed burst booleanRussell King (Oracle)1-3/+1
struct stmmac_dma_cfg mixed_burst/fixed_burst members are both boolean in nature - of_property_read_bool() are used to read these from DT, and they are only tested for non-zero values. Use bool to avoid unnecessary padding in this structure. Update dwmac-intel to initialise these using true rather than '1', and remove the '0' initialisers as the struct is already zero initialised on allocation. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuXn-0000000AvnX-4A1u@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: make chain_mode a booleanRussell King (Oracle)2-2/+3
priv->chain_mode is only tested for non-zero, so it can be a boolean. Change its type to boolean, and add a comment describing this member. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuXi-0000000AvnR-3btC@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: make extend_desc booleanRussell King (Oracle)2-2/+6
extend_desc is a boolean, so make it so, and use "true" to assign it. Add a comment to describe what this member does. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuXd-0000000AvnL-36K3@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: remove mac->xlgmacRussell King (Oracle)2-8/+0
mac->xlgmac is only ever written to by the dwxlgmac2_quirk() function. Remove mac->xlgmac, and the quirk function that then becomes redundant. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuXY-0000000AvnF-2ccv@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: remove dwmac410_(enable|disable)_dma_irqRussell King (Oracle)3-33/+1
As a result of the previous cleanup, it is now obvious that there are no differences between the dwmac4 and dwmac410 versions of the DMA interrupt enable/disable functions. Moreover, dwmac410_disable_dma_irq() is completely unused; instead, dwmac4_disable_dma_irq() is used to disable the interrupts for v4.10a cores while dwmac410_enable_dma_irq() was being used to enable these same same interrupts. Remove the unnecessary v4.10a functions. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuXT-0000000Avn9-29US@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: remove dwmac4 DMA_CHAN_INTR_DEFAULT_[TR]X*Russell King (Oracle)2-12/+8
Remove the DMA_CHAN_INTR_DEFAULT_[TR]X* definitions, which are aliases of their respective DMA_CHAN_INTR_ENA_[TR]IE definitions. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuXO-0000000Avn3-1hhD@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: remove .get_tx_len()Russell King (Oracle)5-28/+0
No code calls stmmac_get_tx_len(). Remove this macro, its associated function pointer, and all implementations. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuXJ-0000000Avmx-1B8Y@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: remove .get_tx_ls()Russell King (Oracle)5-29/+0
No code calls stmmac_get_tx_ls(). Remove this macro, its associated function pointer, and all implementations. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuXE-0000000Avmr-0eB0@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-03net: stmmac: remove .get_tx_owner()Russell King (Oracle)5-27/+0
No code calls stmmac_get_tx_owner(). Remove the macro, its associated function pointer, and all implementations. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vvuX9-0000000Avml-08Lo@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>