From nobody Tue Dec 2 02:52:38 2025 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 713AA3126B4 for ; Tue, 18 Nov 2025 08:53:16 +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=1763455998; cv=none; b=ZVAa5lGSH1ljekMqDD4ICKJE8U44bAOMpRVG/M9avEMhGn+S4ES4o9G0lVE7z8+GqPipE2U3inWwzbaZn7IEZNtNTZVTbEM3PPdiU1d2lAYE0UNvqppYPnbxXeGaW2A8R7a9B0NOGou3vS8UJvzXWwtDlUSw5zP3vPxC5xQm5Cc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763455998; c=relaxed/simple; bh=2qp5AoAo/qQVsE3tG8Ep9+XuoxJnnHFPRYeeaqd6Nqw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DfQZy92tAd+QEboHNJMK9frBkYdmo0ORKjTG0+ogkkR2OYQc3nPyOdNoppkROqyQHK1Xt/S0KgvI16f+42XEdIRikkWUm9HJUvsfYwwZBEcpZxob/QTg2sdkMhbe3LIMMKkPscUlBpXQaRnO6lC10Ncq1pmHHrLNGkMRu/MoFwg= 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=f/+a2tYa; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=fMh6lOkF; 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="f/+a2tYa"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="fMh6lOkF" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AI6fQVr2343382 for ; Tue, 18 Nov 2025 08:53:15 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= TMp7HNJ/zmdg927vlU51I3Qx46lV/WtDLm/uWh7mI/8=; b=f/+a2tYaAlPmGDBQ 3dzwibIQY+tUEYHZoY+WC4YuaO+r2P+oNELQgHGt1v0Q7A5GOykbNg68VAsBGJIK 3CtVihFmJiL9s3XTzHMwvn78cDeUlyNE7SvMuoD+PwNtpR/ZJ/WWT/nYPAosWuZA betmw56hEufcJYABmTntbL0RWFXxdryouVIfucvEUMDwmqAFwxuYBmZCFU0bAdde O/46oxGTPjXd3WjkZ9mVlFRqdiIxmqi1m+8bTKZcodqmJZkcZ2eB0ru9+fc5FiuR GMO+6w/Rqbp45CzCnEAh0l1iPWxOwZbgO4qVrlm5RHhDllxyy0HUN7ImE26a7eUF GT4c7g== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4agkrn0c64-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 18 Nov 2025 08:53:15 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2955555f73dso60581725ad.0 for ; Tue, 18 Nov 2025 00:53:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763455994; x=1764060794; 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=TMp7HNJ/zmdg927vlU51I3Qx46lV/WtDLm/uWh7mI/8=; b=fMh6lOkFXAmMG/bb3DGRTI2yCaLUFhkAPPHFHFQGBpCCdDy0B8WUL9vkJlKTqFMrRm P4W2+PfDeRA8o1ZQsApX9MxdECESZw/Ny5N0wTF8quCbrcuuaBDT4Pu5/NuqgEWTy+DO 6SniKLTSsBtkm1G3Atm+PF3hn3DG6GTDfkkceVIYVlawQz1gtpsTT/fwjwkVDb6YiOH4 6ivWEz7+5FV+S4f0TNoPkpCUFIrlMwFPW9/B6pSYzDxGGdqkOf/cFj476YHY2eIxYwnT Pln5pE5ncBRhIcHPwpOYX3t1QoTX6fgVlmn5TE+R6lWW9RS1kZm523S4NZyyFgHqF7XR dp5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763455994; x=1764060794; 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=TMp7HNJ/zmdg927vlU51I3Qx46lV/WtDLm/uWh7mI/8=; b=SA+pA4Ar0MPdfQ5ZigpLOZEyqonS/B/ebDg332JfD/V8kgkbUs6AOop8sb4QfN+Vdm KlsHQdsMZFr1bJCzFMxx/oLiZC4HxBWrzPyl5KxlHIvTizqrorSrq3qDS3OLXFhVdkk9 XzsHy3duv2DnI63ovetRTGRaM+2o65fXVISdHdYor7JQe2011NBSXRz/hMkbGJsGYER5 bioSl6hzgIQVegJVlX2mpnlhcLewcMwytsiaUOiqTAFA1apy2A52cFwje0vRtH4hV5ax ajmYlYJc3/RhzX/fbO+Wt3BYRBEUBEjIaow7tkytaek8DcaekdvVDbE5TqU9wECpIteX d3FA== X-Forwarded-Encrypted: i=1; AJvYcCUR5HtmnksaWeYa/gYdj8+42LxeedFk8aPaD44unGdsgSr+ypjRYGLBGhA22oJ95FSGppp9uO8FRomW2DI=@vger.kernel.org X-Gm-Message-State: AOJu0YwCGJ+U6TNGgn9OZgaqX6wyOeqSCuimsbNynJyOf8pp2ugFV9ee yN2M6E2AWaAlZQy9HfOX7JE0VfVg6tKKvoUb8IbEUcGN2DnxdJlbNPHV3B/PYf3oh42URvPzy9N YCwEaM3LvAoy6D6Ks1Loho3WSulJBGDlNQvbngT5G8jn2cmWgZBXGk/8xMLJdoO9914w= X-Gm-Gg: ASbGnctFcvIxNPn0Ms69gDWaXl4vLhKbq5EtLcYqi3PEWY5yw2dqGSjg212F5NDzQut Hc67jX9ySeTLf61aUcEAwvi4oZUXNFZRX8hlSJmHcpUPB/ra5foZ5dvg7jwhyvle5fvS4v7XY+S uyF+20mIWUr5t2JG2rs+ai+Z6NyqSVq+XeuY06qb3ronjBgB76isYmy5irmguqzhDGXacFlPCvs xhZiCRdTMrWUmMrdoTbO7SO1mrrAhySWaRJfLqEUBPRiRAosldwX4cAHb00PZSxf0H2+3oaX3bi DfvFP5cqxJKTjH/jLryQ+wjZjANCGWoacNOznfs+IsvfoheXdavaolndqqaxHlxW77+gyoVVQyk pW0qmLhnb3jlqa444ePQwnhA= X-Received: by 2002:a17:902:f641:b0:295:9383:543 with SMTP id d9443c01a7336-2986a6f263fmr177242775ad.27.1763455994453; Tue, 18 Nov 2025 00:53:14 -0800 (PST) X-Google-Smtp-Source: AGHT+IEUkzxk34yLBaUiwOncHo2aD71jLBaEEhzYr/v3YEhhdmJO40Uy+Hz/k4WFRUhKYfUH+Zvrzg== X-Received: by 2002:a17:902:f641:b0:295:9383:543 with SMTP id d9443c01a7336-2986a6f263fmr177242265ad.27.1763455993887; Tue, 18 Nov 2025 00:53:13 -0800 (PST) Received: from hu-akhilpo-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2985c2568c1sm162910695ad.47.2025.11.18.00.53.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Nov 2025 00:53:13 -0800 (PST) From: Akhil P Oommen Date: Tue, 18 Nov 2025 14:20:42 +0530 Subject: [PATCH v4 15/22] drm/msm/adreno: Support AQE engine 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: <20251118-kaana-gpu-support-v4-15-86eeb8e93fb6@oss.qualcomm.com> References: <20251118-kaana-gpu-support-v4-0-86eeb8e93fb6@oss.qualcomm.com> In-Reply-To: <20251118-kaana-gpu-support-v4-0-86eeb8e93fb6@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=1763455868; l=3403; i=akhilpo@oss.qualcomm.com; s=20240726; h=from:subject:message-id; bh=2qp5AoAo/qQVsE3tG8Ep9+XuoxJnnHFPRYeeaqd6Nqw=; b=pITi3Rkt3UiF+9XwRl45qofQch1DIPinzsKbn6E7GtKqqlpYXha4M9LbQiAib7Jj/UqLM0eJ3 1HVGec8z5ImAEZ3+mtrH8YeYQrN6lFRF39+iy8ewiQ1oUFPO2bhFvCr X-Developer-Key: i=akhilpo@oss.qualcomm.com; a=ed25519; pk=lmVtttSHmAUYFnJsQHX80IIRmYmXA4+CzpGcWOOsfKA= X-Proofpoint-GUID: eKxphxX9JwOyMqt8OMbypcpmgEpma1yi X-Proofpoint-ORIG-GUID: eKxphxX9JwOyMqt8OMbypcpmgEpma1yi X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE4MDA2OSBTYWx0ZWRfX/BXLrLDH+XCK woilZ5ZRCx+l28/O3qI/eBRL+n6Dj8W3VOduNAv3MSes7KyXOMJh4oPQi+s8ic/NYlfL9/U6MTE Z/nNOmhsZUT2qA/fu1GE7a6JbORFNQajRHzqMOSV5Wpex8XDarNDBlvGHAg/reKjUM+qgUpGbES jn5kh90ngWODA0Yn8YJ3mpoao5+ZhW9aZw6OGEtW3wlE+pdbc4fV1QAdbKsmJi5Ij49icPwTCSM BWpNAJUpzMRTzIiu5BpBB2sq2hXWW7X1bcImwRrwdFWKUv+Goh6MeSVZhmS3uo8MTm4mEow593+ twlbocATymadmbbl9ls1d+P6Jw0iBueXbpGcMub7085Hz6qpTGcm2C0mmQEK211Mp2HZB35g8kp w1QM7Qs2Hy3jXLD5zVVk2L1aGOHSCA== X-Authority-Analysis: v=2.4 cv=L+kQguT8 c=1 sm=1 tr=0 ts=691c33fb cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=qCSIj6eo76QuOecuVwMA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 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-17_04,2025-11-13_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511180069 AQE (Applicaton Qrisc Engine) is a dedicated core inside CP which aides in Raytracing related workloads. Add support for loading the AQE firmware and initialize the necessary registers. Since AQE engine has dependency on preemption context records, expose Raytracing support to userspace only when preemption is enabled. Signed-off-by: Akhil P Oommen Reviewed-by: Konrad Dybcio --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 22 ++++++++++++++++++++++ drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 2 ++ drivers/gpu/drm/msm/adreno/a8xx_gpu.c | 3 +++ drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 + 4 files changed, 28 insertions(+) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/ad= reno/a6xx_gpu.c index 810b64b909f5..9a643bcccdcf 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c @@ -1118,6 +1118,23 @@ static int a6xx_ucode_load(struct msm_gpu *gpu) } } =20 + if (!a6xx_gpu->aqe_bo && adreno_gpu->fw[ADRENO_FW_AQE]) { + a6xx_gpu->aqe_bo =3D adreno_fw_create_bo(gpu, + adreno_gpu->fw[ADRENO_FW_AQE], &a6xx_gpu->aqe_iova); + + if (IS_ERR(a6xx_gpu->aqe_bo)) { + int ret =3D PTR_ERR(a6xx_gpu->aqe_bo); + + a6xx_gpu->aqe_bo =3D NULL; + DRM_DEV_ERROR(&gpu->pdev->dev, + "Could not allocate AQE ucode: %d\n", ret); + + return ret; + } + + msm_gem_object_set_name(a6xx_gpu->aqe_bo, "aqefw"); + } + /* * Expanded APRIV and targets that support WHERE_AM_I both need a * privileged buffer to store the RPTR shadow @@ -2400,6 +2417,11 @@ static void a6xx_destroy(struct msm_gpu *gpu) drm_gem_object_put(a6xx_gpu->sqe_bo); } =20 + if (a6xx_gpu->aqe_bo) { + msm_gem_unpin_iova(a6xx_gpu->aqe_bo, gpu->vm); + drm_gem_object_put(a6xx_gpu->aqe_bo); + } + if (a6xx_gpu->shadow_bo) { msm_gem_unpin_iova(a6xx_gpu->shadow_bo, gpu->vm); drm_gem_object_put(a6xx_gpu->shadow_bo); diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.h b/drivers/gpu/drm/msm/ad= reno/a6xx_gpu.h index e6218b0b9732..3a054fcdeb4a 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.h +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.h @@ -59,6 +59,8 @@ struct a6xx_gpu { =20 struct drm_gem_object *sqe_bo; uint64_t sqe_iova; + struct drm_gem_object *aqe_bo; + uint64_t aqe_iova; =20 struct msm_ringbuffer *cur_ring; struct msm_ringbuffer *next_ring; diff --git a/drivers/gpu/drm/msm/adreno/a8xx_gpu.c b/drivers/gpu/drm/msm/ad= reno/a8xx_gpu.c index c9cd7546024a..e011e80ceb50 100644 --- a/drivers/gpu/drm/msm/adreno/a8xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a8xx_gpu.c @@ -627,6 +627,9 @@ static int hw_init(struct msm_gpu *gpu) goto out; =20 gpu_write64(gpu, REG_A8XX_CP_SQE_INSTR_BASE, a6xx_gpu->sqe_iova); + if (a6xx_gpu->aqe_iova) + gpu_write64(gpu, REG_A8XX_CP_AQE_INSTR_BASE_0, a6xx_gpu->aqe_iova); + /* Set the ringbuffer address */ gpu_write64(gpu, REG_A6XX_CP_RB_BASE, gpu->rb[0]->iova); gpu_write(gpu, REG_A6XX_CP_RB_CNTL, MSM_GPU_RB_CNTL_DEFAULT); diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/= adreno/adreno_gpu.h index c496b63ffd41..0aca222c46bc 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h @@ -27,6 +27,7 @@ enum { ADRENO_FW_PFP =3D 1, ADRENO_FW_GMU =3D 1, /* a6xx */ ADRENO_FW_GPMU =3D 2, + ADRENO_FW_AQE =3D 3, ADRENO_FW_MAX, }; =20 --=20 2.51.0