From nobody Sun May 24 22:42:18 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 B67D22C3261 for ; Thu, 21 May 2026 01:09:55 +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=1779325798; cv=none; b=OtU92cxot1Bu4CHBWA/8nEp+dDLdoqvKutFTUpjMdCFYS3Xpxqr8LQ3JByjruex9mkINk7obsvxrgbwKzjMYzvXvFMSivkqQxNFUVRG2BlC42gKUf7gfWDVfyRsj8ceX5IH5Cx8sPqvtq2fIZQcd/A3dTurdbbZNoqU+m0pAh6A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779325798; c=relaxed/simple; bh=uQLvCLyLKewaPBfOITpkJUe/bRH5dqsoapo9fOu8YkQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nBAdvchZeeir9sJkESykvL7yhxhILSCBN1iHn4gNN4UiDVKAV1GHZkADt1D0FUFuje/uQi6fhSrgXfpzX0DJOI6v2rABWBcSjoDYaY7MKUoKVOAHGqsHoz5ezPQimSaju5p7vcf2bmdf1I3VsJaaVOc9y3d832MAkxWBdpv4au4= 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=YuaSAZeb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CBN0ZsZM; 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="YuaSAZeb"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CBN0ZsZM" 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 64KLEGKc1798618 for ; Thu, 21 May 2026 01:09:55 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=u+V9cVsKTNh VN5JgnurmHUqaFwybS+3Yl850UmViNVU=; b=YuaSAZeby1ujciVFSKjkfjOJWEB /BNSvVWFrwpINlIANgENFA1odq8X/Fk9+OiW1fJ7Sjg5FJoE8biY4I+VqKNVl0pk 2Hdqi0qmyrmabO/eE3Oe1lNFwCPIwLWXe3VGzxX8/eaLa9O03Qqo755nOszwbbvI b+fxf49nYLNkZ/ehFqCfJdUh2a5Os06zS2YuW1wvICTJZOvjmuVLBij2/QhHdJ9s r7jjQmvgqrS5T+GeQO+ozFSS/aGCzp5zSrC28BHBQd+d/wz56wF+7vU4mPrlZXxh O2cLYh1Uje2ILgsP007rvxtXkxr7cyryszM1T+pR7hl3shmZ1o8hDL8p0hg== 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 4e9dxu2f86-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 21 May 2026 01:09:54 +0000 (GMT) Received: by mail-yx1-f71.google.com with SMTP id 956f58d0204a3-651cc9f2261so11194988d50.3 for ; Wed, 20 May 2026 18:09:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779325794; x=1779930594; 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=u+V9cVsKTNhVN5JgnurmHUqaFwybS+3Yl850UmViNVU=; b=CBN0ZsZMkGloV1S/5i/E8jBx/yhCpWZRxKrMyOHDW6Hbq8Salz5HCuzhC/bUC4w9pJ J1GI0KclwXmEt8XQNBY/G5aoSSN4STrWkaAM889XpmtcBRn9nfrFqJVl1SHLSEDH4W/t 4IMrKZoeMoOu3sQX2ziKLtinOF/X3xFtVVi4ysMPbpfrID1ZTJfAgP/qzpV4Vahy1Gxb +cy/RjU5BXJNsPHlv5ETp/eZK74Wcakho57JxSgjTuA9TIZ3pl22UAPlko8K8Nx/5hS6 ywteEOPWlpOseq1kxMe+HOCd4hYwT6cUiFcF6Mdh0VDAH+W5uDA+KoFK9+cRncm00kXn Rg5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779325794; x=1779930594; 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=u+V9cVsKTNhVN5JgnurmHUqaFwybS+3Yl850UmViNVU=; b=GCdyzzEn9AggIDLG/RzUSSDvwTKSH7E8ZGjuH70P4TvUJ8sxKKga9UkDi2Zlc6QlnD FBhcvqM6ad6Fsjclold+p9lPfzZQzpnr6JuyBA8WUoVBZMOof55GvXZG7ae+VmLJxU/5 i7kNF70rSd7QPrqRLTM8dITYtlsOqo49Mcg0+Kyw7vWrR6A5mHueH9MBWJPgOzvBikia yD9HeJEwWL6CijO1GPm/RXMbK3tiLRaYUQPSfk5Yspf/sWUXQd9vdOALPUXzoIKP0EkL B60pLx0IZOLYCpb6jDJnqhq0BGDPf+uUCqGCBBUfcS4N+ZsqoBi/T889ieyHQaKrPtFE 9NNg== X-Forwarded-Encrypted: i=1; AFNElJ/+VIwPWLLS3ykkRi+RWGxvOq9qYS/48R9tIolq9iPJURvQ72if1Svh3EtVLXgkdej1omJCB5HVHaL9gY0=@vger.kernel.org X-Gm-Message-State: AOJu0YwX3jFbc/afJ9IkBqg4eYh16inA/L1h8OcKfXQUyWRMxj3Mz8S2 F8/PnutLQiQ9ng5oUkLmqc6kDDK6ED76YH1fvc9zEwJbD7rmZ6+i8NpELYViHjp50KcV4h4R8W6 OvR+IcrffaPPi6rfkCKaINY4KwP2oaQ86EeyvMkIo0+CV0ijvMq36uh4ptnI5Sg/UkMk= X-Gm-Gg: Acq92OGHgIW4fbq/tzh+n6TCGpqAZMHtM4sOVzYIiMnO4i0q13pR1hnxL3z2seXDFbA 0eY4nUF9DLxyPaVJAYTDiioNtuWAfT+AxTV28DnJya4q0fHZNEDVpnKCFoa2l/UBs+iy3ySwAbF z/KCPgZsSj+S3sF41Le0irbN4wFIk8Yai3A278RfKLNlCTDW7IDkkiCSVUEfj5a4xES+bQaKoU4 CqRKeM3Nai2PnHEr1Di5GOPAwAvWfpOn5e6TFxzlDEF6KNSK3p3yjrfse4gurw7KM3A4IO14dlw BGcqLJl/BfjYuKQxmJX60BoNJp1GozCToIDiQdsvemWhxSMOWo/hjA1GdDaEt6sgUvRbnWa03tW UkRRThAus6fkkDl0mvCzF8qVvKQ7/XxFShUU1UzfDsiLqp2K4MU5hLIiYI9LuDBW1s3Fftg2YH8 WJTmsY680OacUlPR4= X-Received: by 2002:a05:690c:6387:b0:7b2:136d:240a with SMTP id 00721157ae682-7d20aa9cb6fmr9421997b3.9.1779325794024; Wed, 20 May 2026 18:09:54 -0700 (PDT) X-Received: by 2002:a05:690c:6387:b0:7b2:136d:240a with SMTP id 00721157ae682-7d20aa9cb6fmr9421707b3.9.1779325793555; Wed, 20 May 2026 18:09:53 -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-7cc991c98d9sm60851307b3.10.2026.05.20.18.09.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 18:09:52 -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 v2 1/4] phy: qcom: qmp-combo: skip USB power_off/exit after device teardown Date: Wed, 20 May 2026 18:09:32 -0700 Message-ID: <20260521010935.1333494-2-mike.scott@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260521010935.1333494-1-mike.scott@oss.qualcomm.com> References: <20260521010935.1333494-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-Spam-Details-Enc: AW1haW4tMjYwNTIxMDAwOCBTYWx0ZWRfX+Z9oviI0F8rZ /As88yICunuH5gnmv6r/i3L8IMON1L2IjoFkcNRtrKQEtrR0m9p3iUz+lE0yoMwKlR5fVAAAnBz HvdAneGNz3lrPiD/5rqYlF/5D5qZmYPll4UDhVup7SSYHkuODdD73NbxpEi6VPMs6VEAl7CvSST fQx18wWephdtoUIJO8XP5cXEyXWmKOiFZ99YulShpGXfPi4q7/UseTJQNYQBN+PlZXvAJqAkiM+ cpZmn3tlVDb3agEdbBSz6KiYDk2f3kzD6snbhCniWw0MQU0dmw33AqJ/AQ56T0Nfe6mgr94GNF2 ibloMxc9znETxi5SarFr2vR23/JySX+QUtvBsdHvBpAGJHTsRqEvyiTvuufX0xonU974nDpSlff zlQbHrG80teOmNsL8CKUSzsU1Kqyo8kqdnZSOH77+2yn1l6e7d4U4I0hysocQjTzSRVTg2V3Dvb 5oFfa4jY8kn/OgAdc5A== X-Authority-Analysis: v=2.4 cv=Zckt8MVA c=1 sm=1 tr=0 ts=6a0e5b62 cx=c_pps a=ngMg22mHWrP7m7pwYf9JkA==:117 a=cdagev08qavQYXHyx3V8vg==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=EvQFHbMspfJCUfrvVzMA:9 a=yHXA93iunegOHmWoMUFd:22 X-Proofpoint-GUID: MLFoamu8LxZnvEBfYdVcyg5egScNjmok X-Proofpoint-ORIG-GUID: MLFoamu8LxZnvEBfYdVcyg5egScNjmok 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=1015 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-2605210008 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 cdcfad2e86b1..0db200292642 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c @@ -3926,6 +3926,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; + } + /* PHY reset */ qphy_setbits(qmp->pcs, cfg->regs[QPHY_SW_RESET], SW_RESET); =20 @@ -3968,6 +3979,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) -- 2.53.0 From nobody Sun May 24 22:42:18 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 CC3992C11F3 for ; Thu, 21 May 2026 01:09:58 +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=1779325800; cv=none; b=fyiDsoEUulVrEysIrtYAfU+wVgmzqACq6rgOMtkzpMjbc5Ft7i3b7OYixDqJQOkviaOjivID3/TgfBCZxDfLnVJSOedJYhTYMJ1dDMMb46QRD0gTvwLnlk1soKLoXh1HeDuVyXIMmdtPC23LHgwK7ccgYGwQGyNnXjL/Bl9WG9s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779325800; c=relaxed/simple; bh=RFXz2fENqdLVWccMwug3ybapgQvtvrvDR4bLa4G95Wk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rUcafH8GFGS2jiOKfneGW/wJlWxi6LYIbudTj2iMOsz50sn5gKTDyi35DZUKpJ5+jrC+XrWay5EcL5CVLnr0PZmRs20FW8YvLXqY2TjTsd2oqhhpgNzcKGSeJ12kM46y5vKsiwwcRtLhXNEzW7PSSsC1x2at+9C7duPcxv9xPqw= 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=AeTJ0U3l; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=E3yvDGuA; 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="AeTJ0U3l"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="E3yvDGuA" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64KMeciT963945 for ; Thu, 21 May 2026 01:09:58 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=RAFhQHBj3Lj iJryw0ojmCoWQ4BfJtI8S4Cf5s+zUFFQ=; b=AeTJ0U3lg2EM6QPLXxU6coHV1f4 ecTy3rgtK9Ufuw3WIyRN2h9RxTGviqISV83pGohZJOgSdKohtUGKqlCwDfiRqOCO /I/8e9JjxyhKzTUtDYdGhees7Oj+g8RzaYrYkfpk5f+c/luRyjCqtVgnA0tcDdzE Ln4F7zwrFjFP9TypYSVp6LFZGvUnEaRCRP2qfyk2pd/I/ig5H23hOwG/lp2OCNUp oQlz/nfC9KLaGnS+pfrZgVZxEY9dmLVvLdjuG3J2X7QCexvRrMf4bJEd2euCyLvR /R3fxd9Hg6QK4IkSidR5DjqidFiQwT8sYzW73ooL2/k9vIXrmseAf3Nx5Ew== 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 4e9ejh2bks-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 21 May 2026 01:09:57 +0000 (GMT) Received: by mail-yw1-f198.google.com with SMTP id 00721157ae682-7cff695e4a3so53528507b3.1 for ; Wed, 20 May 2026 18:09:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779325797; x=1779930597; 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=RAFhQHBj3LjiJryw0ojmCoWQ4BfJtI8S4Cf5s+zUFFQ=; b=E3yvDGuAH1Ue3g4E0wRZfb6NM1cOBIC0Xylzs7R4EqRLaEtTg47GVKje9bZ0D2awTz lWMLq3b2GoPwMbGmHXLdwfgubRRdpfjRDLpgVKOhiWH/BvSNK5wUejp6oizbCNzmgI9/ iiLIWrFkCFbjfXsFOhYVfuKeD7cmBO4/9deapNIRH5zPmJ+eI6WAR7QBEQSSYqMOZ0Y2 jA4KsGklmunOgRmOY+dP7hmf9iR1dZtkBIRlxWcTHuVu+D2j3ZBt0+l7baXujBqxXbQi SY+NAarOJ+D1EIvpm2hC5hx63TK6vCso2H6eu9p1hPtUu+pW0gVBKd+3cwd0S69Gx3dL EcLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779325797; x=1779930597; 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=RAFhQHBj3LjiJryw0ojmCoWQ4BfJtI8S4Cf5s+zUFFQ=; b=TZCvH6n0iH56JRQ+14Tfr87/Atr5p9c+O+kLvRq/RJXdwknYyBNhKuvw6xIQxmchPG qjZMt+xoAcrd/2GVGma/W/Ona46mgbkdvCv8HNnekaIDFdSECd/fN/AtlQdxpjaHU9ih 0f2yo4v9axMdAWxIhWJaGPvyhM0aebMltoyHCC5f+a726d2ng8ZNAehK7pK51DmwbDpk +KcSOvo60oxhoObOst/Z9FGXFAcnZy7/9gwDRoonkjmwBZRqdFTqvbx0EkAeB3WoIWWz P2tMMPDiTYyZMaklQeOlGW+uHYW2SF8SBU6uxBEKiaW661QkmNACV/rrhOEKRSUYE37H NFqQ== X-Forwarded-Encrypted: i=1; AFNElJ8VK9BvDPR+scGnnERaifRCbTaHRVkN5ARPawME6ffPj7pWE0Kf3DOzODGGLhuIK2Ez4GYJN3MlHjxfOTc=@vger.kernel.org X-Gm-Message-State: AOJu0Yxq1LbbzGOzyLNR+ofIs2S7T58GngLvPYWRXSLQF1CTnTOM8jIj GISwhrPceq+nRWZm1EiijG3u7IqzwfTJ6T6NBsF4/S3uh42IHI0JNOJnZDx7V9NhPLASgnfzeUU akE96/y9FquWxvz3pZssJbR0TfWUpHD7FMnGugiqCOmaDdCT428nbbodEYIdwXkKzlLg= X-Gm-Gg: Acq92OH30+Jes4WyJcjEHDpB7bwIju1SV3qiC/kT8WOh8DJx/rVBuYRi8atHVBchZ/B 69zLuO0HH4cqV/efVqcOXeK8dcza30RJlwR78EDj5XdGmXMfqJ5dicV28rlcPDb8xIALj8SSZMz 5IUWxi4C4MXWkbOs65nOU8lB8Je+ITSqlHtQFdBFfFZjZVh9c13s7urBo+kHKTNwX1/Cw9dW7J1 bzgdkX5r0k4/jAGtklRrQUS+4bygisnpAai79HfE+nhWvweFrzCdSVxPGxezyGXD9Fn/Fy6ViEp nEswJbHjjSqZgZb0gcCv/P0XweQYsDgexiYkYmd+iXd2UH/J224Z5RxZ0iFH5JRxSZ6rr+ERsMG 74fZBnEjgYan2oOHhOZIieyOMHL9fdI88ZXky3lcEimlDmlQrzBtbeQrGh8NL+ewthS9iH+xTpv YBU6vR+rL3JSRRpPQ= X-Received: by 2002:a05:690c:498b:b0:7cf:e22b:fc49 with SMTP id 00721157ae682-7d20c047039mr8476507b3.31.1779325797076; Wed, 20 May 2026 18:09:57 -0700 (PDT) X-Received: by 2002:a05:690c:498b:b0:7cf:e22b:fc49 with SMTP id 00721157ae682-7d20c047039mr8476247b3.31.1779325796610; Wed, 20 May 2026 18:09:56 -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-7cc991c98d9sm60851307b3.10.2026.05.20.18.09.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 18:09:56 -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 v2 2/4] phy: qcom: qmp-combo: track whether the cached typec_mux mode was committed to hardware Date: Wed, 20 May 2026 18:09:33 -0700 Message-ID: <20260521010935.1333494-3-mike.scott@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260521010935.1333494-1-mike.scott@oss.qualcomm.com> References: <20260521010935.1333494-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=QptuG1yd c=1 sm=1 tr=0 ts=6a0e5b65 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=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=GhrnwN_qMCjkbgjgO0kA:9 a=+jEqtf1s3R9VXZ0wqowq2kgwd+I=:19 a=MFSWADHSvvjO3QEy5MdX:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDAwOCBTYWx0ZWRfX9LQBGbRnTAxA 7zSC7xwPxsZEi1FmILMo+MtDWUMm81R69g0lcFZG3xKlgo1oQqLueiDVitZSaTBJp3liQjUnYLr QrKSuLYfyaVYdruU0uYuE9tKDUZjnn2jT/w5e6dOrbHt9oLcvgRZWSq7leaDcfrtpwuLqqtD6H2 u7r0Gznh8STLE7wW/fRQV6Zq/G048521Fiv8qzwWubkj/gwKcVCaW8sF7VzKJSEf+1Mve1PK7Q4 oWawuFUDMJDPWGBAD9C9NMx8YYyAtDgVPR4Wd33zu5XynE8CeIzVZUCKnCizrTA4t8HfOv2Mzwo zZ7tbAebRcmZQhYrhh/JUrx3HpGWKTIRv3dK0av+E2EXBbMZpmnacoC3ErSYdBp+eSZwvBR3MIT 3TpDLBbmpvtY0N2Qk8s1P/Da7zfievESHPaAWS+aNo+30tDsp0RMzIQ3TEFpqb54IuJ8r+EHaIx F/9+PWK30I4Ar2fNJlg== X-Proofpoint-GUID: GaXcrIWmyX9ZB8YA4UiSqVqT9HaCTJwu X-Proofpoint-ORIG-GUID: GaXcrIWmyX9ZB8YA4UiSqVqT9HaCTJwu 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 adultscore=0 bulkscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 phishscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210008 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 0db200292642..e28bc1cc7a78 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; @@ -3754,6 +3755,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_disable_clocks: @@ -4509,9 +4513,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) { @@ -4523,6 +4540,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) @@ -4551,6 +4569,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:42:18 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 115C52D060B for ; Thu, 21 May 2026 01:10:01 +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=1779325803; cv=none; b=svS/EgTWkIfCxDBtaSSnm0P6SFAnzsYUhFvm+TsGIf6snYq293lZXctUUIe8LYlfev6YYOXXC2PA3u6P07nRMgyQoNc224TXBFO8pRCELn0jqJprkWPIz0s63pm0T304dwbbJbBaN9Vir/B4ARJ1w8H44jF20QUpD6Ni/JxCLyk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779325803; c=relaxed/simple; bh=sHaXDiFQgCt9FlMExLxzDgxjno95mKMkDP35FvdVBDw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JHNMX8UE4no6VS95TtxOrgdyLJ8sjnvzssSXa74GjlkAAYA+rUno3kDsOFj9s9uLtl2/Mz/kFeFNoqNYbVYTa7ytCnqP6zWQmSQ8DPz/XMEBN1FA2PdcIk9snFnXCsBV4Sd4H+EMd7us/yxtwkxFBwXvc77qvipirDfPyiWbs4I= 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=RvtUmOFa; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XEgEIMtU; 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="RvtUmOFa"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XEgEIMtU" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64KGOMgp266947 for ; Thu, 21 May 2026 01:10:01 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=6dRmKU+5SKA eTGqRwOTPOTFNGFIlyQSi7HHIupFI5YQ=; b=RvtUmOFagx+eHfpxxq6rjUTfilI euKm7aBxgbzV3OT0CzQHG41jKBf3tmXSeJpOqcbEkZRVWNEE68GMiOWAf5UpvPC4 Y4DC72ITFVnisxFwPmHcGC3u7MTborwBg0CjY67UV8ox6E7Yzx7mv8/MAAwLtiFJ jzTTE0qaDui360rDvUh5uIsVP/gPkCK5KFRAc5am9HodzF091HDqb+ZbOzsOvNJZ Jy1i//VZW11+brqSO4IDNkclNsHarFAwFi5iQWgXxPwt/UEq99n4n9GM7qYdP+oc rq2Eju3JxMo4cejU+UQ1kWXaQUbAuAtTKpRszrjajfRwCZlysDM+wWP9VHg== Received: from mail-yw1-f199.google.com (mail-yw1-f199.google.com [209.85.128.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e9amxu9gw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 21 May 2026 01:10:00 +0000 (GMT) Received: by mail-yw1-f199.google.com with SMTP id 00721157ae682-7c9e610f273so74510577b3.0 for ; Wed, 20 May 2026 18:10:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779325800; x=1779930600; 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=6dRmKU+5SKAeTGqRwOTPOTFNGFIlyQSi7HHIupFI5YQ=; b=XEgEIMtUcquy9MFM0oxEXfZSZww63VusKKrerY10ZF+POQghArIrBnMhYGfTfG5qWS kL8d9A5EiMqlB9k2+igUdhZhXsTxte7OF8/h1xH6WsArzRb77vFcCPON2gKeBWHbMsMS JMddp7AI+s4lirQyUFF6xaHQfVbI8g9DRMjz6UPYR8jkmVScEhWFk+eImoVRf3iuF9m+ IIavycYnq/75L19NGtvsRKvF+K9rigLLnOdwZH32mcDM5ExxsSInWcBFId0yScyVetfL ekNDnfcc1QwKLrYnMviv3DMPE7I+5I8GbJB0v20dMuijKrSVNyEZy9Nc2P0PXFL1VJX4 y++Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779325800; x=1779930600; 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=6dRmKU+5SKAeTGqRwOTPOTFNGFIlyQSi7HHIupFI5YQ=; b=NGzAhRu/V3v4ZR+VOLpkyGreTUDCK1vmWJK8i61j9SfCWzUMEbdHX+p9ORx3/3hfp8 7MVxibVD1sLb4KNlpkp6OmXdhEhD2T6MliYHZ89okZBuBMg+yfP4166qt3XuocMSvIA4 4/6k26twLcuyoY8W5hGz0tmY5SZf9SQ/JqtPHH8tFz0r+YsN9jJM6ku1YOSy79ygoexx 8SDITbg/4hRRZg57Yu8c7aVEdXMe9/nfiju9gizBR7n89vhbLJ3hMkNWa4rblosd0xJl 7E4oU3VkAephF4CRR1WJR1wXjvRyVwTOcnSqPcedBO4QjKBOFtbtK9Quz7GMHR6/KQA4 bTsA== X-Forwarded-Encrypted: i=1; AFNElJ/FayvzujfFpJDDAFrzpdVBGeTV9cpQDcUqdWofcRpeg9fx29QDAQc/lxSr4txZZv3UT6DGvo4OG+dBghk=@vger.kernel.org X-Gm-Message-State: AOJu0YxPrPVYhYAcTVg8RQ84CvuTqQFlcJeohpWPEzeMvjgoyfZWAl6P Cq9iooM/krI3hPK5tFYExnIZSeA0ufHQMVnDlGjAvqKysKyiF+rEUOPQeVnxXG/AYDM6BBnDWct k81GjF+uBF2Im9hz7bes+p8c0CJhtWmabo/zjXx4hOQ6rhOeKOTPP9eTEwTUWEp8yZFM= X-Gm-Gg: Acq92OEknnYbmmU8pu/4zY8XZHVh88N5/3pOvKeQC3dChtCRXFre2D0IzdYp9wSvZBV XHGLFHtZ7iJqPwCBy9ZVCzNocJ7ZC3pUEN1/F26KCDGQeRjaGodhNqa8BnnUPux/+rXR7j75Dti Zmrgd8sv0ybJ1ooIVCT9StabYoJvZfkxmUWOXBBFid/ktBoJQtJT4Frp62KjXUleSBNIfuTG31N 52PurLmG6IfZSgQ3eutAGZpqaQ8sJ5Jwj3HlqiVZRM/vLF+Ud6rrPIPwF0S+Ve066VOw/k7n+8G KdelkbJJW93NlNn/SQe5uHvOLeNZllZm0EJQ7iM4fRJr+2pteyW8dOeYE215KQ/VvfgBZloltc5 +uzRyWCLHF6BTOK5GplW46fYKTOG4xS4CqPb2jO64O1l3npDTPW/W+DCdCXyj3BTfIHn43mxeYi 0bxxxGjEPvUyGuJ1c= X-Received: by 2002:a05:690c:9990:b0:7bf:b4a:179b with SMTP id 00721157ae682-7d20d50e192mr7151097b3.18.1779325800423; Wed, 20 May 2026 18:10:00 -0700 (PDT) X-Received: by 2002:a05:690c:9990:b0:7bf:b4a:179b with SMTP id 00721157ae682-7d20d50e192mr7150837b3.18.1779325800058; Wed, 20 May 2026 18:10:00 -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-7cc991c98d9sm60851307b3.10.2026.05.20.18.09.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 18:09:59 -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 v2 3/4] arm64: dts: qcom: x1-dell-thena: mark l12b and l15b always-on Date: Wed, 20 May 2026 18:09:34 -0700 Message-ID: <20260521010935.1333494-4-mike.scott@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260521010935.1333494-1-mike.scott@oss.qualcomm.com> References: <20260521010935.1333494-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-GUID: nXRnRnKixezMUrpXakvbVLYTKI8_yfa9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDAwOCBTYWx0ZWRfX4EK2h18VElfD 4Mq6TCGWnBG5xf83ica5CxJLSGzvj8LBeY9YrOyKTbd/NWeZl2TdT98qB0PauS9wht6sDUxzcgh Ar8DWQ6HKx4Yj+OaRpHfIsfeRmdbX8BU0lsySoA4J7KqqYmYjS6nKeFnWn9gQOVwV55LrMLvVxh v/SFfRzQZxzoJ+S2Yjv8J6eiOW8GNk7S3H/2nOSj4UNl/jkQj2trpNWmgQnyzRMPtdQY8FJ1b2Q R5ds634G31iyBpXXyT/jWdANd+gdFy/qvYdzzVr+0SHYp4QevjO6zlakApRpq1M/EoIVCiXsd+Q XwzxaJCY3/IW0BGo0t+3zL+BApoHEn0lmk9FYwMuBCXu2ly/JuwrleBCUN1ElgrkaKtO1l7f+81 jKzw5WNgwN7iD1YFzYhKyN/6lY7y5p0dcGCFya/yCvw1B3IedRokN8J52XeI0jxnxuQlLyJTzN8 jQ71B3Ke29vlMHn0D+A== X-Authority-Analysis: v=2.4 cv=TO11jVla c=1 sm=1 tr=0 ts=6a0e5b68 cx=c_pps a=72HoHk1woDtn7btP4rdmlg==:117 a=cdagev08qavQYXHyx3V8vg==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=CbK1FIr4-MOfYfEwsVEA:9 a=kA6IBgd4cpdPkAWqgNAz:22 X-Proofpoint-ORIG-GUID: nXRnRnKixezMUrpXakvbVLYTKI8_yfa9 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 priorityscore=1501 malwarescore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210008 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 Acked-by: Val Packett --- 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 db291730130c..d6de4da02dcd 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:42:18 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 166C023EA84 for ; Thu, 21 May 2026 01:10:05 +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=1779325806; cv=none; b=aN4jaSR4nuAzY57nN6TC0Oe2crrCZY1QDdVlWY2NJ53W+8y/xP6SfTIhIjPNaB42mBb8E8Cah2e9jOmlfe0/LrReqwQH7NSGe7MZaedyfWT62gWKQulLzUHkBekb3UpxkV/p9QOYxsuNp2WFdrjaI0Icj/mROQ/YH+T2ln7UySg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779325806; c=relaxed/simple; bh=fmNJ3KT/7b+xTlpyQgi+5oa7xWoQzjNFF8X5QjQDuXM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=p22/kR7Zw1NCqPnQtLX3Hw4vZk7djQXZq0M/Hn5tu7P2hd+cgc/0ry26fFGTLUP2Yqd7q66jPl7dT58D+jJuqNPJbEmNQGFMJWh1GdEbzpfAW/20WDm6yGWXKUiIu2aLRFdiFodvQP4Vf/p9Tjngk+zeTlCR2JhGVXHE2oWn8aQ= 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=JfS5aHGz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=j08gEuBy; 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="JfS5aHGz"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="j08gEuBy" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64KFUe7Z4115208 for ; Thu, 21 May 2026 01:10:04 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= +hhG8da4DumoUI+vB6A92v5ZtZlBaXWB9NrZWaYMTPc=; b=JfS5aHGz4pyIXxHX /A9TPu5pRAWtc692FLEgyrlNO8H4/b/FptWcud+TaT3DPIEYWxg8GKcGTcWIuxQn +WhT7NvDDhZK3YgjAY9m6BYMLZzBgI/kvC48cXV3j4wvmKnu7wN9vb8QIuu1I9mJ j9x99HG7c3YaK5smLqCI4hIRUfqb3VkA6aSt9ntxGO8m+cIn2VkDPhfwuwGPIA/n 8pxDL4gpetoQqB4SBDS9w72gg8EEtZZx1QZe8NAkXlqd5FsxF3BOc3nlw3CiO6pz 0v0JQ79Pt26OPsGD/6ZIRpJNExPpHbARv4zXlUB1UfepvzllLtTBD+itqB2v/Wzn luOaSg== Received: from mail-yw1-f199.google.com (mail-yw1-f199.google.com [209.85.128.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e99w0kgfq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 21 May 2026 01:10:04 +0000 (GMT) Received: by mail-yw1-f199.google.com with SMTP id 00721157ae682-7cb345d0b29so122331227b3.2 for ; Wed, 20 May 2026 18:10:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779325804; x=1779930604; 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=+hhG8da4DumoUI+vB6A92v5ZtZlBaXWB9NrZWaYMTPc=; b=j08gEuByy+pcKAISFvIyNXmnc86h9XaaGAFBNoZ0Xsx5Sl3jx5rUhid8YxVYQVnmdJ zKXWf559bm/QNCks8Z6YFA8dqjK7uj6iU/op7etHRbUdG11A+MFtJ8pjqgcR3KABnTSs ZFcoRi61IhuOSMDUlKSOV+znZDqi2aT1SHWhqMnYXk7fkXEQlAxGPyw2TQ8ir7HCamNF 3GfRczMfpSLRjprdJxERhqVoqYii8dmgrn1JYykztfEQzZnHGHwrNesrBerHeBLXKFxr W+EWndq/tKaAm6LdSKZJL6h/4yTn4eMluQ/Ipnc7asMOZJcUrH8JyX7bz9xgwkACftJo SfJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779325804; x=1779930604; 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=+hhG8da4DumoUI+vB6A92v5ZtZlBaXWB9NrZWaYMTPc=; b=sU6uVsiAmatI975Qx+bmwni5LV6MBYa/+mFjWaK8RV6W3lDTtJl9+BrJZhPhUDENt1 yk+OoVT6bKVi4bPf3EfliTUfu+CZC5h5RMLeQCaug61I9i++/YUAUZHl2RjLMOwU48Kt J/HlHnfjohVS6sAD8YPjrtWvKwQkb51YSPSL8egEaAcAyf/BmogLEwuvL2/3oc3stYdy DLWxpckw1sSdfE2Z6zKkHyBFekRs5HLhLnLfSjRg8Ngqy7sq1ABey42pCLHEI99cJlAM 1xOWR7htIyjHZnnfz4ESnDdA4KchajbaWTVW+YeQVAH1hlYBW08NLf0aBr66GGZovbVk Iutw== X-Forwarded-Encrypted: i=1; AFNElJ+JFpUYZ5iubVZ9cYSWTbfEfU4Y2uWjAvGiTdQvgGGEVm0ozUey+HgPtNnw1+sNEhAhsemKNRYXHZHLs+E=@vger.kernel.org X-Gm-Message-State: AOJu0YxPHbpWOIhgloeLecnyb6x8sqcVVhy0qoZ/4QmhpMkP8yhMaRwr gDIthT2FVB/xWR1CVDO5h7D0Em8/zSWGjcx/YQkejMv+IFMGAESfovUoefp1YRwbqrk6z5uwiMS yehA9tkjJrQPl9apcJeYLi1j1sUGatBxlfcQ1P/GqIRxLZidt3HIH7frhzHCUa1KiHAo= X-Gm-Gg: Acq92OFz4OPFRaMaadbLLNmnwp2X83hlp4hRdfR374XGxug3/Wt7LepkLDxPNrgCWPg U6b1xL65L06UIJtIqIE/Sk8xuk+wuNIlIvXketTabAbMda6/BVVd5vcqHo/keq4SFVePrYHqepi RbM9cwGBGKsOx1BlDZ79u9X8Onh0EDk9VdFp9JerHezygzyeCpy2OiHh1WpjNpZ8UW0JLhagmoQ F7s55rkFD1lP6S6RVQ4Ly7Cy/DY9jgMjik4jnMsDE8yVFV9NTz3ARx6jFJ3xe1Mm9H35Z4rozH8 mVL7260Ux5/EnRjMPUYhhVN5hEmjBll/Z9AGdi6bD0zjQqxLUNxMlX+YUGXFZOngSYd038NP5Ki wzKSvYV9y99YMWN3TKKJ1m9LBPD2JEhZwFsk+cPl2YpDdDoVQk+YRkLsph/Qh+z+IyLbUONlEv+ cER0m1r6x+AJjzmLg= X-Received: by 2002:a05:690c:25c9:b0:7b4:3d82:bf6 with SMTP id 00721157ae682-7d20ab9e281mr9263567b3.11.1779325803491; Wed, 20 May 2026 18:10:03 -0700 (PDT) X-Received: by 2002:a05:690c:25c9:b0:7b4:3d82:bf6 with SMTP id 00721157ae682-7d20ab9e281mr9263337b3.11.1779325803021; Wed, 20 May 2026 18:10:03 -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-7cc991c98d9sm60851307b3.10.2026.05.20.18.10.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 18:10:02 -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 v2 4/4] arm64: dts: qcom: x1-dell-thena: bump linux,cma to 256 MiB Date: Wed, 20 May 2026 18:09:35 -0700 Message-ID: <20260521010935.1333494-5-mike.scott@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260521010935.1333494-1-mike.scott@oss.qualcomm.com> References: <20260521010935.1333494-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-ORIG-GUID: gu6CK0qM6QV7ngvvl7e_WjRIOKsUK2yB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDAwOCBTYWx0ZWRfX2Qpqnd68FYTX NqwLTcy6ks91EiCblUw5m08L79QM/UbJutiCIhWloFxpRFIzjVTUO2M+QGoveDJTVjlLfd9CoRi FTabbXjq+mXyUBMQOmyRGvps8YYMTjMlU0ZGTzYx2lcNEJOyQ8zr2n2T9k1nX8H8ijjn3wudenG yQS8E9VASE40m7G6hcPbbYApLIW3A0V+wEIjUTTVZn17bO1/XiYLMJqVky2SpLed0Un18j3HJqB YmIJ4JblerXJ84PmHvX1MAsiklnTFcCz10TeoEdY3Xb0J/r7kmO1F4lY1PM7786dY0bsYzEuXwl cUoM0/Kd+RCZLPkYIQ7bpRYhydILrmnL1/Q35B6j00mjRyZoNhJjBMVOQPH6YZ8BXfO98iMBXfV p2nbBAZlefJUMlmPM1WIFSLkQrPHMyQWC/7L3U0OsuXHc2L/frFtpf95hExojppj94qVkc9xzj0 w9ctdkc7xRdJWUkNx9Q== X-Authority-Analysis: v=2.4 cv=RZigzVtv c=1 sm=1 tr=0 ts=6a0e5b6c cx=c_pps a=72HoHk1woDtn7btP4rdmlg==:117 a=cdagev08qavQYXHyx3V8vg==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=GRacV1d55YfRzDIv3pQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=kA6IBgd4cpdPkAWqgNAz:22 X-Proofpoint-GUID: gu6CK0qM6QV7ngvvl7e_WjRIOKsUK2yB 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 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 impostorscore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210008 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 Acked-by: Val Packett --- 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 d6de4da02dcd..714988a81384 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