From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=205.220.168.131 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793093729; b=u58bAaWHhZldPfyxZoJzJnV97C/D2QlpggQ8l9W8s+QfwUUtt52SncoNc3mBoYo2JOCT 2bwK5OTEWNgfMl7Ww1YVN/+tOk9xEWs+CLG0Ex3iaXeYA9Zt0sZwK2bXzfsl6Yyq/03CC jtp9Afh2/vgGp72185EscYRJ7SmpawOVAJbVmQk+qPhPFgW/x+VzNAXmzPJbuSftmSx8I DOQKoyx5IRal8N/KevQtigKpQXVVjXsvNlsJUbew0eX58d/FiQPY4UFykDFePEkgPoXeU mSHqMbDM1nmmuQBMaXMAKvTLzQgBW0RJpSv5SHOGmGVeIsEXx6O1Wz5sMkW1ZN1CgEQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793093729; h=DMARC-Filter:Received:DKIM-Signature:Received:Received: DKIM-Signature:X-Google-DKIM-Signature:X-Forwarded-Encrypted: X-Gm-Message-State:X-Gm-Gg:X-Received:X-Received:Received:Message-ID: Date:MIME-Version:User-Agent:Subject:To:Cc:References: Content-Language:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:X-Proofpoint-Spam-Info:X-Authority-Analysis: X-Proofpoint-ORIG-GUID:X-Proofpoint-Spam-Details-Enc: X-Proofpoint-GUID:X-Proofpoint-Virus-Version: X-Proofpoint-Spam-Details; bh=j6yPMDXi4fS6KQ3576nZY/OVApnfprcl/P19fLe4qcQ=; b=vJJqHET5RqDJxl12kphC4RZnGL4W+ubrBuTDb7W9LTnWj79ueDJRt/QLpyT7CmA/gd37 rgbOiXO3RXzNMkRkemtWicnp0MDFV5yv6OAAdwSOq5juxYY+Me9fMNc7Qag+yeW1yCFRc mlEI42ZnQK097nnDM/9bHb6uh2CV5dUAD8af1Hdf8uHLXdzVh0JXrz+qG3+3dowwG9LNO Tz6ibc/PVmolr8LbvPwiZaIBoDqQEGGSPxTl5QUZbp+6CLPCDSUGE+Jgi0Ifg12QG3gLn aSXDvYb1/efyzVy9zT5IvHsTF/AUv3/L+GDnlTNyO+kEEOovLDm1gHzmYOBWO7PcN6A== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=CRCBryhV; dkim=pass header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=MudagVxb; arc=none smtp.remote-ip=205.220.168.131 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C9828606A32F for ; Tue, 27 Oct 2026 09:35:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org C9828606A32F Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none 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, unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=CRCBryhV; dkim=pass (2048-bit key, unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=MudagVxb 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 69R8gROe168815 for ; Tue, 27 Oct 2026 09:35:28 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= j6yPMDXi4fS6KQ3576nZY/OVApnfprcl/P19fLe4qcQ=; b=CRCBryhVSiz9hmn5 WNjNIF0n6TsVPZRkGrzm6EgWdxYT7/8pSIbWs2MmHL5eVGe7f3RrA1i+2A1iXtT+ jnplF4qHhSttPzkVc1nbpv6zktC5x0aP4awSTl57EgUAXQqckxqpy5r6jJFRnK67 oZHOqgJH5ldqBLDkgLeceO81PvGGtH8BZBJrg/u3ICRol6RErVKqjn+r7UnJ4ocg rmAXBJ8zamLt27pTzeWsaeem127fcw5cwehjYUItzJjSq8eCR1aziuxH13bmCxtD 6+yW5CAAL3oPPNQX+qQI/Si4SrM7UUp/jkPyEf8gDmhvY0YW5wnDujIamsCgtBWS 1FGT/w== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4hjb54k3yf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 27 Oct 2026 09:35:27 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2e987ec84afso40688485ad.3 for ; Tue, 27 Oct 2026 02:35:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1793093727; x=1793698527; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=j6yPMDXi4fS6KQ3576nZY/OVApnfprcl/P19fLe4qcQ=; b=MudagVxbWo4iBOXHsGektvCMaHc+frUdhZpA29pIX5Nj+eKn/JU4iJBNhXZc1uNcLf c1o3jEIgNfO2tOxKaWKBCemtZ5Wq7oC1aNZIZyezMOX2VJIcbwAyh/ayPj9TRMsmWM+X aU0fP8q4QVAfrOTMhApv9mongxgBHItSTAH7kyDGZuX6nMGi5ObzJVeg5fI8uqLM/09z X31F+1/BaJgjWGfrz6YjZxMwg+uAGw23Rq2ztuihwJZNg6bimnz47A0pn7f/i23IwbPu F+DeIQuyhn/q6oJt3Gox4rcsDt7RPf0m8S2TCYe5hhniLI8pbIgBJidwCkYeWGnjmNfn VlIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793093727; x=1793698527; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=j6yPMDXi4fS6KQ3576nZY/OVApnfprcl/P19fLe4qcQ=; b=WxSH7SWunAHQExGiKs3PWbEzg7ZL0q8A0riWOwB7EYQd98PnHeeeoobuoinPMeA4bO l6ctaMF809F79Kx8EsdKXOBMUlNK2G0YvqAglckLcxvMJE12DdLQTYU8D8Zi/aesVnuR ABHY4PEEkKca2rAJMX5mz6UB0yasFNKB1HveHzwGPDi4JvONJneykVXvSW5nbwZOtC0r 2TD/wAfP68Z1HZw0MBDY6ZCxYXzf9jT+qgXtIWZHF3bZjzoOPRjzXw0lg6AsTwWcPKfh nFrjvXJU+pjI8WM6bc1XO9FnXg2HnsS8evI/E1fAIshOwGXGznaBsxcnqjW1Ov+FBH8v 7Vtg== X-Forwarded-Encrypted: i=1; AKwUvBwv/Ydprsxz5H6I+/tIoSRlyDmMIkKV0kocxHOwOcJCJ/7kQmIiNNkgMn70Cmy5/4Mpj8I+bd8=@vger.kernel.org X-Gm-Message-State: AFq9FYJVYlTJphfAqzZ3AzUymIUXn6SXPEmj05RwpopycU0sI1MSU+HS u4QsAbRuTmEBXzTfazdjT2nSAKDBdZQVn6GjUt4jJR756tsM6/vqyLIdzDVsNsiDJOi9YFYrnxl ePeqDEelz3OKmINwaIgo7aBKO62s8rbdFqwQjegtW30AM2mUP43xGYkLhFsI= X-Gm-Gg: AYBFou2C5UsNuMnBfqU9a57tn+t2/P6iURibKCMWtmf9gS12BHFy5gl3zGGy/iZLYVX keLBIDD03q1PArb7fWIzzTwd8vRUWYhtoslFIPhWl2ELV5KNGtNQYWxQ83PCuyjMthhY0yslbXk BzsU4R27n4PhBbSCzpI2EyqR2aWhpM0BNZX73/WT0bfOLKVtZ36tiP3DWztbkxJ75w1aJJGLDla QKiDd5K/met6DjUHmXPGidQNuwLYtzYsRoXJp5mj0cQN3t/+uVPZh4GgaDxVAZKKMxtG/+oLrNZ Q0+PbhYMOE8voRSL1PPNavBD2v7oDeAvGbk17GyASgemva16UtIjv5tZqjrEhr3wJLdEVXUBJFU qnkXoLVHyQFrM0ZePN3qwyhPccZvK6cA= X-Received: by 2002:a17:903:1a4e:b0:2e8:7686:4d46 with SMTP id d9443c01a7336-2ea9c7fa255mr70643385ad.34.1793093727130; Tue, 27 Oct 2026 02:35:27 -0700 (PDT) X-Received: by 2002:a17:903:1a4e:b0:2e8:7686:4d46 with SMTP id d9443c01a7336-2ea9c7fa255mr70642895ad.34.1793093726553; Tue, 27 Oct 2026 02:35:26 -0700 (PDT) Received: from [10.204.101.238] ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2eae6b7a216sm6260945ad.16.2026.10.27.02.35.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 27 Oct 2026 02:35:26 -0700 (PDT) Message-ID: <73bb47d6-af10-41d0-8fd2-173eadbaa937@oss.qualcomm.com> Date: Tue, 27 Oct 2026 15:05:14 +0530 X-Mailing-List: netdev@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 4/8] media: venus: migrate firmware loading to qcom_mdt_pas_load() and qcom_pas_prepare_and_auth_reset() To: Mukesh Ojha , 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 References: <20260925155737.4161358-1-mukesh.ojha@oss.qualcomm.com> <20260925155737.4161358-5-mukesh.ojha@oss.qualcomm.com> Content-Language: en-US From: Gourav Kumar In-Reply-To: <20260925155737.4161358-5-mukesh.ojha@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-Spam-Info: AW1haW4tMjYxMDI3MDAzOCBTYWx0ZWRfX0B0x5lAFYebm NOE10DkMBRdAYschcC08cl/uIsRRDCd8rs+riSfvAfsRcq3/cOginDqHhmUgtNGjs6CopufWpFO jKaenpCp44Xq9bes8+T20VoAg0I77oY= X-Authority-Analysis: v=2.4 cv=bsnZl0ai c=1 sm=1 tr=0 ts=6ae0705f cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=660iZSQnnn4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=qKw8xLqAnBtdxZYI7koA:9 a=0bXxn9q0MV6snEgNplNhOjQmxlI=:19 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: NLxKug5jj5UDxny3wjeI1MW5jxkSb8Oc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDI3MDAzOCBTYWx0ZWRfX/RV/WxHs/5Vm 1GlC5Li5QDc8Nf66uCYKYow7dhcOD4OK3/qajqe+x3QEEbOtUWd9qnn1H/I3RED77ZND0ia47QH fORH+3N+LVIC7nGbFUlk2Vy3Mfuj60TU9M6HneQ28tTECsM7cuuU8aUsd3VM4mNuy7pA+SJbSok TKUMDeAMBX1Wp4VkT1N7fXyQMXcEtWM7JACa4FtpSKTQhGBNCwWAFrr989qnVKGJ8YA3skoa0Gb ds1NmapabLLL9W5MikzruCv4It1KtlUUKeNpmJi3OAjlPVr6xDnyyf4poUCn21Cc8fUz4ILi8g0 kE7mWeSW44GtLGxbvXNlJXJWHNE3Tgl6AR4Kh4rdNHIM0kK+d3HLQrvQyGKxVsYhg6Fh6GEcaC4 M7tC4RFwTJL187VIoYEWwdCOhUjxxznf7Y/vqu0qV5RHPw6NDY8O6Oh1pRpF2qp2WBONqp3bW5J EjEKKG4vIye935BfhQA== X-Proofpoint-GUID: NLxKug5jj5UDxny3wjeI1MW5jxkSb8Oc X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-10-27_02,2026-10-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 spamscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1011 phishscore=0 suspectscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2610190000 definitions=main-2610270038 On 9/25/2026 9:27 PM, Mukesh Ojha wrote: > 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. That is only true after patch 7/8, which adds the NULL mem_region handling to qcom_mdt_load_no_init(). Until then a NULL mem_region is rejected, so the !use_tz path fails between patches 4 and 7, which breaks bisection. I would suggest rearranging/splitting the patches so the qcom_mdt_load_no_init() change comes before this one. Gourav Kumar > > 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); qcom_mdt_pas_load() passes the ctx to qcom_pas_init_image(), which keeps the metadata buffer in ctx->ptr, and qcom_pas_prepare_and_auth_reset() does not free it. Who is expected to call qcom_pas_metadata_release() for venus? Gourav Kumar > + } 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); ctx->use_tzmem is not set for venus, so the shmbridge creation in qcom_scm_pas_prepare_and_auth_reset() is skipped and the behaviour is the same as the old qcom_pas_auth_and_reset(). Please reword the commit message accordingly, since it currently implies that the prepare step is now performed by the new API as a fix. Gourav Kumar > else > ret = venus_boot_no_tz(core, mem_phys, mem_size); >