From nobody Mon Feb 9 21:19:59 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 4A9A93321BD for ; Thu, 13 Nov 2025 23:31:33 +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=1763076695; cv=none; b=pnHVEyKYnrNXCbPF0ROmmIrlI8zhhI5xQPqy5DGqXeWjri9ko6gEhx/WejMU/WmDlkkzJp5V1PUYYfhPhRk79KSGVwihsa/kE5lJrGXva1aM9LgoXfrLWJeYfFd4YNrVff3KIL0O2M1SmQJw4FIACZi8iP4n2Mbyu1YrhfLU9Wo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763076695; c=relaxed/simple; bh=vDNLN4cN0PzKe93m1lQLnQLp8oN4RHAbHPt0ChRj+xE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tfIkWJJ2tfmiB/UO6GxkZBGYYsg/+hqKepJ0FhRQ10N3ZqSYojXbYjGBs2i/KvOT6wgWT7hVlGU3cKdDLaZSpqrVyIetuImqiBcAx6/HwH0fJp6GKYshIQeMmLduCXimtCRoK7wqCURDpwXvBok1/tgGg3Kg+/3jKjYIq+4tCbo= 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=Mw1OiDK8; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JzpdP//3; 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="Mw1OiDK8"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JzpdP//3" 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 5ADMavkb1585454 for ; Thu, 13 Nov 2025 23:31:32 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= QDjAMzX1/GGw5QnIGM//3FYMijCaV+ej1ziddao90JE=; b=Mw1OiDK8Pb6bZsSH U48pTdy7ZWEep5GJH9OoWz9Hpxw2o+SrVtEoP8ZRtlXT29kz96EScAXt9JJiJI5F JVdLi5ep4JNn95nwAchEfJV7F0+Ep2XmrKSqdNNpWdj8vys2fqAQe9EelG+YuFeI VYY6U02sQkmLbQzM4165psOQDZFwotTZhm2wiWEddV6XbWAy1kqVoWlbPdtJm6n5 CZrgEbCC3QlKd8+T3YrCr5npm9pXgCuKZ73KsYoegpRq4LD/+JYzVIUGVKaF1p7c twUP2t5ls0dTnHTJFpCh6SQeal6vQOOdWGdeiuO5+LPqqKooGN6dFiVGXhOzU9Dk G+JSRg== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adr9fr4au-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 23:31:32 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-29809acd049so17582315ad.3 for ; Thu, 13 Nov 2025 15:31:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763076691; x=1763681491; 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=QDjAMzX1/GGw5QnIGM//3FYMijCaV+ej1ziddao90JE=; b=JzpdP//3X9xxf1J9OywjvfJC6Pi2xEmVyMYati2cA1j+cZWENx5VE1Rnp/i+EzKlqZ pjpc3Ijzg5D0ds0+cLPSOIFzFsweQg9sB4pYkSjFCe06dqjWd97mlK93p+X01LaRiqTQ U1un5ezxzNUDioLwb5V4Aa7NX6CzPxA1ZLdu1aY5HkTBjx1Eph8gZpQuzVjpo+v9G1Le LcXJoS3tlpPEhqhwRU6BoI3RCaAsGphxZnDVBfcNH+7AAx/F+QUGYGmmalNCjWh+0yY3 6llt7ahd12ivLNMZBXH72/gseiIBzTpKCyyTu6mzR00pmMA9RWt6sYfU9iqptTHJRwKc y4bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763076691; x=1763681491; 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=QDjAMzX1/GGw5QnIGM//3FYMijCaV+ej1ziddao90JE=; b=nadLLeorqELYM9L0hbGbn6HwAhzl3NuxNRo9MwW8RASD+vk0Qq6auyj8e87kfLZdCf jFsRvfshQyUWpQBS7Stctdqdp+6obG+1Xfysqt4fsH0m6nMyMZdvdDYxa2GpSOfDEfTH V6gAEKMZQOlncJn3bMkXmat4cZ5w1BNAjXpsvRTHh/pEvVrNKaAQKTpMR14HoTmZzjH7 p7qHVfGvXNwOKD5Cf+LOlff2E/+EHLsGwrUWBr38x6u3NNUIAwqgjO69Wjrvid4w801Y 2EoEBoQKNhGuWvHl3cU8DeONm0hpEB95XXOQ6sGW3/ZHfgCaG43JM5cnR9nnV/MN8mGb Jkvg== X-Forwarded-Encrypted: i=1; AJvYcCWwF8ez6lMzILu73WSLa4KstZGI+Ja260DuvcOR7rJGU7fKSBeyE6CByserjbpDPIbJv2k2QG9Fx/eN2hk=@vger.kernel.org X-Gm-Message-State: AOJu0YzBScNfweR/6Mb/UjPL55HfYny/5nnwVgxItepUq1T6StlO+43j mlSdyVnYQQoFT8KLBM8LjcZDhmadE08ixvWZGUvH137Q3Q2yNizR+i8+5QgzJy3zFKMwkP43gAA O2b2XLN58l/ayfFfh0icxEOlzaMZH0K/MsKER8v6Kpi3m4E2BaHoL1yfWq+GlXtQiB6E= X-Gm-Gg: ASbGnctB6qo4UOX2HqP5YkIoXebv/lNQl4HKEcl4gHE9Esn1JCGaBvqlmABUYhGjnre AvlLEC2gl+xHno74XNMoeuZq+hIBb7S9uncu0vBf54fwm3IYjzK2iWDtSPDjtPEk99mO43kEnvH UIcPwtAJXs8Ir/wt2ncpLaQRUHi9/t+7ruo7Oa+tYJBTwbjzPdehU+cXKm2U1NnSbysaFvIp/xz 8R0oKEa+m4mLMYltGwea7FM0wNflVf5Jlo9M1Fr5aN7QO63j5MWkEVz7Fnt9Yd5cUTWuihWGHOe GTpO2lrX/TF3U9HREtk//yfKdE3knnIv7s8oLwEmkCGcL3VWVt+SIaTR+/TQhJhj5stB9LOF4U3 meNsyxTelQJfQBO/QvHXMag4= X-Received: by 2002:a17:903:196b:b0:267:f7bc:673c with SMTP id d9443c01a7336-2986a752a74mr7180285ad.44.1763076691163; Thu, 13 Nov 2025 15:31:31 -0800 (PST) X-Google-Smtp-Source: AGHT+IEv4VMp31p4xpUkl+cBSArUnMXmzuRTp0dA9/uwzoA+kOnP7j0EiVv6LoBQ7lgxDaAp9pqADQ== X-Received: by 2002:a17:903:196b:b0:267:f7bc:673c with SMTP id d9443c01a7336-2986a752a74mr7179955ad.44.1763076690622; Thu, 13 Nov 2025 15:31:30 -0800 (PST) Received: from hu-akhilpo-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-bc36ed72cd1sm3049486a12.11.2025.11.13.15.31.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 15:31:30 -0800 (PST) From: Akhil P Oommen Date: Fri, 14 Nov 2025 04:59:11 +0530 Subject: [PATCH v3 14/20] 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: <20251114-kaana-gpu-support-v3-14-92300c7ec8ff@oss.qualcomm.com> References: <20251114-kaana-gpu-support-v3-0-92300c7ec8ff@oss.qualcomm.com> In-Reply-To: <20251114-kaana-gpu-support-v3-0-92300c7ec8ff@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=1763076574; l=3021; i=akhilpo@oss.qualcomm.com; s=20240726; h=from:subject:message-id; bh=vDNLN4cN0PzKe93m1lQLnQLp8oN4RHAbHPt0ChRj+xE=; b=oJOTsEuxiDw0mQjFV7awI5cZuJCQsXd3sW7WigV/GBEJYyROma0U3lQegB886iKXDxyIF1K3o IWStbmFNJp/AvJ5rOnPtVqvIVQxAAU8dt6hkQjz5F8562Nh4A9cfeCw X-Developer-Key: i=akhilpo@oss.qualcomm.com; a=ed25519; pk=lmVtttSHmAUYFnJsQHX80IIRmYmXA4+CzpGcWOOsfKA= X-Authority-Analysis: v=2.4 cv=SdD6t/Ru c=1 sm=1 tr=0 ts=69166a54 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=rHWH_X82z2bqsOHW_PQA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-GUID: GKeannzPsLTA0WnTpMaxUXJad8yTKYNB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDE4NSBTYWx0ZWRfXw0pFXMv+rGWa QSd+xAhSZF2UwANLhq2QT0aF14c7EiBuHG5ARW9x2gdC0U4zNImAyn6wHQ+HlB2Dlk5cqrS3BYa vA5a+d4GODECnQIYt9iYeOlJN1tDdZM2axg1OcE25P1JKtEbc4CWU+H1Ag0/Se/xMAmErqaUzoN 75LS4MIdCaXqfmQ9qUtACd3oY0xT26fn7tnSO0tMnVIkCL73Fg8GIR6hajL8AAz4nXBY4J0lZbV DZMoL2DoamMhJlefubWtajMmXq42VCgdvzHSPfyw/dw+KGKYE8iUTaKwqoLQfScm330BKZPzLGY JtE2FLPzYA0vIQrMo6tB+PcPMowtR3PUVZ6aDckw8wPKhVsC+7fdWs4wsQMYSjnJm/cPhrGNbGY 8TEo9NT/Ub8+YSjd3zNG+swCYQlzzQ== X-Proofpoint-ORIG-GUID: GKeannzPsLTA0WnTpMaxUXJad8yTKYNB 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-13_06,2025-11-13_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 phishscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130185 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 --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 17 +++++++++++++++++ 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, 23 insertions(+) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/ad= reno/a6xx_gpu.c index 20dbdad6e2e8..ef79f4cfb80b 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c @@ -1104,6 +1104,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 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 cf11135f46d3..78b38b52da91 100644 --- a/drivers/gpu/drm/msm/adreno/a8xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a8xx_gpu.c @@ -631,6 +631,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 155d58751ba3..edf1f6624c31 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