From nobody Tue Oct 7 16:04:25 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8915C2E7197 for ; Tue, 8 Jul 2025 18:05:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997942; cv=none; b=G9RSDyuwc8YrEh98C4PfI1gnh/bHw4nCXTgVq3mg8M8MvHOsYEGSTdFTZpEO5gaPVmngDP9UV3kKbctX3hZc1O2ND3pEwf99KQiQcPzkVtoodno2c7XHnAZAPj+BllAgfnnNc3heHNYCIJhQ4DtOtiHkkv97gwsyaNxgPFaa6/k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997942; c=relaxed/simple; bh=KM3x/3Pbcpku4hi+Q2J5twTHiiakqH43ags6fQQ9T8I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oOmp7hRYs+h1AFsjOSJv0074+aCeESaG/sUz3iCo3fdtw2y7YnJITfnp4HKKmriVf8Bc7qpQD/TOTAz/Ca6fkd3SAOC9xENYwa/tT50KveOpQ1SDKboweqbyKALx0jfNT6gpUBVESOPTcZwScwvzCBvPFDmpeFo5d6RbuWTxOoY= 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=lBEyeNfb; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="lBEyeNfb" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 568AAX5r029148 for ; Tue, 8 Jul 2025 18:05: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=YGHUolC1rCw c8hxbfX9G9XRUGGS2ug574YwaNTuSfSw=; b=lBEyeNfbCH3TNRG8Djqn6Gkv1Me S2BXdkHLnbm5GxI4jj6BJtKonAkX9Jc69gjwwL47wa8LgRJ1J7eC0RrXzA39wwk7 RaIcoq8TDDhjB8R26RG6EkqsylS0auj38qwpsiTlT4ZJqDVuZImHClHDSbeyiZPV 6IkD70JZknCaC4P79WoJqCWPYR6LbYvvLfeJW+uTmzEwNlgtcjNlj4ZuydiXis8y AnP7cz7X2cGBqHskmjmRkm/AVaHXJRsDMLBUjwMiuAoCBkBP61QhiQBOfM0+GOU8 yRCMjKhR95Wo59mt9t8Apvcn+BMhx5Kn2a6Jn/yGnMI/hxbz3T4ZEwne2cQ== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47pu2b8ydw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 08 Jul 2025 18:05:39 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4a9c8c05971so38876231cf.3 for ; Tue, 08 Jul 2025 11:05:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751997938; x=1752602738; 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=YGHUolC1rCwc8hxbfX9G9XRUGGS2ug574YwaNTuSfSw=; b=UWbiCCAU4fxklLKYK2fUys3w9f915pPhqGbFL4VMfDSlaGy1RVQMgv4YNvd4it7Zf7 pR+6DJlhqY2yM6t+J9kKhHiNTrnjFwV7Ez8AB1eHdQ8WkNPOEGcktF0YLHud4wO+lFXq GuXhfELcHAXv98jgWfkmgfyl/Pek+9SZ21Iup16EhhSQMycQ7kl1uNUaK9OQPgz9uNeS nMdEfvZuwuJEebfO3gQugJ+rRj4o4F8kzA4lSQOM5pf5WZQ8LlNI467dFOdTHowm1WY3 Z1l+pGHaG+onQCnD3oJeusiFYCNlwpgC9NoJ3QNbqEP3NHH2ymdb0EGPw/LdUKCL45o1 qYXw== X-Forwarded-Encrypted: i=1; AJvYcCWpHQ9Y/wweCYuzZmAgf9czHaNEwI7MbQ2/PvlRSFFDzObL/beRZIO8BbKa+zbPov+i6zcozdVGF/1YYBM=@vger.kernel.org X-Gm-Message-State: AOJu0YyPHWhnZ6c6zyz44voVuQosJheNHjrZy93eGVaUbUCUv9ingQId GU6//gGhR10JLFzeShroK71Jz7QJ5arzHjX57UdCOQNp2GxEpuHFyKacwqE6Frd6g+9cPePSmRF ndrShQC577LmqNJH53Lb9cm2VM+lGioGh/FRq/sIQOAQqXcmsXGtG2ECBCGNtJBGZLMU= X-Gm-Gg: ASbGnct/K/RSARLz7fzcIx542foqrMeJ+mI0FSUNYRkftQJLDSOS9tQp0fdtHbxGC+W GmOWoPpyK2c2Xu2laBBGUnnOVH4gTHGXrunbIrr6HrU7IubCV/bbGfu74PDl7FUQHxjJOltCyTB MexfIHKI0Vu416PiLWOEwRZo1tmJQ2VW081WcB/Fh2z8vM/8BFNrp0oS32tDoJI8WSO9BktkJNV TGLJnRTL+qytH8BJxWZRTPB37oiUEIGiXv/HxaCwrqTzB5O5a0M11AdlhwA4B4AqQV5Cpxh0V/8 9YNuBIaNrv8Kb/hTabzbWKyq+IiylNfhLRT/xPLxXhZwlzvTJhkM+s8z85j+U3go0gQhwG0bvQ= = X-Received: by 2002:a05:622a:5b07:b0:4a5:98c2:34b9 with SMTP id d75a77b69052e-4a99879c338mr298268011cf.34.1751997938280; Tue, 08 Jul 2025 11:05:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF29pd8fhzeOYZdlDmtmT9cdQjqO0dtDDRTYDNMsDji0Xsn3tWAX86IjXcZkSCRq2tuR+n0ug== X-Received: by 2002:a05:622a:5b07:b0:4a5:98c2:34b9 with SMTP id d75a77b69052e-4a99879c338mr298267311cf.34.1751997937725; Tue, 08 Jul 2025 11:05:37 -0700 (PDT) Received: from trex.. (97.red-79-144-186.dynamicip.rima-tde.net. [79.144.186.97]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b4708d0a5csm13394906f8f.29.2025.07.08.11.05.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 11:05:37 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, robh@kernel.org, conor+dt@kernel.org, andersson@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 1/7] media: dt-bindings: venus: Add qcm2290 dt schema Date: Tue, 8 Jul 2025 20:05:24 +0200 Message-Id: <20250708180530.1384330-2-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250708180530.1384330-1-jorge.ramirez@oss.qualcomm.com> References: <20250708180530.1384330-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-Spam-Details-Enc: AW1haW4tMjUwNzA4MDE1MSBTYWx0ZWRfX82Ay2VGoRRQT EK6JlCiRy1jEBtr8bwiqCVui2W8oKU0lb43uNNGxL69hL1gljpik9+8hofdpf+R7wK3GLhhCDb5 ++3MbncZZh6geGuNPeP14BbWq+QbsHS3AhQTUfff18Pgo0bpS1hlyr1B5yrkDFZEQ1HWf2SlAGr Xoc9Qt1LyauPICdZd1mZcnVq1B3y2Xl5MSBGtANgk27gSZZBdfAv1GXHC/CT8s2orMLzArH63sS K1eY1HBWTkZse6DPSJB/T3PY4rdB8Pq7+qpLyFuyK76XaZv+anRtF8QqtywtnmlJvfwUPbH//rJ Xoa2Wz9RzG1g2zpyh2A+C7DwOjXNRhek9Sk8HnanB1/W2Ec9twb4rFJI0HKlko/m5Wz/wK0ccM3 d65Ek/zapCrLSshWJWRdm0YZebUQm0/s5vmdP6xYsTzudwSZk3CfkpSfVvcMHQ3pq3+flun6 X-Proofpoint-ORIG-GUID: bpUTVlIP72gZ2eBZSwtmCEoB8jx7eejr X-Proofpoint-GUID: bpUTVlIP72gZ2eBZSwtmCEoB8jx7eejr X-Authority-Analysis: v=2.4 cv=erTfzppX c=1 sm=1 tr=0 ts=686d5df3 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=oX6B8lV6/A+qF9mARCc04Q==:17 a=Wb1JkmetP80A:10 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=COk6AnOGAAAA:8 a=1mX_ai67dwKzVtmm1w4A:9 a=a_PwQJl-kcHnX1M80qC6:22 a=sptkURWiP4Gy88Gu7hUp:22 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-08_05,2025-07-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 impostorscore=0 spamscore=0 priorityscore=1501 mlxlogscore=999 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507080151 Content-Type: text/plain; charset="utf-8" Add a schema for the venus video encoder/decoder on the qcm2290. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Krzysztof Kozlowski Reviewed-by: Bryan O'Donoghue --- .../bindings/media/qcom,qcm2290-venus.yaml | 127 ++++++++++++++++++ 1 file changed, 127 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..0371f8dd91a3 --- /dev/null +++ b/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml @@ -0,0 +1,127 @@ +# 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: + - Vikash Garodia + +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: + minItems: 1 + 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 Tue Oct 7 16:04:25 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 287BE2E7645 for ; Tue, 8 Jul 2025 18:05:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997944; cv=none; b=iDvtmOuSLGE5YKfwYEVymWnDSEnqRQEpgFQgjtj392V45JCI8MmaRZzGgcSrwIA3WM9E78MA1YrCyjNduWCljSN7VnyM86xvRykC+rD71oIbUCWXPLarY1WQBYYtXH1zFOTM42crFxpcVJ06wtH1LzM5ybxfHz9p9oeS8YQhB/o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997944; c=relaxed/simple; bh=t50FJzQhmteE/WPApUDxTzLg7TLzhqKkrodxrQ/hniQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=KPSPiaUOvpjurIZPxUoNaeL5cXyADXj9f+BbpPiTSeWDhXTPSFT53dryZytrOI2NmsE4diNHSeijn3HSVS+6eD/efXcP4Jjn7tiTjmx6w5A+q4GFWZVqmN4Q+THkgXGd9mQSE0Q+LxzJ3Sb8v4DAJwe4p77G09tBQkJCXEwzt70= 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=Bjm8yW79; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Bjm8yW79" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 568AAJmR008388 for ; Tue, 8 Jul 2025 18:05:41 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=XRXx4PrIhdu ugCmIWoy/9iY9WF80V7JusJT0oVTYWXw=; b=Bjm8yW79n9Z3AJTXHNFses7qJJ0 1eqmFngPqiGhyv14oLbIYXDWKV2TB3jZBOmVCeH/2HqmeDJ0ERLvEGT8+CqDxGx6 u6MiHL86xs9wAnhiw68RiUk04twLzF/cFGiudGddTN6uiAw2rxcIM6+a/LXQv/4h tZMU9NxGMUnwGDaHpm3YCHAh7pA56Eubd18ejiuU0m5F10yVGFzhu7kvWZLP/FUI E2EG46fREIP2QOQhYfzw/NzwBmHNdx08rEXMGUcsvYNAY3W9tIBQBzcSj3xDhNmw GjNwJCpaw5h63fydCYnyzT5xqCScwIolR527/K6OV09Q0M6GE6zkB+yL1FQ== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47pucn152c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 08 Jul 2025 18:05:40 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4a57fea76beso100757491cf.0 for ; Tue, 08 Jul 2025 11:05:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751997940; x=1752602740; 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=XRXx4PrIhduugCmIWoy/9iY9WF80V7JusJT0oVTYWXw=; b=ARQyTyoEeR+1UXAlznngULofJobV+2B1P5wunx/K9o1xAVxotj5Dhmhadi+DqbyDSV T8XE/mJ3nwvTzaIzj0eP2wYsx/q2h3h/X7G+YE1BCZgPijm7qejXEyzQUyonA9Qwa8dk Sf1nUiOBp866TgxY02D40PYroEIpnvkbWbndCG348yeJ8/vr1CAdJWdPgVb0f8TC07gA RtsVQrtQb5zV8ILNCkLgdnns7jPQbNIQA/tCbXMSeV2XlQ67IDoKDopgYzM3dUdE6Ado p7j6XmRVVyxyAsJlfJ+6t2BmzyBdbMEPND4/ToZGkGk04iTdQWtffBYVaTgw06JIWPOe 4+Kg== X-Forwarded-Encrypted: i=1; AJvYcCXV66JFcxNbXJsYaGyNx8kw7j0UyOCts2lM16s7Rd/68JgTjJ1tvS8CYueYRsggVZV3t0K9aU8f5T4SKRo=@vger.kernel.org X-Gm-Message-State: AOJu0Yzx35m/1W907xQR2AlvVQN6JPLe4dbZzySDn1sWpVrOQDk61+6x r5MP9pZmbaGcpBGR6u8Owdg5g/tiplx0eNVRIGh0eWxYkSZFF1RIGxjkhJPCNUKlU3YYUiEjzjj g4fQn1+yjdRQt42CWZGReJlsTalf11Epvy0Xz3mjP+UMOITUxJZgoIw4+T2ZenhTPTlI= X-Gm-Gg: ASbGncu2xlY9m4rFiioM1myfTfOt88N9CHutbtFCEbVnKIcV2ig7Nei8pW8nGfUBdAE 9xiaOmsUDaLEysStKde/JY/oN1awS8YV2eShG56ey2jMZsC49WcwSqn7JsIix3x/sEvhsaafyP0 sx8xhoLhYtIeKxPBArN3UzAH15Xs6nPomZgQuRFXMt2IqhpinROnOWRibcpX5mOmXSP2vn5sKlu AII7kUeVUhAi6Q0VkXnRFgP7pgYDBM961jAd6rvRNx/jb5YB9VjVxbFBGIq4vOCjewIamme5VbJ jgmOZ65tQz2PpbcBQQojJ6E3zUmSgTVJyVqAY3JcgaKA1UCvp7NSgYMIrsmX/LrshI7gqQ544g= = X-Received: by 2002:a05:622a:1a04:b0:494:b3eb:a4b9 with SMTP id d75a77b69052e-4a9dbaa6a28mr6768491cf.51.1751997939859; Tue, 08 Jul 2025 11:05:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHayMJTBouvuIAfJIuce1b3nxsNzsgX73YAfdaekhFto6m7zDySxovSAtcJRgOnV+0y7Xcuaw== X-Received: by 2002:a05:622a:1a04:b0:494:b3eb:a4b9 with SMTP id d75a77b69052e-4a9dbaa6a28mr6767901cf.51.1751997939174; Tue, 08 Jul 2025 11:05:39 -0700 (PDT) Received: from trex.. (97.red-79-144-186.dynamicip.rima-tde.net. [79.144.186.97]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b4708d0a5csm13394906f8f.29.2025.07.08.11.05.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 11:05:38 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, robh@kernel.org, conor+dt@kernel.org, andersson@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 2/7] media: venus: Conditionally register codec nodes based on firmware version Date: Tue, 8 Jul 2025 20:05:25 +0200 Message-Id: <20250708180530.1384330-3-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250708180530.1384330-1-jorge.ramirez@oss.qualcomm.com> References: <20250708180530.1384330-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=GdQXnRXL c=1 sm=1 tr=0 ts=686d5df4 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=oX6B8lV6/A+qF9mARCc04Q==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=b6RcsaAH2Bz4aJime2YA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: jRj68X2ksgVbHhOd1K-RzXoad92d_TvW X-Proofpoint-ORIG-GUID: jRj68X2ksgVbHhOd1K-RzXoad92d_TvW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA4MDE1MSBTYWx0ZWRfX4NUcFdGdypVY /RjzrnkMWnYToBof7LNhLq09ALTHCPHV7krIGHmXs8+jUjYW8qSfRJFegRz+JWvhaOISfW5JQFQ QCP9G8apxCpg7Kp/wnsp/zUw/kf1oRGdjVlsDJ2jtQtlUB0xPK6qW9hJ4HZx+MPVnBs+O20ZxCK zr5tcWaWESiRHGcm1wBjqaD+TGQT1CIygSu7cCfShmzS1FPY8cd4VEnBtfeVkNPTyHgSKkKnvRy Jq3KI7FIFXJwyeQ9EM/p6+41Bc7pTq7y5B1F3nXsNSbovcHa6q86QTq2rflnc7E+mcRYCFifOvj XPGifH9HRgSIjJrBMw5m29S9j1aGOMVEGO8Wo/RJ0mZLeTT9mrbPudRHgtEC+quERNHd+mBZab7 hlF4E1V64ddvAYD4C32+MsvWN6Q0HQ5cVEMoL4X6XLy06IHwT5rQNz9bGjHygfX4l5lfkDy9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-08_05,2025-07-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 adultscore=0 bulkscore=0 clxscore=1015 spamscore=0 suspectscore=0 mlxlogscore=999 priorityscore=1501 impostorscore=0 malwarescore=0 mlxscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507080151 Content-Type: text/plain; charset="utf-8" The encoding and decoding capabilities of a VPU can vary depending on the firmware version in use. This commit adds support for platforms with OF_DYNAMIC enabled to conditionally skip the creation of codec device nodes at runtime if the loaded firmware does not support the corresponding functionality. Note that the driver becomes aware of the firmware version only after the HFI layer has been initialized. Signed-off-by: Jorge Ramirez-Ortiz --- drivers/media/platform/qcom/venus/core.c | 72 +++++++++++++++--------- drivers/media/platform/qcom/venus/core.h | 8 +++ 2 files changed, 54 insertions(+), 26 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 4c049c694d9c..9744c18af54d 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -28,6 +28,15 @@ #include "pm_helpers.h" #include "hfi_venus_io.h" =20 +static inline bool venus_fw_supports_codec(struct venus_core *core, + const struct venus_min_fw *ver) +{ + if (!ver) + return true; + + return is_fw_rev_or_newer(core, ver->major, ver->minor, ver->rev); +} + static void venus_coredump(struct venus_core *core) { struct device *dev; @@ -202,7 +211,8 @@ static u32 to_v4l2_codec_type(u32 codec) } } =20 -static int venus_enumerate_codecs(struct venus_core *core, u32 type) +static int venus_enumerate_codecs(struct venus_core *core, u32 type, + const struct venus_min_fw *ver) { const struct hfi_inst_ops dummy_ops =3D {}; struct venus_inst *inst; @@ -213,6 +223,9 @@ static int venus_enumerate_codecs(struct venus_core *co= re, u32 type) if (core->res->hfi_version !=3D HFI_VERSION_1XX) return 0; =20 + if (venus_fw_supports_codec(core, ver) =3D=3D false) + return 0; + inst =3D kzalloc(sizeof(*inst), GFP_KERNEL); if (!inst) return -ENOMEM; @@ -288,14 +301,14 @@ static irqreturn_t venus_isr_thread(int irq, void *de= v_id) =20 #if defined(CONFIG_OF_DYNAMIC) static int venus_add_video_core(struct venus_core *core, const char *node_= name, - const char *compat) + const char *compat, const struct venus_min_fw *ver) { struct of_changeset *ocs =3D core->ocs; struct device *dev =3D core->dev; struct device_node *np, *enp; int ret; =20 - if (!node_name) + if (!node_name || venus_fw_supports_codec(core, ver) =3D=3D false) return 0; =20 enp =3D of_find_node_by_name(dev->of_node, node_name); @@ -330,11 +343,13 @@ static int venus_add_dynamic_nodes(struct venus_core = *core) =20 of_changeset_init(core->ocs); =20 - ret =3D venus_add_video_core(core, core->res->dec_nodename, "venus-decode= r"); + ret =3D venus_add_video_core(core, core->res->dec_nodename, "venus-decode= r", + core->res->dec_minfw); if (ret) goto err; =20 - ret =3D venus_add_video_core(core, core->res->enc_nodename, "venus-encode= r"); + ret =3D venus_add_video_core(core, core->res->enc_nodename, "venus-encode= r", + core->res->enc_minfw); if (ret) goto err; =20 @@ -363,6 +378,9 @@ static void venus_remove_dynamic_nodes(struct venus_cor= e *core) #else static int venus_add_dynamic_nodes(struct venus_core *core) { + WARN_ONCE(core->res->enc_minfw || core->res->dec_minfw, + "Feature not supported"); + return 0; } =20 @@ -432,7 +450,7 @@ static int venus_probe(struct platform_device *pdev) IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "venus", core); if (ret) - goto err_core_put; + goto err_hfi_destroy; =20 venus_assign_register_offsets(core); =20 @@ -448,19 +466,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 +482,46 @@ 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); + 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_core_deinit; + goto err_remove_dynamic_nodes; + + ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_DEC, + core->res->dec_minfw); + if (ret) + goto err_of_depopulate; =20 - ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_ENC); + ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_ENC, + core->res->enc_minfw); 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..3af8386b78be 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -50,6 +50,12 @@ struct bw_tbl { u32 peak_10bit; }; =20 +struct venus_min_fw { + u32 major; + u32 minor; + u32 rev; +}; + enum vpu_version { VPU_VERSION_AR50, VPU_VERSION_AR50_LITE, @@ -92,6 +98,8 @@ struct venus_resources { u32 cp_nonpixel_start; u32 cp_nonpixel_size; const char *fwname; + const struct venus_min_fw *enc_minfw; + const struct venus_min_fw *dec_minfw; const char *enc_nodename; const char *dec_nodename; }; --=20 2.34.1 From nobody Tue Oct 7 16:04:25 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5BEAB2E7F35 for ; Tue, 8 Jul 2025 18:05:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997947; cv=none; b=i7u36JX8POBRcCUBjQzKojPqCodODbDVAtH+Mgx8aC2TQppzD6ZIOInj0uLgltTpJ/p7QZrIfBjs/4SUBh/8xH2THQHC1r0q57lz1rnJgqRMwGNEHCqT61uEG0onzr6Xv+VQ+JC0uWwsDEIi4NuFHlnACIWK2uajkEvHebsQfgg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997947; c=relaxed/simple; bh=BO90yzxfP403hP5ouUipoHBxC66SfawciWFdOF8axwk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iDVO5Fc6UMQerXRdLEzEdB5fbfrzMqQGX47IBKDkT2sffgctdGR2d+6R5yhJhglTZvriQot87sHtn767bfnM31yBt0XJIxSBznPAe2IJAF76tzUgXJdaM8ZXn7nD4U+iMz9BlWF4N4aWfHcsqXTUtMbG8Quvn08AcWVCtU/uZtE= 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=dRzt651X; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="dRzt651X" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 568I5bGc026767 for ; Tue, 8 Jul 2025 18:05:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=stybYAOgo4V ps5G5i9K8PSCds6Se8fPegP612nWRBUc=; b=dRzt651Xp6nEQ8VCI2ia1F0azi+ XU38pHABYUpXH2K74DfChxpb/yFSiNimrfuVt6LSUmuoF0nfEkut6R3K4wzW/wGU L4GG/0S4eaqWTwgisBKGYE/AVxjeO0yKPbMjiqb7danq4gzk+/+ecKSsZDQ+PU2W VkEaxp90UMMlICaeLYLSBw4yqM+B/JDJVRyd8AOiYDtuc2VnIXHrcIhEs9AsgTx8 Zc/BLt2UY9vlygfAAjVI0p2GNOnTksBjjMRwfa6KVxnxKnVaSVj+wbf2G+L0PKBx u7r9sYXVBRGzLAa9I77QB4eibOXfKGnVEpvGKPh5CQxSdF4iFD10D4Nnuug== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47psdr1abk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 08 Jul 2025 18:05:43 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4a98d1ed40aso104762881cf.1 for ; Tue, 08 Jul 2025 11:05:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751997942; x=1752602742; 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=stybYAOgo4Vps5G5i9K8PSCds6Se8fPegP612nWRBUc=; b=jNjfSDPdv5kSzmfVyJOceR0Q75CSFcX+yoWzvgaKhKRaNfe8nHLOtGAPjOK8Q/rwBv f/vish91MssmJjgXPpKInJJn6GIBi+gEHLZdewSccQVHTLyhuRx6j5HWsvdNE5y2RmLm X+MvjfouMiZoCvfuw3nMkSVO/GS6+W87cTrAnf+pdaCNQdDZ6Xa40UmeNn9UNcl/HgPp I8Uu6aFDXPXub8nHi47UPlkuqrfW46J2gGUpYFaUeDKWi9IiyyDDo85WKS6gAKkf2vTs 1lYgPqx8ciXMb/VfVAXJE2edSEfCvP0at50OYR5bvkYjlZTMyJb8J8PGvxI4olIhNdkY mDtw== X-Forwarded-Encrypted: i=1; AJvYcCVzTjP7J6tdxdrTqowZ3Z15SJpY6X9H/THZo8nnQikZSTNIRfPYFCDZ012BMFcikVnlnRVfAssuHvmm7dY=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+leLY51NdIXo6jymyDKX5ABgppqFtEuuY8VnqthRDoz1Ig9Ul Aodp2G7gFaQ0RO2Nm3PvRAe66HHgiwymJ8O9vej8iueIqCnu52sJUsUMpvVoq+3EQmjACiABerT mSvFnGPDp4HSHb4t3xfaUHPdKW7mX8nXl19Yf7wTXeNPIeD9cDz45oh+gO1T4hAMZePc= X-Gm-Gg: ASbGnct1b2aqJWuUspDj82Q/05NIzuq2dNcxoCioEYtGaFO02MKCpTVwRc3eDYYKjs8 RbgNqxny9C+XW98Rm8k+vXFJSWBy5czdpmEiD+CKw6v+gyySIj4Jm7n/rGKpcb1Y+3/5cE0ZJ6J axluKTzrRfZR4Sf+m9kTpeWty0G/odqAJmjfw+y2nkB5tw4psBWRJwEQGwsCUwilvp5Mzz3ljDg 6E4GaXkxyj3QJxfyCU/vHkcbns4OMI002RibFrqNA+FhwvBBwI/ht8Q0+ZaM2X1COx//WUWo4wv 4vHZnqEfsU/B+yXGo90e8BPw8QFpMk+dp7HPF33lHM2JJZ4/q94P2xXbL1FAk6ZAbrGeVFK6IQ= = X-Received: by 2002:ac8:5981:0:b0:4a9:a2cb:ebd with SMTP id d75a77b69052e-4a9dba57b20mr8798961cf.39.1751997941886; Tue, 08 Jul 2025 11:05:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGvqOmiL29sKf3KrbB/RR/D/PrBFnNAfX6QUEcMbcGGO6bJqIcB4MW2xLDnDCxS3yP/y0jD0w== X-Received: by 2002:ac8:5981:0:b0:4a9:a2cb:ebd with SMTP id d75a77b69052e-4a9dba57b20mr8797701cf.39.1751997940691; Tue, 08 Jul 2025 11:05:40 -0700 (PDT) Received: from trex.. (97.red-79-144-186.dynamicip.rima-tde.net. [79.144.186.97]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b4708d0a5csm13394906f8f.29.2025.07.08.11.05.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 11:05:40 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, robh@kernel.org, conor+dt@kernel.org, andersson@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 3/7] media: venus: Add support for AR50_LITE video core Date: Tue, 8 Jul 2025 20:05:26 +0200 Message-Id: <20250708180530.1384330-4-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250708180530.1384330-1-jorge.ramirez@oss.qualcomm.com> References: <20250708180530.1384330-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=ffSty1QF c=1 sm=1 tr=0 ts=686d5df7 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=oX6B8lV6/A+qF9mARCc04Q==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=552eaAW-7UeJpe5CNAoA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-ORIG-GUID: Y9o-jIeN0TYzOJGJOTS77hEiOCSNJok- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA4MDE1MSBTYWx0ZWRfX74yhoHs+0utv S3C+fVNjsOg2YenPPXgzkvyZQqTRuwbxg7R+7yaFYPqIc9RFuczHLIA23fZyGFZw4XOHExn1PQD +WW0ZXmjMswZe82ePisee0zlSykhsDmlFG2iMGEcK1OLTqq3lxZDT9D0+ECkaH4s0vv31KlnemQ Qkce5FEl/GqBZFzWWBqGI/Qz/B8TyLJZzzNZkQwjA5v4Z6A9Sx494XPjMhEVrltXm70zExbRKP8 1EhrO0fY4OgEOHtE1S65CyH76vI6WRlktrij/1hfDyHV1D4azOG/RITdshePKx/nQD4zkSbMLKu SBeJ1+XYuwFogdPg+xxcHD7Tfc9BIIqVx8iS26tCLy7KHkY0O+MxuwVjlYQ1cN390d4EGCI7V21 G7b+LG2Qc6pwNe4vdZTjLBQavVKI9YmHf/h+qZWSm1r7vZ2JnmO/bYvTVcxBSLUU9zCd1ubl X-Proofpoint-GUID: Y9o-jIeN0TYzOJGJOTS77hEiOCSNJok- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-08_05,2025-07-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 mlxlogscore=999 mlxscore=0 bulkscore=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 spamscore=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-2507080151 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 | 11 ++- drivers/media/platform/qcom/venus/core.h | 7 ++ drivers/media/platform/qcom/venus/firmware.c | 6 +- drivers/media/platform/qcom/venus/helpers.c | 87 ++++++++++++++++++- drivers/media/platform/qcom/venus/helpers.h | 2 + .../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 | 33 ++++--- .../platform/qcom/venus/hfi_platform_v6.c | 32 +++++-- drivers/media/platform/qcom/venus/hfi_venus.c | 16 ++-- .../media/platform/qcom/venus/pm_helpers.c | 2 +- drivers/media/platform/qcom/venus/vdec.c | 16 ++-- 13 files changed, 196 insertions(+), 66 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 9744c18af54d..a4472cc2088b 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -267,14 +267,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; diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index 3af8386b78be..3b55365a942c 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -392,6 +392,7 @@ enum venus_inst_modes { * @lock: instance lock * @core: a reference to the core struct * @clk_data: clock data per core ID + * @eosbufs: a list of EOS buffers * @dpbbufs: a list of decoded picture buffers * @internalbufs: a list of internal bufferes * @registeredbufs: a list of registered capture bufferes @@ -460,6 +461,7 @@ struct venus_inst { struct mutex lock; struct venus_core *core; struct clock_data clk_data; + struct list_head eosbufs; struct list_head dpbbufs; struct list_head internalbufs; struct list_head registeredbufs; @@ -538,6 +540,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 66a18830e66d..00b13b203ed1 100644 --- a/drivers/media/platform/qcom/venus/firmware.c +++ b/drivers/media/platform/qcom/venus/firmware.c @@ -30,7 +30,7 @@ static void venus_reset_cpu(struct venus_core *core) u32 fw_size =3D core->fw.mapped_mem_size; void __iomem *wrapper_base; =20 - if (IS_IRIS2_1(core)) + if (IS_IRIS2_1(core) || IS_AR50_LITE(core)) wrapper_base =3D core->wrapper_tz_base; else wrapper_base =3D core->wrapper_base; @@ -42,7 +42,7 @@ static void venus_reset_cpu(struct venus_core *core) writel(fw_size, wrapper_base + WRAPPER_NONPIX_START_ADDR); writel(fw_size, wrapper_base + WRAPPER_NONPIX_END_ADDR); =20 - if (IS_IRIS2_1(core)) { + if (IS_IRIS2_1(core) || IS_AR50_LITE(core)) { /* Bring XTSS out of reset */ writel(0, wrapper_base + WRAPPER_TZ_XTSS_SW_RESET); } else { @@ -68,7 +68,7 @@ int venus_set_hw_state(struct venus_core *core, bool resu= me) if (resume) { venus_reset_cpu(core); } else { - if (IS_IRIS2_1(core)) + if (IS_IRIS2_1(core) || IS_AR50_LITE(core)) writel(WRAPPER_XTSS_SW_RESET_BIT, core->wrapper_tz_base + WRAPPER_TZ_XTSS_SW_RESET); else diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/pl= atform/qcom/venus/helpers.c index 8295542e1a7c..aa61396e763e 100644 --- a/drivers/media/platform/qcom/venus/helpers.c +++ b/drivers/media/platform/qcom/venus/helpers.c @@ -230,6 +230,81 @@ int venus_helper_alloc_dpb_bufs(struct venus_inst *ins= t) } EXPORT_SYMBOL_GPL(venus_helper_alloc_dpb_bufs); =20 +static void free_eos_buf(struct venus_inst *inst, struct intbuf *buf) +{ + list_del_init(&buf->list); + dma_free_attrs(inst->core->dev, buf->size, buf->va, buf->da, + buf->attrs); + kfree(buf); +} + +int venus_helper_free_eos_bufs(struct venus_inst *inst) +{ + struct intbuf *buf, *n; + + list_for_each_entry_safe(buf, n, &inst->eosbufs, list) { + free_eos_buf(inst, buf); + } + + if (list_empty(&inst->eosbufs)) + INIT_LIST_HEAD(&inst->eosbufs); + + return 0; +} +EXPORT_SYMBOL_GPL(venus_helper_free_eos_bufs); + +int venus_helper_alloc_eos_buf(struct venus_inst *inst, + struct hfi_frame_data *data) +{ + struct venus_core *core =3D inst->core; + struct device *dev =3D core->dev; + struct intbuf *buf; + int ret =3D 0; + + memset(data, 0, sizeof(*data)); + + data->buffer_type =3D HFI_BUFFER_INPUT; + data->flags =3D HFI_BUFFERFLAG_EOS; + + if (IS_V6(inst->core) && is_fw_rev_or_older(inst->core, 1, 0, 87)) { + data->device_addr =3D 0; + return 0; + } + + if (IS_V4(inst->core) && is_lite(core)) { + /* We must send valid sizes and addresses */ + buf =3D kzalloc(sizeof(*buf), GFP_KERNEL); + if (!buf) { + ret =3D -ENOMEM; + goto fail; + } + + buf->type =3D HFI_BUFFER_INPUT; + buf->size =3D SZ_4K; + buf->attrs =3D DMA_ATTR_NO_KERNEL_MAPPING; + buf->va =3D dma_alloc_attrs(dev, buf->size, &buf->da, GFP_KERNEL, + buf->attrs); + if (!buf->va) { + ret =3D -ENOMEM; + goto fail; + } + + list_add_tail(&buf->list, &inst->eosbufs); + + data->alloc_len =3D buf->size; + data->device_addr =3D buf->da; + + } else { + data->device_addr =3D 0xdeadb000; + } + + return 0; +fail: + kfree(buf); + return ret; +} +EXPORT_SYMBOL_GPL(venus_helper_alloc_eos_buf); + static int intbufs_set_buffer(struct venus_inst *inst, u32 type) { struct venus_core *core =3D inst->core; @@ -1715,11 +1790,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/helpers.h b/drivers/media/pl= atform/qcom/venus/helpers.h index 358e4f39c9c0..bf55fe3b8747 100644 --- a/drivers/media/platform/qcom/venus/helpers.h +++ b/drivers/media/platform/qcom/venus/helpers.h @@ -58,6 +58,8 @@ int venus_helper_get_out_fmts(struct venus_inst *inst, u3= 2 fmt, u32 *out_fmt, bool venus_helper_check_format(struct venus_inst *inst, u32 v4l2_pixfmt); int venus_helper_alloc_dpb_bufs(struct venus_inst *inst); int venus_helper_free_dpb_bufs(struct venus_inst *inst); +int venus_helper_alloc_eos_buf(struct venus_inst *inst, struct hfi_frame_d= ata *data); +int venus_helper_free_eos_bufs(struct venus_inst *inst); int venus_helper_intbufs_alloc(struct venus_inst *inst); int venus_helper_intbufs_free(struct venus_inst *inst); int venus_helper_intbufs_realloc(struct venus_inst *inst); 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..c8e0f8040649 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,11 +278,13 @@ 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; + const struct hfi_platform_codec_freq_data *data =3D codec_freq_data; + + WARN_ON(lite); =20 for (i =3D 0; i < data_size; i++) { if (data[i].pixfmt =3D=3D pixfmt && data[i].session_type =3D=3D session_= type) { @@ -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..4ee35049e797 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,7 +501,7 @@ static int venus_boot_core(struct venus_hfi_device *hde= v) 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); } @@ -569,6 +569,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 +1141,8 @@ 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_IRIS2(core) || IS_IRIS2_1(core) || IS_AR50_LITE(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 +1154,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 +1539,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 +1559,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/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; diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platf= orm/qcom/venus/vdec.c index 29b0d6a5303d..77ebb6bf1ca0 100644 --- a/drivers/media/platform/qcom/venus/vdec.c +++ b/drivers/media/platform/qcom/venus/vdec.c @@ -548,7 +548,7 @@ vdec_decoder_cmd(struct file *file, void *fh, struct v4= l2_decoder_cmd *cmd) { struct venus_inst *inst =3D to_inst(file); struct vb2_queue *dst_vq; - struct hfi_frame_data fdata =3D {0}; + struct hfi_frame_data fdata; int ret; =20 ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, fh, cmd); @@ -559,18 +559,15 @@ vdec_decoder_cmd(struct file *file, void *fh, struct = v4l2_decoder_cmd *cmd) =20 if (cmd->cmd =3D=3D V4L2_DEC_CMD_STOP) { /* - * Implement V4L2_DEC_CMD_STOP by enqueue an empty buffer on + * Implement V4L2_DEC_CMD_STOP by enqueue a buffer on * decoder input to signal EOS. */ if (!(inst->streamon_out && inst->streamon_cap)) goto unlock; =20 - fdata.buffer_type =3D HFI_BUFFER_INPUT; - fdata.flags |=3D HFI_BUFFERFLAG_EOS; - if (IS_V6(inst->core) && is_fw_rev_or_older(inst->core, 1, 0, 87)) - fdata.device_addr =3D 0; - else - fdata.device_addr =3D 0xdeadb000; + ret =3D venus_helper_alloc_eos_buf(inst, &fdata); + if (ret) + goto unlock; =20 ret =3D hfi_session_process_buf(inst, &fdata); =20 @@ -1205,7 +1202,6 @@ static int vdec_start_streaming(struct vb2_queue *q, = unsigned int count) =20 mutex_unlock(&inst->lock); return 0; - put_power: vdec_pm_put(inst, false); error: @@ -1330,6 +1326,7 @@ static void vdec_session_release(struct venus_inst *i= nst) hfi_session_abort(inst); =20 venus_helper_free_dpb_bufs(inst); + venus_helper_free_eos_bufs(inst); venus_pm_load_scale(inst); INIT_LIST_HEAD(&inst->registeredbufs); mutex_unlock(&inst->lock); @@ -1680,6 +1677,7 @@ static int vdec_open(struct file *file) if (!inst) return -ENOMEM; =20 + INIT_LIST_HEAD(&inst->eosbufs); INIT_LIST_HEAD(&inst->dpbbufs); INIT_LIST_HEAD(&inst->registeredbufs); INIT_LIST_HEAD(&inst->internalbufs); --=20 2.34.1 From nobody Tue Oct 7 16:04:26 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 283142E889F for ; Tue, 8 Jul 2025 18:05:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997947; cv=none; b=b1hcQoBn/+1o8SvorrKZK4f3+71BkrbMDLl9mrMm7FwreMc9cxFJmi+9hmrLj65DNlBEzGs78u4PXvZ0g0GKy0WZFuro5bzx9abSiZfvoJ0FGJMPgrA5Se5gtqhwvDWYgh6We6yE7oR9ZY5Eqm7fj/DlQBmgeoGY+pEe2H873FU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997947; c=relaxed/simple; bh=RPrPvvEpNn/ARuaVNHd+GcE7NgZFHqSh8tBOt5Jynz4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aJTl8DjN/oX5OjsyLLwZj+M0Cu49zTI4FFKBygvxgqcdIXd6vMkvKQPBq+6B6YPUCSfxHVrbdQ8w0PvpnNFWoMzwwxh5w+1sDFAFQrrwEhkxyRSs/6CWVLbo0lYQG1FMJ9vV2/aZORKCtpsvyE2MM9ud9oeydI3pDwbDNe2fJFc= 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=VAJ8n/Pe; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="VAJ8n/Pe" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 568AAOGq003433 for ; Tue, 8 Jul 2025 18:05: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=r2hsmPxmoR8 OiP5n8eICcy6+qgLvWLU8g7rv3qplVvA=; b=VAJ8n/PebHUOICgWaqXYRy1FrgO IifyNrEzjnMEJvLZsGp8doM4P5JjV2sMs2NDpLlnKR8TgPg5T9Xh/hFAZhOD6QTl qAtkRjfh2N+bGa57TUFJpzg0DcfCJHjqPLMwL6+s8Aks3Sl5NrGDCzWb3TYX23oM m9tJVkRW2Un5LiR7GATqAhaOIusPHRzqQw4ETwV3ta1cxmnMRGIvHrm33yEScAR6 +Mp75q2SHFzZAJLlp4tYQrGD/WQEkjHr9NWLsp4PeElf6dk80R1eEstGXO9kXFnF 4jx11rm5WlWDXq9e4QMbQymhcFJu0G3NrS0moYpZFh3Pdm8OVDz3yN5Etfw== 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 47pvefh2ad-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 08 Jul 2025 18:05:43 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4a7bba869dbso109386521cf.1 for ; Tue, 08 Jul 2025 11:05:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751997943; x=1752602743; 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=r2hsmPxmoR8OiP5n8eICcy6+qgLvWLU8g7rv3qplVvA=; b=CzmQgKUzickRNNQ+SLmcHDrmstcaHh4/L6u3alfXeB/ckyFzXLpj65CUuGpMHwBoZS TwDTfrdOoyFsRBRRcl/0L7TZLir1R5UBs/X32C+YsjRC0bHL1iYYuiSiUC1sHO8hCZsJ 2635PXPpkvtHmlMTwHOjoZ1xx/TUTS+8SDHz84oqgRrk74U3Wr96Jn67cKglMMKsHesi BySOF/tD3rAJvVPmXh0M/HkLh4ah1v604z479xkZpOJBTd56usRKEWqGeWq2DburCklC dKwDMQePM4+N54DPNz7kBmPl/h3gxtsFdG3p7VnKeEZCTxfKOYPqEegdCLpf4e8+6V3m bTAA== X-Forwarded-Encrypted: i=1; AJvYcCVTHZWLZ9yJNv0sNzJVwxfqW/40zRfA4/TTUphImv7CkI6RBqqsAeuxNg4sz81LiEST1hjR/AyB0Z50EFY=@vger.kernel.org X-Gm-Message-State: AOJu0Ywcj9XGYIkQbHldK13+JB4QpdfunfmjYVIu35CFW+yeYVNy3lEY l1PwnX/ZHii9eo3GMH+cDqNvvRU2S65+723Z+CM1WH6LspoeDqa/cIOwrTGtar3mpzm6Ap7yVqu NZy8ovZ2nnhZO/lCD+8QJTetBGWbbYHQjoQGi4aH72P/d+8+gXec6InCplBMMC/+d8XU= X-Gm-Gg: ASbGncsgfoUemeeEOVUabNPBeXA7IL5hr/fTYVrvTSrObtQGKGo/7azWN50vBX9oaMD IUg+vJ/lHxiIj0R2K9f3k7v74hgK1gmhIH9HUC9W11VtU0V9KGbdQ9X+4a7CZNf1BE28YWdW6xY s2e1cKRyVwWy6Nms0yqH8XQgAWWHP8n1bIJtsBEuQvsgzQYxh/7E+9Qne3Zs0FXOgBRnMU0h5ZJ 7wv720xeBrdg2RoCadiOAAM4sCnTkgdlMhrd5/bnoQns6FdEoczqfFkyduzlKeS6gWQH7mdrHer R6cYPOuJSeDYVDXivmnuB8yaJozP6cRHIBDtl0qkU9vpyXGvTW4xU9aNqYsUbwPAM+5E4uuW+A= = X-Received: by 2002:a05:622a:134a:b0:4a6:f9e1:a84d with SMTP id d75a77b69052e-4a996441f05mr309754671cf.4.1751997942899; Tue, 08 Jul 2025 11:05:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGv0wlk9nG2jOvTn6rDn/l/iOokos6fbGBQdNtNJ3P5l1AaP2KORuCAmzTIijEe2L0D1zba5w== X-Received: by 2002:a05:622a:134a:b0:4a6:f9e1:a84d with SMTP id d75a77b69052e-4a996441f05mr309753541cf.4.1751997942139; Tue, 08 Jul 2025 11:05:42 -0700 (PDT) Received: from trex.. (97.red-79-144-186.dynamicip.rima-tde.net. [79.144.186.97]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b4708d0a5csm13394906f8f.29.2025.07.08.11.05.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 11:05:41 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, robh@kernel.org, conor+dt@kernel.org, andersson@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 4/7] media: venus: hfi_plat_v4: Add capabilities for the 4XX lite core Date: Tue, 8 Jul 2025 20:05:27 +0200 Message-Id: <20250708180530.1384330-5-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250708180530.1384330-1-jorge.ramirez@oss.qualcomm.com> References: <20250708180530.1384330-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-Spam-Details-Enc: AW1haW4tMjUwNzA4MDE1MSBTYWx0ZWRfX2v8tIvnYk4nR yrhgV51MKLzfQWgHFOXMVEpfFezfzy8XDSK+hhZI26MutewQbRgscITRpl8ns7uFcVp9EZ0darj 7A/2M9pV3qC0zcK2NeeqBohOz2cfeh1tFufArXQqK7HS83vplrEa6QEZAOmDuXGRKqdiDZGiGOY hTOjruN2As3AmFFKnUrniMZ1Zg5BMgPt3LIQaRJW1KJClpoWo4CtgwoCIuo+Ugz3rjYpUQ1EJDr xeOTRoF3cvh3xzD5GR8OLqd7aRrXVgC6CjECXvO8iYPih68PQZpd7zIA6buhODjLeRalvhTDblb hUMEx3nrPwu4ZCVB7dsOl/NRlLfMnWhy8la280uzELJBlfTKoqDgf6IVH2Nu5A3aZm+p+7gl5iG spxXcKm1L2GFhRl7k936ZCOrq5XepLbsk7+CgtLNOm5GOQZBDZZfjlZrPY486j5RrwYFqA5s X-Authority-Analysis: v=2.4 cv=dciA3WXe c=1 sm=1 tr=0 ts=686d5df7 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=oX6B8lV6/A+qF9mARCc04Q==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=5l9M9ejOZEj2P9uvktAA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: WiyCRWtyrO1og5flzjp9qsWFz0jJP5aW X-Proofpoint-ORIG-GUID: WiyCRWtyrO1og5flzjp9qsWFz0jJP5aW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-08_05,2025-07-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 suspectscore=0 impostorscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 priorityscore=1501 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507080151 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 --- .../platform/qcom/venus/hfi_platform_v4.c | 165 +++++++++++++++--- 1 file changed, 145 insertions(+), 20 deletions(-) diff --git a/drivers/media/platform/qcom/venus/hfi_platform_v4.c b/drivers/= media/platform/qcom/venus/hfi_platform_v4.c index c8e0f8040649..4b7271468ec4 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}, + .fmts[2] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_YUV420_TP10_UBWC}, + .fmts[3] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_P010}, + .num_fmts =3D 4, +}, { + .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}, + .fmts[2] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_YUV420_TP10_UBWC}, + .fmts[3] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_P010}, + .num_fmts =3D 4, +} }; + 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); - - *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; + if (lite) { + *enc_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC; + *dec_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | + HFI_VIDEO_CODEC_VP9; + *count =3D 5; + } else { + *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; + } } =20 static const struct hfi_platform_codec_freq_data codec_freq_data[] =3D { @@ -277,14 +401,21 @@ 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) { unsigned int i, data_size =3D ARRAY_SIZE(codec_freq_data); const struct hfi_platform_codec_freq_data *found =3D NULL; - const struct hfi_platform_codec_freq_data *data =3D codec_freq_data; - - WARN_ON(lite); + const struct hfi_platform_codec_freq_data *data =3D lite ? + codec_freq_data_lite : 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 +431,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 +442,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 +453,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 Tue Oct 7 16:04:26 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A36282E8DEE for ; Tue, 8 Jul 2025 18:05:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997948; cv=none; b=Zzgs3sHfJwQpIaj9okNljVZjGdPFBw/j+jNYHmaoqncSPGuPNQ4ZH9jpP7mTBT+S3D3NP00v2FIJg6tzq8WCXseTFgvGUyEE+ITreIjYetJb86OQf8g3zYBstJx29kIE1kheAwMnmmIfQ/iZ8NYvvqyRSQ8xrHP2e+h63la4uMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997948; c=relaxed/simple; bh=OxNfsPbEJJVN+awzaENbdWaGNtistdBy+KfHPzGS4lc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=YiNoODyuBgvnyTMAF0f5ECKdCO0sP+gr8OUHeKczvcQZAGOgE8N3HH9jatFhAwUiUzimVeC52Oj8JePm0s2e1tjwCwMQCo5QTjVd9KF8ijTdHeotzEMUuijPqTM0pO7gT/tpBGWhwTc7Ea6HVd/zpd0u3w+/dSjTkgbwqZ7gWr8= 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=CfVhxTMy; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="CfVhxTMy" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 568AAZga032619 for ; Tue, 8 Jul 2025 18:05: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=g/AcEZbY/3L hPC//AHj1l8zIdFMRt7GCdZHsFAjwcrI=; b=CfVhxTMyCMloVL52x+jy1ie/Nk6 4EhBbLG3pKs4UE/hwxt0TxuCXes4k4tNEHK4iuWDToHfVbw1/ulHSa5mLxmWtyp7 mSgtr2J+pbIIpQdGwwyDpcMwowduoVTHzkMSxqawXbK76r1LUTPz/91ZXDditEpX 1uzd07OB2cXtEpgPkeuYKoJT07noos1YG6hi8C3Gs7ZZpwLEAYosJECZp7FvjOVW 9Kt/UO1y4CF4kKdqGV4AUsiryzt8PCXeKBiNWUXfL33VDF3sP4J/f0lEA+IOxHCG 3kLSS7xn7Mk87cBbRJ9gSyY6h/oavs/4bmTBRNEuZSMMCrMsmLyWQJojP0g== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47rfq338u4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 08 Jul 2025 18:05:45 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4a44c8e11efso143578301cf.0 for ; Tue, 08 Jul 2025 11:05:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751997945; x=1752602745; 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=g/AcEZbY/3LhPC//AHj1l8zIdFMRt7GCdZHsFAjwcrI=; b=m20FEj3+D0I4NmaEN2hCf2Gri2F9qGKRQWRpT26eT87ggJsNAv2e+tXjbZmqIz0f7B hJL0DFHZT2edUVc4KTMyWp+puOwoIpmsqXW4GFAiPkBpXkN/WcYduVtRu+IZ7UViKJEu 4oA+tNSsJdJ3m1XAocxpTT4xQ4P94XZIzeDN7AYlIkis6uhIm43ZLzIcyHJ3NrEktTae WQoJGCTg0CktEZmybiLHvuTGLLo2o+mdSdiUhkNikd8PgyprWmOoFjuTx710NOCeChBK eIVo9IRgU0rDfhbz7/GKZ5CkUJKMID7wrHBGEX56H+MGrUJbBRYv8yQEpZr3BG0A/PFJ jlbQ== X-Forwarded-Encrypted: i=1; AJvYcCUEm4dj9y8MMY+IEVyPql2rDnkWkNn9oW4r9P6s98cLmdJpdmbw8krQ12FrRrbYGqwDTqfv0xOpCcnBLco=@vger.kernel.org X-Gm-Message-State: AOJu0Yxtyw4tNaHzMXUklS40mIlbyIPrPojXW5p+HhZUlw89rSZ6UkSI v0D5YjlK/dnGxei+bjdAJuXr0OQSPnQak7UTPtHlAXXrz+8bcujv7px7yNhaAQs3wq/w17qFLD1 aH/WdtO2wW60oR9Q2BsdJz+xga1Gm4nE9SvmUZhDhs6aMRk+24dSqQzTHDnn4tE019Pc= X-Gm-Gg: ASbGnctCj0ZjOBxE2RNX5QXJZ2/bcCcETxnJp+o+QiXgdz7oalmDRExCl+ew4riSH5f GP9G/s6nVe1wvebWgW4XX+vRanBErUzuz3K+KOgO+yBbLmVctz3UTRqxKNcUNX5lMFJiDW0WQ8c NLxUislhDMEDHL4T15DT/Pj+Vqw0my3V3wVyi4/QSfxNZEIiLv3QXgtZCreAZMc5uq4XSKSj0YA fjJVQcTHIbrn7HYVhK7g8E0zTvhI836dZx+DpH58NlnCQUlpWPe/NtLMMO7xHDF5noP+IF043Gj jHKeiDD0pXLJrmC8z/d+r5h8rHsPgQAtzlV+w+VQ+vHs6A+7+nCfrSK3wEFjGOGZcGOJI/+xGQ= = X-Received: by 2002:a05:622a:1996:b0:4a7:234e:6c00 with SMTP id d75a77b69052e-4a9964ac1b4mr275033321cf.2.1751997944358; Tue, 08 Jul 2025 11:05:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEkMRM9KKBfHt3zmgrQce93lQ6Cs15i1fHDTvD9lJ6RJtXqxX1W18f2vx1jwlhNHD7f/t/16w== X-Received: by 2002:a05:622a:1996:b0:4a7:234e:6c00 with SMTP id d75a77b69052e-4a9964ac1b4mr275032581cf.2.1751997943708; Tue, 08 Jul 2025 11:05:43 -0700 (PDT) Received: from trex.. (97.red-79-144-186.dynamicip.rima-tde.net. [79.144.186.97]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b4708d0a5csm13394906f8f.29.2025.07.08.11.05.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 11:05:43 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, robh@kernel.org, conor+dt@kernel.org, andersson@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 5/7] media: venus: core: Add qcm2290 DT compatible and resource data Date: Tue, 8 Jul 2025 20:05:28 +0200 Message-Id: <20250708180530.1384330-6-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250708180530.1384330-1-jorge.ramirez@oss.qualcomm.com> References: <20250708180530.1384330-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-Spam-Details-Enc: AW1haW4tMjUwNzA4MDE1MSBTYWx0ZWRfXyeM+izXs+xpE qQ0ow+c7eWYpEzAfLo5iIxXr6+MtpuzAClkx6/bCFkzFDcPydxu21ckn0LfV1oypn/qBbP+f50X zat1wXBu5v21UuBK7Ca0B3nUs/xF1/S7nmcKh/Y8MhOIeuArxkStrV60dCl3caC61JJiHVICgLh cKxW58c+CepIc/qM3zgqFyXvJvSYj6MH02pVtwl5wARzHaWvJKfkgGo3vayu17FAQjzc0t4MQ69 m8BjyrOjxp0vrQmHuzN5EYMFl9DaX+GvOq3N0Zv65sGck9JwoL1zJY9kEvZ6FO7hT/ETS56kWZH 8NeEa2829FwVcJ7rrwBkKj6LZdlB2Yh4AS8sXvZQeFwuitZ0hsNjpzVW64D8IcJC/0YUPSXTABc KzWaYoLmoXIt1+ZOGgCGP4hSYmXbXsKOjlk+2bvG5QBpSE6zqvnifQbdPJuRpluG7cJtGVMA X-Proofpoint-ORIG-GUID: XFoGA-2_f5wB9YpdIxdLr3IUksgojXoK X-Proofpoint-GUID: XFoGA-2_f5wB9YpdIxdLr3IUksgojXoK X-Authority-Analysis: v=2.4 cv=SOBCVPvH c=1 sm=1 tr=0 ts=686d5df9 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=oX6B8lV6/A+qF9mARCc04Q==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=ykJq56P0K5uy9zAsI_4A:9 a=a_PwQJl-kcHnX1M80qC6:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-08_05,2025-07-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015 malwarescore=0 bulkscore=0 priorityscore=1501 adultscore=0 mlxlogscore=999 spamscore=0 impostorscore=0 phishscore=0 mlxscore=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-2507080151 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 encoder is not available to firmware versions below 6.0.54 due to an internal requirement for secure buffers. Co-developed-by: Loic Poulain Signed-off-by: Loic Poulain Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Bryan O'Donoghue --- drivers/media/platform/qcom/venus/core.c | 52 ++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index a4472cc2088b..a486115bbe57 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -1082,6 +1082,57 @@ static const struct venus_resources sc7280_res =3D { .enc_nodename =3D "video-encoder", }; =20 +static const struct freq_tbl qcm2290_freq_table[] =3D { + { 352800, 240000000 }, /* 1920x1088 @ 30 + 1280x720 @ 30 */ + { 244800, 133333333 }, /* 1920x1088 @ 30 */ +}; + +static const struct bw_tbl qcm2290_bw_table_dec[] =3D { + { 244800, 2128000, 0, 2128000, 0}, /* 1920x1088 @ 30 */ +}; + +static const struct bw_tbl qcm2290_bw_table_enc[] =3D { + { 244800, 2128000, 0, 2128000, 0 }, /* 1920x1088 @ 30 */ +}; + +static const struct venus_min_fw min_fw_encode =3D { + .major =3D 6, .minor =3D 0, .rev =3D 54 /* encode min fw version */ +}; + +static const struct venus_resources qcm2290_res =3D { + .freq_tbl =3D qcm2290_freq_table, + .freq_tbl_size =3D ARRAY_SIZE(qcm2290_freq_table), + .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", + .dec_minfw =3D NULL, + .enc_nodename =3D "video-encoder", + .enc_minfw =3D &min_fw_encode, +}; + 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, }, @@ -1092,6 +1143,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 Tue Oct 7 16:04:26 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BABB72E8DF1 for ; Tue, 8 Jul 2025 18:05:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997949; cv=none; b=ixwjS2qTWZ2vF2tIxfgI9mL51KRGX1gckwUoYH4vI5VbgBr5zWB3/C9/s8X417ZL6iQBRa1I+yo6wVchW/GeJDoPW53tFmep+io5FxDviK2iRX/rvDDc/vu0b+XW4eMjY1vEtWcGV/+PvtaAlok+QlcWsyW+u2G9VhEQ9tsLmDE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997949; c=relaxed/simple; bh=tI4EJY+AX+r+95HyElw6Y87H6Z+WIIFID7OrbHLVJ9g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MqiriowLRjXvGt8LoLfcHjtfHP0v3ykgMwWWJ+iVd4l7REug7d/7y/hFeL+uxmWdNIPG87vicPna0J9mR8f2fHXSBOjfLJMNZZaORnfRUxeA+U7YxnkSJa4RpkDtuM1xpmxFmLk0+eX3wjgQ9cfN62q7eP+KHgYwbZ3jWjI8w3k= 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=BUnf7h8+; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="BUnf7h8+" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 568AAO3m001166 for ; Tue, 8 Jul 2025 18:05:46 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=BUnf7h8+6hrNC84fDdN0IO1GkwR PeXIA+vSQXhOmnsfjzqfOwDfWIGeYSg7S4ifBLd/tuKTn20Lial6OwOGX6jrcDIe svEog8j/AHeZN3FHIAoxQ+kBTlqPtowYpW9+3YAc9zuhm5gPnkCe5fZAe6nXnGBm MMud135PvcPMmCoSFlwjxJSQibGMwCVAlb6W7MVF4nen5aRlCy43RQ+XkA6Wkh5a 2jVCm/vq0hMqY1ZzzIhGyjyjj2NjUIwPFK1bvv7mtLFvf4MGNuUNh6C4VHgFm66a 0No5At4suLzPksLo8IqBhbFEtqmU33646pGn3DiV8awJ7FlgeAroKWC34Xg== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47psdr1abx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 08 Jul 2025 18:05:46 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4a58813b591so3007861cf.1 for ; Tue, 08 Jul 2025 11:05:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751997946; x=1752602746; 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=ZIFmAbe922CEPBJSOEHiBL9J/u/NMjXZLBCzHQaH+IejD8BPAQjGpOQZkAskiX+a77 FdOdOY27trnNOoboY7LpoEUCMwis+bowb9aG/wppoH0lZ1uMzI4e19hD/xn6TM/cNYVb c8XmUciLLLxZqGyfx4h9Uh3lSnJHC9joYaO0KYo8agAu+wNHWX5+DlnV59xFMWhoQRLE cNf59PNRg2EfZIh+ZEsB+6XFiFcdtzFTiB/k4eIxiwMSQD1p+sQWuP2CcroHpqLklLKL rgXpL2KogCyigfI9q+9EZiglZaZp0E7wv7Lh7SXtwefWRy9ttBgm4ND4vRQoyYEZcKD6 KP9g== X-Forwarded-Encrypted: i=1; AJvYcCVE+UeT2tZoybDK9G3mwEiG4gsgDZCyBfacKzIvYsmqb+qywYZNK449YdC3uBWpPqsPeRbhrsdaWLQiBwA=@vger.kernel.org X-Gm-Message-State: AOJu0Yzx1BE+8c8cqmeH8y6EBcNMJ7Jn5JHosN5yRQpLd/BjDha89+Rm rLwwiDz/ubH9rmby+01lsB1TOkcFDLoalJofnvX5c6VC3S/hejemmsaKsjuTgBqgCQuCt/a5ftv Y3mP8/rTpX+8w2m6Mp4eFnq2yLNEEPULgxVjvToxAaSdKBWB4ozxYk1+X1MYB7bWdQTs= X-Gm-Gg: ASbGnctrCM6yAc7gdLGRK2EGXXfsWoD75AYv4rp4xpgc0v22uRRZ/PZM4mTTB8ynUOp X5EC42zsB4rIeI1INqp86GewkIGG1KQb8IE8rNrBndrJoaOEff1anCmi/WKmLXuP79SOwlqXkly wQqrKYiQoRybAAlCjR5Zy+x1F2g+r6VL6cGLAZCDU/g00CGyIdTEOvb60qYBeu8/JmBDlLp1Wek s3hkaBiRYfJW1KsfYpGpEX2oSD9H0k9lTJvVLQSCwkq0sDRvzshgG6Y96bZC1xGIEMQLPTYDuBW aqkJ7PiqRyBub64m/hA4Z7jW4sXc7hEoAvAwymeHSs+mbDI8aa9vSGYhSiadJRMujNKRp9WgOA= = X-Received: by 2002:a05:622a:98f:b0:4a9:8232:cb35 with SMTP id d75a77b69052e-4a9ce5bb4c0mr58062621cf.15.1751997945737; Tue, 08 Jul 2025 11:05:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFyZT+HkJfTBrHl4+ei128F1dpD9omDu73cUZfR3tgtwSTp3pRdVUTSJ1irJwghrB5U2HsgJw== X-Received: by 2002:a05:622a:98f:b0:4a9:8232:cb35 with SMTP id d75a77b69052e-4a9ce5bb4c0mr58061991cf.15.1751997945129; Tue, 08 Jul 2025 11:05:45 -0700 (PDT) Received: from trex.. (97.red-79-144-186.dynamicip.rima-tde.net. [79.144.186.97]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b4708d0a5csm13394906f8f.29.2025.07.08.11.05.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 11:05:44 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, robh@kernel.org, conor+dt@kernel.org, andersson@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 6/7] arm64: dts: qcom: qcm2290: Add Venus video node Date: Tue, 8 Jul 2025 20:05:29 +0200 Message-Id: <20250708180530.1384330-7-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250708180530.1384330-1-jorge.ramirez@oss.qualcomm.com> References: <20250708180530.1384330-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=ffSty1QF c=1 sm=1 tr=0 ts=686d5dfa cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=oX6B8lV6/A+qF9mARCc04Q==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=KD12_Wl4P5iJQNenjFgA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-ORIG-GUID: IuBOwDsKUSMIGLgB7OcfOZDYqruJESpE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA4MDE1MSBTYWx0ZWRfX33JLy5sHJSxb nxtBVH806fE2SmxmidtdpyKJm7JrN55YH56QYfN8tS0kNfjTPBZmIF56rbmPzjDlJ969o5NLYnF y4DpW1EGGK3c1VaWFnQKojOIcYt/PbhKfyL7otGcgfKR6tbu1tXgULe94RcwbDVMkYepfLUWyTK 9jgoJNA99Tm4H/rKam0uveXtFZafbkc+UVs4oIwxeGg7YdPQUGFuBE+MEfInGtikk+3AerIUJQ7 vujCVTdLCMgijapSLInlh9IrjJRS2n8GmSsWB3XiQDHxPmDaAaus/IoRM1CFnHNWXzHOLVl6YQs axArrLd0B3VzG1zts1U7uwWN1CO6jAC6e+RLQ6ZDO5U4DzbF+pri0F4deNNzc2LBOaI7pq+pP/6 LtSaGp9PdOz6ixzWaVqmhuT4kdGkOn6d0EEkfX1k9EvHBXxYLdUKG0L8CQBtBksicqmelrjf X-Proofpoint-GUID: IuBOwDsKUSMIGLgB7OcfOZDYqruJESpE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-08_05,2025-07-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 mlxlogscore=999 mlxscore=0 bulkscore=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 spamscore=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-2507080151 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 Tue Oct 7 16:04:26 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 842852E6D30 for ; Tue, 8 Jul 2025 18:05:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997952; cv=none; b=qQqeAbozEsdTfgaP46i47KtT7AIuSupCgBFxbywDt7k85V3V+ztyaRB7ReEONcfQUjhuSB1h1F9sB9ju/NEvCLD3Me+5SonjLJS40lCf2ogQl7wvQ4XEmInCW5BPOnP3n3n1qVPsQdXBae5GIHyR2THJdxAi6iMDMoG75J1ds7Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751997952; c=relaxed/simple; bh=3a0MWleIyO3gL2IRZDHzo83tNGJ9l+qQFqUNeP2HJrk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ghHoXvbNT+fuzunKlWkPXoaZgTjMgypH9zTqak0BD8/vvS1UFiq78mhjTLwMgeaCzY7XTPtSuUbcO3Ba9vSehXC9pJ3ErysDZAF71wqZaAgY4MqklepYUpxW1lKsJBD8ijnUOEjz4eqKITlHEchTHyq6tWwSXhsYFOBezQIbGJU= 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=nBSlKwxF; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="nBSlKwxF" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 568AAPxc001254 for ; Tue, 8 Jul 2025 18:05: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=v5EEqpTBsWK 2r9AuHuvHgMamXxn21K03bgFNVlidZok=; b=nBSlKwxFq65reUnqR3XPaUODDaZ qkLr9zo66sQARJtTgLTARM37EQ84aGp3AaUq7ynXro+kdyERno2xffUVLfieVcwO H5aXwXy419XqvWmaFcPQYxAnfmg0GbQ+LOA+LCY/lQPy1AFwRQziFSj8CTzyQruj qFqGrabmJb5yeLQQqejREEsHkLu8ouvSxYiq+STCFD2aYUiHoVwAtjcrog9VKali /+EYoUjpMpCtcYDj119MQgXKcdjQdmnMUMHshlh4Gcva0gkWCnkwfWR6W32Jsoav k1KLSK851BBsqEnOIPgoC/u0ds/sKCdw2msK48sJ3caF0PurS/ksNBsvV3Q== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47psdr1ac5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 08 Jul 2025 18:05:48 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4a584d0669fso97818581cf.2 for ; Tue, 08 Jul 2025 11:05:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751997947; x=1752602747; 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=v5EEqpTBsWK2r9AuHuvHgMamXxn21K03bgFNVlidZok=; b=Eqded/P2+0dwpRzYvXHkF7K10JlKPNwPiquRlcO8eLw0fGIUYAEVTMQIN66T1fnRlm KP7/qM2t5L3Vgn6WYADjF4WE804/aM5t0KEJKHL5ZC7sr7Si8vxLqpFcg/IqAgUO8fg7 ZVJlWzyJb2UtZDVv1MYaa0mp1KXwRrQtUPbrhZSxN1LfGSvqFM6dVd5avzRTlo/cCTgL wCLKPA0QhJ7eBoluPTGlTBDmWTgxkyl7Hd/tJoR5D9D6CskU26+R4Z1x4WuFtCaPcydm z6BDhbOhvSmPr4lIx6rp3JZWwvVMRyE/SUjjU++6QnHri6fZ9uY2Dc1BWXC14X4ry0ZL oF7g== X-Forwarded-Encrypted: i=1; AJvYcCUSiNO7204j6DNBoJT0c9GpN4M53iayFDCh5xfEyPQv/p6idmf1cReU7h3ipr1DPivXbt5ONHQRdrrxaOo=@vger.kernel.org X-Gm-Message-State: AOJu0Yzd1uhcUviijK7TxIVwc0AN0SaMK5+91xAvSyQJahbB+CWzQn8a ObEty+ynoLA1hJG6jO5VXLaQS8FtR3DO3v68Q7wuXl7NcIWygZCqtCqiprUXwa3jgsupIsb62tu K7IwHm9tRNGZ/rit+ji+eOv0URoCMOBowqxZiQGlghABe3QAzu1Ud2GBKNA8tQ+Kj2Ag= X-Gm-Gg: ASbGncv4JXytdggeTdzmCEsLyFkdTfI5ufmOQeKHyY94cvJwg/cRKtcdZbnT8aGhUvK LolY0L/ADhbB5vvSdf18r1p89xV+bOu4WUeCBe/NjQBlbK8uR+xPy48ve2q7fd5K8qkQAj2Cm1C lAfjIZftVIRld+gVEjeL9Y4YQrmKUR7BlKbPiDeqcRk455l0hTTQB+uPC38qFIV3o/kOyCUdPaY 1HfY+6kgvZwU9Vcw7W4c82z1d12fJIxlhMeIyKbtb/EKvDCsEl6fhPU/OuAg4WqLMPOFW02XVnP LhWVeEZ19k6ybnLylAy5qsfvwKRxpEu8MlMqlgHGjAWDr0LiLU/fPGaIkv+GZrQ0OHxWxB1TTQ= = X-Received: by 2002:ac8:7f42:0:b0:4a6:f7a7:4d43 with SMTP id d75a77b69052e-4a9cd6c7133mr74848101cf.14.1751997947214; Tue, 08 Jul 2025 11:05:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHhjWVmMm7n2+pNxplxU2Hy47+FGd6ZQWvQBUcOs7FaKkNrNRd0xCNwdMoqmPKRnemCM1vPcQ== X-Received: by 2002:ac8:7f42:0:b0:4a6:f7a7:4d43 with SMTP id d75a77b69052e-4a9cd6c7133mr74847371cf.14.1751997946606; Tue, 08 Jul 2025 11:05:46 -0700 (PDT) Received: from trex.. (97.red-79-144-186.dynamicip.rima-tde.net. [79.144.186.97]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b4708d0a5csm13394906f8f.29.2025.07.08.11.05.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 11:05:46 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, bryan.odonoghue@linaro.org, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, robh@kernel.org, conor+dt@kernel.org, andersson@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 7/7] arm64: dts: qcom: qrb2210-rb1: Enable Venus Date: Tue, 8 Jul 2025 20:05:30 +0200 Message-Id: <20250708180530.1384330-8-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250708180530.1384330-1-jorge.ramirez@oss.qualcomm.com> References: <20250708180530.1384330-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=ffSty1QF c=1 sm=1 tr=0 ts=686d5dfc cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=oX6B8lV6/A+qF9mARCc04Q==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=Qms5JgQ9tnEuTiNUcoUA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: eVlAl6anaFE_m0028zOcJIf8-W_TJZAu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzA4MDE1MSBTYWx0ZWRfXxH6dt8/EF3mP aNh/Y8T8Zu1dXy0eN3fHr4ghK7ZzKV7xnJj96gYmxdXlmMAN6Lm1JeQJuVh2IvHxxTSVEykgJIR h7cr+K04emlLbkO01usXb/riw7nlZ9T1IeVhcZ+VpK0yMSMr4SLgw5vayj33yUBmszO6+7J6O3W 9I7T+BZzPy7HqyrmCvkY0xVv90LtBQ5ort8lJ/n4QmOSeTB1OouPwkIlVPYwGNiLEiVlSyEWvG/ wVEVaAn7GwXYSa9ZjZns1tQPhmOMPganz0yYbmdNOFldhLQmJxjj/lLMkkgD1uXeBMYd+f/jJ0T 7jY+zHwiGehxiiLkfAuEYp48MTsHjOhhvZyHvVondrPOPQJREi8qOvgCnqLZVVKkiTszuNTBn5G 48WxMyfcy4lzf6qkfKSkh54u65PxQr2j6+NaUmkdptVP9JiKTXSZECD2r3Gk5Rtw6njcyCBf X-Proofpoint-GUID: eVlAl6anaFE_m0028zOcJIf8-W_TJZAu X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-08_05,2025-07-08_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 mlxlogscore=732 mlxscore=0 bulkscore=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 spamscore=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-2507080151 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..8ccc217d2a80 100644 --- a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts +++ b/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts @@ -711,3 +711,7 @@ &wifi { &xo_board { clock-frequency =3D <38400000>; }; + +&venus { + status =3D "okay"; +}; --=20 2.34.1