From nobody Sun Apr 5 18:22:01 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 6EB9E3E4C82 for ; Mon, 23 Mar 2026 20:14:12 +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=1774296853; cv=none; b=rLsH6HfYxqbMyzY35AfjYSGp7XdO6nKfJAGqWF7XABL8QEnCzRWS1Re4g5dCOEzpOWi5FGEIUUcMTJzgL/KBqNcDccRaofpT9Nzp3IRNmY45yIjuIrHe3X2iNIpAKF+ULeNmkxsTWXNXQ2BKBG3LVJK25FKPIF3i2BnKrun5l38= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774296853; c=relaxed/simple; bh=OALDtSgWAoUx/EoQ1+hF76+gqkywPVTt4BGA/lmsR7A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZF9PUWxH4pSfwhlXpo00wrCpDLwey1m2ZsZIOmcMBzCgTdi4dnWW00FLJRJgRVl2Pj41XC7VC6cOnWyHTa2gT2cX5Nms0i54bNeZ/A/Jj4/bL2wlpyKVM511ubooEhMWX50ue1kRcfymbZjsyPJqlLA95n3QxbF3jD0JjlQTuWY= 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=dKowUVY5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kotSCHnT; 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="dKowUVY5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kotSCHnT" 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 62NHqurX3934989 for ; Mon, 23 Mar 2026 20:14:12 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= CGj71twJ5ZzNNZi9iu7gqpb92KAhwgkcEKsZ1QXTiMw=; b=dKowUVY5LJ5uf1JD bo/duJJ02zO4z658gX+PdzgFzXswOv/PBrSAS90rkrJlnpNSk9IJr+m6QcjQtXIJ 3prq2NzzX4fb4SY7/Ofl1Zi8kI+uZLgJfcqNnMlkNW2E2mvTTSzYQUUnyeCTTrm8 xE1vd9CtsuFZTlJP9Q0gZGK8nny9zkV4KIrf2BOzHs/bZpMuJrHXMvCmWLetvIr7 AInRMj/AhTRLiU5wSmv6OEdsCOEabI8slm0OSjiddz0fAv6d9VT5eOOOz+KEzbOA 4pkANv7qj4uFhhSHIYzvE2F/BGwds3anmSrWWCFbPD3lNsh4+mwgAABI73CIP4Km +Xy5Yw== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d37a0h6nf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 20:14:11 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-35bea322389so2051210a91.1 for ; Mon, 23 Mar 2026 13:14:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774296851; x=1774901651; 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=CGj71twJ5ZzNNZi9iu7gqpb92KAhwgkcEKsZ1QXTiMw=; b=kotSCHnTbR+X5cwLf0WbmiYlwkLzMLrCEjeZ+U9APqcg+W76EVvcL2nBp6vcgyLZlx xeM3rsZIKjQ/PFH1O2zjOMho7XpvPm26Z6dQi9oAPwuuUPtSUBTyGDEgKMoXQ8dYFbsK 25GYYsL3C3eoOKPUtf5zyYqmSSVOSRBMx5ukryyb69nAqJKh0eJRBI3gzS7iN1LbhfXc 7kKXxql5CCTGqtvi00gTkImVMVl1GdqlOZwOB5ZjdsKNLuAtLrBKmXXS4xuNQDoiqKsR 18E8YAWTs3YFZwTwR7i866n18lm5QhLjCRpgMNRgb0P98uiydSAx822oainC8mqDDxsy rKCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774296851; x=1774901651; 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=CGj71twJ5ZzNNZi9iu7gqpb92KAhwgkcEKsZ1QXTiMw=; b=W0Kdh+HlJUvUeQU467F7AwT4YmgLbtlrhf4d6KIKBF5mtnrXEGLHYnOw11/xaphjnF AH5I5flmsz71bmzSwH0R8kA6gk+SZ5pgtLz+D8CcFHx0Qe2dQLKVvK/rIDDxR21TiqVq 0JTlr/WIRuedveuh0XHqmGw4V4LOfI52L5qLTeHmYn1q3qz+nfWLDCDHeAbJHIfj6wti djnUjWF02ze/SxC4gkmxlA8xExRUU5xuq8BXhl+uQk2p2NIvAVKqcmw+xskJefMtC8bN IjLmNB2jPR2ZQCukZLRYYmUk11ob2PREbrE+qRHZnwhkvC1uhybhQx9yiPggXs9ASweY jrkw== X-Forwarded-Encrypted: i=1; AJvYcCUqi9sJ8Z8hx7vbOCsStkmgI7e47HsWGqz16DaXctkzKyN4IgHAWtVbHY4QzJpEQpnPQrB05dw4x4273/k=@vger.kernel.org X-Gm-Message-State: AOJu0YwAzuox9tLHw6zef6Mn5R3fMTfR6JD6cfhmo9G0vn81WwMn5KtZ U4U+s35fjQJ4EauKps11G9sHiRyX2YkDemy0dCh0wzHIGH1p8VqvwPKIANwPIGWkuf7oSQ+LlM4 XwAjSp6Ocv3gPKMT+61ujqTk0x+pgKdcELahExL0RhXTKnaaFfbP47U29VV0Ho+ROyTQ= X-Gm-Gg: ATEYQzzFYgPGzRO/xvPR5rUnsYJ21OT1/fMKfYkgcgvaFCBgaoakAXJb9BCqFIdnb+R yi/Knz0iP1p8NOf6xkdGmAm+alInWURU+j++7ETrlrG+XubhWNXhLWlu4ySiqvD4vbCBQNvyF4Y vqI/1z9+qVbbi0waT6dQKGG+Oli65zQbMfyGweoLITVpZBhzqFUSlMmdUhYR3NXVnEmcqUYJMBU AvsUWYVRl2NsEn6+qNcA6tHo0a3bljpKDVICPNOLWGwakXvYk3PYhrwC80RqxlPKNOHQJZdPtX2 sHpXGJuDaB878uCGLcTKm9G+yp3VmcGcnIrqIe5xA/FEexdFpLxoMf4zVjlz00aYTJuAC8uwzoe +GlNLDH9m2HjvVHJVF5O7jNbVzb0z+85YTmVhU6ozO/8FHg== X-Received: by 2002:a05:6a21:6d99:b0:395:7fb:9362 with SMTP id adf61e73a8af0-39bcea16744mr12834161637.19.1774296850981; Mon, 23 Mar 2026 13:14:10 -0700 (PDT) X-Received: by 2002:a05:6a21:6d99:b0:395:7fb:9362 with SMTP id adf61e73a8af0-39bcea16744mr12834139637.19.1774296850493; Mon, 23 Mar 2026 13:14:10 -0700 (PDT) Received: from hu-akhilpo-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82b0409d148sm9510738b3a.29.2026.03.23.13.14.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 13:14:10 -0700 (PDT) From: Akhil P Oommen Date: Tue, 24 Mar 2026 01:42:28 +0530 Subject: [PATCH 16/16] drm/msm/adreno: Expose a PARAM to check AQE support 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: <20260324-a8xx-gpu-batch2-v1-16-fc95b8d9c017@oss.qualcomm.com> References: <20260324-a8xx-gpu-batch2-v1-0-fc95b8d9c017@oss.qualcomm.com> In-Reply-To: <20260324-a8xx-gpu-batch2-v1-0-fc95b8d9c017@oss.qualcomm.com> To: Rob Clark , Sean Paul , Konrad Dybcio , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Marijn Suijten , David Airlie , Simona Vetter , Antonino Maniscalco , Connor Abbott , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Akhil P Oommen X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774296753; l=3641; i=akhilpo@oss.qualcomm.com; s=20240726; h=from:subject:message-id; bh=OALDtSgWAoUx/EoQ1+hF76+gqkywPVTt4BGA/lmsR7A=; b=0U/dxL1yL6aQatKBLmc7nPkUYTffkVUmMgtW1qBahyOb239m7K436lkQdHzJI2lNLj8kbRpdK t0Tp+PB1ZxYBf3Q8mB5wv+jUSHLjlETidORFunZfMQSFnyjxEHRepxA X-Developer-Key: i=akhilpo@oss.qualcomm.com; a=ed25519; pk=lmVtttSHmAUYFnJsQHX80IIRmYmXA4+CzpGcWOOsfKA= X-Authority-Analysis: v=2.4 cv=GIIF0+NK c=1 sm=1 tr=0 ts=69c19f13 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=VDML5bnlI8VuwgTyKRQA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE0OSBTYWx0ZWRfX8TS3IKtQlSqG Fq0iHhl/E32o9WB96HkRimfwns/X8YjEfK0Kb8DSw+5DGnqbJzulqZVriSb9BRQWvxJ+RJCgiAz D8K0Hij/LYh0nsO66glJWlDuQ7SCtrsn/FXBHA8tW4/HMn8cPv69FnRYZWwD9w9EebkZF5VGf62 PX+o76e1JJGeN8MOSCLLfa5DheqKFTd0i7pPDIWTMA9cuA2ARqwb3TYnDTSnuZp2bIn9yyoH7rF toKbvc0f1j1224hlxck/0ZeGpO3tMC0KxnTu4ETiRbMcN0SLh1pMLlujsQJ+rAr3YnN7SVoqU0a lVHu401dIYHYCfrhxtkBOG+jYjcP6ZHgVstPReVsUf+5wo7T1/PWgV/QLqjmpGUsevArzRipkdp kENSrB45Q5CoPOC0ePttVD6Q+FzPXwMpCejSQjmaMI7apvjTSoAKSEtOPajvznVT/Ou2JZlqEGn fK1CzQcYfOpxqMj3j3g== X-Proofpoint-GUID: dmORpej4LDaSPBBKz6jVfNzfNp0bYrdr X-Proofpoint-ORIG-GUID: dmORpej4LDaSPBBKz6jVfNzfNp0bYrdr 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-03-23_05,2026-03-23_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 malwarescore=0 priorityscore=1501 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230149 AQE (Applicaton Qrisc Engine) is required to support VK ray-pipeline. Two conditions should be met to use this HW: 1. AQE firmware should be loaded and programmed 2. Preemption support Expose a new MSM_PARAM to allow userspace to query its support. Signed-off-by: Akhil P Oommen --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 13 +++++++++++++ drivers/gpu/drm/msm/adreno/adreno_gpu.c | 4 ++++ drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 + include/uapi/drm/msm_drm.h | 1 + 4 files changed, 19 insertions(+) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/ad= reno/a6xx_gpu.c index df739fd744ab..224b2f7cc8d3 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c @@ -2610,6 +2610,17 @@ static int a6xx_set_supported_hw(struct device *dev,= struct a6xx_gpu *a6xx_gpu, return 0; } =20 +static bool a6xx_aqe_is_enabled(struct adreno_gpu *adreno_gpu) +{ + struct a6xx_gpu *a6xx_gpu =3D to_a6xx_gpu(adreno_gpu); + + /* + * AQE uses preemption context record as scratch pad, so check if + * preemption is enabled + */ + return (adreno_gpu->base.nr_rings > 1) && !!a6xx_gpu->aqe_bo; +} + static struct msm_gpu *a6xx_gpu_init(struct drm_device *dev) { struct msm_drm_private *priv =3D dev->dev_private; @@ -2808,6 +2819,7 @@ const struct adreno_gpu_funcs a7xx_gpu_funcs =3D { .bus_halt =3D a6xx_bus_clear_pending_transactions, .mmu_fault_handler =3D a6xx_fault_handler, .gx_is_on =3D a6xx_gmu_gx_is_on, + .aqe_is_enabled =3D a6xx_aqe_is_enabled, }; =20 const struct adreno_gpu_funcs a8xx_gpu_funcs =3D { @@ -2836,4 +2848,5 @@ const struct adreno_gpu_funcs a8xx_gpu_funcs =3D { .bus_halt =3D a8xx_bus_clear_pending_transactions, .mmu_fault_handler =3D a8xx_fault_handler, .gx_is_on =3D a8xx_gmu_gx_is_on, + .aqe_is_enabled =3D a6xx_aqe_is_enabled, }; diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/= adreno/adreno_gpu.c index 826661cb7988..f7289a9ee0bb 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -443,6 +443,10 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_c= ontext *ctx, case MSM_PARAM_HAS_PRR: *value =3D adreno_smmu_has_prr(gpu); return 0; + case MSM_PARAM_AQE: + *value =3D (adreno_gpu->funcs->aqe_is_enabled && + adreno_gpu->funcs->aqe_is_enabled(adreno_gpu)) ? 1 : 0; + return 0; default: return UERR(EINVAL, drm, "%s: invalid param: %u", gpu->name, param); } diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/= adreno/adreno_gpu.h index 044ed4d49aa7..c0ee544ce257 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h @@ -84,6 +84,7 @@ struct adreno_gpu_funcs { void (*bus_halt)(struct adreno_gpu *adreno_gpu, bool gx_off); int (*mmu_fault_handler)(void *arg, unsigned long iova, int flags, void *= data); bool (*gx_is_on)(struct adreno_gpu *adreno_gpu); + bool (*aqe_is_enabled)(struct adreno_gpu *adreno_gpu); }; =20 struct adreno_reglist { diff --git a/include/uapi/drm/msm_drm.h b/include/uapi/drm/msm_drm.h index 5c67294edc95..b99098792371 100644 --- a/include/uapi/drm/msm_drm.h +++ b/include/uapi/drm/msm_drm.h @@ -117,6 +117,7 @@ struct drm_msm_timespec { * ioctl will throw -EPIPE. */ #define MSM_PARAM_EN_VM_BIND 0x16 /* WO, once */ +#define MSM_PARAM_AQE 0x17 /* RO */ =20 /* For backwards compat. The original support for preemption was based on * a single ring per priority level so # of priority levels equals the # --=20 2.51.0