From nobody Sun Oct 5 10:44:48 2025 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 9930621C9ED for ; Tue, 5 Aug 2025 06:44:39 +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=1754376281; cv=none; b=fm+q9knYEWFg5+ZLqT9/o4MQiUYAwUbq+cLm1x8bcZwWQUJenKcSV5F1EFkZb947bT52XoDBCSx1VuAS4fUr55oX+s2i9MxJAqgMi82/gmepQjHY4FD/MhOwf2d8Mn6NvJ6OaR4LFZL/BSSC1xTj1uTcaM2v9ziI8uHeE5OWb28= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754376281; c=relaxed/simple; bh=VO/XqcSD3T9bRV+GvDZsTJwOmB/gxlb+z0LFlAiA8e0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DWmqw8Q3yyEgDDrvX+SKT1FUUpzDPn4gYO4xdzlRpesH6a2pqu9zTtvjL1dq6ulR5ub+ixxsDSVG59eiWG4cSj9YFxLS5K/DciVrItmO6Q6bCHOGI5gNPfzz+x6Mls6UwGD90RYSCCnbEBye6wukD2PvrwRad4+BK1l5IhnavPY= 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=eHMTxenB; 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="eHMTxenB" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 574K3Mou003583 for ; Tue, 5 Aug 2025 06:44:39 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=YY+jHz5mvoy usButmdCoBF7o4RYZY+zFj5xw1jAtys8=; b=eHMTxenB3GhC0qyrsJ59RPWDiD0 ZOWyoc8l1g/ya1F7eip9mP3MAsCoDxnxMSr/ZA5ct4o7WiM1olC1tRsD9i8LiN+9 kwUku5QWg7YG+YWUYi1ImpST9Wn4AkR3ITwKmHawdpmvCpMKEcnUnZ+e24EsloOU EtuI9tXu7dMQQ5LniunOFZ1QFRWHROI5Eb7mnuGtb/1FEDZkfXanJnswC/HCz8ZV PuA6bEsF4txItZ9JcLAsdzLmgnxJdyCDOJW22Po8ACOXwx+4utY1g3j8w77DApAp HKcWRE6iQSsSEL/vlGD9oA80CNO9QBA1L8Ymz7BhP98ikxgrASg9OMetM7Q== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48b3j3sbf1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 06:44:38 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-7073f12d826so112235556d6.0 for ; Mon, 04 Aug 2025 23:44:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754376277; x=1754981077; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YY+jHz5mvoyusButmdCoBF7o4RYZY+zFj5xw1jAtys8=; b=VBgDPLKAdj9a4SP0ByE2CJ3TQGZpBJ0OcLsFBM1lg5geyb5CRug2JTtrxNAZNoQtBF KV8wX96tcmxAKKHb+2j7KBO0BeATI0YsJKhROJ5O+PZWIeOW37COOZJww1RPinfis/UM uZxn2m/gZdB+XMWpqYBbgg4sjr9Fi0H2GwA2S6REj67f8Gwp+HBdbp9uRPcZ6q60mGiV 7KYaJNOXgWcTYhWDbVwU56kfZpwqa0ye9/ijtvYrlXPXKXN8jfBwEaStlHJefKyM+Yz8 hh4Y1lLNK08+OGAOnmnaHQ3ef3iehDIwA/GCIBAsK8rBKjIXvD8uwaISKiZdHNmiTi/s Nkvw== X-Forwarded-Encrypted: i=1; AJvYcCUGSUa8ox2nkeYYgyDSuVk3lGJEdy690D/G83XSqrtJq7vSCRGVajYNFS4qI6mbbESdqx+zV908EWqVC7Y=@vger.kernel.org X-Gm-Message-State: AOJu0YyqFdQgSgTyw30RulolWDx8TGwI9/WHNZWWJ+pw7g9otMgGnEmC KyQxPgCcy4XSOF8MOeteYgAduJzlfM5Mz/C7+1Vr2EJ+us0lkRHandbutoWPwwlltmOsaJDOMjd DIlgDPmFJtK3AsJXpuKpSxF0evqt/gRNfgIF/mOpGpD7lx6i0aImkp+Fc9c3yWx192Ng= X-Gm-Gg: ASbGnctGJ2IX1+vJvKHOnr83D1DzJLRbDJFqBvLcFHoIyCcmgvCpiqAwTZCPUMs9btV Aq9tmgmC3EfMZJUo0bkvnE9deXxJajBC2+5foxQhAX4HGJ/i+Wei65Xba9yjWjt0hrMZuU7QmHn jmNC/XI4w60+rbK8Bw+n7cgKDRTxg31bKN5M3lCwF5wVwl57dV7hs/4WsFKvsaOgF+UIWVf3LTQ r9Xudg1uhxcvKsu7a8qJfWaJaqsHkJgIk/K9RX7saYriNbX2udLKYWwuEZJDVuAQIk7D5kGygzd 1pa5N4LMjesHAFphxJ8FzBvCNFnZGh9Fp7AaBHQweN8TqxsCRSJP87uDutWItMRN8Ycombwyq8E 0FmGaSzbXKxi+ X-Received: by 2002:a05:6214:2468:b0:707:76ab:191d with SMTP id 6a1803df08f44-709362f965cmr141513606d6.0.1754376277240; Mon, 04 Aug 2025 23:44:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHC8OIIb3ezKwBlHEgk4U+PRUs0PBwTkcvvFOqdI/Jk6JhjlGC6seYwNUOkw74LiGAywMUGVQ== X-Received: by 2002:a05:6214:2468:b0:707:76ab:191d with SMTP id 6a1803df08f44-709362f965cmr141513456d6.0.1754376276813; Mon, 04 Aug 2025 23:44:36 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4589ee57922sm194015815e9.22.2025.08.04.23.44.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 23:44:36 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_dikshita@quicinc.com, quic_vgarodia@quicinc.com, konradybcio@kernel.org, krzk+dt@kernel.org Cc: mchehab@kernel.org, conor+dt@kernel.org, andersson@kernel.org, linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 1/7] media: dt-bindings: venus: Add qcm2290 dt schema Date: Tue, 5 Aug 2025 08:44:24 +0200 Message-Id: <20250805064430.782201-2-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> References: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: wVMIgcTJKEbLcBuTk-zWb5kJzz4Hm7iW X-Authority-Analysis: v=2.4 cv=TZ+WtQQh c=1 sm=1 tr=0 ts=6891a856 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=Wl4eHCndyL1IYbKsAYUA:9 a=1HOtulTD9v-eNWfpl4qZ:22 a=sptkURWiP4Gy88Gu7hUp:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDA0NiBTYWx0ZWRfX5K7XZQYAPl4Y dN6oos8YBU6+ETjviaH1w0zfVncIbh+nC1qzR59Z0vjT18zz4rYbqC7d9vIXejBpJKbWLU91CYD 4Bu60gWZVKcsOAWen53D1JxOjt2Mm3zUewG6V5XYsyaebvhAm9gj55kZxV0zqTQ/J1ngJmDop2q 07hLaomO1cZ7RqLLU2nille33YX4ht+8WbwO0xNS+EYXKyqaYVIUG1V2DFQtPMwvI4GPxWqL/VS qS+y12cfJbrl3ZiIzWJKMzhZHKNt8JN+pTRs9xKSfdU8xCzakA1mq4gC9nK94ebKmJQ46MeKAwN hPrBA9Va8KtWS4Vh92yGEmd/rIYvo8EWTvv1Dd0os2r5C/ScogE5OVRp1ibe/XWOYbsseeEl7ri iMPGvxdc9mQywpNuUTTZic5UrOWwRkGau6WcE1iV/2Uox97j2Ryn4+0TZ9gptls2xUn/exlj X-Proofpoint-ORIG-GUID: wVMIgcTJKEbLcBuTk-zWb5kJzz4Hm7iW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_01,2025-08-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 mlxscore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 bulkscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2508050046 Content-Type: text/plain; charset="utf-8" Add a schema for the venus video encoder/decoder on the qcm2290. The order of the IOMMU list is strict: the first two entries correspond to non-secure IOMMUs, and the remaining three to secure IOMMUs. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Krzysztof Kozlowski Reviewed-by: Bryan O'Donoghue --- .../bindings/media/qcom,qcm2290-venus.yaml | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/qcom,qcm2290-ve= nus.yaml diff --git a/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yam= l b/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml new file mode 100644 index 000000000000..3f3ee82fc878 --- /dev/null +++ b/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml @@ -0,0 +1,130 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/qcom,qcm2290-venus.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm QCM2290 Venus video encode and decode accelerators + +maintainers: + - Jorge Ramirez-Ortiz + +description: + The Venus AR50_LITE IP is a video encode and decode accelerator present + on Qualcomm platforms. + +allOf: + - $ref: qcom,venus-common.yaml# + +properties: + compatible: + const: qcom,qcm2290-venus + + power-domains: + maxItems: 3 + + power-domain-names: + items: + - const: venus + - const: vcodec0 + - const: cx + + clocks: + maxItems: 6 + + clock-names: + items: + - const: core + - const: iface + - const: bus + - const: throttle + - const: vcodec0_core + - const: vcodec0_bus + + iommus: + maxItems: 5 + + interconnects: + maxItems: 2 + + interconnect-names: + items: + - const: video-mem + - const: cpu-cfg + + operating-points-v2: true + opp-table: + type: object + +required: + - compatible + - power-domain-names + - iommus + +unevaluatedProperties: false + +examples: + - | + #include + #include + #include + #include + #include + + venus: video-codec@5a00000 { + compatible =3D "qcom,qcm2290-venus"; + reg =3D <0x5a00000 0xf0000>; + + interrupts =3D ; + + power-domains =3D <&gcc GCC_VENUS_GDSC>, + <&gcc GCC_VCODEC0_GDSC>, + <&rpmpd QCM2290_VDDCX>; + power-domain-names =3D "venus", + "vcodec0", + "cx"; + + operating-points-v2 =3D <&venus_opp_table>; + + clocks =3D <&gcc GCC_VIDEO_VENUS_CTL_CLK>, + <&gcc GCC_VIDEO_AHB_CLK>, + <&gcc GCC_VENUS_CTL_AXI_CLK>, + <&gcc GCC_VIDEO_THROTTLE_CORE_CLK>, + <&gcc GCC_VIDEO_VCODEC0_SYS_CLK>, + <&gcc GCC_VCODEC0_AXI_CLK>; + clock-names =3D "core", + "iface", + "bus", + "throttle", + "vcodec0_core", + "vcodec0_bus"; + + memory-region =3D <&pil_video_mem>; + + iommus =3D <&apps_smmu 0x860 0x0>, + <&apps_smmu 0x880 0x0>, + <&apps_smmu 0x861 0x04>, + <&apps_smmu 0x863 0x0>, + <&apps_smmu 0x804 0xe0>; + + interconnects =3D <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG + &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, + <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG + &config_noc SLAVE_VENUS_CFG RPM_ACTIVE_TAG>; + interconnect-names =3D "video-mem", + "cpu-cfg"; + + venus_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-133333333 { + opp-hz =3D /bits/ 64 <133333333>; + required-opps =3D <&rpmpd_opp_low_svs>; + }; + + opp-240000000 { + opp-hz =3D /bits/ 64 <240000000>; + required-opps =3D <&rpmpd_opp_svs>; + }; + }; + }; --=20 2.34.1 From nobody Sun Oct 5 10:44:48 2025 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 4AABD21FF2D for ; Tue, 5 Aug 2025 06:44:40 +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=1754376283; cv=none; b=pB94bNEVbilVLyPd2rJclo5RFYNquQhlrLA9T5aaYMKFgthAfGc6CBxVxIMItsMPoQK0D2pyhink0wWYhO22ouXHLYMbRjp9Uax0do+8An7ZHlCyYFgIGYCeNaqSQGOo9ruZu18ux8pRYw7ccoV7PTReXQ/RVDeFZCC5M787IdE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754376283; c=relaxed/simple; bh=6+303X4Ep8cmFcfNKnWfxGOcPTh1WCdwVwYp+MJvE20=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=muRVjUb4lJDJ/hzkAIRumgwXWN/J7DeBiIc/s95mLsQSNmsYBt3AsIThVzlsT+BuZ10mJr7YxOS7Yu/oXGvioSMjibQsFKTH7egXR1yzphVd6hxqMKNLnhuwD7O2O/59FVggaiYvgYT9icda05+PdpWvr/n1Zx08rQ/UEjaDZUw= 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=hx7BlMNY; 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="hx7BlMNY" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5752XCiV016893 for ; Tue, 5 Aug 2025 06:44:40 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=ZPY1WEYK4lS 822krdN/O4tqWe64sfx1iUL5xvi/g4CQ=; b=hx7BlMNY5BI0hDokNS+bGMdSuec QWMAVulS7Rn1H/GFiPA47Zmv8Gf6MlLvT/bDkx/JyLb/VjVh+EnM48bs7ToZh2YB nrLd0J0YKezTivX0XT7Yar3XcKHJ+WxSyVzNWGFBURARJ8ImLyc/42tUxQ3HwdgN M5r+Lux4iLC4D7P+fwE9T+4hDS+y04SwBDWWa4dAJDuGzwxbQZxJY0lmtPzLx9br nP8bJeB/iyOvp8HFsCkGQVCHccDuy4/2qGLZ8R4ubCQ9V2K0OzHAf21Co4I11q/i 4UTqtTNhay3zonShRdlDDL5BR9iyPkjURlGPvMiapGDz1hWvUe0GsU/AuSQ== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48aqyv3ptq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 06:44:40 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-7073f12d826so112236146d6.0 for ; Mon, 04 Aug 2025 23:44:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754376279; x=1754981079; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZPY1WEYK4lS822krdN/O4tqWe64sfx1iUL5xvi/g4CQ=; b=t8eGNFkIWf2wZhRuaGV9I1imSqL7O4CwnRIrVJgFE//0fu/CtnVC9YsRoPZXjHSCSZ 04d0EAEDzRyFVODSMY15yQ0Q/uXS6/y5L67VkrBrSKRfIlscT9yRQjTjpMS3GsBe/+rH Jsamu8iN9BrxZOiBYxysD+X0xSd0LBk8SrS31yw3GBl1VWpxwQRd8xgpO3u4P3IEptoz hx2QMDFHMdKb5pKCJoMe/teijbZep99eIZ/MiBW65FHSJBqsvQSLKaNNERUHYQHVgmGF ZSJ0pX2bKdncfILheIEA3v1e1/VFzSSvMCML2EHDFdW9Wxf8/iPrh0FzMq6x6G6fpRdw YWnA== X-Forwarded-Encrypted: i=1; AJvYcCUvi8UxM5KvGVNvfS/4G6Hb8ULrJVkG5GUGHGX/b8/4otD+geoTVMkdyDjrwGJckr+V6iJ1XeGg6WLMiAs=@vger.kernel.org X-Gm-Message-State: AOJu0Yxy+TmiEvueVdASN+4OBeRj449XjghPpu2BvaIntVosuaCNvb97 B+esVELVExgGBG150ydt6QCKJ6lqqY7Pbb/pCgqf5Jb9EZKIbW+QdJbCMzrFTAirolfHqkUtJ7n adbCZrX5V1Xytdz1JUub/BNjjurE+SGKa9doG5/arKRpxfsZh7XCP3BoX8EZb5Kg1c0s= X-Gm-Gg: ASbGncteenRFv+rgVzlOQ39plH1wRkl3pJySMokA2liX2Ot/EuprnoapBmeY2aobs8O YhJGIeihzG6Iavm+tF+8KoST4pnBVLkXPMTCrar4Hr9txX1+hrumfaTQHB7vKT1jKMj/hMLRf9l M+3Uq/PzuuSFe1DGm/ZunsbJlXHdcAKb+bg/htLjQ11N/Qsub1uGO4wmLOOcntRUNefxMecW0OA BdNblCCgOIfrhtsqQSkKZ9lTwwRXGT4Cd55YM/AQIAHXXQE51NiDtlGFpZcdTW4LO0/tphhH4kW 5dVCwQgAahyzWBVptgG+jzFt9sBqMvpaWIWVsqXyGcAddoAgrYw7B4kPJIpoRkO4JVZmsDPCdvT 6F73H4WCOcvhD X-Received: by 2002:ad4:5763:0:b0:707:5df5:c719 with SMTP id 6a1803df08f44-70936538f21mr180121496d6.17.1754376278814; Mon, 04 Aug 2025 23:44:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGCvZdqCyVh/hOL+ZsjgDFfhbHOkr5CANvqsJ6Ik/kbRThuJULN7VgZPXE4ttb9N9Ity/Behg== X-Received: by 2002:ad4:5763:0:b0:707:5df5:c719 with SMTP id 6a1803df08f44-70936538f21mr180121366d6.17.1754376278381; Mon, 04 Aug 2025 23:44:38 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4589ee57922sm194015815e9.22.2025.08.04.23.44.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 23:44:37 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_dikshita@quicinc.com, quic_vgarodia@quicinc.com, konradybcio@kernel.org, krzk+dt@kernel.org Cc: mchehab@kernel.org, conor+dt@kernel.org, andersson@kernel.org, linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 2/7] media: venus: Define minimum valid firmware version Date: Tue, 5 Aug 2025 08:44:25 +0200 Message-Id: <20250805064430.782201-3-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> References: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: mqofxlLQoxRGD4xdxGcR9koM6x3FC64O X-Authority-Analysis: v=2.4 cv=F/xXdrhN c=1 sm=1 tr=0 ts=6891a858 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=yael46xrl2bLLysLp-AA:9 a=1HOtulTD9v-eNWfpl4qZ:22 X-Proofpoint-ORIG-GUID: mqofxlLQoxRGD4xdxGcR9koM6x3FC64O X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDA0NiBTYWx0ZWRfXz0XdQQ53xtus ys8YG+KpMgnu2CzJX8ST5ti4b1QtNWnUbu27gb9r9trVWXhKlzoWUpKJ+3yOycsxKDzO3iz19wZ 9bCrlnPvVrY9VXC6Q3Mj0hrBP5lZWHqMesOKppoTMdLTl0GkH1n/5MZhqa/DyO2nN2wm9ICAJt2 TiCcUJ3cWjiDLkPCtUneG/WHBmHgVX7e/kc+CEl0Jj3gPkXA801CwbQW+8wB2VS7ibtEtJWqo+f Jr6e1Nia3/kOlbV1eu6m/U38d/WfHx3GQgqxG6L1EqNmwy4r/529D8yhLBWFE9b584d9BMx1Jxe NJr5lsIFnyIQBREIGxGUoqBHhkciENZnXkAMRnMUGwxYZI/J5Mt+2ErHzlnMbqaZ2/mEX5Dh2xo H8HDk+aMSyDsWs9Clyhnbwl7JPumYLwve9nmMoT3MxDpqjz1saK3/wbTEvEjtVeJ4o97giok X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_01,2025-08-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 mlxscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 mlxlogscore=999 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2508050046 Content-Type: text/plain; charset="utf-8" Add support for specifying the minimum firmware version required for correct operation. When set, the driver compares this value against the version reported by the firmware: if the firmware is older than required, driver initialization will fail. The version check is performed before creating dynamic device tree nodes, to avoid the need for reverting nodes on failure. Signed-off-by: Jorge Ramirez-Ortiz --- drivers/media/platform/qcom/venus/core.c | 40 +++++++++++--------- drivers/media/platform/qcom/venus/core.h | 7 ++++ drivers/media/platform/qcom/venus/firmware.c | 13 +++++++ drivers/media/platform/qcom/venus/firmware.h | 1 + 4 files changed, 43 insertions(+), 18 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 4c049c694d9c..f45715c9b222 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -448,19 +448,9 @@ static int venus_probe(struct platform_device *pdev) if (ret < 0) goto err_runtime_disable; =20 - if (core->res->dec_nodename || core->res->enc_nodename) { - ret =3D venus_add_dynamic_nodes(core); - if (ret) - goto err_runtime_disable; - } - - ret =3D of_platform_populate(dev->of_node, NULL, NULL, dev); - if (ret) - goto err_remove_dynamic_nodes; - ret =3D venus_firmware_init(core); if (ret) - goto err_of_depopulate; + goto err_runtime_disable; =20 ret =3D venus_boot(core); if (ret) @@ -474,34 +464,48 @@ static int venus_probe(struct platform_device *pdev) if (ret) goto err_venus_shutdown; =20 - ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_DEC); + ret =3D venus_firmware_check(core); if (ret) goto err_core_deinit; =20 + if (core->res->dec_nodename || core->res->enc_nodename) { + ret =3D venus_add_dynamic_nodes(core); + if (ret) + goto err_core_deinit; + } + + ret =3D of_platform_populate(dev->of_node, NULL, NULL, dev); + if (ret) + goto err_remove_dynamic_nodes; + + ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_DEC); + if (ret) + goto err_of_depopulate; + ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_ENC); if (ret) - goto err_core_deinit; + goto err_of_depopulate; =20 ret =3D pm_runtime_put_sync(dev); if (ret) { pm_runtime_get_noresume(dev); - goto err_core_deinit; + goto err_of_depopulate; } =20 venus_dbgfs_init(core); =20 return 0; =20 +err_of_depopulate: + of_platform_depopulate(dev); +err_remove_dynamic_nodes: + venus_remove_dynamic_nodes(core); err_core_deinit: hfi_core_deinit(core, false); err_venus_shutdown: venus_shutdown(core); err_firmware_deinit: venus_firmware_deinit(core); -err_of_depopulate: - of_platform_depopulate(dev); -err_remove_dynamic_nodes: - venus_remove_dynamic_nodes(core); err_runtime_disable: pm_runtime_put_noidle(dev); pm_runtime_disable(dev); diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index 5b1ba1c69adb..2d3cf920198f 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -58,6 +58,12 @@ enum vpu_version { VPU_VERSION_IRIS2_1, }; =20 +struct firmware_version { + u32 major; + u32 minor; + u32 rev; +}; + struct venus_resources { u64 dma_mask; const struct freq_tbl *freq_tbl; @@ -94,6 +100,7 @@ struct venus_resources { const char *fwname; const char *enc_nodename; const char *dec_nodename; + const struct firmware_version *min_fw; }; =20 enum venus_fmt { diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/p= latform/qcom/venus/firmware.c index 66a18830e66d..503dd270a14a 100644 --- a/drivers/media/platform/qcom/venus/firmware.c +++ b/drivers/media/platform/qcom/venus/firmware.c @@ -280,6 +280,19 @@ int venus_shutdown(struct venus_core *core) return ret; } =20 +int venus_firmware_check(struct venus_core *core) +{ + const struct firmware_version *ver =3D core->res->min_fw; + + if (!ver) + return 0; + + if (!is_fw_rev_or_newer(core, ver->major, ver->minor, ver->rev)) + return -EINVAL; + + return 0; +} + int venus_firmware_init(struct venus_core *core) { struct platform_device_info info; diff --git a/drivers/media/platform/qcom/venus/firmware.h b/drivers/media/p= latform/qcom/venus/firmware.h index aaccd847fa30..ead39e3797f0 100644 --- a/drivers/media/platform/qcom/venus/firmware.h +++ b/drivers/media/platform/qcom/venus/firmware.h @@ -9,6 +9,7 @@ struct device; =20 int venus_firmware_init(struct venus_core *core); void venus_firmware_deinit(struct venus_core *core); +int venus_firmware_check(struct venus_core *core); int venus_boot(struct venus_core *core); int venus_shutdown(struct venus_core *core); int venus_set_hw_state(struct venus_core *core, bool suspend); --=20 2.34.1 From nobody Sun Oct 5 10:44:48 2025 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 4589622259A for ; Tue, 5 Aug 2025 06:44:43 +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=1754376285; cv=none; b=KzwBAnxmoxWbP7HbW/0CLs7gIu86B2w+GqvHP48k/kKJjFzliezZuQiso0bLf+ciCq65espYg56UQc5Bw5epVrbvbNuNwUQYp3Xz1RZj++TZ/rSMyCRVLYMfM2a5UhVQHk4IwN4EbgmNtgRdpxEaR2unzdg73lOVyvb5C0Uo7dE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754376285; c=relaxed/simple; bh=ezmsbCjqlnWcx48QRBjlXkmqIy+WPgZsixPM3YLOjn8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ewLOOwnFHh8BXcUClQhMVMnao+WRCzhrhF6Gns2TLPvbkFDbUS/3WxIeMYhrQcx7LkSsAPO+ly7p3ZsIphyiuOG/28kQcQSRdqQ44y4dDxVUe47vKvqiXKlA/2faDaeQd32a9j0dpehrupmEoVzj+g9KFcf2/0ESZI1T88ype68= 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=JQBNkk1A; 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="JQBNkk1A" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57526W6j016967 for ; Tue, 5 Aug 2025 06:44:42 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=NhWaIo4GTcz dbdTKmyiH3nRkkn38J6k++Rau27lPRqk=; b=JQBNkk1AzHxibPtGDE+lITglDSd +QbQcUZ8l6tdTt20c2HIhqJAMcUGgjs4D+/CxS3PM3ieQaAJWMXdmzRdhEfxTk+Q SKR9x/Dj/Oe58/UsnWCSNBRsFkJWCOXqGo5IKQfE9hzV8wZKv1UqrQkroZ/vNSgf ZYphGRYDCSu8kb3lJsKmBp7qO4q3HUbaPBl1O0hkEz1eKewCEZfHwulCPHm8KTde EwOOpDnoB0Q9t8R7G9TfOrsv6dJuUNcJShT5V1GUmJCXZ8LAkvfhh0tWULipVxOa qK+YmP9aBJhqsYqeI93N8X++8MwMQLiX8FeKA6HKQymsi3biEZRPbSXSpQw== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48aqyv3pu0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 06:44:42 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-7074f138855so81562186d6.1 for ; Mon, 04 Aug 2025 23:44:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754376281; x=1754981081; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NhWaIo4GTczdbdTKmyiH3nRkkn38J6k++Rau27lPRqk=; b=CcqmRJURPn7PdoAxwfiKdXnMfNaZesmaCnSBdySbOi8EcpbkjG1cp1ikJ/0z5fRZ/l hW7ZyNGcM7yAnSkhP5Lq0iCVJqP/ZTXWq9d0HByvefBPfaEsaupyyaDwn6lYst74RPKF j4UmvOELtDxsYmmJjnv3YYHNkWhfyi4gy52E8A+G9XHShLS3YUSFjMzCrmedjzQzLU2N ejimYkC8jfA4+co1Dk7hlslKaYgQ0nwd91yRVJH4+crxLnmUAe7C/0K/6xUFGdx/MM2M H2BoL1zyROmkNfOEhOBIkyaK6ZKHk6rbw6RZ/x3Hf1oiCyMoB6MiTv/Vbx0wnA3u66dp +gHQ== X-Forwarded-Encrypted: i=1; AJvYcCVVsKajsRRk1+2tbP2yOlPR+4BPPNujLkbRVTfZd50TscFTdIH+E+3p1wMqcZNm0uwKKOSEX7Io77LJVVM=@vger.kernel.org X-Gm-Message-State: AOJu0Yw/Bbypubq20Y89YLLzeeM3w6+uFMq4SXSjXyyqP5T6bOQItvOd ZC7wwe2wN0bKlQigJRXN6Bf9vbZ8DyqMAoA8+cQ+4/rcFBATu+7VOM/Eg6c4jM9FVPnUlShDmKk ZRB889eO/wjcgddwnOu/XBNuvWCchCnrg+u29dIWB/U0OvfZGHyjLCgRPs0Y1RRbk2L4= X-Gm-Gg: ASbGncvQuH8KYZLruevg2MDQqyj69wNDWzow2fEEk/zZNiOwdrSUvmZyGzReAxYh9MX TG9EdZrKtVf77c0c1RcwwzEpXEgGHOb8XkJZ6pcYpEj28jKCkBp/aK+YAUXEwcwyZYdyLLIKy2q o47oOXzPDAnSAzFn/Al5GdxqQC0DBQ+u+r4OsJCeKeckfAMDaM+ljkDMIha7pOzzq2E0JLJodBm wqv/4qPR8KBb/OuzHO1ibPDTFSRKXFodM4Bdps4Ev3Zd09IzA6ZlOnjuWSVgiE9O/NayYDAIKxC mTUYjMbWbwT06W+nrZGL+S6/6qmRa/AhtXCtPnzFc/TUPg1yNySfnR9rBcXd3YJjr+lbL5PdN+x kaJ3XiLMtSL6g X-Received: by 2002:a05:6214:c62:b0:709:243e:9327 with SMTP id 6a1803df08f44-7093629fa3dmr167750606d6.27.1754376280582; Mon, 04 Aug 2025 23:44:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG+oTrbsZ6ceR/bzckUtZmdT8QIjOQBuSwzzCnERChumlvA/IZXGAw+6fpzhcu4tIoXIJ/Rkw== X-Received: by 2002:a05:6214:c62:b0:709:243e:9327 with SMTP id 6a1803df08f44-7093629fa3dmr167750276d6.27.1754376280022; Mon, 04 Aug 2025 23:44:40 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4589ee57922sm194015815e9.22.2025.08.04.23.44.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 23:44:39 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_dikshita@quicinc.com, quic_vgarodia@quicinc.com, konradybcio@kernel.org, krzk+dt@kernel.org Cc: mchehab@kernel.org, conor+dt@kernel.org, andersson@kernel.org, linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 3/7] media: venus: Add support for AR50_LITE video core Date: Tue, 5 Aug 2025 08:44:26 +0200 Message-Id: <20250805064430.782201-4-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> References: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: 4vpKMYnqn4cMgJg0tMVHmVtHtqzhL-Kr X-Authority-Analysis: v=2.4 cv=F/xXdrhN c=1 sm=1 tr=0 ts=6891a85a cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=MEz7QyYSB-WHFCyNWtcA:9 a=1HOtulTD9v-eNWfpl4qZ:22 X-Proofpoint-ORIG-GUID: 4vpKMYnqn4cMgJg0tMVHmVtHtqzhL-Kr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDA0NiBTYWx0ZWRfX9fM+BU5PQGbe dWTopEsxjWxgv22+X720bIH3LqzgFpYlthLMmdInU0R0W0LrAsvQNORAP55L/svUHd8f0i6aDpA sZ9xSIyCqC1kvmuKdD3VvILr0c5LXMcQI+4kcksObuscIItUaF9daiRuiW+NpK8gYqA3+E6UZug ydBi9Hg0wh2ElH4yFRThRoacmYRMkcIzFyOSb6TAwi3Et0K5PApwKHxHMMGX1QrlXzjEBJHEbbh wHMRoQyJHtICIxTcTSwMZqqJPgFqHHJMkVrUHoDPekXhL2RoY6aXIBzeedWVSymO2EHtP10G/Ug Xrrh9+nvAG01BgdhjM5cR9fKa6ANJdz28mDgCgXsL9OrNPh21rb5bC/c+MWKIT707AJ4LOlPLcc Cz/tWQ69XOoU+y0mkshggjoljh0Qi+vsceVQLUNw+dn1zSuHFYkWxqDqgdJMHXhby/dVTaMq X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_01,2025-08-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 mlxscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 mlxlogscore=999 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2508050046 Content-Type: text/plain; charset="utf-8" The AR50_LITE is a simplified variant of the AR50 video core, designed for power and cost-efficient platforms. It supports hardware-accelerated decoding of H.264, HEVC, and VP9 formats, and provides encoding support for H.264 and HEVC. Signed-off-by: Jorge Ramirez-Ortiz --- drivers/media/platform/qcom/venus/core.c | 15 +++++++-- drivers/media/platform/qcom/venus/core.h | 5 +++ drivers/media/platform/qcom/venus/firmware.c | 10 ++++++ drivers/media/platform/qcom/venus/firmware.h | 1 + drivers/media/platform/qcom/venus/helpers.c | 12 +++++-- .../media/platform/qcom/venus/hfi_parser.c | 5 +-- .../media/platform/qcom/venus/hfi_platform.c | 20 +++++++----- .../media/platform/qcom/venus/hfi_platform.h | 25 ++++++++------- .../platform/qcom/venus/hfi_platform_v4.c | 31 ++++++++++++------ .../platform/qcom/venus/hfi_platform_v6.c | 32 +++++++++++++------ drivers/media/platform/qcom/venus/hfi_venus.c | 25 +++++++++++---- .../media/platform/qcom/venus/hfi_venus_io.h | 4 +++ .../media/platform/qcom/venus/pm_helpers.c | 2 +- 13 files changed, 133 insertions(+), 54 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index f45715c9b222..adc38fbc9d79 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -254,14 +254,19 @@ static int venus_enumerate_codecs(struct venus_core *= core, u32 type) =20 static void venus_assign_register_offsets(struct venus_core *core) { - if (IS_IRIS2(core) || IS_IRIS2_1(core)) { - core->vbif_base =3D core->base + VBIF_BASE; + if (IS_IRIS2(core) || IS_IRIS2_1(core) || IS_AR50_LITE(core)) { core->cpu_base =3D core->base + CPU_BASE_V6; core->cpu_cs_base =3D core->base + CPU_CS_BASE_V6; core->cpu_ic_base =3D core->base + CPU_IC_BASE_V6; core->wrapper_base =3D core->base + WRAPPER_BASE_V6; core->wrapper_tz_base =3D core->base + WRAPPER_TZ_BASE_V6; - core->aon_base =3D core->base + AON_BASE_V6; + if (IS_AR50_LITE(core)) { + core->vbif_base =3D NULL; + core->aon_base =3D NULL; + } else { + core->vbif_base =3D core->base + VBIF_BASE; + core->aon_base =3D core->base + AON_BASE_V6; + } } else { core->vbif_base =3D core->base + VBIF_BASE; core->cpu_base =3D core->base + CPU_BASE; @@ -456,6 +461,10 @@ static int venus_probe(struct platform_device *pdev) if (ret) goto err_firmware_deinit; =20 + ret =3D venus_firmware_cfg(core); + if (ret) + goto err_venus_shutdown; + ret =3D hfi_core_resume(core, true); if (ret) goto err_venus_shutdown; diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index 2d3cf920198f..f8602735d6c2 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -537,6 +537,11 @@ struct venus_inst { #define IS_IRIS2(core) ((core)->res->vpu_version =3D=3D VPU_VERSION_IRIS2) #define IS_IRIS2_1(core) ((core)->res->vpu_version =3D=3D VPU_VERSION_IRIS= 2_1) =20 +static inline bool is_lite(struct venus_core *core) +{ + return IS_AR50_LITE(core); +} + #define ctrl_to_inst(ctrl) \ container_of((ctrl)->handler, struct venus_inst, ctrl_handler) =20 diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/p= latform/qcom/venus/firmware.c index 503dd270a14a..2e5d85e25d0f 100644 --- a/drivers/media/platform/qcom/venus/firmware.c +++ b/drivers/media/platform/qcom/venus/firmware.c @@ -207,6 +207,16 @@ static int venus_shutdown_no_tz(struct venus_core *cor= e) return 0; } =20 +int venus_firmware_cfg(struct venus_core *core) +{ + void __iomem *cpu_cs_base =3D core->cpu_cs_base; + + if (IS_AR50_LITE(core)) + writel(CPU_CS_VCICMD_ARP_OFF, cpu_cs_base + CPU_CS_VCICMD); + + return 0; +} + int venus_boot(struct venus_core *core) { struct device *dev =3D core->dev; diff --git a/drivers/media/platform/qcom/venus/firmware.h b/drivers/media/p= latform/qcom/venus/firmware.h index ead39e3797f0..87e1d922b369 100644 --- a/drivers/media/platform/qcom/venus/firmware.h +++ b/drivers/media/platform/qcom/venus/firmware.h @@ -10,6 +10,7 @@ struct device; int venus_firmware_init(struct venus_core *core); void venus_firmware_deinit(struct venus_core *core); int venus_firmware_check(struct venus_core *core); +int venus_firmware_cfg(struct venus_core *core); int venus_boot(struct venus_core *core); int venus_shutdown(struct venus_core *core); int venus_set_hw_state(struct venus_core *core, bool suspend); diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/pl= atform/qcom/venus/helpers.c index 8295542e1a7c..3a761b5415c5 100644 --- a/drivers/media/platform/qcom/venus/helpers.c +++ b/drivers/media/platform/qcom/venus/helpers.c @@ -1715,11 +1715,17 @@ int venus_helper_session_init(struct venus_inst *in= st) if (ret) return ret; =20 - inst->clk_data.vpp_freq =3D hfi_platform_get_codec_vpp_freq(version, code= c, + inst->clk_data.vpp_freq =3D hfi_platform_get_codec_vpp_freq(version, + is_lite(inst->core), + codec, session_type); - inst->clk_data.vsp_freq =3D hfi_platform_get_codec_vsp_freq(version, code= c, + inst->clk_data.vsp_freq =3D hfi_platform_get_codec_vsp_freq(version, + is_lite(inst->core), + codec, session_type); - inst->clk_data.low_power_freq =3D hfi_platform_get_codec_lp_freq(version,= codec, + inst->clk_data.low_power_freq =3D hfi_platform_get_codec_lp_freq(version, + is_lite(inst->core), + codec, session_type); =20 return 0; diff --git a/drivers/media/platform/qcom/venus/hfi_parser.c b/drivers/media= /platform/qcom/venus/hfi_parser.c index 1b3db2caa99f..55cee1c786a0 100644 --- a/drivers/media/platform/qcom/venus/hfi_parser.c +++ b/drivers/media/platform/qcom/venus/hfi_parser.c @@ -277,12 +277,13 @@ static int hfi_platform_parser(struct venus_core *cor= e, struct venus_inst *inst) if (inst) return 0; =20 - ret =3D hfi_platform_get_codecs(core, &enc_codecs, &dec_codecs, &count); + ret =3D hfi_platform_get_codecs(core, &enc_codecs, &dec_codecs, &count, + is_lite(core)); if (ret) return ret; =20 if (plat->capabilities) - caps =3D plat->capabilities(&entries); + caps =3D plat->capabilities(&entries, is_lite(core)); =20 if (!caps || !entries || !count) return -EINVAL; diff --git a/drivers/media/platform/qcom/venus/hfi_platform.c b/drivers/med= ia/platform/qcom/venus/hfi_platform.c index 643e5aa138f5..c6c248561793 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform.c +++ b/drivers/media/platform/qcom/venus/hfi_platform.c @@ -21,7 +21,8 @@ const struct hfi_platform *hfi_platform_get(enum hfi_vers= ion version) } =20 unsigned long -hfi_platform_get_codec_vpp_freq(enum hfi_version version, u32 codec, u32 s= ession_type) +hfi_platform_get_codec_vpp_freq(enum hfi_version version, bool lite, u32 c= odec, + u32 session_type) { const struct hfi_platform *plat; unsigned long freq =3D 0; @@ -31,13 +32,14 @@ hfi_platform_get_codec_vpp_freq(enum hfi_version versio= n, u32 codec, u32 session return 0; =20 if (plat->codec_vpp_freq) - freq =3D plat->codec_vpp_freq(session_type, codec); + freq =3D plat->codec_vpp_freq(session_type, codec, lite); =20 return freq; } =20 unsigned long -hfi_platform_get_codec_vsp_freq(enum hfi_version version, u32 codec, u32 s= ession_type) +hfi_platform_get_codec_vsp_freq(enum hfi_version version, bool lite, u32 c= odec, + u32 session_type) { const struct hfi_platform *plat; unsigned long freq =3D 0; @@ -47,13 +49,14 @@ hfi_platform_get_codec_vsp_freq(enum hfi_version versio= n, u32 codec, u32 session return 0; =20 if (plat->codec_vpp_freq) - freq =3D plat->codec_vsp_freq(session_type, codec); + freq =3D plat->codec_vsp_freq(session_type, codec, lite); =20 return freq; } =20 unsigned long -hfi_platform_get_codec_lp_freq(enum hfi_version version, u32 codec, u32 se= ssion_type) +hfi_platform_get_codec_lp_freq(enum hfi_version version, bool lite, u32 co= dec, + u32 session_type) { const struct hfi_platform *plat; unsigned long freq =3D 0; @@ -63,13 +66,14 @@ hfi_platform_get_codec_lp_freq(enum hfi_version version= , u32 codec, u32 session_ return 0; =20 if (plat->codec_lp_freq) - freq =3D plat->codec_lp_freq(session_type, codec); + freq =3D plat->codec_lp_freq(session_type, codec, lite); =20 return freq; } =20 int -hfi_platform_get_codecs(struct venus_core *core, u32 *enc_codecs, u32 *dec= _codecs, u32 *count) +hfi_platform_get_codecs(struct venus_core *core, u32 *enc_codecs, u32 *dec= _codecs, u32 *count, + bool lite) { const struct hfi_platform *plat; =20 @@ -78,7 +82,7 @@ hfi_platform_get_codecs(struct venus_core *core, u32 *enc= _codecs, u32 *dec_codec return -EINVAL; =20 if (plat->codecs) - plat->codecs(enc_codecs, dec_codecs, count); + plat->codecs(enc_codecs, dec_codecs, count, lite); =20 if (IS_IRIS2_1(core)) { *enc_codecs &=3D ~HFI_VIDEO_CODEC_VP8; diff --git a/drivers/media/platform/qcom/venus/hfi_platform.h b/drivers/med= ia/platform/qcom/venus/hfi_platform.h index ec89a90a8129..a9f1ead18084 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform.h +++ b/drivers/media/platform/qcom/venus/hfi_platform.h @@ -47,11 +47,12 @@ struct hfi_platform_codec_freq_data { }; =20 struct hfi_platform { - unsigned long (*codec_vpp_freq)(u32 session_type, u32 codec); - unsigned long (*codec_vsp_freq)(u32 session_type, u32 codec); - unsigned long (*codec_lp_freq)(u32 session_type, u32 codec); - void (*codecs)(u32 *enc_codecs, u32 *dec_codecs, u32 *count); - const struct hfi_plat_caps *(*capabilities)(unsigned int *entries); + unsigned long (*codec_vpp_freq)(u32 session_type, u32 codec, bool lite); + unsigned long (*codec_vsp_freq)(u32 session_type, u32 codec, bool lite); + unsigned long (*codec_lp_freq)(u32 session_type, u32 codec, bool lite); + void (*codecs)(u32 *enc_codecs, u32 *dec_codecs, u32 *count, bool lite); + const struct hfi_plat_caps *(*capabilities)(unsigned int *entries, + bool lite); int (*bufreq)(struct hfi_plat_buffers_params *params, u32 session_type, u32 buftype, struct hfi_buffer_requirements *bufreq); }; @@ -60,12 +61,12 @@ extern const struct hfi_platform hfi_plat_v4; extern const struct hfi_platform hfi_plat_v6; =20 const struct hfi_platform *hfi_platform_get(enum hfi_version version); -unsigned long hfi_platform_get_codec_vpp_freq(enum hfi_version version, u3= 2 codec, - u32 session_type); -unsigned long hfi_platform_get_codec_vsp_freq(enum hfi_version version, u3= 2 codec, - u32 session_type); -unsigned long hfi_platform_get_codec_lp_freq(enum hfi_version version, u32= codec, - u32 session_type); +unsigned long hfi_platform_get_codec_vpp_freq(enum hfi_version version, bo= ol lite, + u32 codec, u32 session_type); +unsigned long hfi_platform_get_codec_vsp_freq(enum hfi_version version, bo= ol lite, + u32 codec, u32 session_type); +unsigned long hfi_platform_get_codec_lp_freq(enum hfi_version version, boo= l lite, + u32 codec, u32 session_type); int hfi_platform_get_codecs(struct venus_core *core, u32 *enc_codecs, u32 = *dec_codecs, - u32 *count); + u32 *count, bool lite); #endif diff --git a/drivers/media/platform/qcom/venus/hfi_platform_v4.c b/drivers/= media/platform/qcom/venus/hfi_platform_v4.c index e3f0a90a567b..4ae7ed476c48 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform_v4.c +++ b/drivers/media/platform/qcom/venus/hfi_platform_v4.c @@ -245,14 +245,19 @@ static const struct hfi_plat_caps caps[] =3D { .num_fmts =3D 4, } }; =20 -static const struct hfi_plat_caps *get_capabilities(unsigned int *entries) +static const struct hfi_plat_caps *get_capabilities(unsigned int *entries, + bool lite) { + WARN_ON(lite); + *entries =3D ARRAY_SIZE(caps); return caps; } =20 -static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count) +static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count, bool = lite) { + WARN_ON(lite); + *enc_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | HFI_VIDEO_CODEC_VP8; *dec_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | @@ -273,12 +278,14 @@ static const struct hfi_platform_codec_freq_data code= c_freq_data[] =3D { }; =20 static const struct hfi_platform_codec_freq_data * -get_codec_freq_data(u32 session_type, u32 pixfmt) +get_codec_freq_data(u32 session_type, u32 pixfmt, bool lite) { const struct hfi_platform_codec_freq_data *data =3D codec_freq_data; unsigned int i, data_size =3D ARRAY_SIZE(codec_freq_data); const struct hfi_platform_codec_freq_data *found =3D NULL; =20 + WARN_ON(lite); + for (i =3D 0; i < data_size; i++) { if (data[i].pixfmt =3D=3D pixfmt && data[i].session_type =3D=3D session_= type) { found =3D &data[i]; @@ -289,33 +296,39 @@ get_codec_freq_data(u32 session_type, u32 pixfmt) return found; } =20 -static unsigned long codec_vpp_freq(u32 session_type, u32 codec) +static unsigned long codec_vpp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vpp_freq; =20 return 0; } =20 -static unsigned long codec_vsp_freq(u32 session_type, u32 codec) +static unsigned long codec_vsp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vsp_freq; =20 return 0; } =20 -static unsigned long codec_lp_freq(u32 session_type, u32 codec) +static unsigned long codec_lp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->low_power_freq; =20 diff --git a/drivers/media/platform/qcom/venus/hfi_platform_v6.c b/drivers/= media/platform/qcom/venus/hfi_platform_v6.c index 4e8af645f8b9..ad08d26cd7ba 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform_v6.c +++ b/drivers/media/platform/qcom/venus/hfi_platform_v6.c @@ -245,14 +245,20 @@ static const struct hfi_plat_caps caps[] =3D { .num_fmts =3D 4, } }; =20 -static const struct hfi_plat_caps *get_capabilities(unsigned int *entries) +static const struct hfi_plat_caps *get_capabilities(unsigned int *entries, + bool lite) { + WARN_ON(lite); + *entries =3D ARRAY_SIZE(caps); return caps; } =20 -static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count) +static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count, + bool lite) { + WARN_ON(lite); + *enc_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | HFI_VIDEO_CODEC_VP8; *dec_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | @@ -273,12 +279,14 @@ static const struct hfi_platform_codec_freq_data code= c_freq_data[] =3D { }; =20 static const struct hfi_platform_codec_freq_data * -get_codec_freq_data(u32 session_type, u32 pixfmt) +get_codec_freq_data(u32 session_type, u32 pixfmt, bool lite) { const struct hfi_platform_codec_freq_data *data =3D codec_freq_data; unsigned int i, data_size =3D ARRAY_SIZE(codec_freq_data); const struct hfi_platform_codec_freq_data *found =3D NULL; =20 + WARN_ON(lite); + for (i =3D 0; i < data_size; i++) { if (data[i].pixfmt =3D=3D pixfmt && data[i].session_type =3D=3D session_= type) { found =3D &data[i]; @@ -289,33 +297,39 @@ get_codec_freq_data(u32 session_type, u32 pixfmt) return found; } =20 -static unsigned long codec_vpp_freq(u32 session_type, u32 codec) +static unsigned long codec_vpp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vpp_freq; =20 return 0; } =20 -static unsigned long codec_vsp_freq(u32 session_type, u32 codec) +static unsigned long codec_vsp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vsp_freq; =20 return 0; } =20 -static unsigned long codec_lp_freq(u32 session_type, u32 codec) +static unsigned long codec_lp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->low_power_freq; =20 diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/= platform/qcom/venus/hfi_venus.c index cec7f5964d3d..d3da35f67fd5 100644 --- a/drivers/media/platform/qcom/venus/hfi_venus.c +++ b/drivers/media/platform/qcom/venus/hfi_venus.c @@ -380,7 +380,7 @@ static void venus_soft_int(struct venus_hfi_device *hde= v) void __iomem *cpu_ic_base =3D hdev->core->cpu_ic_base; u32 clear_bit; =20 - if (IS_V6(hdev->core)) + if (IS_V6(hdev->core) || (IS_V4(hdev->core) && is_lite(hdev->core))) clear_bit =3D BIT(CPU_IC_SOFTINT_H2A_SHIFT_V6); else clear_bit =3D BIT(CPU_IC_SOFTINT_H2A_SHIFT); @@ -501,9 +501,11 @@ static int venus_boot_core(struct venus_hfi_device *hd= ev) if (count >=3D max_tries) ret =3D -ETIMEDOUT; =20 - if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) { + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core) || IS_AR50_LITE(hdev->= core)) { writel(0x1, cpu_cs_base + CPU_CS_H2XSOFTINTEN_V6); - writel(0x0, cpu_cs_base + CPU_CS_X2RPMH_V6); + + if (!IS_AR50_LITE(hdev->core)) + writel(0x0, cpu_cs_base + CPU_CS_X2RPMH_V6); } =20 return ret; @@ -569,6 +571,9 @@ static int venus_halt_axi(struct venus_hfi_device *hdev) u32 mask_val; int ret; =20 + if (IS_AR50_LITE(hdev->core)) + return 0; + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) { writel(0x3, cpu_cs_base + CPU_CS_X2RPMH_V6); =20 @@ -1138,7 +1143,13 @@ static irqreturn_t venus_isr(struct venus_core *core) wrapper_base =3D hdev->core->wrapper_base; =20 status =3D readl(wrapper_base + WRAPPER_INTR_STATUS); - if (IS_IRIS2(core) || IS_IRIS2_1(core)) { + + if (IS_AR50_LITE(core)) { + if (status & WRAPPER_INTR_STATUS_A2H_MASK || + status & WRAPPER_INTR_STATUS_A2HWD_MASK_V4_LITE || + status & CPU_CS_SCIACMDARG0_INIT_IDLE_MSG_MASK) + hdev->irq_status =3D status; + } else if (IS_IRIS2(core) || IS_IRIS2_1(core)) { if (status & WRAPPER_INTR_STATUS_A2H_MASK || status & WRAPPER_INTR_STATUS_A2HWD_MASK_V6 || status & CPU_CS_SCIACMDARG0_INIT_IDLE_MSG_MASK) @@ -1150,7 +1161,7 @@ static irqreturn_t venus_isr(struct venus_core *core) hdev->irq_status =3D status; } writel(1, cpu_cs_base + CPU_CS_A2HSOFTINTCLR); - if (!(IS_IRIS2(core) || IS_IRIS2_1(core))) + if (!(IS_IRIS2(core) || IS_IRIS2_1(core) || IS_AR50_LITE(core))) writel(status, wrapper_base + WRAPPER_INTR_CLEAR); =20 return IRQ_WAKE_THREAD; @@ -1535,7 +1546,7 @@ static bool venus_cpu_and_video_core_idle(struct venu= s_hfi_device *hdev) void __iomem *cpu_cs_base =3D hdev->core->cpu_cs_base; u32 ctrl_status, cpu_status; =20 - if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core) || IS_AR50_LITE(hdev->= core)) cpu_status =3D readl(wrapper_tz_base + WRAPPER_TZ_CPU_STATUS_V6); else cpu_status =3D readl(wrapper_base + WRAPPER_CPU_STATUS); @@ -1555,7 +1566,7 @@ static bool venus_cpu_idle_and_pc_ready(struct venus_= hfi_device *hdev) void __iomem *cpu_cs_base =3D hdev->core->cpu_cs_base; u32 ctrl_status, cpu_status; =20 - if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core) || IS_AR50_LITE(hdev->= core)) cpu_status =3D readl(wrapper_tz_base + WRAPPER_TZ_CPU_STATUS_V6); else cpu_status =3D readl(wrapper_base + WRAPPER_CPU_STATUS); diff --git a/drivers/media/platform/qcom/venus/hfi_venus_io.h b/drivers/med= ia/platform/qcom/venus/hfi_venus_io.h index 9735a246ce36..f2c3064c44ae 100644 --- a/drivers/media/platform/qcom/venus/hfi_venus_io.h +++ b/drivers/media/platform/qcom/venus/hfi_venus_io.h @@ -51,6 +51,9 @@ /* Venus cpu */ #define CPU_CS_SCIACMDARG3 0x58 =20 +#define CPU_CS_VCICMD 0x20 +#define CPU_CS_VCICMD_ARP_OFF BIT(0) + #define SFR_ADDR 0x5c #define MMAP_ADDR 0x60 #define UC_REGION_ADDR 0x64 @@ -100,6 +103,7 @@ #define WRAPPER_INTR_MASK_A2HCPU_MASK 0x4 #define WRAPPER_INTR_MASK_A2HCPU_SHIFT 0x2 =20 +#define WRAPPER_INTR_STATUS_A2HWD_MASK_V4_LITE 0x10 #define WRAPPER_INTR_STATUS_A2HWD_MASK_V6 0x8 #define WRAPPER_INTR_MASK_A2HWD_BASK_V6 0x8 =20 diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 8dd5a9b0d060..e09b0d9ae610 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -51,7 +51,7 @@ static int core_clks_enable(struct venus_core *core) dev_pm_opp_put(opp); =20 for (i =3D 0; i < res->clks_num; i++) { - if (IS_V6(core)) { + if (IS_V6(core) || (IS_V4(core) && is_lite(core))) { ret =3D clk_set_rate(core->clks[i], freq); if (ret) goto err; --=20 2.34.1 From nobody Sun Oct 5 10:44:48 2025 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 A3AA2226177 for ; Tue, 5 Aug 2025 06:44:44 +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=1754376286; cv=none; b=RbYAhGIDnzKs0euPWMgNaQdeMU88lSFsE2GqY6CNIohMNUOQd5E9lec9o7NM7QNvgh/0+H3BlK8JkuGBhIRBxmoyEgnyp5fMUXIWcTkaEXzfFBqWflMkqg4u9qLfXOt8Sgk97WCS9yuMhLf4580ijoJ0WYTTnxLSI0XWbate5Mk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754376286; c=relaxed/simple; bh=oPFm67OSDc8jjMlCDG4yw+EfOlHvxqiW0jAN4Vp3d44=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=T/GRw5NZiVwMUrNOGvoT2H4H+mGT0sGtWgvYY9jLVRRjTcH360KSyp/dOE+1qmFlVK9yFS5QcGU8KKoe1W4Ksj+n4nE3PIRceGqmb0nvj5Gmn9Ft8Q17UUagOJwY2UGpzmvyppexDgadky48jdTx34oeF8btxbGa9X/PZleOVHM= 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=YOS2g76q; 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="YOS2g76q" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57564f6S029018 for ; Tue, 5 Aug 2025 06:44:44 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=P/CfMYBm1kf ACJYH4wl/9WcXrSHI+/6srUoWVU8Wlm8=; b=YOS2g76qF76CsMdenfY72hPJ2xi oi6xDR1Epr14FXjQdraMI+lDmTE+BXVp9M8XXTUpQ78XNydh3n0Ll4O0AUosSXOB Jtx3r3angVYMd4tAz6vrzyezlYYEWVhMeUyw22yKbAMpuG97qvdOqjRHB+8y5qas 01B3dDon6FLn9+fehQN0AGfagJMmlPW/qZC0ZHjQnxUrKIXI1hpsnTqIaN2/mC1A mQfnsbPpebGmXglC2YPSan2PKOtf6pvv1lcunXqd4bYvQtLUPZtUtuDOHPssWxC1 aFeqp2pJns5vO8NmEMzRl9fpDHlSIEFUmVLqworgIQfr80m92tQG3aT/0oA== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 489bek7ewh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 06:44:43 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-70771983a52so99480216d6.2 for ; Mon, 04 Aug 2025 23:44:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754376282; x=1754981082; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=P/CfMYBm1kfACJYH4wl/9WcXrSHI+/6srUoWVU8Wlm8=; b=EkIvpPP4eZbqhMsn3Uek2CwYDq6+S3ECKW+Gsz4bukNF76NVp4CaIqYRpLQQMQB+Li Vc+jiBJD4KPgOSstDuHvTqD671kr1gA15gcNUqYsDJkUuSzl1kNjAWfKW3i+SmY91EVg kL/Momoj5wfiHywt2zPwAluV7fg1u7AkSgtWCAC21hYVUCh8exZbH/TIW7XRjCa1rXH8 jgPqaWBYFLoL1AVh3C1IM2U8d05yJm2SqxrdN7mWwyF6g/56Gqi1cndRgw0pu1U1o1dF Dhy6f2VHKHlRyv+je7Tin33kQfi2vq5beU9VjxyCDuUCMmxiChp6dEiTo0WCECaNsRQK 8r3A== X-Forwarded-Encrypted: i=1; AJvYcCVA6hrad+GJbv6KSgCMp3EffpBUHMHU+qeQTUSg/Pm0wd/n+Y15i4tu9BLIWaL67So7V2LZVpQBnaBrs3s=@vger.kernel.org X-Gm-Message-State: AOJu0Yw6kdPfdLHs0cF8vyWYhgIb/VF9BerdHBUnKVaHbq7o0fGie6fj B3Th/sWeAwoSpex4OrAldrz95lyjq4oa4brS33Zmfl7tsdJZIW3dN3qPfCI22iAYO5eWMf9CLOU 1XGjxJ5flTMXi40Uvjk6qVYO4GUennvrabgEZkwEPXDrMj3sLUiMWhGAGB3JJerlc4AM= X-Gm-Gg: ASbGnctjeJKFhSJ4TuqosruLWpGYf3sFdsMpPk5NQCJJZmkxWg3Xq1ouWzjowrxESk3 Z4GZ5tvyr/0pOpyGPFCesILFLelrdZN+1yhFXeVNlKPQx9J7WKewat1PdpUWdK9YpBz7ZIdU7Jg VxjXpC/n6rDWyJoh5DIKbU+To4ZdY65JnsWbZ+dN1nk4XHDRVvaS95zDRL7slXE2hbMoJvIAaAk eI6WlMiOTnRNwGMhGL7m31iM2pzUogwgYSWTFDtJkTrr5CKABu2fX5bFiO8macNZAh1Hhp4Ke5D Rpz1YIByuprcn3CgjteFTwZAAsFSugfGmYKZbDJkj/lTjhFDxSMM+7wQttN8yFlXBbzMoAfesCM T8QwVqqHewkRU X-Received: by 2002:a05:6214:c49:b0:709:2e0e:f76c with SMTP id 6a1803df08f44-709363669ffmr186196246d6.45.1754376282188; Mon, 04 Aug 2025 23:44:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF60/INPpLMxU+7hdi8s80JrFbWInZdLBZORNG/MPtU1GmOMe3rJD0B5gV4FtIe73lQYVnxEQ== X-Received: by 2002:a05:6214:c49:b0:709:2e0e:f76c with SMTP id 6a1803df08f44-709363669ffmr186195946d6.45.1754376281678; Mon, 04 Aug 2025 23:44:41 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4589ee57922sm194015815e9.22.2025.08.04.23.44.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 23:44:41 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_dikshita@quicinc.com, quic_vgarodia@quicinc.com, konradybcio@kernel.org, krzk+dt@kernel.org Cc: mchehab@kernel.org, conor+dt@kernel.org, andersson@kernel.org, linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 4/7] media: venus: hfi_plat_v4: Add capabilities for the 4XX lite core Date: Tue, 5 Aug 2025 08:44:27 +0200 Message-Id: <20250805064430.782201-5-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> References: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=M7tNKzws c=1 sm=1 tr=0 ts=6891a85b cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=5l9M9ejOZEj2P9uvktAA:9 a=OIgjcC2v60KrkQgK7BGD:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDA0NiBTYWx0ZWRfXxQr+nSkxZt37 32ud78RIi+xabeyZG4SCLaHq5xnf7C7cLeSH8baWCTnOhLRzCiEjsNyFfDjHw1ceYTZVJ9UcHHv VI0P9kD7JN+i/e2OxZHsEBwnVIXrngRUosmHve4Q25shhqXEFU6KtJxiR8D3kEBOuAWClFqFlKy 00kuXU8Tyexx5TF+HZC2bMibxUv6Fs69kbpd2wFQ7cJtNXsWKyOQh2iJskKotuvo/BqzCiNyNoR evHtYaVg8BDVJEjSr+TEATAAvfCdiaEnPZyDXh0GGV06pUzBabPX0VYoUplSYCG57EhTzBWe5Kc 82AKKtT472rOiOFAtIsXg7BN5IBPaoJWDNVfa8Gdz6sYgPn9dBR9hILYVOkIqV1OnY+v6K/ttxZ fuan9B4AqqGorEjqX14LkEmFrahCZDuRBSJ9YdO7Sh/zE1OY7LCUraeIAITCxxWTYRqaIrjS X-Proofpoint-ORIG-GUID: TqiNAoLS_2LZq3O3q9D84XTAmvdWf9hR X-Proofpoint-GUID: TqiNAoLS_2LZq3O3q9D84XTAmvdWf9hR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_01,2025-08-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 mlxlogscore=999 mlxscore=0 bulkscore=0 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2508050046 Content-Type: text/plain; charset="utf-8" Populate the HFI v4 lite capability set used by the AR50_LITE video core. These capabilities define the supported codec formats and operational limits specific to this streamlined VPU variant. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Bryan O'Donoghue --- .../platform/qcom/venus/hfi_platform_v4.c | 170 ++++++++++++++++-- 1 file changed, 151 insertions(+), 19 deletions(-) diff --git a/drivers/media/platform/qcom/venus/hfi_platform_v4.c b/drivers/= media/platform/qcom/venus/hfi_platform_v4.c index 4ae7ed476c48..2bb6cb6a70f3 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform_v4.c +++ b/drivers/media/platform/qcom/venus/hfi_platform_v4.c @@ -245,25 +245,149 @@ static const struct hfi_plat_caps caps[] =3D { .num_fmts =3D 4, } }; =20 +static const struct hfi_plat_caps caps_lite[] =3D { +{ + .codec =3D HFI_VIDEO_CODEC_H264, + .domain =3D VIDC_SESSION_TYPE_DEC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .num_caps =3D 7, + .pl[0] =3D { HFI_H264_PROFILE_BASELINE, HFI_H264_LEVEL_5}, + .pl[1] =3D {HFI_H264_PROFILE_MAIN, HFI_H264_LEVEL_5}, + .pl[2] =3D {HFI_H264_PROFILE_HIGH, HFI_H264_LEVEL_5}, + .pl[3] =3D {HFI_H264_PROFILE_CONSTRAINED_BASE, HFI_H264_LEVEL_5}, + .pl[4] =3D {HFI_H264_PROFILE_CONSTRAINED_HIGH, HFI_H264_LEVEL_5}, + .num_pl =3D 5, + .fmts[0] =3D {HFI_BUFFER_OUTPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[1] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[2] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12}, + .fmts[3] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV21}, + .num_fmts =3D 4, +}, { + .codec =3D HFI_VIDEO_CODEC_HEVC, + .domain =3D VIDC_SESSION_TYPE_DEC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .num_caps =3D 7, + .pl[0] =3D {HFI_HEVC_PROFILE_MAIN, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIGH0= << 28 }, + .pl[1] =3D {HFI_HEVC_PROFILE_MAIN10, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIG= H0 << 28 }, + .num_pl =3D 2, + .fmts[0] =3D {HFI_BUFFER_OUTPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[1] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[2] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12}, + .fmts[3] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV21}, + .num_fmts =3D 4, +}, { + .codec =3D HFI_VIDEO_CODEC_VP9, + .domain =3D VIDC_SESSION_TYPE_DEC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .num_caps =3D 7, + .pl[0] =3D {HFI_VP9_PROFILE_P0, 200}, + .pl[1] =3D {HFI_VP9_PROFILE_P2_10B, 200}, + .num_pl =3D 2, + .fmts[0] =3D {HFI_BUFFER_OUTPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[1] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[2] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12}, + .fmts[3] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV21}, + .num_fmts =3D 4, +}, { + .codec =3D HFI_VIDEO_CODEC_H264, + .domain =3D VIDC_SESSION_TYPE_ENC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .caps[7] =3D {HFI_CAPABILITY_HIER_P_NUM_ENH_LAYERS, 0, 6, 1}, + .caps[8] =3D {HFI_CAPABILITY_ENC_LTR_COUNT, 0, 4, 1}, + .caps[9] =3D {HFI_CAPABILITY_MBS_PER_SECOND_POWERSAVE, 0, 244800, 1}, + .caps[10] =3D {HFI_CAPABILITY_I_FRAME_QP, 0, 51, 1}, + .caps[11] =3D {HFI_CAPABILITY_P_FRAME_QP, 0, 51, 1}, + .caps[12] =3D {HFI_CAPABILITY_B_FRAME_QP, 0, 51, 1}, + .caps[13] =3D {HFI_CAPABILITY_SLICE_BYTE, 1, 10, 1}, + .caps[14] =3D {HFI_CAPABILITY_SLICE_MB, 1, 10, 1}, + .num_caps =3D 15, + .pl[0] =3D {HFI_H264_PROFILE_BASELINE, HFI_H264_LEVEL_5}, + .pl[1] =3D {HFI_H264_PROFILE_MAIN, HFI_H264_LEVEL_5}, + .pl[2] =3D {HFI_H264_PROFILE_HIGH, HFI_H264_LEVEL_5}, + .pl[3] =3D {HFI_H264_PROFILE_CONSTRAINED_BASE, HFI_H264_LEVEL_5}, + .pl[4] =3D {HFI_H264_PROFILE_CONSTRAINED_HIGH, HFI_H264_LEVEL_5}, + .num_pl =3D 5, + .fmts[0] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12}, + .fmts[1] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .num_fmts =3D 2, +}, { + .codec =3D HFI_VIDEO_CODEC_HEVC, + .domain =3D VIDC_SESSION_TYPE_ENC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .caps[7] =3D {HFI_CAPABILITY_HIER_P_NUM_ENH_LAYERS, 0, 6, 1}, + .caps[8] =3D {HFI_CAPABILITY_ENC_LTR_COUNT, 0, 4, 1}, + .caps[9] =3D {HFI_CAPABILITY_MBS_PER_SECOND_POWERSAVE, 0, 244800, 1}, + .caps[10] =3D {HFI_CAPABILITY_I_FRAME_QP, 0, 51, 1}, + .caps[11] =3D {HFI_CAPABILITY_P_FRAME_QP, 0, 51, 1}, + .caps[12] =3D {HFI_CAPABILITY_B_FRAME_QP, 0, 51, 1}, + .caps[13] =3D {HFI_CAPABILITY_SLICE_BYTE, 1, 10, 1}, + .caps[14] =3D {HFI_CAPABILITY_SLICE_MB, 1, 10, 1}, + .num_caps =3D 15, + .pl[0] =3D {HFI_HEVC_PROFILE_MAIN, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIGH0= }, + .pl[1] =3D {HFI_HEVC_PROFILE_MAIN10, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIG= H0}, + .num_pl =3D 2, + .fmts[0] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12}, + .fmts[1] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .num_fmts =3D 2, +} }; + static const struct hfi_plat_caps *get_capabilities(unsigned int *entries, bool lite) { - WARN_ON(lite); + *entries =3D lite ? ARRAY_SIZE(caps_lite) : ARRAY_SIZE(caps); =20 - *entries =3D ARRAY_SIZE(caps); - return caps; + return lite ? caps_lite : caps; } =20 static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count, bool = lite) { - WARN_ON(lite); + const struct hfi_plat_caps *caps; + unsigned int num; + size_t i; + + *enc_codecs =3D 0; + *dec_codecs =3D 0; + + caps =3D get_capabilities(&num, lite); =20 - *enc_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | - HFI_VIDEO_CODEC_VP8; - *dec_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | - HFI_VIDEO_CODEC_VP8 | HFI_VIDEO_CODEC_VP9 | - HFI_VIDEO_CODEC_MPEG2; - *count =3D 8; + for (i =3D 0; i < num; caps++, i++) { + if (caps->domain =3D=3D VIDC_SESSION_TYPE_ENC) + *enc_codecs |=3D caps->codec; + else + *dec_codecs |=3D caps->codec; + } + + *count =3D num; } =20 static const struct hfi_platform_codec_freq_data codec_freq_data[] =3D { @@ -277,14 +401,28 @@ static const struct hfi_platform_codec_freq_data code= c_freq_data[] =3D { { V4L2_PIX_FMT_VP9, VIDC_SESSION_TYPE_DEC, 200, 10, 200 }, }; =20 +static const struct hfi_platform_codec_freq_data codec_freq_data_lite[] = =3D { + { V4L2_PIX_FMT_H264, VIDC_SESSION_TYPE_DEC, 440, 0, 440 }, + { V4L2_PIX_FMT_HEVC, VIDC_SESSION_TYPE_DEC, 440, 0, 440 }, + { V4L2_PIX_FMT_VP9, VIDC_SESSION_TYPE_DEC, 440, 0, 440 }, + { V4L2_PIX_FMT_H264, VIDC_SESSION_TYPE_ENC, 675, 0, 675 }, + { V4L2_PIX_FMT_HEVC, VIDC_SESSION_TYPE_ENC, 675, 0, 675 }, +}; + static const struct hfi_platform_codec_freq_data * get_codec_freq_data(u32 session_type, u32 pixfmt, bool lite) { - const struct hfi_platform_codec_freq_data *data =3D codec_freq_data; - unsigned int i, data_size =3D ARRAY_SIZE(codec_freq_data); + const struct hfi_platform_codec_freq_data *data; + unsigned int i, data_size; const struct hfi_platform_codec_freq_data *found =3D NULL; =20 - WARN_ON(lite); + if (lite) { + data =3D codec_freq_data_lite; + data_size =3D ARRAY_SIZE(codec_freq_data_lite); + } else { + data =3D codec_freq_data; + data_size =3D ARRAY_SIZE(codec_freq_data); + } =20 for (i =3D 0; i < data_size; i++) { if (data[i].pixfmt =3D=3D pixfmt && data[i].session_type =3D=3D session_= type) { @@ -300,8 +438,6 @@ static unsigned long codec_vpp_freq(u32 session_type, u= 32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - WARN_ON(lite); - data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vpp_freq; @@ -313,8 +449,6 @@ static unsigned long codec_vsp_freq(u32 session_type, u= 32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - WARN_ON(lite); - data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vsp_freq; @@ -326,8 +460,6 @@ static unsigned long codec_lp_freq(u32 session_type, u3= 2 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - WARN_ON(lite); - data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->low_power_freq; --=20 2.34.1 From nobody Sun Oct 5 10:44:48 2025 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 13D81222562 for ; Tue, 5 Aug 2025 06:44:45 +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=1754376288; cv=none; b=duvLd1dGPO7PkaUe5gcXpO8ttTcfzhEXc0bqcUR29Nq+9ymS1+CDvD1jtUUICOqtkdATd2/FhT1VSbEHKT/AWLRxlQvjnn/GfweZ8CueAbxXyu7y6jmG3OBVNl9iFM9Kj6xlxWA7GHToNtoGm2OtGkYX7muBnFcg4q6XRb1H/Ic= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754376288; c=relaxed/simple; bh=K4mCViCHCWuXv/g4/AJKSvpp4YQj0BbDQ6qxHf9Frmk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CwLzDkQOTFM0XMTxIwZ9YlNo5XPz1F3F1MXkgNQa9EYkaHUdIukqZ7sP81uP9kKMz+oG1aJ7ZJ4vPg8rYT+HLK/sG5o7wsuPxjOm+QqYNR5sIyQzRQxwY4rlMXa0fs/p0nVi1RtkPH77IVDGUM7SXroBye1lkqF9wbDx9kCqy+Y= 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=RJjncFcP; 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="RJjncFcP" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57526W6n016967 for ; Tue, 5 Aug 2025 06:44:45 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=+M/8qH7Msyp gORIluOg3H4YeiT5EdzbwVLL3V4pOe+M=; b=RJjncFcPKpTelP01psr7odknSo5 aSVjEYCMeEcgZPObYbLUAsGa/SshrIP3DnJY78L7oTx5DfiLGiF5x8DMHyk/3SV1 8pdMEvTrtp0ysanKb1RZaxeZFIWptamkiugKS88/Ty/5z6FGAny6eVe4sCW0UyBw Yy0bNTy41TLMfS7oHFoucZgCRVTEaPvM8igXpKV5SUU0Nz+wRu1qU+3eo50ajXZM 9WEljbNv7nGJUeXHGDA24V3rO0s5cQ9bVg1EYdy14OpJqqrmw7FtlCHuXTxZDrCa /LlTIFbC254p0UMUrW8mrIW1U1qELg21iYBrE5wk+nbAzMbhSwDwwLl4RzA== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48aqyv3puj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 06:44:45 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4b061ad3cc0so53806441cf.0 for ; Mon, 04 Aug 2025 23:44:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754376284; x=1754981084; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+M/8qH7MsypgORIluOg3H4YeiT5EdzbwVLL3V4pOe+M=; b=twXg9yv2683bK+jA9xkCIAuVE5CV+eax4ja9twaoABACxwZseZ6IRcDL2NbKg3UsKg 3ZfscP5ZgKv7QW2cEZWJl6dgZh+XPBM+v2iPLZRNl+0ZLWsNv/lTVsMZ86ah89yXs2E/ iXe5dzZ3RA67oq1aOEDIb9UIQ8nDEL5pAxuKB6GsXbf2981HsIrjwytYzuhjUMhG0xeP xAPQ0aVGXY0nikAVpiWymHp16Un9wSXuEUgd+ZmUV/IOd16gMdvB2ASgU3AM6ROaR0bh QZAu571VaMWq9MC6tG6nCOujsKYf2DUGt2v9/z3W4EnDVYHNPvm4ogDFR4J+Iw6UiQiT L6Dw== X-Forwarded-Encrypted: i=1; AJvYcCXMGc7Rhw5GISbn4Z8xtid4uVN1bymgpsbQnDAkbSGnfmXQ0421839NRimNTtDncIMkCZfO4dXSpqLat6Q=@vger.kernel.org X-Gm-Message-State: AOJu0YzZ6PU1HobnnlBA4ZKECEuvCO6gMcRDEKaamJ9Rr8rtt8Se6NnG BM3bREg/zUNID2/P2KQhb8gKXr+Af6qsNZySFa/RYlTI77FcYYd4Db7o4piwaYurbBQi3BrLh5K bHNGUByi1LvG08/bl8NN4Mw74eeYoYBnI2I4UxImFhicQ/XnkHhK9p/IL+l2aArHGk1c= X-Gm-Gg: ASbGncstLCnrsr8/U/ZmsGFyRsyfaKg3nkPe8JqEJSsk0GTRPf+tGKjwV+nLWnmlJWD Y79cionLrzEOF1Uxg8qA7ZUTZr4jxc1NXoPpcLufdiEkBbto+RilSETxQ56PZU3WE7rhBLdnjtM 9YQgsVL41OFNna2TelH0CTOIQYW1FZ4FinClUYFR6OZkISLQ8azeRyuha38CJfkIPqg+AfwFZ2a JXI+IyMNG2T24pQra8IZwDcyU0ExjGTGzAI1hYjrGVe/mJTRTSKir5yfXHav+ZUMJFJFg5OAg4r iJjD63NI8Z+szMJ/EQtOGeVJLYlYFti8z4ZScswVnr7yxCq4icjsNfQKqCM6IrKiQ777leLOU5j ezT988Nu69hFy X-Received: by 2002:a05:622a:138b:b0:4b0:681e:abdb with SMTP id d75a77b69052e-4b0681eb979mr109131451cf.28.1754376283672; Mon, 04 Aug 2025 23:44:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGSfdnAqhmXQQ+vuUhuVgCmpAmNLrSe16OUeFjQWiJjyBL/9kwP0NnsALWpSPWMAwe7Vg9hZw== X-Received: by 2002:a05:622a:138b:b0:4b0:681e:abdb with SMTP id d75a77b69052e-4b0681eb979mr109131291cf.28.1754376283208; Mon, 04 Aug 2025 23:44:43 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4589ee57922sm194015815e9.22.2025.08.04.23.44.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 23:44:42 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_dikshita@quicinc.com, quic_vgarodia@quicinc.com, konradybcio@kernel.org, krzk+dt@kernel.org Cc: mchehab@kernel.org, conor+dt@kernel.org, andersson@kernel.org, linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 5/7] media: venus: core: Add qcm2290 DT compatible and resource data Date: Tue, 5 Aug 2025 08:44:28 +0200 Message-Id: <20250805064430.782201-6-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> References: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: kZ4IE8dm5MGMssELxhJ6V3O64NOjfOZ1 X-Authority-Analysis: v=2.4 cv=F/xXdrhN c=1 sm=1 tr=0 ts=6891a85d cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=COk6AnOGAAAA:8 a=5fA-3PHwp7xA7VOvTvgA:9 a=uxP6HrT_eTzRwkO_Te1X:22 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: kZ4IE8dm5MGMssELxhJ6V3O64NOjfOZ1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDA0NiBTYWx0ZWRfX9fyt8CoEVn7k hIVhQJLIFRo5vaoi0RbLT+xnc7p1T574M54yfBaAqc3AcHKm4Ei7otI0yb21UNo4bWtPCUKAfHA cqSyma4+7AMsoQ8hWwgGA0ikQ/hBVt8OiqvPYPI0u2n/Lx2xMm7l7cpkfCjW5u92xufMkH8FP3j vG8u0GiNGdEMutm3UOxL/2GrAv8kjlDRYtxBQG1yyxPQubuPU1VzXw8nS7vQoC/TgCkpMbJcVLH QHVpSpMh7XeBs5hJFhq7TvYEkBdMHzePDNJIZdC98+p0nbK7RAb6Usga0xM4gCud5eQcxJHPFMw QvKfvnhEPakc3hvylu5S7r4CdEjz0vz2lHzVemv8AThhooqUs6YV37ZLstHR7UKSve+bEDsxeVj 7XKQrpQRaipt0nLOgVxbVXzWCZd2zCduJK1upH7vkFxzGOJp92RDOPdxIqX3cmhN3MuYRfOH X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_01,2025-08-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 mlxscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 mlxlogscore=999 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2508050046 Content-Type: text/plain; charset="utf-8" Add a qcm2290 compatible binding to the Cenus core. The maximum concurrency is video decode at 1920x1080 (FullHD) with video encode at 1280x720 (HD). The driver is not available to firmware versions below 6.0.55 due to an internal requirement for secure buffers. The bandwidth tables incorporate a conservative safety margin to ensure stability under peak DDR and interconnect load conditions. Co-developed-by: Loic Poulain Signed-off-by: Loic Poulain Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Bryan O'Donoghue Reviewed-by: Dikshita Agarwal --- drivers/media/platform/qcom/venus/core.c | 50 ++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index adc38fbc9d79..753a16f53622 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -1070,6 +1070,55 @@ static const struct venus_resources sc7280_res =3D { .enc_nodename =3D "video-encoder", }; =20 +static const struct bw_tbl qcm2290_bw_table_dec[] =3D { + { 352800, 597000, 0, 746000, 0 }, /* 1080p@30 + 720p@30 */ + { 244800, 413000, 0, 516000, 0 }, /* 1080p@30 */ + { 216000, 364000, 0, 454000, 0 }, /* 720p@60 */ + { 108000, 182000, 0, 227000, 0 }, /* 720p@30 */ +}; + +static const struct bw_tbl qcm2290_bw_table_enc[] =3D { + { 352800, 396000, 0, 0, 0 }, /* 1080p@30 + 720p@30 */ + { 244800, 275000, 0, 0, 0 }, /* 1080p@30 */ + { 216000, 242000, 0, 0, 0 }, /* 720p@60 */ + { 108000, 121000, 0, 0, 0 }, /* 720p@30 */ +}; + +static const struct firmware_version min_fw =3D { + .major =3D 6, .minor =3D 0, .rev =3D 55, +}; + +static const struct venus_resources qcm2290_res =3D { + .bw_tbl_dec =3D qcm2290_bw_table_dec, + .bw_tbl_dec_size =3D ARRAY_SIZE(qcm2290_bw_table_dec), + .bw_tbl_enc =3D qcm2290_bw_table_enc, + .bw_tbl_enc_size =3D ARRAY_SIZE(qcm2290_bw_table_enc), + .clks =3D { "core", "iface", "bus", "throttle" }, + .clks_num =3D 4, + .vcodec0_clks =3D { "vcodec0_core", "vcodec0_bus" }, + .vcodec_clks_num =3D 2, + .vcodec_pmdomains =3D (const char *[]) { "venus", "vcodec0" }, + .vcodec_pmdomains_num =3D 2, + .opp_pmdomain =3D (const char *[]) { "cx" }, + .vcodec_num =3D 1, + .hfi_version =3D HFI_VERSION_4XX, + .vpu_version =3D VPU_VERSION_AR50_LITE, + .max_load =3D 352800, + .num_vpp_pipes =3D 1, + .vmem_id =3D VIDC_RESOURCE_NONE, + .vmem_size =3D 0, + .vmem_addr =3D 0, + .cp_start =3D 0, + .cp_size =3D 0x70800000, + .cp_nonpixel_start =3D 0x1000000, + .cp_nonpixel_size =3D 0x24800000, + .dma_mask =3D 0xe0000000 - 1, + .fwname =3D "qcom/venus-6.0/venus.mbn", + .dec_nodename =3D "video-decoder", + .enc_nodename =3D "video-encoder", + .min_fw =3D &min_fw, +}; + static const struct of_device_id venus_dt_match[] =3D { { .compatible =3D "qcom,msm8916-venus", .data =3D &msm8916_res, }, { .compatible =3D "qcom,msm8996-venus", .data =3D &msm8996_res, }, @@ -1080,6 +1129,7 @@ static const struct of_device_id venus_dt_match[] =3D= { { .compatible =3D "qcom,sc7180-venus", .data =3D &sc7180_res, }, { .compatible =3D "qcom,sc7280-venus", .data =3D &sc7280_res, }, { .compatible =3D "qcom,sm8250-venus", .data =3D &sm8250_res, }, + { .compatible =3D "qcom,qcm2290-venus", .data =3D &qcm2290_res, }, { } }; MODULE_DEVICE_TABLE(of, venus_dt_match); --=20 2.34.1 From nobody Sun Oct 5 10:44:48 2025 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 84D1423315A for ; Tue, 5 Aug 2025 06:44:47 +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=1754376289; cv=none; b=HgjlvVFgRPFKcqCWGWqo7NMIjnsRV8jgjDp5Dcw28LXKrMxGfZ87YD/7yEyWRCNmeLa31s9kaKQ+/OU5K5T5j+PNYC3mPDyuTmEWJ8lA4nFNLxWi009hID/TBoGHMjenH90YNf5ykPZoYIts+kVT3JkSMnxDL3bBCj3KgHWjcds= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754376289; c=relaxed/simple; bh=tI4EJY+AX+r+95HyElw6Y87H6Z+WIIFID7OrbHLVJ9g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=L1iKpCEjUF2MBkKCOLlZxQSN+sodgFIMhDIFRBz1VoN3s0JA65TVEVlL1SOon6SCoO4eap3h0wLr7LfkEPrVs5r/ElZEAhPrIcoOUWvoGFMHLR/pHY3YODX+8ckAc+78ZogiVRZP32PHUqhluLuzJoPFqI5nTyZ/BWzyxhrNbdI= 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=D02aDSdc; 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="D02aDSdc" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 574K4J5Z005163 for ; Tue, 5 Aug 2025 06:44:47 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=cDNJIT1X4FF Dqpcezls1gtG8Nez0pdy1Boer2Zl4v9A=; b=D02aDSdcRPz9prtNGcJA4xDh/US 8cONdUZnI3woIM7gG699HQF5mqr5jA130lWdEh06iOcXVhCy8ZktDEaZY5vvAwE4 zHBN/cfPGvyCKx5RW4IzWJm6/RxuXhPoXzlT8AX9ugb8Q+whDEja405sFVVHen4H oztzaAVYIswSt+cck2Pl/T7JCcda62VwWKNUBTeeOGBvZNn+wvUuGkFTXk2ZSmVH eJdFl9u2kM7cJkVUf7Z2Fn68/yZpoz/DMwSLZn8UZCUXfFSMXkzCpcF+d73CCrj1 rb3XX1oMxC0qN9qo3Ya54BwplszcMluD4YzaCe15sFvYOZSyoAjafwwm5Tw== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48b3j3sbgk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 06:44:46 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-7075d489ff0so85868996d6.3 for ; Mon, 04 Aug 2025 23:44:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754376285; x=1754981085; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cDNJIT1X4FFDqpcezls1gtG8Nez0pdy1Boer2Zl4v9A=; b=DufpqNHIVUc/Hn4KkvhP2c0mkCt6x4PdFHgnXxCb8TSk81Q68chRaHwOXQF6lvU3m4 4X725iD2ucIk3+5+a2QfdJpp2c6UTDGp0zAko7g3KRejlKSb3Gn3EvwfCYw0OqhVsD4N +IltcOuqfA23zYQQIS6KiPE3Ic4ZBOtpCwrZ9BoCObCF2Vo/3brpv35XrjZgb8VeUIHP mfeLH/sA8y3896Qtd+Hq8gmnNb9uWtDO8WmiePf91zIbiiAk5uXjXSTHRYJSPE6aATCB nt4ov0L2OeeJu81rOUrFmpZDTg+LruyzBXyy4HwNd8ulIh/N7k2dwnoB8nYaIWTpxXCV dlDg== X-Forwarded-Encrypted: i=1; AJvYcCXqjDji5DtYjwKPbwMPhgqNg186elopkFm/Mj6jXw1sP3YWrTbT8j56UTtsYJddlPgZWJL0A6TSOZ47De4=@vger.kernel.org X-Gm-Message-State: AOJu0YzRqi2RcDerH4a++Kd/89Vei+NhSZzRTldn6Z/bXkUM/67SOyX3 QAmmtN/xF+32PF1iQZEFTe9swv0YykNWJsip+zfvO0/YMMaf7bq1CV3ncgJlWAwdGbQ4/ypFeQ3 cHhpcR/NJbdKUQU7CbmIH2BqnJTlrzIEXQfHiMd+e+oTYTjlfJuxqxcGa9DOaOrCkI/s= X-Gm-Gg: ASbGncsPp1OBvpCb0y6AlaDGGaEy5OVXWbT/CZPCNDHwexzTU/PFSU20Jt0IxRwsz5Q NGVvI/kyFR35vfM1AGnIjNFFBKP+dBMIRvw1e4c6t58l2NZGD5T/LGehsFz0DwvjAXgkC8d9HB3 QqqxOCZnfA+rnTc0iJdV/rZQOO8REMC64BEu8ZZH1fnzXBzCbum2lty256o2Js+v3o8oD2CwLIB drHO4mbD5gwTIC2MTdKOKYwM3HnqhIWyOC+VF4zBUdqlXMY3SzA4BzJm+ezWXNL7MXOI9LgLDHQ Xq0Z43WVwiSdEseas0BKBbMhnuJvglUzNukTEB0u4TqUHiPrJCn/Z2RD9siT9e6UYcnK1BOR2lw XnLZiTtWZUHR1 X-Received: by 2002:a05:6214:400d:b0:707:b59:8907 with SMTP id 6a1803df08f44-70935f6f80amr172014156d6.14.1754376285312; Mon, 04 Aug 2025 23:44:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFJlNrFRgTXjKLfqSDstiQ2o9wPR/GF7AHwgeyi/ta5LUK0tA+fpwgdxf2g3ixrItUBOCQ4ZA== X-Received: by 2002:a05:6214:400d:b0:707:b59:8907 with SMTP id 6a1803df08f44-70935f6f80amr172013906d6.14.1754376284892; Mon, 04 Aug 2025 23:44:44 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4589ee57922sm194015815e9.22.2025.08.04.23.44.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 23:44:44 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_dikshita@quicinc.com, quic_vgarodia@quicinc.com, konradybcio@kernel.org, krzk+dt@kernel.org Cc: mchehab@kernel.org, conor+dt@kernel.org, andersson@kernel.org, linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 6/7] arm64: dts: qcom: qcm2290: Add Venus video node Date: Tue, 5 Aug 2025 08:44:29 +0200 Message-Id: <20250805064430.782201-7-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> References: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: hG4M1KLfHPIOxlXf1uPIAZdkrKBAiqmb X-Authority-Analysis: v=2.4 cv=TZ+WtQQh c=1 sm=1 tr=0 ts=6891a85e cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KD12_Wl4P5iJQNenjFgA:9 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDA0NiBTYWx0ZWRfX4K+TCyC3Fdbp FR5yobSHaFAj1bsNToGJB2WVJneF4wdjXPDuBTya5b0DAN8FSWpLcN50lLkn78BhtdTz+DFRD4H yGbxy9rKyDpoZkLzQ2qt8ar3pozh91cHeQiB8E2P2L9P6waJi76QQqzqIYkDYJvjIFVmsblcUF0 M5YfsS+s5ddJS633ptCPjdWmH9BdY/wsP0Gq4zeMgcSnHsvsce2gi6NzkCUY0WQO7+1klNc7acE JcIlx8N7wAdSYe5Ru+sNY5509ULa9l+HVEPe0lz3oXgL/OzK5gtt9fpzokfsR6tjT66rvZwCSt5 5crH/iSSAkQw3Y92Z+KwkqGmZYz0PMvd9hASsh8QYYJa6/ndelEgreapsLnxvl9UbYEHXBGjJIS U9xdE1Jo27lad1IsF11TKuDsh8eqzuaHxQwqjlNCVsC42OP69OQjGZDnl+2TG3EDekvKhcYP X-Proofpoint-ORIG-GUID: hG4M1KLfHPIOxlXf1uPIAZdkrKBAiqmb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_01,2025-08-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 mlxscore=0 suspectscore=0 impostorscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 bulkscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2508050046 Content-Type: text/plain; charset="utf-8" Add DT entries for the qcm2290 Venus encoder/decoder. Co-developed-by: Loic Poulain Signed-off-by: Loic Poulain Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Konrad Dybcio --- arch/arm64/boot/dts/qcom/qcm2290.dtsi | 55 +++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qcm2290.dtsi b/arch/arm64/boot/dts/qc= om/qcm2290.dtsi index f49ac1c1f8a3..7cfacd189a10 100644 --- a/arch/arm64/boot/dts/qcom/qcm2290.dtsi +++ b/arch/arm64/boot/dts/qcom/qcm2290.dtsi @@ -1628,6 +1628,61 @@ adreno_smmu: iommu@59a0000 { #iommu-cells =3D <2>; }; =20 + venus: video-codec@5a00000 { + compatible =3D "qcom,qcm2290-venus"; + reg =3D <0 0x5a00000 0 0xf0000>; + interrupts =3D ; + + power-domains =3D <&gcc GCC_VENUS_GDSC>, + <&gcc GCC_VCODEC0_GDSC>, + <&rpmpd QCM2290_VDDCX>; + power-domain-names =3D "venus", + "vcodec0", + "cx"; + operating-points-v2 =3D <&venus_opp_table>; + + clocks =3D <&gcc GCC_VIDEO_VENUS_CTL_CLK>, + <&gcc GCC_VIDEO_AHB_CLK>, + <&gcc GCC_VENUS_CTL_AXI_CLK>, + <&gcc GCC_VIDEO_THROTTLE_CORE_CLK>, + <&gcc GCC_VIDEO_VCODEC0_SYS_CLK>, + <&gcc GCC_VCODEC0_AXI_CLK>; + clock-names =3D "core", + "iface", + "bus", + "throttle", + "vcodec0_core", + "vcodec0_bus"; + + memory-region =3D <&pil_video_mem>; + iommus =3D <&apps_smmu 0x860 0x0>, + <&apps_smmu 0x880 0x0>, + <&apps_smmu 0x861 0x04>, + <&apps_smmu 0x863 0x0>, + <&apps_smmu 0x804 0xe0>; + + interconnects =3D <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG + &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, + <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG + &config_noc SLAVE_VENUS_CFG RPM_ACTIVE_TAG>; + interconnect-names =3D "video-mem", + "cpu-cfg"; + + venus_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-133333333 { + opp-hz =3D /bits/ 64 <133333333>; + required-opps =3D <&rpmpd_opp_low_svs>; + }; + + opp-240000000 { + opp-hz =3D /bits/ 64 <240000000>; + required-opps =3D <&rpmpd_opp_svs>; + }; + }; + }; + mdss: display-subsystem@5e00000 { compatible =3D "qcom,qcm2290-mdss"; reg =3D <0x0 0x05e00000 0x0 0x1000>; --=20 2.34.1 From nobody Sun Oct 5 10:44:48 2025 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 CF40A21CA1D for ; Tue, 5 Aug 2025 06:44:48 +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=1754376290; cv=none; b=q/9LE8lKS+JsNYIA62T2bnTJhqgaBi4j7cjqfxS3sVq5Nd6jJHYHnEkpZOnRdTJi+UG/SkeJs2EoWlWLvA6V3QHOOTfjpopYbHaRB5q+PLV9LHm+aUvATdX3CmEvCV/j/3g+31VbfqLQ+gCGAUDFY7khMDT69Ssn1YDGWAsuyEU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754376290; c=relaxed/simple; bh=QGTu9QxACBWwGBtZKQkCZpc1XZafgh+NUqcrEBKsWfY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iZlHDV2vz1RG6N9bgXUE4wva/0uiDXI7gJyP9nEK7KSbIyefHFMLgIrQKlGrfscIl0/EUtHnIn4J+/QwdPHAunx7+brgsW+XfG8JEKO3pJO74J0N3Z6vK+vjC3E9aiqlFDNV0D5lohjIekJbhX/gH300pHXGXBQfC8xaol/84C8= 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=cp4beBu9; 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="cp4beBu9" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5755TtGT014194 for ; Tue, 5 Aug 2025 06:44:48 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=rzzUExB5oi0 2Ea7zkpkwb/zIf32msjJwgM31Jx4lZb8=; b=cp4beBu9BPseW8mxCUvuttbsqZs uonNeKVqqQ5ZKCNrVMmidhnEK4fAMo7yIoYyIY9jknHJEjo/kMLeXNgQdSLvURtf DELe0Xwc3FABU3aZkvSeDS12XsbTf8xZ1QLNW/52m+Ru5SQ9WnozpFkZkqIfWt0b 871em1YiDkZuvEGSqecpIvJKBVX4i6jsiuQH4VnsVMKSsnbdH0a1b/gWwjpfHTOe bsVE73jBt0pNyp2Fm7tUsUja2YOx9hKy8T1kXiNdU3SSG2zwxHCmG3VWBGJ9UcI1 HX1FfgK149wYVyp/YfHjXh/klV+vKDl1mOTI/ZSWYBaCuHqDGtU1SziCSDg== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 489buqqfbh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 06:44:48 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-70771c19c64so100298346d6.1 for ; Mon, 04 Aug 2025 23:44:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754376287; x=1754981087; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rzzUExB5oi02Ea7zkpkwb/zIf32msjJwgM31Jx4lZb8=; b=MeYX2KQH6JMOnpaL+X6NImVBgfG1e9siY+FIICDns58Rnw2ppTumeTGfMjw15kYaaB sjMUkz038552WKDNpHHCYZUNrb5hE0lw5Yzs9X+i92+pxqpaoM+5dr6+YJ7TidYUPy/B ll4ZqdA39fMCjAVYkppRHf1SlqUKdqPDkFFBU43XhgAq3DIV7b6H+elVFFWgof9uW+6F ShF/NDzb3axG40XlYD+mGt50KeZkGd+T/22rhnwIKQ23GoPGaAn2dAJ66v058XIwe4Vg m7wP/PRNzJ+jX25mkE8tC/IcTzoH3QacnLF/pBC52LqpmQwCRYp3X28l2AcqYsxClIDd 7fKA== X-Forwarded-Encrypted: i=1; AJvYcCUwmFrw0LR0JvhV5boigCVbOKm1jNIiVMgq7sqdmgnbZIPZ00Nxl2E5WLxYjsKBM77FermoeaTqONwHRdM=@vger.kernel.org X-Gm-Message-State: AOJu0YzNU7+vG0E6u/Y5jrG0AJERRwMW9N+BR9DcoQl84qvEBxOAD0+l w5yPeZK+iP+YUm1dpdo3KBpAQfszYcYr2QHhAUrszF7pmRbVVXN1abRYfyFLymBbfHFG2m7Qnjs MpSYp31I9VKUrP+5we8l5/ahJsFZp23QMuwSCM15o+fKDQ2i45lGqEfeLvkni77wdAc8= X-Gm-Gg: ASbGnctneZU49gFtDHj/DkOIJsobEfxwGE1GhGfs/VpLajQsySzYVIXJ/mXt6++9lP6 Qvi5rWruFDASD0VAi0kCOQuKgqyy81S/MdyAHl05Y310zS7EKTTfeLRl0ExEeNAYKAA7kJ7OoeP +V16z3o+2xovl8VpDNeVxt4g0QNNEOG+6OWShDsR6ysx7Pm+PH2jFC5TOKLjq0migqpSfobh2mW w1M1ioYURssoiH/BjeA/bZ5uNolI5fkW2XqzSMMpuobXJQ4KGOY2Rso99kc6gPVz8i1Qjv+kaTy 7k7jbqksowlFjYqKCVbU+fxn7gmY1vA+nabN2tZj189hp989uawnt2KvuFC8TwlutWtkmMuW06J tKPUiz2Ls6Q+h X-Received: by 2002:a05:6214:248d:b0:707:6cf8:5963 with SMTP id 6a1803df08f44-7096697fb56mr30656756d6.9.1754376286818; Mon, 04 Aug 2025 23:44:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE65nbtLDD/3t/KLzicnVLGSD/iwnbyxdIJGzB2Ftm964kvRn4z2OK8EPLsDfgZP6N4VYmTpQ== X-Received: by 2002:a05:6214:248d:b0:707:6cf8:5963 with SMTP id 6a1803df08f44-7096697fb56mr30656486d6.9.1754376286385; Mon, 04 Aug 2025 23:44:46 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4589ee57922sm194015815e9.22.2025.08.04.23.44.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 23:44:45 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_dikshita@quicinc.com, quic_vgarodia@quicinc.com, konradybcio@kernel.org, krzk+dt@kernel.org Cc: mchehab@kernel.org, conor+dt@kernel.org, andersson@kernel.org, linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 7/7] arm64: dts: qcom: qrb2210-rb1: Enable Venus Date: Tue, 5 Aug 2025 08:44:30 +0200 Message-Id: <20250805064430.782201-8-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> References: <20250805064430.782201-1-jorge.ramirez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: qeWetI-RkA9dKzvnDH6yUuuZ6NqtlncO X-Authority-Analysis: v=2.4 cv=VZT3PEp9 c=1 sm=1 tr=0 ts=6891a860 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=Qms5JgQ9tnEuTiNUcoUA:9 a=1HOtulTD9v-eNWfpl4qZ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDA0NiBTYWx0ZWRfX/eJeT+SvdoGJ 6sXVWPTtL3VRXOsoL17qH08/rKs6llfkwvlPf0vmyhZTvdAGzrwKQ6qzVNfDjuRXQ/hJKDPjgmn f679FyXMV4/hlJuMJzSx6sswAAKKv7ayaRBwtKLmxlCfXQJDAqPVQgG52vdTEhAoWYoS12dw1mF 9Jahhf66VhC+PjnIehDOYkJO5YX16dUKjIQ8Yn02l8lnSyaPvPQ7ZtMehqcjHBoCiVOiLqwNI/8 QkrEENjCo6Ab6HyYUKdBBa4Hp0aSQEPhU1cRS1hKSEtJpov3bilImQlVMXp6m/KHY5VBZzp5sLz cOnaRT1t+lXUgP4eiZcvmT7s7w9qRyqaLlvnPfhXHsKZV7oT49MTfbPqwrrhvb5qTk9O9kbceye qiAcJpd+lhPjhdR3qFkZKQ0GNYRBepvRq58gnhCjVSLJ4nL0pJIQA+fsB545bYIi11eSItWd X-Proofpoint-ORIG-GUID: qeWetI-RkA9dKzvnDH6yUuuZ6NqtlncO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_01,2025-08-04_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxlogscore=637 malwarescore=0 bulkscore=0 phishscore=0 spamscore=0 mlxscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 lowpriorityscore=0 impostorscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2508050046 Content-Type: text/plain; charset="utf-8" Enable Venus on the QRB2210 RB1 development board. Signed-off-by: Jorge Ramirez-Ortiz --- arch/arm64/boot/dts/qcom/qrb2210-rb1.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts b/arch/arm64/boot/dts= /qcom/qrb2210-rb1.dts index b2e0fc5501c1..e92d0d6ad1b8 100644 --- a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts +++ b/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts @@ -698,6 +698,10 @@ &usb_qmpphy_out { remote-endpoint =3D <&pm4125_ss_in>; }; =20 +&venus { + status =3D "okay"; +}; + &wifi { vdd-0.8-cx-mx-supply =3D <&pm4125_l7>; vdd-1.8-xo-supply =3D <&pm4125_l13>; --=20 2.34.1