summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
4 daysfbdev: au1100fb: fix typos in commentsHemanth Selam
Assisted-by: Cursor:claude-opus-5 Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: mmp: fix typos in commentsHemanth Selam
Assisted-by: Cursor:claude-opus-5 Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: tridentfb: fix typos in commentsHemanth Selam
Assisted-by: Cursor:claude-opus-5 Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: tgafb: fix typos in commentsHemanth Selam
Assisted-by: Cursor:claude-opus-5 Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: sstfb: fix typos in commentsHemanth Selam
Assisted-by: Cursor:claude-opus-5 Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: viafb: fix typos in commentsHemanth Selam
Assisted-by: Cursor:claude-opus-5 Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: sticore: fix typos in commentsHemanth Selam
Assisted-by: Cursor:claude-opus-5 Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: s1d13xxxfb: fix typos in commentsHemanth Selam
Assisted-by: Cursor:claude-opus-5 Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: Drop unused FB_IOMEM_HELPERS_DEFERRED Kconfig optionHelge Deller
Signed-off-by: Helge Deller <deller@gmx.de> Noticed-by: Breno Rodrigues Alves <breno3011alves@gmail.com>
4 daysfbdev: sstfb: use managed PCI device enableMyeonghun Pak
sstfb_probe() enables the PCI device with pci_enable_device(), but failure paths after that point return without disabling it. The successful probe path has the same imbalance because sstfb_remove() releases the framebuffer, mappings and memory regions, but never calls pci_disable_device(). Use pcim_enable_device() so the PCI core disables the device automatically after probe failure or driver removal. The driver still releases its framebuffer, mappings and memory regions explicitly. This issue was identified during our ongoing static-analysis research while reviewing kernel code. Co-developed-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Myeonghun Pak <mhun512@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: acornfb: remove unused code for 26-bit hardwareEthan Nelson-Moore
The acornfb driver contains code to support machines with a MEMC chip and without IOMD and VIDC20 chips. All 32-bit Acorn hardware has IOMD and VIDC20 chips and does not have a MEMC chip. Linux formerly supported 26-bit Acorn computers, but that support was removed in commit 99eb8a550dbc ("Remove the arm26 port") because it had bitrotted to the extent that it did not even compile. Remove this unused code. Also take the opportunity to remove incorrect file paths in the file headers, which are bad style regardless. Signed-off-by: Ethan Nelson-Moore <enelsonmoore@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: nvidia: Release write-combining handle on probe failureMyeonghun Pak
Failures in nvidia_set_fbinfo() or register_framebuffer() leave the handle from arch_phys_wc_add() allocated. Release it in the shared error path, as nvidiafb_remove() already does on normal removal. The missing cleanup was already present in the initial Git import, when the driver used mtrr_add() directly. This issue was identified during our ongoing static-analysis research while reviewing kernel code. Cc: stable@vger.kernel.org Assisted-by: LLM Co-developed-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Myeonghun Pak <mhun512@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: kyro: Release WC setup on registration failureMyeonghun Pak
If register_framebuffer() fails, kyrofb_probe() frees the framebuffer without releasing its write-combining range. Release the range before freeing the framebuffer. Earlier failures still skip this cleanup. The missing cleanup already exists in the initial Git import, before the conversion from mtrr_add() to arch_phys_wc_add(). This issue was identified during our ongoing static-analysis research while reviewing kernel code. Cc: stable@vger.kernel.org Assisted-by: LLM Co-developed-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Myeonghun Pak <mhun512@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: gxt4500: Release WC setup on probe failureMyeonghun Pak
gxt4500_probe() adds a write-combining range before allocating the cmap and registering the framebuffer. If a later step fails, the range is not released. Add the missing cleanup before unmapping the framebuffer, matching the successful remove path. This issue was identified during our ongoing static-analysis research while reviewing kernel code. Fixes: 38fc4d45fae5 ("gxt4500: Use arch_phys_wc_* for framebuffer") Assisted-by: LLM Co-developed-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Myeonghun Pak <mhun512@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: udlfb: don't rebuild the mode list while the framebuffer is in useXiang Mei
dlfb_setup_modes() frees info->modelist with fb_destroy_modelist() and rebuilds it, but fbcon holds raw pointers into that list in fb_display[i].mode and nothing un-publishes them the way do_unregister_framebuffer() and store_modes() do with fbcon_delete_modelist(). The function does refuse to install a new mode while the framebuffer has users (dlfb->fb_count != 0), but only after the list is already destroyed. Reached from the 0666 "edid" sysfs attribute, an unprivileged write to /sys/class/graphics/fb0/edid therefore fails with -EINVAL and still leaves every fb_display[i].mode dangling; the next console switch reads the freed fb_videomode in fb_videomode_to_var(). Test fb_count before touching the list. fbcon takes a reference through fbcon_open(), so that condition covers exactly the states in which fb_display[] points into the list, and the errno returned to userspace is unchanged. BUG: KASAN: slab-use-after-free in fb_videomode_to_var (drivers/video/fbdev/core/modedb.c:905) Read of size 4 at addr ffff8880107b449c by task kworker/1:1/47 Workqueue: events console_callback Call Trace: fb_videomode_to_var (drivers/video/fbdev/core/modedb.c:905) display_to_var (drivers/video/fbdev/core/fbcon.c:998) fbcon_switch (drivers/video/fbdev/core/fbcon.c:2182) redraw_screen (drivers/tty/vt/vt.c:994) complete_change_console (drivers/tty/vt/vt_ioctl.c:1141) console_callback (drivers/tty/vt/vt.c:3358) process_one_work (kernel/workqueue.c:3396) worker_thread (kernel/workqueue.c:3479 kernel/workqueue.c:3560) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245) ... The buggy address is located 28 bytes inside of freed 96-byte region [ffff8880107b4480, ffff8880107b44e0) Cc: stable@vger.kernel.org Fixes: 7d9485e2c53c ("Staging: udlfb: Add functions to expose sysfs metrics and controls") Reported-by: co+ed9902f2e44184d9@bugs.sh Closes: https://lore.kernel.org/all/1jSCSNaDKmuUG7h40rTsSl1rMaSwdlJef4rp%40bugs.sh/ Assisted-by: Claude:claude-opus-5 Signed-off-by: Xiang Mei <xmei5@asu.edu> Link: https://lore.kernel.org/all/1jSCSNaDKmuUG7h40rTsSl1rMaSwdlJef4rp%40bugs.sh/ Signed-off-by: Helge Deller <deller@gmx.de>
4 daysfbdev: sh_mobile_lcdcfb: Restore the per-overlay sysfs attributesKarl Mehltretter
The ovl_* files documented in Documentation/ABI/testing/sysfs-devices-platform-sh_mobile_lcdc_fb no longer exist. Commit a979182a2453 ("fbdev: lcdcfb: Register sysfs groups through driver core") moved the attributes from each overlay's framebuffer device to the platform driver's dev_groups and renamed them overlay_*. There is now only one set of attributes for the whole LCDC. The callbacks still expect dev_get_drvdata() to return a struct fb_info, but the platform device holds struct sh_mobile_lcdc_priv, so they access the wrong structure. Restore the documented names and register the group on each overlay's framebuffer device with device_add_groups(). Remove it with device_remove_groups() before unregistering the framebuffer. Skip creation when dev_of_fbinfo(info) is NULL, as the old device_create_file() calls did. Drop the CONFIG_FB_DEVICE guard, since the driver already depends on it. Fixes: a979182a2453 ("fbdev: lcdcfb: Register sysfs groups through driver core") Cc: stable@vger.kernel.org Assisted-by: LLM Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
4 daysmemory: mtk-smi: Add MT8189 supportZhengnan Chen
Add the MT8189 SMI common, sub-common and LARB platform data. Enable the GALS clock for the MT8189 SMI sub-common. Signed-off-by: Zhengnan Chen <zhengnan.chen@mediatek.com> Signed-off-by: Congcong Yao <congcong.yao@mediatek.com> Reviewed-by: Yong Wu <yong.wu@mediatek.com> Link: https://patch.msgid.link/20260831-8189-smi-support-v4-2-8ae66dd3eeed@mediatek.com Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
4 daysmemory: emif: fix device_node reference leak on np_ddrMiles Krause
of_get_memory_device_details() takes a reference on the DDR device node via of_parse_phandle() and stores it in emif->np_ddr for later use, but drops that reference without calling of_node_put() on two error paths: the devm_kzalloc() allocation-failure check and the is_dev_data_valid() check. Both return NULL immediately, leaking the node reference each time either failure triggers. The same reference is also never released on the success path: it is kept for the life of the bound device (compared against a later instance's np_ddr in the duplicate-DDR-geometry check) but emif_remove() never calls of_node_put() on it, leaking it every time an EMIF device unbinds. of_node_put() on a NULL pointer is a no-op, so this is also safe for the non-DT get_device_details() path, where np_ddr is left NULL by devm_kzalloc(). Fixes: e6b42eb6a66c ("memory: emif: add device tree support to emif driver") Signed-off-by: Miles Krause <mileskrause5200@gmail.com> Link: https://patch.msgid.link/20260909-master-v1-1-8800f5647ab2@gmail.com Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
4 daysmemory: tegra: Refactor Tegra264 mc-err codeKetan Patil
The MC and HUB error-logging paths on Tegra264 used large switch statements that interleaved register offsets, bit positions and decoding parameters for each error type, which made them hard to read and review. Turn the error logging into a more structured implementation: - Describe each MCF error type with a tegra264_mc_fault descriptor filled in by a small per-type get_offsets() callback, and move the register access, client lookup and reporting into a common tegra264_mc_report_fault() helper. - Describe each HUB error type with a static tegra264_hub_error_handler table, since the HUB register offsets are fixed on Tegra264. No functional change intended. Signed-off-by: Ketan Patil <ketanp@nvidia.com> Link: https://patch.msgid.link/20260903182520.950555-4-ketanp@nvidia.com Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
4 daysmemory: tegra: Parameterise Tegra264 MCF slice boundKetan Patil
Replace the hard-coded slice bound check in handle_mcf_irq() with a TEGRA264_MC_NUM_SLICES define, so the number of MCF slices is named rather than being an unexplained literal. Note that although the existing logic is correct, the actual number of MCF slices for Tegra264 is 5 and not 4. So define TEGRA264_MC_NUM_SLICES as 5 and update the logic accordingly. No functional change intended. Signed-off-by: Ketan Patil <ketanp@nvidia.com> Link: https://patch.msgid.link/20260903182520.950555-3-ketanp@nvidia.com Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
4 daysmemory: tegra: Use named defines for Tegra264 MC aperturesKetan Patil
The Tegra264 memory controller error interrupts are distributed across several HUB/HUBC apertures, each accessed like a broadcast channel using a fixed index. These indices were kept in a bare mc_hubc_aperture_number[] array, and handle_hub_irq() took a parameter of the same name that shadowed it. This driver is only applicable to Tegra264 devices and so this abstraction is not needed. Replace the array with named TEGRA264_MC_APERTURE_* defines to simplify the code. No functional change intended. Signed-off-by: Ketan Patil <ketanp@nvidia.com> Link: https://patch.msgid.link/20260903182520.950555-2-ketanp@nvidia.com Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
4 daysdrm/i915/color: Add YUV buffer support on HDR planesChaitanya Kumar Borah
Add the INTEL_PLANE_CB_CSC_FF (fixed function CSC) color block as the first stage for the HDR planes. This enables YUV-to-RGB color space conversion on HDR planes via the color pipeline. Also in icl_program_input_csc(), account for the color pipeline programming, in addition to FB format. v2: - Increase MAX_COLOROP to 5 (Sashiko) Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Link: https://patch.msgid.link/20260902075417.656673-10-chaitanya.kumar.borah@intel.com
4 daysdrm/i915/color: Add color pipeline support for SDR planesChaitanya Kumar Borah
Now that everything is in place expose the SDR plane color pipeline to user-space. Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Link: https://patch.msgid.link/20260902075417.656673-9-chaitanya.kumar.borah@intel.com
4 daysdrm/i915/color: Program Plane Post CSC registers for SDR planesPranay Samala
Implement plane post-CSC LUT support for SDR planes. v2: - Restructure loop to match HDR function pattern Assisted-by: Claude:claude-opus-4.6 Signed-off-by: Pranay Samala <pranay.samala@intel.com> Co-developed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Link: https://patch.msgid.link/20260902075417.656673-8-chaitanya.kumar.borah@intel.com
4 daysdrm/i915/color: Extract HDR post-CSC LUT programming to helper functionPranay Samala
Move HDR plane post-CSC LUT programming to improve code organization. While at it, remove the segment 0 index register writes as it is not currently programmed. Signed-off-by: Pranay Samala <pranay.samala@intel.com> Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Link: https://patch.msgid.link/20260902075417.656673-7-chaitanya.kumar.borah@intel.com
4 daysdrm/i915/color: Add support for 1D LUT in SDR planesChaitanya Kumar Borah
Extend the SDR plane color pipeline to post-CSC 1D LUT block. v2: - In preparation of a simple pipeline [YUV Full/Limited -> RGB] -> [1D LUT] Drop pre-CSC LUT from the pipeline as it has no use in a YUV -> RGB pipeline. This makes the pipeline simple since the block lies between the YUV range correct block and Fixed function CSC. It can be added back when [RGB709 -> RGB2020] capability is added. Then it can be used for linearization. Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Link: https://patch.msgid.link/20260902075417.656673-6-chaitanya.kumar.borah@intel.com
4 daysdrm/i915/display: Program CSC on SDR planes based on Fixed Matrix ColoropChaitanya Kumar Borah
When a color pipeline is active, program the SDR plane fixed-function CSC based on the Fixed Matrix Colorop's state. Re-use the existing plane state variables for color_range and color_encoding. Track the bypass state explicitly as a boolean since bypass is managed separately from the FIXED_MATRIX enum value in the colorop framework. Keep the programming based on color_encoding/color_range legacy properties intact. Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Link: https://patch.msgid.link/20260902075417.656673-5-chaitanya.kumar.borah@intel.com
4 daysdrm/i915/display: simplify glk_plane_color_ctl_input_cscChaitanya Kumar Borah
Add early return for non-YUV formats and hoist the duplicated color_range check out of the if/else branches. No functional change. Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Link: https://patch.msgid.link/20260902075417.656673-4-chaitanya.kumar.borah@intel.com
4 daysdrm/i915/display: extract glk_plane_color_ctl_input_csc helperChaitanya Kumar Borah
Extract the input CSC and YUV range correction logic from glk_plane_color_ctl() into a dedicated glk_plane_color_ctl_input_csc() helper. No functional change. Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Link: https://patch.msgid.link/20260902075417.656673-3-chaitanya.kumar.borah@intel.com
4 daysdrm/i915/color: Add CSC on SDR plane color pipelineChaitanya Kumar Borah
Add the fixed-function CSC block to color pipeline in SDR planes as a DRM_COLOROP_FIXED_MATRIX colorop. v2: - s/DRM_COLOROP_FM_YCBCR2020_FULL_RGB_NC/ DRM_COLOROP_FM_YCBCR2020_NC_FULL_RGB - Inline icl_is_hdr_plane() instead of storing in local variable v3: - In preparation of a simple pipeline [YUV Full/Limited -> RGB] Make the Fixed Matrix ColorOp support Limited Range enums (DRM_COLOROP_FM_YCBCRXXX_LIMITED_RGB) too. - Therefore s/sdr_plane_pipeline/sdr_plane_yuv_pipeline Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Link: https://patch.msgid.link/20260902075417.656673-2-chaitanya.kumar.borah@intel.com
4 daysata: sata_inic162x: remove dangerous broken driverEthan Nelson-Moore
The sata_inic162x driver was labeled as "very experimental" in commit bb9696192826 ("libata: make it clear that sata_inic162x is experimental") due to data corruption issues, but not marked as broken. Since then, no changes have been made to it that could fix these issues. Since the driver was not marked as broken, and the message about potential data corruption is only visible in the code and dmesg, it is possible that someone could enable the driver without realizing its potential for data corruption. Remove the driver to protect users' data. Fixes: 1fd7a697a37b ("sata_inic162x: finally, driver for initio 162x SATA controllers, take #2") Cc: stable@vger.kernel.org Signed-off-by: Ethan Nelson-Moore <enelsonmoore@gmail.com> Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Link: https://lore.kernel.org/r/20260915014714.41274-1-enelsonmoore@gmail.com Signed-off-by: Niklas Cassel <cassel@kernel.org>
4 daysphy: qualcomm: qmp-combo: Add preliminary USB4 supportKonrad Dybcio
Some Combo PHYs (so far only on SC8280XP, X1E80100 and Glymur), come in a flavor called USB43DP, which as the name implies, features USB4, USB3 and DP signal processing capabilities. In that architecture, USB3 and USB4 PHYs share the same USB_PLL while featuring separate logic spaces. The DP part is roughly the same as on the instances without USB4. The USB4 and USB3/DP operation modes of the PHY are mutually exclusive. Only one USB protocol (and flavor of pipe clock) can be active at a given moment (not to be confused with USB3 not being able to be tunneled as USB4 packets - that of course remains possible). The DP PLL is still used for clocking tunneled DP links. It may be turned off to save power when no tunnels are active, but that's left as a TODO item for now. Due to the nature of USB4, the Type-C handling happens entirely inside the Host Router, and as such the QMPPHY's mux_set() function is nullified for the period when USB4 PHY remains active. This is strictly necessary, as the Host Router driver is going to exercise manual control over the USB4 PHY's power state, which is needed by the suspend and resume flows. Failure to control that synchronously with other parts of the code results in a SoC crash by unlocked access. Because of that, a new struct phy is spawned to expose the USB4 mode, along with a .set_mode callback to allow toggling between USB4 and TBT3 submodes. Thunderbolt 3, having a number of differences vs USB4, requires a couple specific overrides, pertaining to electrical characteristics, which are easily accommodated for. Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://patch.msgid.link/20260908-topic-usb4phy-v5-3-73aac69578ef@oss.qualcomm.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: starfive: jh7110-dphy: fail init when the PLL does not lockPengpeng Hou
stf_dphy_hw_reset() polls the DPHY PLL unlock bit when bringing the PHY out of reset, but only logs a timeout. stf_dphy_init() then continues and returns success even though the PHY lock condition was not observed. Return the poll error from the reset helper and propagate it from the PHY init path. Also make the timeout message describe the failed lock condition. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://patch.msgid.link/20260624143911.58472-1-pengpeng@iscas.ac.cn Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: samsung: usbdrd: propagate GS101 PIPE3 lock failuresPengpeng Hou
The GS101 PIPE3 initialization checks the PMA PLL lock and then checks the CDR lock. The PLL helper returns an error, but the GS101 PIPE3 init path dropped that result. The CDR helper only logged a timeout. PHY initialization could therefore still return success after either the PLL or the selected receive lane had not locked. Make the in-file SoC-specific phy_init hook return an int so helpers with real failure results can propagate them through the existing PHY init paths. Keep the register-only helpers returning success and use the new return path to report the GS101 CDR wait failure. Other SoC helper paths keep their previous success behavior. Fixes: 32267c29bc7d ("phy: exynos5-usbdrd: support Exynos USBDRD 3.1 combo phy (HS & SS)") Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://patch.msgid.link/20260623135349.42739-1-pengpeng@iscas.ac.cn Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: broadcom: brcm-usb: unwind late probe failuresPengpeng Hou
brcm_usb_phy_probe() registers a PM notifier and may create a sysfs group before registering the OF PHY provider. If provider registration fails, probe returns the error with those resources still active. Track which optional resources were installed and remove them on the late provider-registration failure path. Use the same state in remove() so cleanup matches probe progress. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Reviewed-by: Justin Chen <justin.chen@broadcom.com> Link: https://patch.msgid.link/20260615070123.51155-1-pengpeng@iscas.ac.cn Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: apple: atc: remove stale kernel-doc for removed struct membersRosen Penev
The @sw and @mux members were never present in struct apple_atcphy, causing kernel-doc warnings. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev <rosenp@gmail.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://patch.msgid.link/20260909220810.52310-1-rosenp@gmail.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: cadence: Sierra: Do not modify register when getting parent clockGregory CLEMENT
The get_parent() callback for the PLL_CMNLC1 clock was incorrectly writing to the register while determining the parent clock index. This unintended register access forces the PHY back into training mode. If the PHY is already configured, this unexpected change prevents it from exiting training mode. Remove the register write operation to ensure the PHY remains stable during the get_parent() callback. Fixes: da08aab940092 ("phy: cadence: Sierra: Fix to get correct parent for mux clocks") Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/20260306-fix_sierra_get_parent-v2-1-cafe89ee5382@bootlin.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: uniphier-usb3: no devm for nvmem_cell_getRosen Penev
There is absolutely no reason to extend the lifetime of nvmem_cell_get to after removal of the driver. Use and free right after use. Signed-off-by: Rosen Penev <rosenp@gmail.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Reviewed-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Link: https://patch.msgid.link/20260304041602.7539-1-rosenp@gmail.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: hisilicon: hi3670: Fix OF node and device reference leaksHaotian Zhang
hi3670_pcie_get_resources_from_pcie() leaks two references: 1) The OF node returned by of_get_child_by_name() is never released. 2) The device returned by bus_find_device_by_of_node() is never put. Fix both leaks by calling of_node_put() right after bus_find_device_by_of_node(), and put_device() after dev_get_regmap() when the temporary pcie_dev reference is no longer needed. Fixes: 73075011ffff ("phy: HiSilicon: Add driver for Kirin 970 PCIe PHY") Suggested-by: Vladimir Oltean <olteanv@gmail.com> Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://patch.msgid.link/20260219163843.1571-1-vulab@iscas.ac.cn Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: qcom: qmp: Fix alignment in pcs-v8_50 register headerShawn Guo
Fix up the whitespace so all offsets align. No functional change. Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://patch.msgid.link/20260910011500.659353-1-shengchao.guo@oss.qualcomm.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: qcom: qmp-pcie: Add QMP PCIe PHY support for ShikraSushrut Shree Trivedi
Add QMP PCIe PHY Gen2x1 support. Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://patch.msgid.link/20260831-shikra-upstream-v2-4-406661d75afa@oss.qualcomm.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: phy-mtk-dp: Add support for MT8196 eDP PHYAngeloGioacchino Del Regno
The MT8196 SoC features an updated PHY IP compared to the older ones, and there is one that is specific to Embedded DisplayPort. Add support for the eDP PHY found in the MediaTek MT8196 SoC and all of its variants. Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://patch.msgid.link/20260910092038.48291-13-angelogioacchino.delregno@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: phy-mtk-dp: Add PHYD Lane EN register mask to SoC dataAngeloGioacchino Del Regno
In preparation for adding support for the eDP PHY found in newer SoCs, transfer the register mask for PHYD_TX_LN_EN to SoC specific data. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://patch.msgid.link/20260910092038.48291-12-angelogioacchino.delregno@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: phy-mtk-dp: Add bitrate register val definitions to SoC dataAngeloGioacchino Del Regno
In preparation for adding support for the eDP PHY found in newer SoCs, transfer the bitrate register value definitions to SoC specific data. Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://patch.msgid.link/20260910092038.48291-11-angelogioacchino.delregno@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: phy-mtk-dp: Rewrite and document default driving param macrosAngeloGioacchino Del Regno
Use FIELD_PREP_CONST and add nicer definitions/macros to build the default driving parameters for the PHY and, while at it, also add comments explaining what they are supposed to set in the PHY. Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://patch.msgid.link/20260910092038.48291-10-angelogioacchino.delregno@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: phy-mtk-dp: Add support for digital and analog calibrationAngeloGioacchino Del Regno
Add support for reading the calibration values from eFuse: if present, write those - otherwise, rely on the defaults from SoC-specific data. This also adds support for writing the calibration values for the analog part of the PHY. Note that before this change, only default hardcoded calibration values were supported for the digital driving parameters. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://patch.msgid.link/20260910092038.48291-9-angelogioacchino.delregno@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: phy-mtk-dp: Support setting volt swing and preemphasis valuesAngeloGioacchino Del Regno
Add support for honoring the set_voltages request to set the voltage swing and preemphasis values in the .configure() callback. For proper hardware cleanup, reset both in the .reset() callback. Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://patch.msgid.link/20260910092038.48291-8-angelogioacchino.delregno@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: phy-mtk-dp: Support set_lanes in configure and properly cleanupAngeloGioacchino Del Regno
Add support for enabling a specifically requested number of lanes in the .configure() callback and disable all lanes in power off and reset callbacks for proper hardware cleanup. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://patch.msgid.link/20260910092038.48291-7-angelogioacchino.delregno@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: phy-mtk-dp: Implement power_on and power_off PHY callbacksAngeloGioacchino Del Regno
Add .power_on() and .power_off() callbacks to mtk_dp_phy_dev_ops to be able to call those with phy_power_on() and phy_power_off() API in the DisplayPort driver to be able to stop using all of those hardcoded register writes in that external driver. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://patch.msgid.link/20260910092038.48291-6-angelogioacchino.delregno@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
4 daysphy: phy-mtk-dp: Migrate register offsets to SoC specific pdataAngeloGioacchino Del Regno
In preparation for adding support for newer SoCs and for adding more capabilities to this driver in an efficient manner, migrate all of the hardcoded register offsets to SoC specific pdata and assign that for both DT and platform probing. While at it also cleanup writing the driving parameters to the PHY by iterating through all lanes with a loop instead: note that for that to happen the default 0/1/2 driving parameters were added, those are really just zero. Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://patch.msgid.link/20260910092038.48291-5-angelogioacchino.delregno@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>