From nobody Sun May 24 22:36:43 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5CFC21E4AF for ; Thu, 21 May 2026 00:37:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779323836; cv=none; b=ufuNY4tdmHf5/jxjg3t6EriGWZO8fcbzorNIjtXENcHEeTg8/5VEmJLzMOGwFuF91vIz7XmO9mv3AvUZgDDEsTY3rlXI3JlRWOCV+l5jIAMVzKnSKfDUymRxexQIMpUD0VpKHuP0zroVdrDHIcRoHEg2buLKY0RHVF6uIDB2hCc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779323836; c=relaxed/simple; bh=bENYEI93+kfAxffqfWequDJcPC9SYuAS3BBUWcNvBV4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uTnOPMxum7Kj5rwoz6IKHEh9nJuTSgkBvAq/L6llHBAl9fr24oJUrEgnijoeUL66hNQVwsSnT36q2DWb9+WHVKFgqUTXSoMbVwiBZCP7Gq7mojd/8QFkqg0Tjsxr0ee2qRkt/W/xQa4UkCmcZbrofD6m2hWSBvS+6Lr/I7wZe6k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=PGBK2bA8; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XxfuAwfF; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="PGBK2bA8"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XxfuAwfF" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64KIj0YK3084892 for ; Thu, 21 May 2026 00:37:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=Fdw4wGz0s7N X7rZlmQyXYCSIQlXchuQ2tG5rGljK0io=; b=PGBK2bA8MWsiAutAPM87yw4W7Ir 5m+2p23yoSDwzTi7LI4GgFR5OkME+NiTyJvGjpAKDVkpwmJRMXQi8gcK4tJnkrzO jUzAcKqkmKDbFZFsOADV4kxN655nok5LxZfyTikA7BQovndHJxqOoBujqCl5Tt92 KfxQ8sUPN8GzaQnf7Z5zecmSCgqkdEptILaMVsS08/Gp14N7qvXTWTqK/7Qw2IF4 dRyyTGB6B2FuCHiBZLX5yBROslF0DS51PI7VrawMFZjDrIzIiGHEbDVcRDh6jjb1 zGc07qAkXrFr3eHUI+J5SdTSviiVzPA+ZSxWT9qy0Htkx+Fcx0EdSm5+1SQ== Received: from mail-yw1-f197.google.com (mail-yw1-f197.google.com [209.85.128.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e9c7f2uee-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 21 May 2026 00:37:12 +0000 (GMT) Received: by mail-yw1-f197.google.com with SMTP id 00721157ae682-7bf14e33f72so75260957b3.3 for ; Wed, 20 May 2026 17:37:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779323832; x=1779928632; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Fdw4wGz0s7NX7rZlmQyXYCSIQlXchuQ2tG5rGljK0io=; b=XxfuAwfF3g4xKO7li1b714kA7c2pykbP4Cu/u5AQj1QC7nCEm/TjkP6t4qAS2+3qkk LDWcKnizHE9ZRVsLUELDehwMp3AwKJxzpA5mJjVozq/ObsRTaKhQhVmnRJ9bwWRhAEan gZQzwTvlFT2LDo+32q7ELKZoeYDksWGcc3wumVDHupO7Uk7vL97pO+fQmt8+q1oir+kq +or8MnvGNdUplzez7T+4RYAZ3MBKBg+ZInShlMFZSYjvv+bV8XP6sYirE8SZF6A1tKkD MGVj/FiImIsxEwAlv7/CU+WqGmr1tp+/gUrxackkCUd16+icP4wBQcs93bY5zt4YH/fV aCOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779323832; x=1779928632; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Fdw4wGz0s7NX7rZlmQyXYCSIQlXchuQ2tG5rGljK0io=; b=OZitEHSb2sVXUGaZ+TrhtyiTuZQ8d9rLYF60ZWS1HxRIYgsQU7cx329FnXpJ1RTRz+ Hgag+P2Y0snnoAXVkPoCiJASWaZezad1PVdffkHhtJSJCeH/ZhRcKk0UCultRNP4mMlu K0oU4Gh8RIkn3ryJTqlKujgObgjbgFHuXUU4zkfubRq2wRCQ8j+U1eGTI6h46V9EBk+c xXZxcqOLLLOvungdQ+a5TclXZWr1r1kJvoBVUcwXwrq6AQejZf0iAljcCilmwY6rHrAU OWl0p2cUNC2Yt2tT0GdXVZ0U2e6/CX0bk8WOsiylfOwy4O1/rVjhRtIINqrR0tovAMYe ZYvw== X-Forwarded-Encrypted: i=1; AFNElJ9K4k5BBPyfcJwg+RQUnRfpOxggnuWmMnFG9ihbVIlmiGffNywkgDat7tr24/UeqYhhkn9Iy3l8Lz3gut8=@vger.kernel.org X-Gm-Message-State: AOJu0YyxUG2qSCZoNPdw+cfEK+koTgC6cJCDtw0he/brUNdveYv8mVo6 zLxwxV/N+YxVZAhjRLK0c3s/M1GAQdNHspui3ftELy4zTBrsky1H2b3AbsYT/Jf8yKZ8WxthY7h oHwHUIZG7hsRZfTc1eBj2ErTMJB5+6fEH/g2h084H3XV4OSYQinXQimGPQpyKOpJeGgw= X-Gm-Gg: Acq92OG2nlntdqWfKA1H2/+LuxEzNvuFwrkXp5faWvLVqjY+cdWuXpkeuXlXV06WLFs fq5OjAx5PQqsFyZIAsB0fbX1QTQBkaEHod4ZgQ5nYk4/cDHcZ/XUCM8pF00W5O4hXncM6G8kZY5 k6HAmRcNSlexS6GCXJb597AHSbi0pi6ZWz909RFfn20SPVLanpbUsI3mNEmmERMPg8XjS5Np56F Yi3o0LPLa12S90EAmUkz2s0q4hxuDeZLYRfD3pp8kLRydWVqcB02x02cB2jVO9FDEtMh6J4mTTM JVT5aep3tkjdFLvH3j1SFsvzeQ3A/E3dqbtYF9ixLTyVghTW60/sOzDss5X7+HXztGui374JtXa TCP7f+e3B/nZXvKUfg3yUceH6myJi3M7e4XjAx9EuWlBTQo43MAexv7ODgt68k4b9l/6p4vau8K pZS5c/aEklQQxM1Cfq7sLhXsvlWQ== X-Received: by 2002:a05:690c:b8e:b0:7cf:d9bc:80af with SMTP id 00721157ae682-7d20c54bdfdmr7903327b3.30.1779323832407; Wed, 20 May 2026 17:37:12 -0700 (PDT) X-Received: by 2002:a05:690c:b8e:b0:7cf:d9bc:80af with SMTP id 00721157ae682-7d20c54bdfdmr7902977b3.30.1779323832015; Wed, 20 May 2026 17:37:12 -0700 (PDT) Received: from scottml-Latitude-7455 (107-198-5-8.lightspeed.irvnca.sbcglobal.net. [107.198.5.8]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7cc991c98d9sm60545717b3.10.2026.05.20.17.37.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 17:37:11 -0700 (PDT) From: Michael Scott To: linux-arm-msm@vger.kernel.org Cc: vkoul@kernel.org, neil.armstrong@linaro.org, dmitry.baryshkov@oss.qualcomm.com, wesley.cheng@oss.qualcomm.com, abelvesa@kernel.org, faisal.hassan@oss.qualcomm.com, linux-phy@lists.infradead.org, andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, val@packett.cool, bryan.odonoghue@linaro.org, laurentiu.tudor1@dell.com, alex.vinarskis@gmail.com, linux-kernel@vger.kernel.org, Michael Scott Subject: [PATCH 1/4] phy: qcom: qmp-combo: skip USB power_off/exit after device teardown Date: Wed, 20 May 2026 17:36:12 -0700 Message-ID: <20260521003615.1260844-2-mike.scott@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260521003615.1260844-1-mike.scott@oss.qualcomm.com> References: <20260521003615.1260844-1-mike.scott@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=c/ibhx9l c=1 sm=1 tr=0 ts=6a0e53b8 cx=c_pps a=0mLRTIufkjop4KoA/9S1MA==:117 a=cdagev08qavQYXHyx3V8vg==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=EvQFHbMspfJCUfrvVzMA:9 a=WgItmB6HBUc_1uVUp3mg:22 X-Proofpoint-GUID: 0r9SNOnHkqwxlTqmxOmIU81wCBK1XBlj X-Proofpoint-ORIG-GUID: 0r9SNOnHkqwxlTqmxOmIU81wCBK1XBlj X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDAwMyBTYWx0ZWRfX5F7Djze3TULB ojM9lpa9xataiSxEYcD3J/r0Y7cuG99BZS49QKgvKvTUFHqpkMsLWX7s8VAZtiaK3LbktwoH9lG R8v3ICugThTt0MKUvf6LdZbPmMsz0T4tW9S2Gkwrs4Px0W16jhx5K0W8nyAE6u2d4wREj8iwvQq fjJy+8yAkfCmiIxcLNZgOIDFdGQtCR/FZLqbQZPYKWotbSaeipWaa5DvRJTm7TE2CNU8mHxDLER nwIyfZwri9rjNe5NKEyyYrD8nemQ3k+jAVgAQ1194g8ROFSbRIUANSmBMB86+DRNONvxwN0YSh7 WLxD3E35swZVTu3Oi4zciX0dgsflYD4Ms0OfR3Lpm1tjqC8rY38exPG/HTtRnIChtOE/RHcEyKY ZBqxuP4WxABUEMpJ42QEMi/AyWjcXt1LxM9Emg+8vpRf6Wq2/zHJlArgt42isiOdLV17f9UXjqm +86k6lNG1xMNkGdEqeQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-20_03,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 priorityscore=1501 phishscore=0 bulkscore=0 clxscore=1011 malwarescore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210003 Content-Type: text/plain; charset="utf-8" qmp_combo_usb_power_off() is reachable from an external consumer (notably dwc3 via phy_exit() during driver unbind) after this device's backing resources have already been released along a separate teardown chain. The dereference of qmp->pcs (whose ioremap mapping has been freed by devm cleanup) then takes a level-3 translation fault and oopses. Easily reproducible during testing of USB-C role-switch enablement on Dell Latitude 7455 (X1E80100), by writing "none" to a USB-C DWC3's usb_role_switch role attribute, e.g. echo none > /sys/class/usb_role/a800000.usb-role-switch/role which triggers the chain: Unable to handle kernel paging request at virtual address ffff8000876c5400 pc : qmp_combo_usb_power_off.isra.0+0x58/0x470 [phy_qcom_qmp_combo] Call trace: qmp_combo_usb_power_off+0x58/0x470 [phy_qcom_qmp_combo] qmp_combo_usb_exit+0x38/0x90 [phy_qcom_qmp_combo] phy_exit dwc3_phy_exit [dwc3] dwc3_core_remove [dwc3] dwc3_remove [dwc3] platform_remove device_release_driver_internal device_driver_detach unbind_store sysfs_kf_write vfs_write ksys_write __arm64_sys_write el0_svc Two WARNs precede the oops from the same teardown chain, confirming the resource ordering: WARNING: drivers/clk/clk.c:4494 at clk_nodrv_disable_unprepare+0x8/0x18 WARNING: drivers/regulator/core.c:2657 at _regulator_put+0x84/0x98 i.e. the pipe clock provider has been unregistered and the regulators released before qmp_combo_usb_power_off() runs. The proper long-term fix is a teardown-ordering rework so the QMP PHY's backing resources outlive any consumer that may still call its phy_ops. Pending that, guard the power_off/exit paths with the existing usb_init_count balance so re-entry after teardown does not oops. usb_init_count tracks the balance of usb_power_on/off; if it is zero we have either never powered on or have already powered off, and there is nothing to do. The same guard is added to qmp_combo_usb_exit() since it is the entry point used by external consumers via phy_exit(). Signed-off-by: Michael Scott --- drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualco= mm/phy-qcom-qmp-combo.c index 93f1aa10d400..4057583c0cfe 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c @@ -3922,6 +3922,17 @@ static int qmp_combo_usb_power_off(struct phy *phy) struct qmp_combo *qmp =3D phy_get_drvdata(phy); const struct qmp_phy_cfg *cfg =3D qmp->cfg; =20 + /* + * Reachable as ->exit from external consumers (notably dwc3) after + * this device's backing resources have already been released along + * a teardown chain. Refuse to touch registers in that case. + */ + if (!qmp->usb_init_count) { + dev_dbg(qmp->dev, "%s: PHY not powered on, skipping\n", + __func__); + return 0; + } + clk_disable_unprepare(qmp->pipe_clk); =20 /* PHY reset */ @@ -3966,6 +3977,17 @@ static int qmp_combo_usb_exit(struct phy *phy) struct qmp_combo *qmp =3D phy_get_drvdata(phy); int ret; =20 + /* + * See qmp_combo_usb_power_off(): an external consumer may call + * phy_exit() after the QMP device's resources have been torn + * down. usb_init_count tracks usb_init/usb_exit balance. + */ + if (!qmp->usb_init_count) { + dev_dbg(qmp->dev, "%s: PHY not initialised, skipping\n", + __func__); + return 0; + } + mutex_lock(&qmp->phy_mutex); ret =3D qmp_combo_usb_power_off(phy); if (ret) --=20 2.53.0 From nobody Sun May 24 22:36:43 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2871A225788 for ; Thu, 21 May 2026 00:37:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779323843; cv=none; b=HFr8NDIWK2194CDDaBW2RA0qwvrA73yQ2D+DlR8psltTrR39k359OUHAucb4QMgVTkMh9vavyCsK4LruvfQ8cIL3NW1S90YBEwoEt432lfhhjdIXRAjZoDOh+CWjJL4UsVvmWZnnx+teNHdnRcOBA9G1/pKlYFpmpMb6FCrN7es= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779323843; c=relaxed/simple; bh=8YDN6rDDgfUMH3s3D+1m6FuPIYASc6HFvPaXsSXVgQs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bTtbopiyk/UK3EQJmS9PxVq1HWpxNWxNmBb6LKWnssDoocqx90MCdzFftRezIcYhUlae7wi0/zC+RtIJk09AvUmnQ1pZsnZyn1rXG12kq8j1FZvHAzKhAXvCJhI/L/2eam0rb6VXuxa5O5zTHKT7X/qmvf4s2CBE8ittEoLUDvQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=eXz3QRKZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=L+bkTokD; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="eXz3QRKZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="L+bkTokD" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64KMBONf119131 for ; Thu, 21 May 2026 00:37:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=/53XCL17jN3 51K4aaPlGvru/vziGTGGtsn9yhfrv7hk=; b=eXz3QRKZIFXaBD89KyrgH/U9+4j wJVHWfbLEEOJ0YXXbIM3w4KqIrR8Y3bsudCd/ytYzDSNvoQGPIQCK6EwALgkENon t0SmaEztdhd3iuBUEqxC3fnzfrlNzcZFuCbdjiJJEShUk4WFKq/d7Fdvf2YGkXIb D9eIdo5v0IfmQ1JrS3RSeo/vpTAticWOSUlMfiJ4hHpkOkBQerW9XAkrXRX1JCFf J9QHkFV1OXBCNmz6D4FHDEVLDAiZXq4Ya25lYhSQxvRuTNVI8ZTk8E0tiZ+HtjM7 twJ7cawUdp1HsPu7NSKUea1N3HIt8OypVR+GQL9HwJAfgzixs2fRbT4wuCw== Received: from mail-yw1-f198.google.com (mail-yw1-f198.google.com [209.85.128.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e9ee8aca7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 21 May 2026 00:37:16 +0000 (GMT) Received: by mail-yw1-f198.google.com with SMTP id 00721157ae682-7bd49a2467eso109446607b3.2 for ; Wed, 20 May 2026 17:37:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779323836; x=1779928636; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/53XCL17jN351K4aaPlGvru/vziGTGGtsn9yhfrv7hk=; b=L+bkTokDrf6ocedPc4FtXnaLpOo92YrwcYI28mSg6IAnG3Hl5ml900F2pUmRpui7AY cMtA/Z3chvXl9o0fnDzKUh9bwaBgYPY1fAyeQwEleOVvBtCfyl42FlWM8tBJbTvoNVx5 Yb92q/Vqur4U1LDvWw4SCsSX3B9SBOaEsl1H6Ok9kzi3JVaodNLwfSUvVIeEeXh9XVrG Hjxrg5leZSMZoTV0lBLT2J/+/3pwRL4ONJSVOlNoq0pMAybXsh9AcaLxiWlzSCkkOsUB gCwhGZLe8ZPXMscJOcoJPVyEb8OC0koQdW3SmKfYRMjWXJw1pwqeuEWPBp3ojM7n6nIe OZaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779323836; x=1779928636; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/53XCL17jN351K4aaPlGvru/vziGTGGtsn9yhfrv7hk=; b=En0UMkMIet0AXq0mZFn24YfLx8cHgDMLVVOAJDNiW1Q3Zp2CfBke4N2wBUqxnawIsO GkNlpZivEpY+/ge9dtZWFzNz/eWmDhoR3oIAEm2+mwaEgW8BbKoKzaeiGSPEvRdTSCiv N/ZmnkliEiaOQpj0VVPT4LqKYCN6I1MAfIajcmDP/1fGcFe9tZ7HYzvMgAoOm2wCVjmK 9NH/NWkosU5RciGAvrKv0ZfZy9fOEmT8orBzyhLiAeAuF0RiMHPKzuHwiWQ14ET2WlPg 9NbLo9PfXKcNtH6fjfnZUPpnjNUFoWPdumMmcUA6OjLptGhH0XAUTyPwcBEObet3SeWr qLuw== X-Forwarded-Encrypted: i=1; AFNElJ80i2ltaTFdLMSWcjRcxLU1EjwrVW4ajg6NFhBPJKhDKJR3sFH5AhQE7DQCWfYw0xOUJsHbh3tL8rP3p/E=@vger.kernel.org X-Gm-Message-State: AOJu0YzKbazTxPvcMrzE192IU9BfB3Y0Ntcld0UlNfOBCyZk8g5QB/HW juOshW4WfJqxLIfOsL9CJDTC9nKMLZKlWrlfgnUK8O0IDqLQocbD9vof3TvShnhwCaL0Mu2QADJ RvONxT2+VVbYVsEtdziwol/flH0IHUZ/LGEXGqko6axiegI0MK9Oc/Yawx2JQIqWJYno= X-Gm-Gg: Acq92OGL4s6PLVtspVpav2naWUxFzeE0BZFmMAL11gyKMDhiJn6zlOFpLUSOTaMSlkh M7N0uxZf2gESIOaULVPWO7kAt37KQMNeISYlOr6DXYIagl6b7Le4d4kBnu66ECJEJEFzjTGwlOe ZlP4KDEmYhRJYmqOrQCuYrM0K46zl4CEUAMcKAanxmun3NqB10BQ6iS9DhLLeNHjMRAs8fGlUjA 393F66XxuXzn1R0mgZxc/fRXl9CvRdA+pFwYwYoBgXfOMqjafIzcVJx6RaOhUHp4jDCME71LVe1 VO46n4iPgCfx7EX+7QQEB75JkViIVHrmK4fVoAShOtrzAd18R9ORpfDS2UCVHzIKOZKyH/0F22a w1Xf8oRAzkALbvL04IDEotoeVfIIJo8acnh9c4SI+/K9Zn4hAtGQfI/985swUGPsBCCAQZbUyPr 9ixqao9RFG1AYZieE= X-Received: by 2002:a05:690c:6202:b0:79a:6249:a046 with SMTP id 00721157ae682-7d209cd3355mr7511187b3.9.1779323835775; Wed, 20 May 2026 17:37:15 -0700 (PDT) X-Received: by 2002:a05:690c:6202:b0:79a:6249:a046 with SMTP id 00721157ae682-7d209cd3355mr7510937b3.9.1779323835378; Wed, 20 May 2026 17:37:15 -0700 (PDT) Received: from scottml-Latitude-7455 (107-198-5-8.lightspeed.irvnca.sbcglobal.net. [107.198.5.8]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7cc991c98d9sm60545717b3.10.2026.05.20.17.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 17:37:14 -0700 (PDT) From: Michael Scott To: linux-arm-msm@vger.kernel.org Cc: vkoul@kernel.org, neil.armstrong@linaro.org, dmitry.baryshkov@oss.qualcomm.com, wesley.cheng@oss.qualcomm.com, abelvesa@kernel.org, faisal.hassan@oss.qualcomm.com, linux-phy@lists.infradead.org, andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, val@packett.cool, bryan.odonoghue@linaro.org, laurentiu.tudor1@dell.com, alex.vinarskis@gmail.com, linux-kernel@vger.kernel.org, Michael Scott Subject: [PATCH 2/4] phy: qcom: qmp-combo: track whether the cached typec_mux mode was committed to hardware Date: Wed, 20 May 2026 17:36:13 -0700 Message-ID: <20260521003615.1260844-3-mike.scott@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260521003615.1260844-1-mike.scott@oss.qualcomm.com> References: <20260521003615.1260844-1-mike.scott@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: cr2Dhh06_iM-5BMVvP-TvYerttuqMnSR X-Authority-Analysis: v=2.4 cv=e5k2j6p/ c=1 sm=1 tr=0 ts=6a0e53bc cx=c_pps a=g1v0Z557R90hA0UpD/5Yag==:117 a=cdagev08qavQYXHyx3V8vg==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=GhrnwN_qMCjkbgjgO0kA:9 a=+jEqtf1s3R9VXZ0wqowq2kgwd+I=:19 a=MFSWADHSvvjO3QEy5MdX:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDAwMyBTYWx0ZWRfX50HTQ5o0FWve HV1jnMoA3k3I3lBsS9XznA8cl0OuLOZy4SOJKmyNuAXHKzRkQhbs+j13V3JvGL/rIxBZE3CawRG KfJyJmYA63ReskZSv1etDie6xL3cGOidbatlLn8+64nM4pTRkicOkhoeZcLf2iVd/FdBsUY3Aml 9O3VNm8zafsxP2/xyMz0QfTvpzO6mykppdzwmHl2Ns8/cN3jk66f8rVw6di9oMERB9DfkhB5FGD 4xsqJtiXEN9Bbx0nyVzxm40b/VSagOwHFCwzqEcik0g5Y2uXEhrqsDA2tLPg3vBnYYqkfIszzAS Mn1lcPqVEy3gndcPnKdDZjpO6hcdzpE4LVET69hzzgC9KXGQp8KE2gbcmbGo/hY5vlOeCUaGvFq kKEtc0r6S9b/an/9eSg1oWWFzXzUNbipkoOMhxZplVAOsqxpg1kqw9ptnXGxNjgtZv2DLPC/KMe d4CT1Gr9X9xg+vKD/Jw== X-Proofpoint-GUID: cr2Dhh06_iM-5BMVvP-TvYerttuqMnSR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-20_03,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210003 Content-Type: text/plain; charset="utf-8" qmp_combo_typec_mux_set() updates qmp->qmpphy_mode (the cached state) unconditionally, but only reprograms hardware when qmp->init_count is non-zero. If pmic_glink_altmode (or any other typec_mux consumer) calls into the PHY before DWC3 has performed phy_init() -- a real ordering observed during testing of USB-C role-switch enablement on Snapdragon X (X1E80100) -- the cache transitions away from the probe default QMPPHY_MODE_USB3DP but the hardware is never touched. Subsequent calls (for example on partner detach, where TYPEC_STATE_SAFE also resolves to QMPPHY_MODE_USB3_ONLY in the !DP-SVID branch) then match the cached mode and the function bails out early with: qcom-qmp-combo-phy faXX000.phy: typec_mux_set: same qmpphy mode, bail out leaving the lane mux in whatever configuration it powered up in. On the Dell Latitude 7455 this manifests as the SS lanes being left in the default state when the first altmode notification arrives during DWC3 probe, with the function bailing out on every subsequent attach. Track separately whether the cached mode has actually been committed to hardware. The bail-out optimization is only safe when the cache truly reflects the hardware: - qmp_combo_typec_mux_set(): bail only when the cached mode matches and was committed; clear the committed flag whenever the cache is updated, set it again after a successful reprogram inside the init_count-guarded block. - qmp_combo_com_init(): set the committed flag at the end of a successful init, since com_init() programs registers from the cached qmpphy_mode. No behavioural change on platforms where typec_mux_set never fires before phy_init -- committed remains true through normal operation. Signed-off-by: Michael Scott --- drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 25 +++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualco= mm/phy-qcom-qmp-combo.c index 4057583c0cfe..9b6da783ce60 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c @@ -2295,6 +2295,7 @@ struct qmp_combo { struct mutex phy_mutex; int init_count; enum qmpphy_mode qmpphy_mode; + bool qmpphy_mode_committed; =20 struct phy *usb_phy; enum phy_mode phy_mode; @@ -3747,6 +3748,9 @@ static int qmp_combo_com_init(struct qmp_combo *qmp, = bool force) qphy_setbits(qmp->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL], SW_PWRDN); =20 + /* com_init() just programmed registers from qmp->qmpphy_mode. */ + qmp->qmpphy_mode_committed =3D true; + return 0; =20 err_assert_reset: @@ -4507,9 +4511,22 @@ static int qmp_combo_typec_mux_set(struct typec_mux_= dev *mux, struct typec_mux_s new_mode =3D QMPPHY_MODE_USB3_ONLY; } =20 + /* + * Fast-path bail only when the cached mode is also known to be + * committed to hardware. The cache may be ahead of the hardware + * if a typec_mux_set arrived while the PHY had not yet been + * initialised (init_count =3D=3D 0); in that case the cache update + * below was the only thing that ran, and we still need to drive + * the registers when the PHY does come up. + */ if (new_mode =3D=3D qmp->qmpphy_mode) { - dev_dbg(qmp->dev, "typec_mux_set: same qmpphy mode, bail out\n"); - return 0; + if (qmp->qmpphy_mode_committed) { + dev_dbg(qmp->dev, + "typec_mux_set: same qmpphy mode (committed), bail out\n"); + return 0; + } + dev_dbg(qmp->dev, + "typec_mux_set: same qmpphy mode but uncommitted; reprogramming\n"); } =20 if (qmp->qmpphy_mode !=3D QMPPHY_MODE_USB3_ONLY && qmp->dp_powered_on) { @@ -4521,6 +4538,7 @@ static int qmp_combo_typec_mux_set(struct typec_mux_d= ev *mux, struct typec_mux_s qmp->qmpphy_mode, new_mode); =20 qmp->qmpphy_mode =3D new_mode; + qmp->qmpphy_mode_committed =3D false; =20 if (qmp->init_count) { if (qmp->usb_init_count) @@ -4549,6 +4567,9 @@ static int qmp_combo_typec_mux_set(struct typec_mux_d= ev *mux, struct typec_mux_s if (qmp->dp_init_count) cfg->dp_aux_init(qmp); } + + /* Reprogram complete; cache now reflects hardware. */ + qmp->qmpphy_mode_committed =3D true; } =20 return 0; --=20 2.53.0 From nobody Sun May 24 22:36:43 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B8F13242D67 for ; Thu, 21 May 2026 00:37:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779323851; cv=none; b=U34c0PPA7L1D60jt+Zy/SJ7JqIoV2CSITfqg7lJ1m1ZX+1xafSI+9yRcYxVJUpXF+SRE1miQqbjW0/3v4yA64ojmyNPTzWm58rVIPtrqdY9nR+ZHGBaKIC6EMFh49x1i2ZfWk0/daWQxs7ijcag3MNS1mEU5anOVl9+PhLHzm78= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779323851; c=relaxed/simple; bh=uslzc7nmyiyHk64GKvcYr12UhsrifhwRpc28XFd675k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fK44vP5u8eWwUfNI5THFBD5tUf1cXzlqVUz5f8q+AsGDGZ/n3KQTsvXqeBcKsoY6pQ+LleqOqUc1kQ7zYrut2X4QQWRt+ffO0aN0SKXRUoUX3tqllkdk4Z/+LL8WENFxlelz6OfWMSSiN7GiE8VxICHQ4fPjTb9fdlKQ7afo/40= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=MJQzCC9u; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ka7xWfv0; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="MJQzCC9u"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ka7xWfv0" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64KKlYWg2157726 for ; Thu, 21 May 2026 00:37:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=ZitX75AVxgG uWGiVafC3GvCVVrQgyZQFWsUqIo6AsA4=; b=MJQzCC9uiqc8UeqSu6hBkDkzW8z vMpfXecaBT8O+Z2unJsqYd53WFdDNjf0yvPvSt2lc5Jc0cA7HS39EpnvHAYei+Vv ToRM8y06afkNoW9RQV+ckYvOPVOEaAVa/yK7BIDAhif6SREQyJqkCVfyBR0kPME2 UQX/it1lwZyEfXPRw86AGhmmiFs3wmR2inHWoNLhANr7UvNcFxUKYp2Hq+TEqUV6 h6XG63mCc4PlYqU6K6Z8X4EFR9VwgqJBShzFKgjOZ14r/dyrTZLuNUxzl/0wOXZA 9egAiuDYoWQYDFAJuSXuHaQR2C9opgL5+xjxO2Cxck62mRWK+YlZGTkUjIA== Received: from mail-yw1-f198.google.com (mail-yw1-f198.google.com [209.85.128.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e9ma40mqg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 21 May 2026 00:37:21 +0000 (GMT) Received: by mail-yw1-f198.google.com with SMTP id 00721157ae682-7cb345d0b3fso80291777b3.1 for ; Wed, 20 May 2026 17:37:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779323840; x=1779928640; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZitX75AVxgGuWGiVafC3GvCVVrQgyZQFWsUqIo6AsA4=; b=ka7xWfv0FAfyrpNAaqdCSRcMklpSnGvwAe6535N2U7TdcVAbqkUQNpb8g1S/ueu9WL VreJvfT4Kzcvvl6shiOf+4+9e5amTScKJIzYs7BHKTCdJMjd1xATfELperA6m04i+O+6 al1F3HY4W9ZDQCyi3IlEyEg5OeMggKg5ilo/plibXA+Jol3KdCksBBtw9Btj5mPSf0JG B7rnWunfW1cDBKZaBgAKxLMc5h+eFdH5EPM57N83zI3c63t/greSIM7Oq5T3WphAJvDt 4qIbJPQpOpK+zaUgr9L1jbUY6FN+dJLWcUqjCGvqqOjlDnXfHS77hIT/ECn0z2I1aKpN PcIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779323840; x=1779928640; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZitX75AVxgGuWGiVafC3GvCVVrQgyZQFWsUqIo6AsA4=; b=SBR5GrefOD0u3C81tnqbFc1uwCd7lutEJVbNlPj7foXhSOnj7kMr8+bUPyvvvZ6KFQ 7dreLMjEGaZ8Brk5oU1YUWcLPxEtPf2c+mDNbaA8GmXqZ1Iuxy9lk2TodJUKvrZjcRQN LkfcuMLIEqVxMWbH7sNCeyKVwUbo2vxL4MzQzZCZe0MEG0cHx56ovmkFcPNvisn4K06w vDbCsdg/xyXPi5dj49CIh8krNV4g9kbQRrgg1QjyN1frsyXFzrFNGsfgIFNKD5VS/iY9 ZG4IK3lIC8SvvlMZDR/ppFTFBT7oL7vQ+b6nnDmYeD5IVOTLyFjD2ByXiXvNEGScqcCW x9kg== X-Forwarded-Encrypted: i=1; AFNElJ8jfZd1kCPS/dVVuVLlpAU5zi12yRkxSo2VgNXfvlQKD+4HeEZDV0aSyHje0rSIvoT9UTWMsv5ckMltE50=@vger.kernel.org X-Gm-Message-State: AOJu0Yzer2b9giw0PhZHeSujmfU7uIAHDyCH0IgkXir49ATYXuRZcTft wVC2V0zUsCgadVA4djobMdJcZiNzwtddHSHVQ9iry4Nm2sEADOugh3tyJVTiqzdyn1d2j/wQbnb KvfGCmHQp1Fhh0bFkYmPspk5BJzujyUsgtyETeIvKy2QP0Z344/I9iYzkVcs5ypPAKwI= X-Gm-Gg: Acq92OFLkGldKAQADtFc+O1Tfy3oLSaNtV2izk1fEVT1GNVTTPP78qBGjNKxPgFVLIJ 6Pm+Sq69RH0RJNYCNg74ti3htgk6KQR9iOh22wzvXBGpds2AvwAV4Obt7lmgp0Ow+lmTB89JGqn vsbGQIMj/rxI1RGFAjQJIGsGEuMm/iU0NfvouZWl5UP33dMHtYles1/0jlje7VzsxJPkKtVRDXU qoCrGlBNXt6sABwU39oU0OEskAaE57q4AlXvhUXzN6j/hmbtWuxAeX0ifQZjcU8F5rBHKLQs8ee 4j+8tmmU0OYMsPTtm552xvPUXMKbMaVsNk0eQteNOzvQx0sv+yZoJSiO9n2J7dNdmkGub+yUgFL OGl2XysIBoG2jdN37w414BEqambcJeEjCumHljEybO3u9S5fjwI/W97/0fzYUMM2fdyIM8fD2lu XThZYsOfT+yd6qItk= X-Received: by 2002:a05:690c:e07:b0:7bd:98cc:a675 with SMTP id 00721157ae682-7d20dcf95efmr7291797b3.47.1779323840335; Wed, 20 May 2026 17:37:20 -0700 (PDT) X-Received: by 2002:a05:690c:e07:b0:7bd:98cc:a675 with SMTP id 00721157ae682-7d20dcf95efmr7291487b3.47.1779323839867; Wed, 20 May 2026 17:37:19 -0700 (PDT) Received: from scottml-Latitude-7455 (107-198-5-8.lightspeed.irvnca.sbcglobal.net. [107.198.5.8]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7cc991c98d9sm60545717b3.10.2026.05.20.17.37.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 17:37:19 -0700 (PDT) From: Michael Scott To: linux-arm-msm@vger.kernel.org Cc: vkoul@kernel.org, neil.armstrong@linaro.org, dmitry.baryshkov@oss.qualcomm.com, wesley.cheng@oss.qualcomm.com, abelvesa@kernel.org, faisal.hassan@oss.qualcomm.com, linux-phy@lists.infradead.org, andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, val@packett.cool, bryan.odonoghue@linaro.org, laurentiu.tudor1@dell.com, alex.vinarskis@gmail.com, linux-kernel@vger.kernel.org, Michael Scott , stable@vger.kernel.org Subject: [PATCH 3/4] arm64: dts: qcom: x1-dell-thena: mark l12b and l15b always-on Date: Wed, 20 May 2026 17:36:14 -0700 Message-ID: <20260521003615.1260844-4-mike.scott@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260521003615.1260844-1-mike.scott@oss.qualcomm.com> References: <20260521003615.1260844-1-mike.scott@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=K9kS2SWI c=1 sm=1 tr=0 ts=6a0e53c1 cx=c_pps a=g1v0Z557R90hA0UpD/5Yag==:117 a=cdagev08qavQYXHyx3V8vg==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=CbK1FIr4-MOfYfEwsVEA:9 a=MFSWADHSvvjO3QEy5MdX:22 X-Proofpoint-GUID: BWkI-1aA29XOt9b6rTyznfvE9RTDCgHL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDAwMyBTYWx0ZWRfX+P3rbkI+5Zeq MtJqrpnS0GWY5Ln4am3kqi8xHU31HKseWL7C6ukqHo0RxgLT+cmCH2cXxvy7qrBZbkIKUtYnkn2 OF99gR91A+geZL25e+ei9ZsKDvWUva92HcSdGc7/hxLFUgwdLlGjV7Vr1aMxUJGnz5az1Ht00h5 7x4NHX6ZUi3x9nXLzkYbmqLiL5zXNPrwVDbfryrrMJswIXWY3SH9jldoxOEvBidWrAOyo6IMa3r xuLLVIPyQtbq/tC4RaM8R4ckeNghaTk9CgKVYW5e3l2LuVPpRZTqab8EBQTc3q+xlfV11E3Qwhl ZKlSr3nlKOAQ4Pe51eKsR07rpAELvmOwG2ivNltBLRWQgTCSWC9UasKMPTq34osg11x4O8VT889 UQ5bHsjTb5tOtzRVyHqJc84XP26c/vBYg+1kyNIYL0feEcTUbjwa55klTfZAE53W7g/yLKPIcf5 0ktXRGy9ppbQ7h6TFTA== X-Proofpoint-ORIG-GUID: BWkI-1aA29XOt9b6rTyznfvE9RTDCgHL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-20_03,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210003 Content-Type: text/plain; charset="utf-8" The l12b and l15b supplies are used by components that are not (fully) described (and some never will be) and must never be disabled. Mark the regulators as always-on to prevent them from being disabled, for example, when consumers probe defer or suspend. Note that these supplies currently have no consumers described in mainline for dell-thena beyond the audio codec (vdd-buck/vdd-rxtx/ vdd-io on wcd938x), which can release them when the codec goes idle. The board-level gpio-fixed regulators that feed the Type-C retimer's VDDIO and other rails are not described with a vin-supply link, so the kernel cannot keep their parent LDOs alive on its own. This mirrors the same change Johan Hovold applied to every other X1E80100 board in a March 2025 series; commit 63169c07d740 ("arm64: dts: qcom: x1e80100-dell-xps13-9345: mark l12b and l15b always-on") is representative. The dell-thena board file was introduced four months later and did not inherit that change; this patch closes the gap. Fixes: e7733b42111c ("arm64: dts: qcom: Add support for Dell Inspiron 7441 = / Latitude 7455") Cc: stable@vger.kernel.org Signed-off-by: Michael Scott --- arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi b/arch/arm64/boot/= dts/qcom/x1-dell-thena.dtsi index 96e7a18366dc..d93b704872b5 100644 --- a/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi +++ b/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi @@ -589,6 +589,7 @@ vreg_l12b_1p2: ldo12 { regulator-min-microvolt =3D <1200000>; regulator-max-microvolt =3D <1200000>; regulator-initial-mode =3D ; + regulator-always-on; }; =20 vreg_l13b_3p0: ldo13 { @@ -610,6 +611,7 @@ vreg_l15b_1p8: ldo15 { regulator-min-microvolt =3D <1800000>; regulator-max-microvolt =3D <1800000>; regulator-initial-mode =3D ; + regulator-always-on; }; }; =20 --=20 2.53.0 From nobody Sun May 24 22:36:43 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E01BC27E05E for ; Thu, 21 May 2026 00:37:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779323855; cv=none; b=ZLiEMBRi4Ita+MNht85X8zXiQQ6PjvemN+cRnNUEkCGUvkThrJhVr8HSij1NkQJZJ7H0Y/lYqFaTYlvu8PvlJyDufHKKW5gwL4V38rpLVk62RgHg0uADSCjT6eeZOq/rdfOEzVIkyu1CPg+tUqfuK0+OsixaBvocu7t2NcKcojI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779323855; c=relaxed/simple; bh=QzV+b76g2RwQyA2gVSUbPmh/ADCftQO+Jl1AkmifVoM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=BpCypVqRHQURgyAhxxav8b5dKMom6JXrHuw7y7ifHrbqQ1URz5i/bXH0gPuElE5XY1+AotexDbJfq+l+/9SsJ2VBqZEPPmxLEfaZDpeQBpkjHRs5e+MXc2HusYWlwSaQoIdCIC4deF6dS0NDTtAon4kZiTlqT3dzpB8htN7UWaE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ZTAOCRBM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iwYb9qdd; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ZTAOCRBM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iwYb9qdd" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64KM0fFl1798612 for ; Thu, 21 May 2026 00:37:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ndtMzgmuY+0pFl9mHos/KMSkAJpI2bJq6DS/PiSdLZw=; b=ZTAOCRBM27immPp6 oJq01245epfnbyeN788qu8Pw7+bIZRkhdG3VvZj+4TZxjvdrM9yivnrYOEOaQzC0 t+mBE35auXrggiyT7PigQBLIKotocgzzaMLOyIntUpLT+pKhxhkCT+xlTwHEm95i kIENQt9H8NkQURBZ9nz783rUnQMps/JnJRQEI/KM+sGCbal6WY2TmcbdYfWyZo9M fhCG3qgkjjtQOfckV0Yi9sMa15Grd9zkNBjmzl7jzBmKVOiveFgEBauTDC0ioVaE 5x8yUvHrt0D8xrhEEOE8fhRRNPqQw2YMOQm8v0Td13cONUza0oAdqkyHOlc1csRN xoRMZA== Received: from mail-yx1-f71.google.com (mail-yx1-f71.google.com [74.125.224.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e9dxu2cgt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 21 May 2026 00:37:24 +0000 (GMT) Received: by mail-yx1-f71.google.com with SMTP id 956f58d0204a3-65c21049da9so10241018d50.1 for ; Wed, 20 May 2026 17:37:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779323843; x=1779928643; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ndtMzgmuY+0pFl9mHos/KMSkAJpI2bJq6DS/PiSdLZw=; b=iwYb9qddRm0/w4nVgN59Xyl61X207ywTm8fjP6dMbwU2l1CwMytMGGqMurEqlN+5ix lO0XYS/49sqLTGZMmT9BiwYIg/DvcWdX/pyChddhZ3VFAW+PBB2qAvB0MqVCexNBpK9w Uh7LbS5JMmVEwPUOTb7idM4cB0FWTASP30NxClrcWlfoTETvDm73ID/z/uLH4/ADcWY6 KYYbXdypTTxFCd/LMh3qGjOA8sVX3Cukg/3Xmq3TP1Uxvf+864FwGbHgMKnxVESYFPGA iFvd88kPysvACYA70xINM35/Li6V1n+hjbWDOVvXc1djG4X3f8/Vp6m2YnfJVorKpO2d kF9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779323843; x=1779928643; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ndtMzgmuY+0pFl9mHos/KMSkAJpI2bJq6DS/PiSdLZw=; b=hJWjy4uTBZMvZWfV3rtsv8Zjw68xeyFTxayU+d2afbfSYTKTIIdsCoBdheJEUTDeZD +AlwfqcJntbbK4YpS0O/b49SCck7ZGOxp8Eme7Dvxf6oTlhcBt1Rwu7mQl3UKnQmVxDl hp7fy3YX732/2aDB4IHlHAseqHucCavuJqnF+/QJT767BeGIPvKn9meilYQYxrCQO+Mx Gkx283lOLce9zONypERku2kpfXiDkIeML/iFJf+JoxAUrTnnt431WaZtgBBRQOnLtybR OOgLKirbF71U8IhZEXSPNThU5u1mehtidmQXUU58HlJ68gNDdulcL7+NCDp23BTfSIxl oHJg== X-Forwarded-Encrypted: i=1; AFNElJ9UXxNXOV3YJicDG+T91fX1B84AxWrkS3zgS6iCqQ7DoY3rsRdjxeV58xbU5xxRcFBzJbIhbgiOu4gdUDE=@vger.kernel.org X-Gm-Message-State: AOJu0Yxxgc7WnRG5aMGjK9FqtIL2bY5t/4SWL/zfRZof6XOAvHmphX8Y t33lJ4D0fyxVpc1k6aPy82WkcbPgGWCLbPudTYxYaIbUcqtZynC4RnRTqxet7Gftm03sP4zM+kT gvQ47Xf4ysB1Fg2sjEnyVxuuV+d3QO57yk9/iC0lrqAzGU/ekUruwhVzLk38FiBNtTD4= X-Gm-Gg: Acq92OFMuvwpSWCjuLbzZ8L1SeKiDFoeLvFwHF3K2G5WFQQFlUPtDNJlxVUAARzL1Tx WaWA18NPODzZOi6VQ/PjaQ2tgls3fu/WDMMr6KnV3dlrDLPSmgZGdPYNT7YHQtRX+sGHerMTJvl w5POxZ/bT62OYAr8SPf0bq0Us8u38QfG+cqT2zQ67U585oONi2SERgDlyImq5X0gX8kpGUxN2CQ tGX3ODjEUV/bV0RRRPUmcMJz9tGykY9eAlcjV/nYpn00dXUdfaNaO0kshS2s4NLZC6yAxRegSJb /vzldMH/46WmnWKzCr+4+raCmJoJ5VNbeVLE6rHjpHT3mrwKT3FinpNpgdiq5xfEwUyGez7Mn+/ jCvNHvYSDZ9aW4BU910wpssSn9fsYDeC1yVCqMsTJhA7fPg/0tVtcpoXAi0JMFlXOwVKKc971HS xyn+y88kOEJGIuNS8= X-Received: by 2002:a05:690c:6c07:b0:7d0:ef8:6898 with SMTP id 00721157ae682-7d20a6b0832mr8730237b3.14.1779323843247; Wed, 20 May 2026 17:37:23 -0700 (PDT) X-Received: by 2002:a05:690c:6c07:b0:7d0:ef8:6898 with SMTP id 00721157ae682-7d20a6b0832mr8729907b3.14.1779323842866; Wed, 20 May 2026 17:37:22 -0700 (PDT) Received: from scottml-Latitude-7455 (107-198-5-8.lightspeed.irvnca.sbcglobal.net. [107.198.5.8]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7cc991c98d9sm60545717b3.10.2026.05.20.17.37.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 17:37:22 -0700 (PDT) From: Michael Scott To: linux-arm-msm@vger.kernel.org Cc: vkoul@kernel.org, neil.armstrong@linaro.org, dmitry.baryshkov@oss.qualcomm.com, wesley.cheng@oss.qualcomm.com, abelvesa@kernel.org, faisal.hassan@oss.qualcomm.com, linux-phy@lists.infradead.org, andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, val@packett.cool, bryan.odonoghue@linaro.org, laurentiu.tudor1@dell.com, alex.vinarskis@gmail.com, linux-kernel@vger.kernel.org, Michael Scott Subject: [PATCH 4/4] arm64: dts: qcom: x1-dell-thena: bump linux,cma to 256 MiB Date: Wed, 20 May 2026 17:36:15 -0700 Message-ID: <20260521003615.1260844-5-mike.scott@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260521003615.1260844-1-mike.scott@oss.qualcomm.com> References: <20260521003615.1260844-1-mike.scott@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDAwMyBTYWx0ZWRfX1bJFwRGlidXH zcieI8S/i+bn4fy4CFcep91BOBrbUtWlA/2/A3ud+1EGEQEl6xF/uSTQk7xmKG7ZHnRqlZxk8Yq Ud9fwvRzC0ByJ3L8clcBny0RiS2tjoTlwaylLM98MR4JMRQF4QmtDMW/qKGhAmqMXgwZToyNVQr yUM/8y1sHB2faM9lXqXQiCgKorK8Oe+2A70g19dTOe01jycpvTWUIGT+MN3bRsvAolo2p06tnQo rloVaRFrR/qGkS3qrr+5wKIvPvKWYNanQV+p0fnGyRLZY8FdlJGY65Nix/uwK/SMTiSM/CnPXFC 9gMFbQXfh8lKdQljhDcmSf1nyY1Zh6MZuqggAc42GFl4nfAeibWjbeqhAUo/Y1r3eST9rrqYq+z eLGK6EWOxod/qnZpD8XxhTXBTZyutD4VG1sE3Ye55NXSCbclYqsTllcpBqgUMYP02WC3oJtXqPv CbH408z21aZb1+mlrag== X-Authority-Analysis: v=2.4 cv=Zckt8MVA c=1 sm=1 tr=0 ts=6a0e53c4 cx=c_pps a=ngMg22mHWrP7m7pwYf9JkA==:117 a=cdagev08qavQYXHyx3V8vg==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=GRacV1d55YfRzDIv3pQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=yHXA93iunegOHmWoMUFd:22 X-Proofpoint-GUID: Fb9bNEvdjDah9bd45TBK3tA4LIqH4Owa X-Proofpoint-ORIG-GUID: Fb9bNEvdjDah9bd45TBK3tA4LIqH4Owa X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-20_03,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 priorityscore=1501 malwarescore=0 clxscore=1011 phishscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210003 The 128 MiB linux,cma reserved-memory pool on dell-thena is too small to support the camera pipeline in parallel with the normal Linux desktop. On a freshly-booted system with GNOME running, the typical runtime consumers =E2=80=94 msm DRM framebuffers (Wayland triple buffering = on the eDP panel), qcom_iris video codec buffers, qcom_camss VFE pre-allocated buffers =E2=80=94 already occupy ~100 MiB of the pool, leaving only ~25 MiB free. The libcamera "simple" pipeline handler used by /dev/media0 on dell-thena allocates four ABGR8888 frames at 1920=C3=971088 =3D 32 MiB tota= l. That request fails on the fourth frame: ERROR DmaBufAllocator: dma-heap allocation failure for frame-3 ERROR Allocator: Stream is not part of /base/.../camera@10 active confi= guration Can't allocate buffers Failed to start camera session resulting in gnome-snapshot's "Could not play camera stream" and any other libcamera-mediated app being unable to actually stream. Bumping linux,cma to 256 MiB (a 0.9% reservation on these laptops' typical 27 GiB RAM) leaves ~150 MiB free at runtime =E2=80=94 sufficient for the libcamera buffer set plus headroom for video playback or other CMA-hungry workloads in parallel. Tested on Dell Latitude 7455: with the 256 MiB pool, CmaFree at GNOME-desktop idle is ~150 MiB, gnome-snapshot streams the OV02E10 camera cleanly, and `cam -c 1 --capture=3D2` succeeds. The companion board files dell-inspiron-14-plus-7441 and the upstream .dts variants inherit from x1-dell-thena.dtsi, so this changes the pool size for every dell-thena-based laptop in one place. Signed-off-by: Michael Scott --- arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi b/arch/arm64/boot/= dts/qcom/x1-dell-thena.dtsi index d93b704872b5..7894d96d34ee 100644 --- a/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi +++ b/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi @@ -167,7 +167,7 @@ led-camera-indicator { reserved-memory { linux,cma { compatible =3D "shared-dma-pool"; - size =3D <0x0 0x8000000>; + size =3D <0x0 0x10000000>; reusable; linux,cma-default; }; --=20 2.53.0