From mboxrd@z Thu Jan 1 00:00:00 1970 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 687734E2F14 for ; Fri, 25 Sep 2026 15:58:45 +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=1790351928; cv=none; b=r7BpTFiFlQsMjZApU3YfmAjy5vLIURB8ilE2Ot5zR+wrV87Bba8HKFJHcs+cMqMOhFat6Z39kd1RhkTN6rxZTrLYlBE1XHE/0LwPV80Tr5LzFpj1jfod/cNZyx84L1wQdTOD6l929esyuvktK4ILK9sM76IpTyzkDtfcaR7tbsU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790351928; c=relaxed/simple; bh=Or/odA96EXtI3VIrzDdE2gQFAGxcRWCX0rIBvqgN0kQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GPdosbmUE7axGc6jOCv+ZDCbBAWsfWsd8qceR/f7bdMO8Ygm57EAjgHTGBO6JFroLGgPiKQuB7xje3UrQ83EqcpCksvfQG+bFnz+nL7Oo/fIBJKuxmficRoVlOLsTVcBoLebex1mwmCw7TPsZERn/sj34FnB+KNZxqHeHr2BdNQ= 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=jIh+/103; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hgP0VvhR; 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="jIh+/103"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hgP0VvhR" 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 68PA4B01609090 for ; Fri, 25 Sep 2026 15:58:43 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=YsHFeSAp3CU eDC6/pijBcy66HKE+cMN4f7sayTp0/R8=; b=jIh+/103IYUgxoTwAISVwVI9lYA 8X9dPiweKj3Cj0ivXSMIKmEEEYGRkUWAlt253f8PyQYc5/C5IXZKTsHM/umc7NKA 2qHjdlZledxNycrIjw0fOBEbnjABaVvwICnn0YA8AvagzVYEbEgDNlPIGtXsrNyp jsm/bGVdqYxHfYx7CxYfX6L5j0HxotN3Xxhv15jXbjs9NG6eni44ZN5Na69g4V6i y7nAIjsa5GyCEmkP+3JLpXFcMhqq1R7qf8iIV7LFudxHOYebTl9UKNvj0Wf590Zv pvNmY0xMfykGXoiZlTQXIYgWC5D+/2MeOiaVPRfK8in7WG24ohov7Ck8oZA== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gwpvns6pw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 25 Sep 2026 15:58:42 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-8710450f731so775843b3a.0 for ; Fri, 25 Sep 2026 08:58:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790351922; x=1790956722; 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:content-type; bh=YsHFeSAp3CUeDC6/pijBcy66HKE+cMN4f7sayTp0/R8=; b=hgP0VvhR1eHlRvqRDJ2wo3kxcK6xb33SmxXDpcoxYx6Mvq/dskzdrjV6kB0bOzPuDo 49o2Nej8RSlIpe/HRvrAYxCsTGNuxdrg1MlEIRGRqY4UPeIZTAxqwZyy7vDMFuNTP9C6 6k8NAV+Qlc0nfCJzRhpl1V5C/X/Gvp5RgtxEBrfF3J7Csh4zuEJbLDGFDev1UN6UoU8I VERg8nupnNp8E4DCMj2KN2rYQSkXux3qPUIy6bzNkmwFKgssGO0uZ8YsSVm5E30QcMCk ulYyKnr1PMUe9LESQvcwScS+OlCiMeB1M0h1FDUKaJl+kkkC/3HtwBJn0uTjoO5dMVue fcYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790351922; x=1790956722; 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:content-type; bh=YsHFeSAp3CUeDC6/pijBcy66HKE+cMN4f7sayTp0/R8=; b=iyq2/BXHtGK+OX3yhXhmL3wIQysi6Q9fjmgcMivsaUAmr+vEWPFwKm2dLyBfPaVVB2 cAk8Aa8c1k3xYB4r6N5rdW5U/q0TXozruPF9Vgqrh7LrhfMAiHwob8MYHcNaVMhzWlki 8BnZGRfEwpSx5FZp4eHN9Ce/IgpsKbXnkPN0IDMUSx7dX+gX6lhi/tOT9H7iFnLjsbhn WMAFBaeAyhUqYgyAapECD9Lbxo9ensZrlBOpDPOIfBe6feMbCVI3b7TZy8asuBxr42MS QG381uuCwveaBROCicV2Puj9M/j6Kg3f2Yh5cJIAmKTxMnWbSO4LvzFcwpXtxKZ9GHba hBVA== X-Forwarded-Encrypted: i=1; AKwUvBwXmTKXkXmCetcN+MuCumh71akFTVBpFSvnHoGPLwl7fKKUnZsrLbCaOxEym0oiwrp1KpmbMyc=@vger.kernel.org X-Gm-Message-State: AFuF++ndV4lSMgU/C0XI80nc5dcxCoVt9wn4doKccDEe3AeAgVWkukKz +v5cdtjMsHPdb58vtv8Yp/HYoVvodoXxB4sPQz8e2JmUcZZL+l7THWPZ02KqRdSOEzsPPaCjBmh gD2nnbX5P6NiP+kSQNlAdZ8fPJ7VkE7P6rvy/tRDqD4Iwiri/lYxdrpIuBrg= X-Gm-Gg: AYBFou0Avnby9YKZF0sCVNxD/Kak/42cGS2ZulsBWhhK4eBGvOaIz9h1GsYM/eTPXWB m94jPn5y//59qkMJhsBR1+1v+TklccpR0tVMfiQihwHmLwDxwjFS/mFRGHvddGVpEq/ICogzUMP PzRcBuMh4mu26sC8FvyzbVx8O0CTsKug3hZYxEQ4/ZnfkXkaoL5DWQoVGP0vLXN7y3+Z70qqFnQ qVNoMDXFyAgznycmnoSKyw5kbnDN8fPtPeYzB/j1CPtm9MGI7enrc2SLvRZ5HWHVjcgH/5vUaU6 DsVhEkeE0LYZJzb67sb9QVv3+Mje5LqdVTU4k09uiVVgXDQOSqYRK6jjRL+5G1jXHVj1t6RwSF1 qiyj0MEapbdDX9Xn9L8f1pWpIjZw= X-Received: by 2002:a05:6a00:301a:b0:874:708d:b631 with SMTP id d2e1a72fcca58-87e9d8da4dcmr5253206b3a.29.1790351921291; Fri, 25 Sep 2026 08:58:41 -0700 (PDT) X-Received: by 2002:a05:6a00:301a:b0:874:708d:b631 with SMTP id d2e1a72fcca58-87e9d8da4dcmr5253154b3a.29.1790351920637; Fri, 25 Sep 2026 08:58:40 -0700 (PDT) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-87ff354d854sm1361299b3a.2.2026.09.25.08.58.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Sep 2026 08:58:39 -0700 (PDT) From: Mukesh Ojha To: Sumit Garg , Bjorn Andersson , Konrad Dybcio , Rob Clark , Dmitry Baryshkov , David Airlie , Simona Vetter , Vikash Garodia , Dikshita Agarwal , "Bryan O'Donoghue" , Mauro Carvalho Chehab , Alex Elder , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jeff Johnson , Mathieu Poirier Cc: Abel Vesa , Sean Paul , Akhil P Oommen , Abhinav Kumar , Jessica Zhang , Marijn Suijten , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-media@vger.kernel.org, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, ath12k@lists.infradead.org, linux-remoteproc@vger.kernel.org, Mukesh Ojha Subject: [PATCH 4/8] media: venus: migrate firmware loading to qcom_mdt_pas_load() and qcom_pas_prepare_and_auth_reset() Date: Fri, 25 Sep 2026 21:27:33 +0530 Message-ID: <20260925155737.4161358-5-mukesh.ojha@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260925155737.4161358-1-mukesh.ojha@oss.qualcomm.com> References: <20260925155737.4161358-1-mukesh.ojha@oss.qualcomm.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-ORIG-GUID: 4vvoesexXVVMYtrwBfcvZPudtDHAHB9j X-Proofpoint-GUID: 4vvoesexXVVMYtrwBfcvZPudtDHAHB9j X-Proofpoint-Spam-Info: AW1haW4tMjYwOTI1MDA2MyBTYWx0ZWRfX/2IcK4gfdf3A JSyGXN67/o2hVMCW16Ye3AmA3Bl1v0MfSXBgWgEQdR2kAHish9AT+0qQmJrJYAlez3ALjTSSP9x uSWxe82jAnY7sHWB1SLsKtW/zKV5Bc8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTI1MDA2MyBTYWx0ZWRfX538JHpA2pbjJ 41SVHEYry6SxJ5/sAlBh9sPjcsTw/7N8JjS9nqpcOlygw6mJxDiXhUQOALJ3FOBEZsr123N5Vr2 AXF0ggH56Sze4K4xtum4J7BjF9kv2KeoKuIWU9DDhvI6sUV9nzAb52Q71kxpsZIzMJU9HCnMXbJ jX0HBWz+ThD3FbLQdwTRYcU/qeN1gZKcuyoYz6hgO0k9kXBbPivZ4sZn/EfJ4NDknYkHaN+oElR WKHwCcmWeGBHENCV8TyP/A1M3tB0lsRjp5gwS5xFa67VOyjNpa5JA9YOsnzTg278RiHHvrSjWYR Mo/tt4AE9dn9qrmpZewu4PosZLM0Xy3hFOaDHbJz/voLMvfobdcvo17T5LFnX0UDW+CHrf+0QHI booRYLMnfD/QV2Na7Xlbg2nXVcjTYAsOKF2jxIvlk6Uo2gNGLNGR9i7YExtJ+63Z4oExrhwUwRu bbdRBqsDF3xmwZ84D4w== X-Authority-Analysis: v=2.4 cv=eNmGH3p1 c=1 sm=1 tr=0 ts=6ab69a32 cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=KXBF9D8WR1mqcvW3O5AA:9 a=0bXxn9q0MV6snEgNplNhOjQmxlI=:19 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-25_02,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 clxscore=1011 spamscore=0 bulkscore=0 impostorscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609250063 venus_load_fw() uses qcom_mdt_load() for the TZ path and a bare memremap()/qcom_mdt_load_no_init()/memunmap() sequence for the non-TZ path. venus_boot() then calls qcom_pas_auth_and_reset() which skips the shmbridge prepare step required before TrustZone authentication. For the TZ path, add a pas_ctx pointer to struct video_firmware so the context can be threaded from venus_load_fw() where it is allocated to venus_boot() where authentication happens. Replace qcom_mdt_load() with devm_qcom_pas_context_alloc() and qcom_mdt_pas_load(), storing the context in core->fw.pas_ctx, then pass it to qcom_pas_prepare_and_auth_reset() in venus_boot(). For the non-TZ path, pass NULL to qcom_mdt_load_no_init() directly, removing the explicit memremap()/memunmap() since qcom_mdt_load_no_init() handles the mapping internally when mem_region is NULL. Signed-off-by: Mukesh Ojha --- drivers/media/platform/qcom/venus/core.h | 2 ++ drivers/media/platform/qcom/venus/firmware.c | 29 +++++++++----------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h index 46705a666776..adcf67043bf6 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -9,6 +9,7 @@ #include #include +#include #include #include #include @@ -223,6 +224,7 @@ struct venus_core { size_t mapped_mem_size; phys_addr_t mem_phys; size_t mem_size; + struct qcom_pas_context *pas_ctx; } fw; struct mutex lock; struct list_head instances; diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c index 3a38ff985822..4ea4c7769ac3 100644 --- a/drivers/media/platform/qcom/venus/firmware.c +++ b/drivers/media/platform/qcom/venus/firmware.c @@ -86,7 +86,6 @@ static int venus_load_fw(struct venus_core *core, const char *fwname, struct resource res; struct device *dev; ssize_t fw_size; - void *mem_va; int ret; *mem_phys = 0; @@ -117,21 +116,19 @@ static int venus_load_fw(struct venus_core *core, const char *fwname, goto err_release_fw; } - mem_va = memremap(*mem_phys, *mem_size, MEMREMAP_WC); - if (!mem_va) { - dev_err(dev, "unable to map memory region %pa size %#zx\n", mem_phys, *mem_size); - ret = -ENOMEM; - goto err_release_fw; - } - - if (core->use_tz) - ret = qcom_mdt_load(dev, mdt, fwname, VENUS_PAS_ID, - mem_va, *mem_phys, *mem_size, NULL); - else - ret = qcom_mdt_load_no_init(dev, mdt, fwname, mem_va, + if (core->use_tz) { + core->fw.pas_ctx = devm_qcom_pas_context_alloc(dev, VENUS_PAS_ID, + *mem_phys, *mem_size); + if (IS_ERR(core->fw.pas_ctx)) { + ret = PTR_ERR(core->fw.pas_ctx); + core->fw.pas_ctx = NULL; + goto err_release_fw; + } + ret = qcom_mdt_pas_load(core->fw.pas_ctx, mdt, fwname, NULL); + } else { + ret = qcom_mdt_load_no_init(dev, mdt, fwname, NULL, *mem_phys, *mem_size, NULL); - - memunmap(mem_va); + } err_release_fw: release_firmware(mdt); return ret; @@ -237,7 +234,7 @@ int venus_boot(struct venus_core *core) core->fw.mem_phys = mem_phys; if (core->use_tz) - ret = qcom_pas_auth_and_reset(VENUS_PAS_ID); + ret = qcom_pas_prepare_and_auth_reset(core->fw.pas_ctx); else ret = venus_boot_no_tz(core, mem_phys, mem_size); -- 2.55.0