From nobody Mon Feb 9 16:32:53 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 78D8D32C336 for ; Mon, 10 Nov 2025 16:39:40 +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=1762792782; cv=none; b=JdVyyQtmCRWcx+iNkmR1/vj4b7vOQx2aMr95A1KDhUJbQ8muntY/7bIf6bqd5EnbfG/9/5DLzuSDdcbceasnhJKbc6AlVXAHTP4TdD3Z0ao7Ggh5Xy+GRuvgvwb9jV9isuNGcSUvWj37pibr0vbQWhy8FAeqYV8o+g/62XzmSt4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762792782; c=relaxed/simple; bh=LWOc612J9bhiyGK31kvlUfk/uc8PZDAIZt+/ViUR8y4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Q49TCDXBPqptZym40HmCJwe5NJPIsbI41Ebguk1C7hROuX0U3KP/shxQ86Etpw/EOilFfn2a9le02WbFTppoR1Ek7w6x8FLniBeDwsjSE6LgquOi3qZahubnC62dX1AfDKj9LPM4iZYsysvz0kijp1PpchMJLEDSFKO2GAF4iJ8= 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=NfloY2Uc; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=F/1wypH+; 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="NfloY2Uc"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="F/1wypH+" 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 5AAFQ09T4071296 for ; Mon, 10 Nov 2025 16:39:39 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= qhWAU4GwkZc/7vJbgqlZua/hMbE+FKAm5HguK+Q4/xI=; b=NfloY2UcabBEHbGh fl9Eps4ZBX7fNEkkBh8BEYS+32vOxrIK2m6yXUnyWDwM+rERBerTUbwIy0uBH/SL u/3DOWkDZeUjVkRKjme4f50ly78gXxUsNDnxiJV+ILo/qTdHLAmqpVtQ0P87xvIc ZFH9bvL+B39iKMvKb4P0QavNQ2z/VPkJSrxjl/EZq92g2HwjDzSWFkmwDpxDZSzo ZZLF+B6RrkPZLbAZgLbUssgeTb+j8BWwv3up7KXy/9GrwZPlU8z0twkUmiExaCpV 8RjBZJYAZtzr3kDYlgmwAZDngc/mHntvaZ4GGSo5eIOo2vKfCzjvu/0JD2CBbaAw Cunn5Q== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4abjpgr91c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Nov 2025 16:39:39 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b6ce1b57b9cso2957502a12.1 for ; Mon, 10 Nov 2025 08:39:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762792778; x=1763397578; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=qhWAU4GwkZc/7vJbgqlZua/hMbE+FKAm5HguK+Q4/xI=; b=F/1wypH+b+2X4JvJFaO/c1vFFB+xPYBRsfMdemURQEtACA0zee/Vmb4hKSIPIyOgsl +oE5DUmL0syOKu24soc2fIPF2srO5K4ZDf+rqrtTsGETEQHzXYo950zygvruwWYYJQLu abgHj9fWo/PDTxZSMHXDeoNwsQa4V6OoFvAg+0lCpUOgWo6FMJjbEyjKSWIWqYpTxTh8 1WqouQDlFA8kc28iZHtHeN0cywSya7isM4dRSN2HowXUUDmXCw9wtFhFxfqBVG+fq8nG er6PR1Spp/xuMuLx/KZ/OsFJmNvNMRM9hG0sRBqIkJCRIj7e3IszVX/1QPnfcAF/LUjt HiGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762792778; x=1763397578; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=qhWAU4GwkZc/7vJbgqlZua/hMbE+FKAm5HguK+Q4/xI=; b=nRkSiGIE253x49if3lm9VK8bUT5b9sWIc6S/llqotuegV+ALQFwWgb+cHzi0jYHuaM BxdjmvD96bRVDWJd+bVLlH4ACMtONfNFGv+gfrK/84zL2D3gWe7uqte+93g1V9pt5ONU zPbCSWk6bOUA7LRuvY2qLcVYJTL/dos8c0uct/T+kRKbJ7GJFyjcpqbnwp4oD7tKo17w tLmlbuwUWhoRXmqCBYfgdy3V5WPMVXP8+U2Ad+Ntn/pVd7brZitFZz//W3u/J7uy06OW AegKzWZQT11XsxQINl2rpcdnXWWyn3gxX4WbNbm/aLXgpaLnLjb9j2edDfuk5mCSXj4m rgPg== X-Forwarded-Encrypted: i=1; AJvYcCWsV23IK5bQBz6aSxcuiaT/Td6FdsXCqKjC8SlCkflr6qeAZ38O4kGO3rLE8lpJjCDZtMm/8cYFzwj2dXA=@vger.kernel.org X-Gm-Message-State: AOJu0YyKDWiKF7T2uh/C4zyYHDRULwObWcFVXYinMnIuL/P7aBUEJFVy /lh1jGaEgsITWA/jwH3vLjLcFG28/+WR92QtvsQDHLDH8dECuZq1vqrkCSQa+jy54K/r3BQsGbh aI+XNqEq2YUOjX2QP5ARGOaiXK5EFyHYcISSqEDJLV3O13DlhnJWbux28evGjuXuPDmg= X-Gm-Gg: ASbGncsE1zBvPDVZKBotBIlRVbF5ZI3g26PXy04dMuQrLk2vFqXA0//DmQP86BYKgpY sZMICov7EqjTkuYHZc11Xr3EaivmmMaDYADrB4kOBgcp30z7u0NYyTuf2yiWAGCOlaKnG4EX8jz yKKe/Q6yfZVuN7taDZLCRIgucBwjawy1QLznsL0sRCN/rMXaVryFOjIMdo5auHQle3+5NYp5zFv NIDlVx0OXyWArfA4wM+TZoJLK/D2ZT6iwotvVmof+1FZIWoHtgJd7H2e2B2PBM1y4adkpRo+pBB Zk66mWEcq4XB+5CgbClW0HGFHrdNHvIDUhBr3S9kasx2RCx/kgXWRLmE1ZKdit4VFzKonxgoq2d HvzG3ZLqOcsElxP3AmDauVNY= X-Received: by 2002:a17:90b:3b52:b0:340:25f0:a9b with SMTP id 98e67ed59e1d1-3436cbc74d5mr10535190a91.33.1762792778276; Mon, 10 Nov 2025 08:39:38 -0800 (PST) X-Google-Smtp-Source: AGHT+IGKuivtP5bPOxg4eqYPpqCiRonwpKyitk9efo7oMRmT6OqAejXcK+KdVc51LUlDkH4mfwy14w== X-Received: by 2002:a17:90b:3b52:b0:340:25f0:a9b with SMTP id 98e67ed59e1d1-3436cbc74d5mr10535152a91.33.1762792777713; Mon, 10 Nov 2025 08:39:37 -0800 (PST) Received: from hu-akhilpo-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3434c337b20sm11468922a91.13.2025.11.10.08.39.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Nov 2025 08:39:37 -0800 (PST) From: Akhil P Oommen Date: Mon, 10 Nov 2025 22:07:17 +0530 Subject: [PATCH v2 11/21] drm/msm/a6xx: Improve MX rail fallback in RPMH vote init 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 Message-Id: <20251110-kaana-gpu-support-v2-11-bef18acd5e94@oss.qualcomm.com> References: <20251110-kaana-gpu-support-v2-0-bef18acd5e94@oss.qualcomm.com> In-Reply-To: <20251110-kaana-gpu-support-v2-0-bef18acd5e94@oss.qualcomm.com> To: Rob Clark , Bjorn Andersson , Konrad Dybcio , Sean Paul , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Marijn Suijten , David Airlie , Simona Vetter , Jonathan Marek , Jordan Crouse , Will Deacon , Robin Murphy , Joerg Roedel , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Connor Abbott Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, devicetree@vger.kernel.org, Akhil P Oommen X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1762792679; l=2950; i=akhilpo@oss.qualcomm.com; s=20240726; h=from:subject:message-id; bh=LWOc612J9bhiyGK31kvlUfk/uc8PZDAIZt+/ViUR8y4=; b=Dyz4d2Rpgtz4n2FITe1odQAEtosB0h0Bg9zoRd3AwbZUYYMJMDaf74l7QdElyyEqfnmryp4KJ 0My+qrkFhbTAtvi+hF5ODj3d82ls447n7pfXlXg7IJLPvV878p2Eal8 X-Developer-Key: i=akhilpo@oss.qualcomm.com; a=ed25519; pk=lmVtttSHmAUYFnJsQHX80IIRmYmXA4+CzpGcWOOsfKA= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEwMDE0MCBTYWx0ZWRfXyRxrdYBDtL7V dgF843NtaRS3F+t/EhJgl2UNx3wXvRqFF3EEcIOb57946DApgL3xPTGGmwXBs08KbULhcVUc8Pj ksTQNhuS4ZTEUHxt3XhQ9zo3cOprGkhignXVwi82qHn7f9/QUhgmN38d3mY+oaL9A1LyZRPyNi/ 1lPsdM5NDM0E8ffOwhCtvNm27rM7Zqqp89ah/tt/xFBPtQiMnRWDJI4q3Rr9YrfcBoCiDVTfGpZ 1lxmUNvgldH4ZXK68sb8jTbejG80Fv/nl+etRgnL6zbhNLnVsdF0aHxvrea/gwe+XfbFydcp3VF xxcE+dzi6eb96Vl2vzw6SBP5EQz1dHjIoDIdikJyssO9RXc7kwFDPCyIUMnLKEbscZO/+lWytEe WofJjZOrlEVS0iqCZVPPI5k5vMgEjQ== X-Authority-Analysis: v=2.4 cv=br5BxUai c=1 sm=1 tr=0 ts=6912154b cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=feIks7WodE12ze-Om1wA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-GUID: QajQHqTJ3TCRvnP-39nI8dOxvJnbV1Eb X-Proofpoint-ORIG-GUID: QajQHqTJ3TCRvnP-39nI8dOxvJnbV1Eb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-10_06,2025-11-10_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 impostorscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511100140 Current logic assumes that the voltage corners in both MxG and MxA are always same. This is not true for recent targets. So, rework the rpmh init sequence to probe and calculate the votes with the respective rails, ie, GX rails should use MxG as secondary rail and Cx rail should use MxA as the secondary rail. Fixes: d6225e0cd096 ("drm/msm/adreno: Add support for X185 GPU") Signed-off-by: Akhil P Oommen --- drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/ad= reno/a6xx_gmu.c index 112ef7ea320f..8597d7adf2f7 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c @@ -1519,13 +1519,14 @@ static unsigned int a6xx_gmu_get_arc_level(struct d= evice *dev, } =20 static int a6xx_gmu_rpmh_arc_votes_init(struct device *dev, u32 *votes, - unsigned long *freqs, int freqs_count, const char *id) + unsigned long *freqs, int freqs_count, + const char *pri_id, const char *sec_id) { int i, j; const u16 *pri, *sec; size_t pri_count, sec_count; =20 - pri =3D cmd_db_read_aux_data(id, &pri_count); + pri =3D cmd_db_read_aux_data(pri_id, &pri_count); if (IS_ERR(pri)) return PTR_ERR(pri); /* @@ -1536,13 +1537,7 @@ static int a6xx_gmu_rpmh_arc_votes_init(struct devic= e *dev, u32 *votes, if (!pri_count) return -EINVAL; =20 - /* - * Some targets have a separate gfx mxc rail. So try to read that first a= nd then fall back - * to regular mx rail if it is missing - */ - sec =3D cmd_db_read_aux_data("gmxc.lvl", &sec_count); - if (IS_ERR(sec) && sec !=3D ERR_PTR(-EPROBE_DEFER)) - sec =3D cmd_db_read_aux_data("mx.lvl", &sec_count); + sec =3D cmd_db_read_aux_data(sec_id, &sec_count); if (IS_ERR(sec)) return PTR_ERR(sec); =20 @@ -1610,15 +1605,24 @@ static int a6xx_gmu_rpmh_votes_init(struct a6xx_gmu= *gmu) struct adreno_gpu *adreno_gpu =3D &a6xx_gpu->base; const struct a6xx_info *info =3D adreno_gpu->info->a6xx; struct msm_gpu *gpu =3D &adreno_gpu->base; + const char *sec_id; + const u16 *gmxc; int ret; =20 + gmxc =3D cmd_db_read_aux_data("gmxc.lvl", NULL); + if (gmxc =3D=3D ERR_PTR(-EPROBE_DEFER)) + return -EPROBE_DEFER; + + /* If GMxC is present, prefer that as secondary rail for GX votes */ + sec_id =3D IS_ERR_OR_NULL(gmxc) ? "mx.lvl" : "gmxc.lvl"; + /* Build the GX votes */ ret =3D a6xx_gmu_rpmh_arc_votes_init(&gpu->pdev->dev, gmu->gx_arc_votes, - gmu->gpu_freqs, gmu->nr_gpu_freqs, "gfx.lvl"); + gmu->gpu_freqs, gmu->nr_gpu_freqs, "gfx.lvl", sec_id); =20 /* Build the CX votes */ ret |=3D a6xx_gmu_rpmh_arc_votes_init(gmu->dev, gmu->cx_arc_votes, - gmu->gmu_freqs, gmu->nr_gmu_freqs, "cx.lvl"); + gmu->gmu_freqs, gmu->nr_gmu_freqs, "cx.lvl", "mx.lvl"); =20 /* Build the interconnect votes */ if (info->bcms && gmu->nr_gpu_bws > 1) --=20 2.51.0