From nobody Sun Oct 5 05:26:31 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 32D562652B7 for ; Fri, 8 Aug 2025 08:49:33 +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=1754642974; cv=none; b=f1zJ0gXLugEOIzbZi55cIy0gFCTHg1QeF7/oKV70Wc3vrBqMdrk8kZbwPuPATff0R5xWPQdfvkoDZiSWLRvSyQBtKdPlA17gRVHejS+B5yV3QinRFPyGThlpj/mWfXkSBv+nD0RlQDezMX1njlnCYufs8fUA+usZMVnTP10PYcg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642974; c=relaxed/simple; bh=VO/XqcSD3T9bRV+GvDZsTJwOmB/gxlb+z0LFlAiA8e0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Ph8osNiVan1m06ZzClJy9ffk3daZBnm/M4td7ARFqI5H2HI8sCGqbwE/zs2EOUtwDzR0SIaz2OTXxPZ/ji0Qbef4GJ4mJ6W3Z4T3k1MekOUkHR76wYv/rCWdt8LFr+7zwlHJVfUhec7Kw7Y7P+xjzFHWVWyMV27MDh9rUeGLy1k= 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=PApENXoZ; 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="PApENXoZ" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57813Gkk030191 for ; Fri, 8 Aug 2025 08:49:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=YY+jHz5mvoy usButmdCoBF7o4RYZY+zFj5xw1jAtys8=; b=PApENXoZ0oH5gON89HIJ+9YwMoX iN1h2BkseLOMlBvlS2uEVCtnvgdmjPQNcU8kKEfKzGcFJ42SHHzuoiS/geGBJvpF kvMNfWwT2hrJqpimY8C4CrZrHSggpAgO/ZIENUvOdabPSfTh+X5qb3PDOq/kVYsh be2NPAZUGzmtLA0rYQcbBVmb2m7OsmEhcH3TU8sh7Oe00RZbt8aLPsokORf2FnLJ 16/MyTetFCFMbz0p/JWxNx+i9BKPHnA6wb4c8fKg4w5eiEpirVQaWHAjKWXwRzNQ XMtSx+UB1GQ7/Fpp7YCsTcHi8S7eopNhVq/eor8cBFVBawf42zlX6fDxmdA== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48bpw01jb3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 08 Aug 2025 08:49:32 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-7e667b614ecso402468585a.2 for ; Fri, 08 Aug 2025 01:49:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754642971; x=1755247771; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YY+jHz5mvoyusButmdCoBF7o4RYZY+zFj5xw1jAtys8=; b=xCbjzywdRBXGfvydp3/vTg9VmyPkpmv75BqA74SSd60X92bzO1nbCm+pxTRV6Fg/40 qrks8U1ni72ks8VfwDpavvpyE600iY5xYt9hJNZP+QyxEw1ZMMqVgtu+kVYlUNd6AtLp LaxvCXr5Zf1nEIuzKvqrYQXRj3r5vIuD/AsZfXhWDW5/3zTQAzSISfx6ucoivw+gaf7J L0a/tqYxjgbOeNSmMPikFHsaRCkZmlEFCpLPRrA/IZVPL9lJ8NC4F7kmXIAE9kk65eQ9 3fpB/By51Dh/P21B9CcFfXzNad4eYmyzpopQ1m+Ek04EYaBpiXGGuofq+VI1VcYnd2UX X+XQ== X-Forwarded-Encrypted: i=1; AJvYcCVxNlLmtVCJ2mHAZutN7WP0IuHeoVlRls8Zbu13vbFG99C394tNHQSmzdMrb7gjFchyWr3qwvr+NpCTzD8=@vger.kernel.org X-Gm-Message-State: AOJu0Yz5GBtLU5uiV32rIHQHOXg6CTNUK3crl3q4Gk2KrWj+TOYDP7n9 xn9uyvtZj5eNBlA4MRHSAvSriqG+Liyt13bogELu/iNZv9RjPakQnv3K3XpvGyr5rYmd7kGKcJV VxwwqSoSSh4cbmC7SvtDBHoG70vpt+nlMyuWpU6XVf0Pm6r3lTrz/WS920XBblix2Wuk= X-Gm-Gg: ASbGnctCCSFt8ofuCPEB+6q+Gzq2nH0bNvgj16zwV5hkohEZ10NrE8T5Rvz2khlRFXP XyNgQfWt/h5vnzSBitA3lv4wF7lvxP4sb53H75VxCt9hGzs2BUBgZOH2ciedE+9Qos8CKstWRnI YzYbMsN6QXDYhph1XtWuKaXVqv45A11UC/iR7UiomGgwlyGITeA8Aui1ezrur/ds9qP5NiPLjdV SL8QInx4KwYrXAR7R4NkdHaxx8hrkrc0uNVw23JRcSrhrazRrcF4zF55GglKRK/YIKPlD7jFKO+ TCDreMR/gDITNTeZ9SGyYHUqU6vUCUzanBTET8/8d+eTaYq92CJD2eIjKc6GpXwLvHsjp9e+4so kWBSJJ+TQbK7H X-Received: by 2002:a05:620a:aa18:b0:7e6:211f:c1f1 with SMTP id af79cd13be357-7e82c77afdfmr235174285a.30.1754642971133; Fri, 08 Aug 2025 01:49:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHrnqG1fYrsPPgSDt/6KiFyQFURcQNGhFPS+8mxkKIlHrqKTsQkCORYvz4jXC1HcC0BILXBsQ== X-Received: by 2002:a05:620a:aa18:b0:7e6:211f:c1f1 with SMTP id af79cd13be357-7e82c77afdfmr235168385a.30.1754642969822; Fri, 08 Aug 2025 01:49:29 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-459e58400f5sm122904295e9.2.2025.08.08.01.49.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 01:49:29 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, dmitry.baryshkov@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org, andersson@kernel.org Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 1/8] media: dt-bindings: venus: Add qcm2290 dt schema Date: Fri, 8 Aug 2025 10:49:16 +0200 Message-Id: <20250808084923.1402617-2-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> References: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: YVjpeAsIFt50sTgHnyVAefRh7Y7rUPRp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA2MDAwOSBTYWx0ZWRfX4XEoScu62O79 PWegods3QXZNhzFX6lFlzQZcWh2KyctiIRJvGUT7CpHSKNmMtE+vVR+uFg5PfUrAS20g87QF5BY BOIBeiyYO2aG5C4TUFs4HDfGQOwJY1Vx++pFuq6nhIvWc/dhQlALuweEeIA7BFFvrlxOvmnlPK4 nGSfte+LB96fa8WhC3J3aaNJerHBx9XTeB9lB+U9ghLRr9ztWlXT2s4W9pWSRr4K+yNv3oVWdft Xr3daxHV9bGL3ySfPix9BnrdWJs1xTV0ujO88Oxzm8WaVHk0oXh4PL8+PLcGECZqoUGjfCy/FtM I81MiW6+pNSPCyLvvX60tGHCLAYNm8ts404UIJrr2OXf7MXSuf2Mwhkd61EYPQjOuLva+fjW2i6 PWbU09tu X-Proofpoint-ORIG-GUID: YVjpeAsIFt50sTgHnyVAefRh7Y7rUPRp X-Authority-Analysis: v=2.4 cv=NsLRc9dJ c=1 sm=1 tr=0 ts=6895ba1c cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=Wl4eHCndyL1IYbKsAYUA:9 a=bTQJ7kPSJx9SKPbeHEYW:22 a=sptkURWiP4Gy88Gu7hUp:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-08_02,2025-08-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 impostorscore=0 bulkscore=0 phishscore=0 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508060009 Content-Type: text/plain; charset="utf-8" Add a schema for the venus video encoder/decoder on the qcm2290. The order of the IOMMU list is strict: the first two entries correspond to non-secure IOMMUs, and the remaining three to secure IOMMUs. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Krzysztof Kozlowski Reviewed-by: Bryan O'Donoghue --- .../bindings/media/qcom,qcm2290-venus.yaml | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/qcom,qcm2290-ve= nus.yaml diff --git a/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yam= l b/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml new file mode 100644 index 000000000000..3f3ee82fc878 --- /dev/null +++ b/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml @@ -0,0 +1,130 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/qcom,qcm2290-venus.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm QCM2290 Venus video encode and decode accelerators + +maintainers: + - Jorge Ramirez-Ortiz + +description: + The Venus AR50_LITE IP is a video encode and decode accelerator present + on Qualcomm platforms. + +allOf: + - $ref: qcom,venus-common.yaml# + +properties: + compatible: + const: qcom,qcm2290-venus + + power-domains: + maxItems: 3 + + power-domain-names: + items: + - const: venus + - const: vcodec0 + - const: cx + + clocks: + maxItems: 6 + + clock-names: + items: + - const: core + - const: iface + - const: bus + - const: throttle + - const: vcodec0_core + - const: vcodec0_bus + + iommus: + maxItems: 5 + + interconnects: + maxItems: 2 + + interconnect-names: + items: + - const: video-mem + - const: cpu-cfg + + operating-points-v2: true + opp-table: + type: object + +required: + - compatible + - power-domain-names + - iommus + +unevaluatedProperties: false + +examples: + - | + #include + #include + #include + #include + #include + + venus: video-codec@5a00000 { + compatible =3D "qcom,qcm2290-venus"; + reg =3D <0x5a00000 0xf0000>; + + interrupts =3D ; + + power-domains =3D <&gcc GCC_VENUS_GDSC>, + <&gcc GCC_VCODEC0_GDSC>, + <&rpmpd QCM2290_VDDCX>; + power-domain-names =3D "venus", + "vcodec0", + "cx"; + + operating-points-v2 =3D <&venus_opp_table>; + + clocks =3D <&gcc GCC_VIDEO_VENUS_CTL_CLK>, + <&gcc GCC_VIDEO_AHB_CLK>, + <&gcc GCC_VENUS_CTL_AXI_CLK>, + <&gcc GCC_VIDEO_THROTTLE_CORE_CLK>, + <&gcc GCC_VIDEO_VCODEC0_SYS_CLK>, + <&gcc GCC_VCODEC0_AXI_CLK>; + clock-names =3D "core", + "iface", + "bus", + "throttle", + "vcodec0_core", + "vcodec0_bus"; + + memory-region =3D <&pil_video_mem>; + + iommus =3D <&apps_smmu 0x860 0x0>, + <&apps_smmu 0x880 0x0>, + <&apps_smmu 0x861 0x04>, + <&apps_smmu 0x863 0x0>, + <&apps_smmu 0x804 0xe0>; + + interconnects =3D <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG + &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, + <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG + &config_noc SLAVE_VENUS_CFG RPM_ACTIVE_TAG>; + interconnect-names =3D "video-mem", + "cpu-cfg"; + + venus_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-133333333 { + opp-hz =3D /bits/ 64 <133333333>; + required-opps =3D <&rpmpd_opp_low_svs>; + }; + + opp-240000000 { + opp-hz =3D /bits/ 64 <240000000>; + required-opps =3D <&rpmpd_opp_svs>; + }; + }; + }; --=20 2.34.1 From nobody Sun Oct 5 05:26:31 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 E351623A9AC for ; Fri, 8 Aug 2025 08:49:33 +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=1754642975; cv=none; b=hGDAq9Dx7zX+zIrXsPmu6lddyRUHAoxPdPpeORExpGrZjmP3aibsqnjuq8bCA556+yFZMV5uOW0CbENwENoRa4Wq+UMjIJPIDICD/C8Af3Zogzdbc/h13HR1OdljdMyLjmxZQVEGgMZHEQji0Jy7LosZK4uFqSm/rqy9Dr8tW64= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642975; c=relaxed/simple; bh=86PLTqk8gjY11xMPb1ytqtbNlgq74lMq8dDdY25h1Es=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uo1+O8ww0Dp3Bxf9Y0rHMLjHyHGsiEEHszukmI1v6CnjKBe4F1L4wo4DPjCCl06zi9Wh7o+xx2GjbJFaI/KWaWw6CXDTMNTl2YuZFyRFiufrjVnErPqTjk9M4HJWUGduoWPCK+jqSIP82C4iVFQIU6prtsx9EOjFTB+4JrKbSSQ= 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=bE6qbnvH; 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="bE6qbnvH" 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 5787INa5001872 for ; Fri, 8 Aug 2025 08:49:33 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=LWjsBg1VVIO yEmDu+biLKzIOgFeO6f57DCN9nQYGCOQ=; b=bE6qbnvHgIiv3MDD6g/4XexqKuw 6UqnD2fKMngjehHx8Yh60kgEVCB2gAKuICAd2rpMxEFDrhQJ/pANNJjRWs1kzZFA mpX05wfGjcr39vHGcFeNgxnuGCs9/qsAPwM1d3U6lw8ybi5b8Zf2rHhwMShT/lWh hbvCkmYy8PVZStK5htde1UBE129eKsKOhFuFHAYc4CrvsvH1Tjpvh2r/EpbNM6dp HlD4GzQdYzUvfrm+olpD3uednFnq+Ama0tfoWKxdcq0hKYFxTPJ/F9NYsjtllv9p 4ZHgbQpiqkaKmbaE/gnJcIDUziSiMpvixli07PJVLsKFvL4xJpGV5m0sngQ== 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 48bpw399uu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 08 Aug 2025 08:49:32 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4b08b271095so51636641cf.0 for ; Fri, 08 Aug 2025 01:49:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754642972; x=1755247772; 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=LWjsBg1VVIOyEmDu+biLKzIOgFeO6f57DCN9nQYGCOQ=; b=j7DPv20u3kDQlRezeUjLGWOKX+qS/1BWuxUygTa1PYVywof7ypbKQsKVUOTK1nd6IE zPPrk2+5+nQ92SbdLCsoI0GQw9OEcgOL0w4hR2IuGTzICkXR6WV09wBGUOX09B3b2Z91 DzHrgs5idK2X/G69w8YSRYLnSMOENYhmIfZ368EfLRL3mMw1kt8lsPeKH03GUnR+kzLs c9SZ2451pXUiIqok+IngmOvwA4v2wGnVbNycGTVHpuUfgDy+Su77e6RkbyK+neTOgoHW v1Zduyo6N1G8ri/M3GxvMH6qNpyMW7NsGI3nWWb8cFHdJ/VT5tBMoSsdGK6NP+BSaEWX 8zvA== X-Forwarded-Encrypted: i=1; AJvYcCV97OEivWrVw1dv5TVzFrHlVBjB+CNM2oYFujDjTqu5CN1FQLvQ4bfTwmVdDKsaK2qCiZQeH4D2prSTOno=@vger.kernel.org X-Gm-Message-State: AOJu0Yxo+RERR4qAzUt7b9nATnNaSwhqihEQJhmYmJIawcpxkLtzqtm5 rGeYqKtNM21K8U38slRvgf5XCu9O5oUifQUh0Q1A+qrXmQ2o35J5kunRRNi3ZDmhZQKjWANZpUT /F8Q8SX3oPZ7z9guGjDP6UYDxDH8llo/o28kU0Hhg9mtg8RWt47FYl5d52cOtyDHOdUE= X-Gm-Gg: ASbGncuDKNdqpVIz/Ifjb5EbQpARY6gAK8cgwlBqVvPvBbnvpo0g/+5g0NTuzfNRDLx Sz3i/pVHEVmwS4l3VFhDuYslaJCKVrgV3fyXxNt4wxw3j8Lm+LuG41McC2lUF6qgXluR9xTt6xH Hnz0weZP4uozz8GqFdg+51rPNCSnoQarev5MH28wTkI0WjxC+fXuACC7s3KR8gRQPFJexJicU3B eSjQZMsLRhSZpwLEL2vSSdXkH/68iLA/2bbGpHp6yOKAlHrIZjZGZ2tU00t3s1PAO6TgqGS1LaX 9By82ai/yO0vK1EonMzxS932mEl330x2+AcjrqEThznfwF4BpTmCD5nvakuPdK0bi/UReCeeCt8 oSLEJJJhAhSzm X-Received: by 2002:ac8:58c5:0:b0:4b0:8773:9b0f with SMTP id d75a77b69052e-4b0aed0f079mr31522181cf.10.1754642971762; Fri, 08 Aug 2025 01:49:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEleTrWlsG0anHArp6k+mQlnVM4K5gb1a/fa4NSmTcJysP5EfMDPCkm8nMA1E9waB8F2IsMYQ== X-Received: by 2002:ac8:58c5:0:b0:4b0:8773:9b0f with SMTP id d75a77b69052e-4b0aed0f079mr31521901cf.10.1754642971257; Fri, 08 Aug 2025 01:49:31 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-459e58400f5sm122904295e9.2.2025.08.08.01.49.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 01:49:30 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, dmitry.baryshkov@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org, andersson@kernel.org Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 2/8] media: venus: Define minimum valid firmware version Date: Fri, 8 Aug 2025 10:49:17 +0200 Message-Id: <20250808084923.1402617-3-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> References: <20250808084923.1402617-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: AW1haW4tMjUwODA2MDAwOCBTYWx0ZWRfX2VX5oOfI4cYH hhQb1Zbt5cW1N5O+QWbWlfzTmL0acejSkcRoMPevUtHMn72Xm2ZXchBMrVegeApqP13A1Md79Pv VbYrWVBDEiKl2uA2YoQL/Lk0z7NRRw/cGJCg4LhbmB0AN03PA+A+lAPYNTJTgwl3CWqd4UUDtvr T7jngbcQkomsX6y03qxyiZaNwQ9ZWClQLxi+2SdJeMC8sfg16YEFDN/yTzTaW7+Gzb1/AZpl4vP aLoO4NeVokZyi/jk9AwVt2NVjTNrYpd9NYRj1hhXL7R654Sl5/34fwL6Ui1b71PyRBYjPTfPN/z PRaaXdTlhv+8oLMY3qA7MVjWA8utBoLdJ9qkJHJSIo4BK9oW3bg4MQc3l0tNv8hejKN5CLC+sPA Bl0MS9Qh X-Authority-Analysis: v=2.4 cv=J8Cq7BnS c=1 sm=1 tr=0 ts=6895ba1c cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=-5R0vqtSU2Fw_BP-RAMA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: LvZCof6y2M6VcyaPK2AgneFJC62fKVqr X-Proofpoint-ORIG-GUID: LvZCof6y2M6VcyaPK2AgneFJC62fKVqr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-08_02,2025-08-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 priorityscore=1501 adultscore=0 malwarescore=0 clxscore=1015 impostorscore=0 suspectscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508060008 Content-Type: text/plain; charset="utf-8" Add support for specifying the minimum firmware version required for correct operation. When set, the driver compares this value against the version reported by the firmware: if the firmware is older than required, driver initialization will fail. The version check is performed before creating dynamic device tree nodes, to avoid the need for reverting nodes on failure. Signed-off-by: Jorge Ramirez-Ortiz --- drivers/media/platform/qcom/venus/core.c | 40 +++++++++++--------- drivers/media/platform/qcom/venus/core.h | 13 ++++--- drivers/media/platform/qcom/venus/firmware.c | 20 ++++++++++ drivers/media/platform/qcom/venus/firmware.h | 1 + 4 files changed, 51 insertions(+), 23 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 4c049c694d9c..f45715c9b222 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -448,19 +448,9 @@ static int venus_probe(struct platform_device *pdev) if (ret < 0) goto err_runtime_disable; =20 - if (core->res->dec_nodename || core->res->enc_nodename) { - ret =3D venus_add_dynamic_nodes(core); - if (ret) - goto err_runtime_disable; - } - - ret =3D of_platform_populate(dev->of_node, NULL, NULL, dev); - if (ret) - goto err_remove_dynamic_nodes; - ret =3D venus_firmware_init(core); if (ret) - goto err_of_depopulate; + goto err_runtime_disable; =20 ret =3D venus_boot(core); if (ret) @@ -474,34 +464,48 @@ static int venus_probe(struct platform_device *pdev) if (ret) goto err_venus_shutdown; =20 - ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_DEC); + ret =3D venus_firmware_check(core); if (ret) goto err_core_deinit; =20 + if (core->res->dec_nodename || core->res->enc_nodename) { + ret =3D venus_add_dynamic_nodes(core); + if (ret) + goto err_core_deinit; + } + + ret =3D of_platform_populate(dev->of_node, NULL, NULL, dev); + if (ret) + goto err_remove_dynamic_nodes; + + ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_DEC); + if (ret) + goto err_of_depopulate; + ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_ENC); if (ret) - goto err_core_deinit; + goto err_of_depopulate; =20 ret =3D pm_runtime_put_sync(dev); if (ret) { pm_runtime_get_noresume(dev); - goto err_core_deinit; + goto err_of_depopulate; } =20 venus_dbgfs_init(core); =20 return 0; =20 +err_of_depopulate: + of_platform_depopulate(dev); +err_remove_dynamic_nodes: + venus_remove_dynamic_nodes(core); err_core_deinit: hfi_core_deinit(core, false); err_venus_shutdown: venus_shutdown(core); err_firmware_deinit: venus_firmware_deinit(core); -err_of_depopulate: - of_platform_depopulate(dev); -err_remove_dynamic_nodes: - venus_remove_dynamic_nodes(core); err_runtime_disable: pm_runtime_put_noidle(dev); pm_runtime_disable(dev); diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index 5b1ba1c69adb..d1f0e9979ba4 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -58,6 +58,12 @@ enum vpu_version { VPU_VERSION_IRIS2_1, }; =20 +struct firmware_version { + u32 major; + u32 minor; + u32 rev; +}; + struct venus_resources { u64 dma_mask; const struct freq_tbl *freq_tbl; @@ -94,6 +100,7 @@ struct venus_resources { const char *fwname; const char *enc_nodename; const char *dec_nodename; + const struct firmware_version *min_fw; }; =20 enum venus_fmt { @@ -231,11 +238,7 @@ struct venus_core { unsigned int core0_usage_count; unsigned int core1_usage_count; struct dentry *root; - struct venus_img_version { - u32 major; - u32 minor; - u32 rev; - } venus_ver; + struct firmware_version venus_ver; unsigned long dump_core; struct of_changeset *ocs; bool hwmode_dev; diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/p= latform/qcom/venus/firmware.c index 66a18830e66d..3666675ae298 100644 --- a/drivers/media/platform/qcom/venus/firmware.c +++ b/drivers/media/platform/qcom/venus/firmware.c @@ -280,6 +280,26 @@ int venus_shutdown(struct venus_core *core) return ret; } =20 +int venus_firmware_check(struct venus_core *core) +{ + const struct firmware_version *req =3D core->res->min_fw; + const struct firmware_version *run =3D &core->venus_ver; + + if (!req) + return 0; + + if (!is_fw_rev_or_newer(core, req->major, req->minor, req->rev)) + goto error; + + return 0; +error: + dev_err(core->dev, "Firmware v%d.%d.%d < v%d.%d.%d\n", + run->major, run->minor, run->rev, + req->major, req->minor, req->rev); + + return -EINVAL; +} + int venus_firmware_init(struct venus_core *core) { struct platform_device_info info; diff --git a/drivers/media/platform/qcom/venus/firmware.h b/drivers/media/p= latform/qcom/venus/firmware.h index aaccd847fa30..ead39e3797f0 100644 --- a/drivers/media/platform/qcom/venus/firmware.h +++ b/drivers/media/platform/qcom/venus/firmware.h @@ -9,6 +9,7 @@ struct device; =20 int venus_firmware_init(struct venus_core *core); void venus_firmware_deinit(struct venus_core *core); +int venus_firmware_check(struct venus_core *core); int venus_boot(struct venus_core *core); int venus_shutdown(struct venus_core *core); int venus_set_hw_state(struct venus_core *core, bool suspend); --=20 2.34.1 From nobody Sun Oct 5 05:26:31 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 114B22690ED for ; Fri, 8 Aug 2025 08:49:35 +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=1754642978; cv=none; b=MaGVRSZa+zkTafkFqh/NkjeR0xmFGNFKEKbnVj2mUUewlS2BhzOZQpctekLnKfzrUHjprguB8WpwBf/QnysRsXQWfUQAftDHGp057bcPoNOU6zUgSXfzTh3Fe2vsC0SQBZhWf2BN9DbeYSSr/j9HS4xI1TAL7EwE9ym/42QeNyg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642978; c=relaxed/simple; bh=+6C4LPML3NfvvR02fjzwhjEbKqGIAhPu8dODEfa/c8k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Ef4RfvWSVCP3FJe2nO7tcEdZsH7Qjv1o7vCZSe2XtQOkgKReVYb9MAvBQq85pHzS/ASegUVvMWKcvuxxnwHwNUSSKXz7xavkpV8KhYYBVFxO2OSlBha31mFwNxZIv4b00K945rZr5S4UwLDGz7VFINtRvXeD4mZ3OCJ3c5b45Ds= 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=V7S61u1p; 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="V7S61u1p" 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 57871bJS012668 for ; Fri, 8 Aug 2025 08:49:35 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=erT6FgsYITm 4DjrP4oMwIaj7LUTO7TL8wVCRJ8xVJmc=; b=V7S61u1pVSgoLPbEz4Lg+y/tb1G 7nuZK8aK3N7v7mZ0xsz6ZUxT2QVnDYinJf/bShqaWVxOGv+TD1xyPOeO/0y8UNaZ xII0aPi/34j5wpXIGtytu+x12us9qIBqyTejeNPsCSQoBUBFtVUe3CQPBXt9oHiJ oktvjqozAnwOF+CowWow5HM+4f82zABUp1rfBQMF7BQjrIdG8Y2DgvNZ0wfdoaks YQUlwBXuzZn+Zjrul6QBjZ2YI046DAL4xsV+NthVlIHtg54dT4WVkDoinjc+fRAL 4Cs7gaRcEWZhUPl+4SlnIfFuJ5vd7bh5F24rIEjJHq7hQ+WEycQWd5Fupmg== 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 48bpybhfwq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 08 Aug 2025 08:49:35 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4b06a73b580so28195651cf.1 for ; Fri, 08 Aug 2025 01:49:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754642974; x=1755247774; 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=erT6FgsYITm4DjrP4oMwIaj7LUTO7TL8wVCRJ8xVJmc=; b=aWZl00Per8tm08lhZ7krmtZqxIq0S8fQg7ihj9ILxcdCpEpKNOJGi+UYTWQ2BvXm9I z1JdnS01GsalAhxRT/jJsp2rbRh08AG22P8hnYDi7G70uLjYWz7pKBJq0awSVBOFS1la ENDoBZLCl9nAJglFE+T4cjeVOQoWwxDhZmgMxuvR3wKyqTzprqsIYvpV3eRNs8vNiNFp Z5py68Xuv4wGrejz7Bbe1nek2nBRQrkeDN6JoJNYleZ6ll7PhLhNSe5iLXedMjCbqReU oCdpzl+r0b8hyhu1Rmj7nRQqNG7fLWoWE3JWeSQJ4wBVGDQWyIGXwR2KKGMEwhnIdYFh g+xA== X-Forwarded-Encrypted: i=1; AJvYcCU4v43AaZOHJUcqKXDpYdna3COXeGh1PlbDSwa3A7IB5qKborWYYYYjGL6R1g+k69ek5NJp8hVWBds0Ibo=@vger.kernel.org X-Gm-Message-State: AOJu0YxBekvihUmGi3A6Vq5eCeOwYROlg5ZcOFbQAunFkH3r2VDWsEBi GS5ERe4xMTqltRmW+0YkWn5auqXXWgWg7QECeWFPnDkSqcNeOSS+odN5gjaVYZAomGQGqMOLOLQ tBgMGvcD0+sv/dTWsiyHGZWQthvLD1ljjcNGudMmg3Wa/l8XlLiguTxpKayqalEkQ6QA= X-Gm-Gg: ASbGncvb1rDMkFAWDzo9gHozuBXEpw8NVyO1tJGR+LMkpbkG/P/J2qVAbQh4czrAha+ PHuXb4zOrbT3lTVUKKZRd8p183+YDbrFWgJ1sr5pccvwfYquFRa5H7CgjwVTWQ3wTueyDSIi1bz EGRpOf3f51KuJk7M66spdYDVU9CmXIGRhOc9vnFRDG2veFBVcqhCOa7v/4xlh4Bx23KB1ZZGG28 91uqOIsv2O/4vPVv2H1PS92uDQUNzx7z9vXHdM26FQZYEcOt31AvQKjDAuCW5wu73ead8ovpMEZ udm55aJ1W8/2bBp6dIql60w4ffJw5E1u0FH6jLHFVHeRJzm5uL9eDDFmbTBYbNYQprppvXWDZA1 VeIcKyrp0gxr3 X-Received: by 2002:ac8:5745:0:b0:4af:68f3:4a17 with SMTP id d75a77b69052e-4b0a07ed6d7mr80429351cf.14.1754642973549; Fri, 08 Aug 2025 01:49:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHPw7nEm7fhjBbybDJ5biALJP5oB5fi6bGsDSrnq2DpyxbKivQwTlllkSCdMyltX69WuwfCaA== X-Received: by 2002:ac8:5745:0:b0:4af:68f3:4a17 with SMTP id d75a77b69052e-4b0a07ed6d7mr80429121cf.14.1754642972837; Fri, 08 Aug 2025 01:49:32 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-459e58400f5sm122904295e9.2.2025.08.08.01.49.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 01:49:32 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, dmitry.baryshkov@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org, andersson@kernel.org Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 3/8] media: venus: Add framework support for AR50_LITE video core Date: Fri, 8 Aug 2025 10:49:18 +0200 Message-Id: <20250808084923.1402617-4-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> References: <20250808084923.1402617-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: AW1haW4tMjUwODA2MDAwOSBTYWx0ZWRfX8tflLWqnrgEj 75lO7YHBBwwK5ArhdQOWQwtagI5ZnhFmh6UgCh+mIoYPC4b5Kr7Zbng+RA4OzzOLC/Mzi3K/Oo8 2ROJJb1Jj+XyWO0cW/c3YwE7+2+11GA9rf+uChjacRgfj/gz4YRI655JuQ1zs5RzzNk8ufH9quq 5kV1GK1IlUAKkRI5WMKblWyPhn0wcRVZGan83mi6EbscN4yg6Ivaa2IlZCZtAySo+B49v/szFZX iEbqhBZzfB08x8UeF3Y2dLTPyRDHsW53+dQCeUu04Vlgwt+RqniL0VHKC1p6Dt+/hMakDaTMKTV y4lPF5vl1TXdq4aO5ETydFP0KJLdCUm14QICxD9PrYkdvXGprKMUvGZBXqzrvT8XX4OsodXoo1d atf5aKxU X-Proofpoint-GUID: ICcQEL-cld5kSN4IxFY6iSyIUc6Q9DVu X-Authority-Analysis: v=2.4 cv=EavIQOmC c=1 sm=1 tr=0 ts=6895ba1f cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=Lx8wuK3jDdDcXj4SiTEA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-ORIG-GUID: ICcQEL-cld5kSN4IxFY6iSyIUc6Q9DVu X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-08_02,2025-08-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508060009 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. This commit prepares the framework to enable the AR50_LITE (it does not enable it). Signed-off-by: Jorge Ramirez-Ortiz --- drivers/media/platform/qcom/venus/core.c | 15 ++++++-- drivers/media/platform/qcom/venus/core.h | 5 +++ drivers/media/platform/qcom/venus/firmware.c | 10 ++++++ drivers/media/platform/qcom/venus/firmware.h | 1 + drivers/media/platform/qcom/venus/helpers.c | 12 +++++-- .../media/platform/qcom/venus/hfi_parser.c | 2 +- .../media/platform/qcom/venus/hfi_platform.c | 23 ++++++++----- .../media/platform/qcom/venus/hfi_platform.h | 34 ++++++++++++------- .../platform/qcom/venus/hfi_platform_v4.c | 33 +++++++++++++----- .../platform/qcom/venus/hfi_platform_v6.c | 33 +++++++++++++----- drivers/media/platform/qcom/venus/hfi_venus.c | 25 ++++++++++---- .../media/platform/qcom/venus/hfi_venus_io.h | 4 +++ .../media/platform/qcom/venus/pm_helpers.c | 2 +- 13 files changed, 145 insertions(+), 54 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index f45715c9b222..adc38fbc9d79 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -254,14 +254,19 @@ static int venus_enumerate_codecs(struct venus_core *= core, u32 type) =20 static void venus_assign_register_offsets(struct venus_core *core) { - if (IS_IRIS2(core) || IS_IRIS2_1(core)) { - core->vbif_base =3D core->base + VBIF_BASE; + if (IS_IRIS2(core) || IS_IRIS2_1(core) || IS_AR50_LITE(core)) { core->cpu_base =3D core->base + CPU_BASE_V6; core->cpu_cs_base =3D core->base + CPU_CS_BASE_V6; core->cpu_ic_base =3D core->base + CPU_IC_BASE_V6; core->wrapper_base =3D core->base + WRAPPER_BASE_V6; core->wrapper_tz_base =3D core->base + WRAPPER_TZ_BASE_V6; - core->aon_base =3D core->base + AON_BASE_V6; + if (IS_AR50_LITE(core)) { + core->vbif_base =3D NULL; + core->aon_base =3D NULL; + } else { + core->vbif_base =3D core->base + VBIF_BASE; + core->aon_base =3D core->base + AON_BASE_V6; + } } else { core->vbif_base =3D core->base + VBIF_BASE; core->cpu_base =3D core->base + CPU_BASE; @@ -456,6 +461,10 @@ static int venus_probe(struct platform_device *pdev) if (ret) goto err_firmware_deinit; =20 + ret =3D venus_firmware_cfg(core); + if (ret) + goto err_venus_shutdown; + ret =3D hfi_core_resume(core, true); if (ret) goto err_venus_shutdown; diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index d1f0e9979ba4..ef80a7666597 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -533,6 +533,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 3666675ae298..2483998360f7 100644 --- a/drivers/media/platform/qcom/venus/firmware.c +++ b/drivers/media/platform/qcom/venus/firmware.c @@ -207,6 +207,16 @@ static int venus_shutdown_no_tz(struct venus_core *cor= e) return 0; } =20 +int venus_firmware_cfg(struct venus_core *core) +{ + void __iomem *cpu_cs_base =3D core->cpu_cs_base; + + if (IS_AR50_LITE(core)) + writel(CPU_CS_VCICMD_ARP_OFF, cpu_cs_base + CPU_CS_VCICMD); + + return 0; +} + int venus_boot(struct venus_core *core) { struct device *dev =3D core->dev; diff --git a/drivers/media/platform/qcom/venus/firmware.h b/drivers/media/p= latform/qcom/venus/firmware.h index ead39e3797f0..87e1d922b369 100644 --- a/drivers/media/platform/qcom/venus/firmware.h +++ b/drivers/media/platform/qcom/venus/firmware.h @@ -10,6 +10,7 @@ struct device; int venus_firmware_init(struct venus_core *core); void venus_firmware_deinit(struct venus_core *core); int venus_firmware_check(struct venus_core *core); +int venus_firmware_cfg(struct venus_core *core); int venus_boot(struct venus_core *core); int venus_shutdown(struct venus_core *core); int venus_set_hw_state(struct venus_core *core, bool suspend); diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/pl= atform/qcom/venus/helpers.c index 8295542e1a7c..2e4363f82231 100644 --- a/drivers/media/platform/qcom/venus/helpers.c +++ b/drivers/media/platform/qcom/venus/helpers.c @@ -1715,11 +1715,17 @@ int venus_helper_session_init(struct venus_inst *in= st) if (ret) return ret; =20 - inst->clk_data.vpp_freq =3D hfi_platform_get_codec_vpp_freq(version, code= c, + inst->clk_data.vpp_freq =3D hfi_platform_get_codec_vpp_freq(inst->core, + version, + 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(inst->core, + version, + 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(inst->co= re, + version, + codec, session_type); =20 return 0; diff --git a/drivers/media/platform/qcom/venus/hfi_parser.c b/drivers/media= /platform/qcom/venus/hfi_parser.c index 1b3db2caa99f..92765f9c8873 100644 --- a/drivers/media/platform/qcom/venus/hfi_parser.c +++ b/drivers/media/platform/qcom/venus/hfi_parser.c @@ -282,7 +282,7 @@ static int hfi_platform_parser(struct venus_core *core,= struct venus_inst *inst) return ret; =20 if (plat->capabilities) - caps =3D plat->capabilities(&entries); + caps =3D plat->capabilities(core, &entries); =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..cde7f93045ac 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform.c +++ b/drivers/media/platform/qcom/venus/hfi_platform.c @@ -21,7 +21,9 @@ 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(struct venus_core *core, + enum hfi_version version, u32 codec, + u32 session_type) { const struct hfi_platform *plat; unsigned long freq =3D 0; @@ -31,13 +33,15 @@ 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(core, session_type, codec); =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(struct venus_core *core, + enum hfi_version version, u32 codec, + u32 session_type) { const struct hfi_platform *plat; unsigned long freq =3D 0; @@ -47,13 +51,15 @@ 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(core, session_type, codec); =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(struct venus_core *core, + enum hfi_version version, u32 codec, + u32 session_type) { const struct hfi_platform *plat; unsigned long freq =3D 0; @@ -63,13 +69,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(core, session_type, codec); =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) { const struct hfi_platform *plat; =20 @@ -78,7 +85,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(core, enc_codecs, dec_codecs, count); =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..5e4f8013a6b1 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform.h +++ b/drivers/media/platform/qcom/venus/hfi_platform.h @@ -47,11 +47,16 @@ 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)(struct venus_core *core, + u32 session_type, u32 codec); + unsigned long (*codec_vsp_freq)(struct venus_core *core, + u32 session_type, u32 codec); + unsigned long (*codec_lp_freq)(struct venus_core *core, + u32 session_type, u32 codec); + void (*codecs)(struct venus_core *core, u32 *enc_codecs, + u32 *dec_codecs, u32 *count); + const struct hfi_plat_caps *(*capabilities)(struct venus_core *core, + unsigned int *entries); int (*bufreq)(struct hfi_plat_buffers_params *params, u32 session_type, u32 buftype, struct hfi_buffer_requirements *bufreq); }; @@ -60,12 +65,15 @@ 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); -int hfi_platform_get_codecs(struct venus_core *core, u32 *enc_codecs, u32 = *dec_codecs, - u32 *count); +unsigned long hfi_platform_get_codec_vpp_freq(struct venus_core *core, + enum hfi_version version, + u32 codec, u32 session_type); +unsigned long hfi_platform_get_codec_vsp_freq(struct venus_core *core, + enum hfi_version version, + u32 codec, u32 session_type); +unsigned long hfi_platform_get_codec_lp_freq(struct venus_core *core, + enum hfi_version version, + u32 codec, u32 session_type); +int hfi_platform_get_codecs(struct venus_core *core, u32 *enc_codecs, + u32 *dec_codecs, u32 *count); #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..41e4dc28ec1b 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform_v4.c +++ b/drivers/media/platform/qcom/venus/hfi_platform_v4.c @@ -2,6 +2,7 @@ /* * Copyright (c) 2020, The Linux Foundation. All rights reserved. */ +#include "core.h" #include "hfi_platform.h" =20 static const struct hfi_plat_caps caps[] =3D { @@ -245,14 +246,22 @@ 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(struct venus_core *cor= e, + unsigned int *entries) { + if (is_lite(core)) + return NULL; + *entries =3D ARRAY_SIZE(caps); return caps; } =20 -static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count) +static void get_codecs(struct venus_core *core, + u32 *enc_codecs, u32 *dec_codecs, u32 *count) { + if (is_lite(core)) + return; + *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 +282,15 @@ 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(struct venus_core *core, u32 session_type, u32 pixfmt) { 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 + if (is_lite(core)) + return NULL; + 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 +301,36 @@ 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(struct venus_core *core, + u32 session_type, u32 codec) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + data =3D get_codec_freq_data(core, session_type, codec); 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(struct venus_core *core, + u32 session_type, u32 codec) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + data =3D get_codec_freq_data(core, session_type, codec); 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(struct venus_core *core, + u32 session_type, u32 codec) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + data =3D get_codec_freq_data(core, session_type, codec); 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..d8568c08cc36 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform_v6.c +++ b/drivers/media/platform/qcom/venus/hfi_platform_v6.c @@ -2,6 +2,7 @@ /* * Copyright (c) 2020, The Linux Foundation. All rights reserved. */ +#include "core.h" #include "hfi_platform.h" =20 static const struct hfi_plat_caps caps[] =3D { @@ -245,14 +246,22 @@ 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(struct venus_core *cor= e, + unsigned int *entries) { + if (is_lite(core)) + return NULL; + *entries =3D ARRAY_SIZE(caps); return caps; } =20 -static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count) +static void get_codecs(struct venus_core *core, u32 *enc_codecs, + u32 *dec_codecs, u32 *count) { + if (is_lite(core)) + return; + *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 +282,15 @@ 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(struct venus_core *core, u32 session_type, u32 pixfmt) { 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 + if (is_lite(core)) + return NULL; + 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 +301,36 @@ 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(struct venus_core *core, u32 session_t= ype, + u32 codec) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + data =3D get_codec_freq_data(core, session_type, codec); 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(struct venus_core *core, u32 session_t= ype, + u32 codec) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + data =3D get_codec_freq_data(core, session_type, codec); 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(struct venus_core *core, u32 session_ty= pe, + u32 codec) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + data =3D get_codec_freq_data(core, session_type, codec); if (data) return data->low_power_freq; =20 diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/= platform/qcom/venus/hfi_venus.c index cec7f5964d3d..d3da35f67fd5 100644 --- a/drivers/media/platform/qcom/venus/hfi_venus.c +++ b/drivers/media/platform/qcom/venus/hfi_venus.c @@ -380,7 +380,7 @@ static void venus_soft_int(struct venus_hfi_device *hde= v) void __iomem *cpu_ic_base =3D hdev->core->cpu_ic_base; u32 clear_bit; =20 - if (IS_V6(hdev->core)) + if (IS_V6(hdev->core) || (IS_V4(hdev->core) && is_lite(hdev->core))) clear_bit =3D BIT(CPU_IC_SOFTINT_H2A_SHIFT_V6); else clear_bit =3D BIT(CPU_IC_SOFTINT_H2A_SHIFT); @@ -501,9 +501,11 @@ static int venus_boot_core(struct venus_hfi_device *hd= ev) if (count >=3D max_tries) ret =3D -ETIMEDOUT; =20 - if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) { + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core) || IS_AR50_LITE(hdev->= core)) { writel(0x1, cpu_cs_base + CPU_CS_H2XSOFTINTEN_V6); - writel(0x0, cpu_cs_base + CPU_CS_X2RPMH_V6); + + if (!IS_AR50_LITE(hdev->core)) + writel(0x0, cpu_cs_base + CPU_CS_X2RPMH_V6); } =20 return ret; @@ -569,6 +571,9 @@ static int venus_halt_axi(struct venus_hfi_device *hdev) u32 mask_val; int ret; =20 + if (IS_AR50_LITE(hdev->core)) + return 0; + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) { writel(0x3, cpu_cs_base + CPU_CS_X2RPMH_V6); =20 @@ -1138,7 +1143,13 @@ static irqreturn_t venus_isr(struct venus_core *core) wrapper_base =3D hdev->core->wrapper_base; =20 status =3D readl(wrapper_base + WRAPPER_INTR_STATUS); - if (IS_IRIS2(core) || IS_IRIS2_1(core)) { + + if (IS_AR50_LITE(core)) { + if (status & WRAPPER_INTR_STATUS_A2H_MASK || + status & WRAPPER_INTR_STATUS_A2HWD_MASK_V4_LITE || + status & CPU_CS_SCIACMDARG0_INIT_IDLE_MSG_MASK) + hdev->irq_status =3D status; + } else if (IS_IRIS2(core) || IS_IRIS2_1(core)) { if (status & WRAPPER_INTR_STATUS_A2H_MASK || status & WRAPPER_INTR_STATUS_A2HWD_MASK_V6 || status & CPU_CS_SCIACMDARG0_INIT_IDLE_MSG_MASK) @@ -1150,7 +1161,7 @@ static irqreturn_t venus_isr(struct venus_core *core) hdev->irq_status =3D status; } writel(1, cpu_cs_base + CPU_CS_A2HSOFTINTCLR); - if (!(IS_IRIS2(core) || IS_IRIS2_1(core))) + if (!(IS_IRIS2(core) || IS_IRIS2_1(core) || IS_AR50_LITE(core))) writel(status, wrapper_base + WRAPPER_INTR_CLEAR); =20 return IRQ_WAKE_THREAD; @@ -1535,7 +1546,7 @@ static bool venus_cpu_and_video_core_idle(struct venu= s_hfi_device *hdev) void __iomem *cpu_cs_base =3D hdev->core->cpu_cs_base; u32 ctrl_status, cpu_status; =20 - if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core) || IS_AR50_LITE(hdev->= core)) cpu_status =3D readl(wrapper_tz_base + WRAPPER_TZ_CPU_STATUS_V6); else cpu_status =3D readl(wrapper_base + WRAPPER_CPU_STATUS); @@ -1555,7 +1566,7 @@ static bool venus_cpu_idle_and_pc_ready(struct venus_= hfi_device *hdev) void __iomem *cpu_cs_base =3D hdev->core->cpu_cs_base; u32 ctrl_status, cpu_status; =20 - if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core) || IS_AR50_LITE(hdev->= core)) cpu_status =3D readl(wrapper_tz_base + WRAPPER_TZ_CPU_STATUS_V6); else cpu_status =3D readl(wrapper_base + WRAPPER_CPU_STATUS); diff --git a/drivers/media/platform/qcom/venus/hfi_venus_io.h b/drivers/med= ia/platform/qcom/venus/hfi_venus_io.h index 9735a246ce36..f2c3064c44ae 100644 --- a/drivers/media/platform/qcom/venus/hfi_venus_io.h +++ b/drivers/media/platform/qcom/venus/hfi_venus_io.h @@ -51,6 +51,9 @@ /* Venus cpu */ #define CPU_CS_SCIACMDARG3 0x58 =20 +#define CPU_CS_VCICMD 0x20 +#define CPU_CS_VCICMD_ARP_OFF BIT(0) + #define SFR_ADDR 0x5c #define MMAP_ADDR 0x60 #define UC_REGION_ADDR 0x64 @@ -100,6 +103,7 @@ #define WRAPPER_INTR_MASK_A2HCPU_MASK 0x4 #define WRAPPER_INTR_MASK_A2HCPU_SHIFT 0x2 =20 +#define WRAPPER_INTR_STATUS_A2HWD_MASK_V4_LITE 0x10 #define WRAPPER_INTR_STATUS_A2HWD_MASK_V6 0x8 #define WRAPPER_INTR_MASK_A2HWD_BASK_V6 0x8 =20 diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 8dd5a9b0d060..e09b0d9ae610 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -51,7 +51,7 @@ static int core_clks_enable(struct venus_core *core) dev_pm_opp_put(opp); =20 for (i =3D 0; i < res->clks_num; i++) { - if (IS_V6(core)) { + if (IS_V6(core) || (IS_V4(core) && is_lite(core))) { ret =3D clk_set_rate(core->clks[i], freq); if (ret) goto err; --=20 2.34.1 From nobody Sun Oct 5 05:26:31 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 E2B0F269CF1 for ; Fri, 8 Aug 2025 08:49:36 +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=1754642979; cv=none; b=BNU3d9L+B/zWka8XXv0utVKeZiPNGl3IhYuf2Ck6vk/LRqMKF0ZcIJI7utZCdd0+ZGyPDzqLokegj8yFPgM9K4Jy6u4O5Wsg4uvBlacWUWQAWyMtiP6wD9SD75lUWgboj9/BYwuCHOIgD7lxul7X4/frkV+HfPyEk5f7Mfqh+Bo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642979; c=relaxed/simple; bh=FtWYDAMOlWVU0crHFdMahYI4RjWy3ODiKstnWl20Nm0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oWucYJ9uGefTPIDKeq6vC2F+M/dlgmypwWn+X9ouisrcmf0RTePm2Hat75I2QzWBoJWDKeMkDEUTfapHmrwPRHtI1chOZIdYys61jryYMTjQtHCI0Qg1NBQYgX7zlLtLtmx8k59Ny3a9OfcIBDZdwVW5GL4SdBdNFN+h5WXczfs= 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=MW00mbaI; 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="MW00mbaI" 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 5787gN8E025440 for ; Fri, 8 Aug 2025 08:49:36 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=oetjbHkX7aV XhgJ0UsOWKuwMK/u2+TJ1KQ2EO3IYymM=; b=MW00mbaIr+Yqu571O2VQ7PqahAm y0YzXPqb5nwv+hO49T4VHdyEVTmaV6a9hha6dgWEO1yJJY+uq7KzuLSBSN2hMXiW rSQS5y/Yc1Hr7eCXuAzWlGaXne8U+Y4gP1CNpAGly+5WrSsgYPpZdFX0VlBd01Me l/u6HY9EwVzm5ZkOpbBv2oPy+austn1hpwwwjtjwrXm9EZpyKZuWIo5NBXbVrLPr 43vbY2CALlqZlxmb5jRXzpLJEOs7YbRCaT6HDnTVT/m1wuJTT62d/mYr1pUYy2Eo YSSB8tTNICPcqYHOwbcd8UxC3nLUlTp4p85bmDN2fONHEOqrKXfWMrfyp+w== 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 48bpw1h8j7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 08 Aug 2025 08:49:35 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4b067bc2884so20610451cf.3 for ; Fri, 08 Aug 2025 01:49:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754642975; x=1755247775; 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=oetjbHkX7aVXhgJ0UsOWKuwMK/u2+TJ1KQ2EO3IYymM=; b=XZQ+Gu6XBubG2Q+6EVwO4gqlkPU6L3eG2ilgrZse+2+ifrZAkaJq7wZMfy/yPN2c4x WjmQ/L9PgisHhO8po82xuydxZYDJJvNOPz2+MnQ1Czo2cgSsdMYdIcy1GFiE/f2Iu578 C8gKDcdWbXIyl4Z83/S03nngk8jfWt1fiZY3dhNIIl0gMu1s/VFhOUTzHOiGzxv8JUvB kqhbpklVyp2/EgNgc05YGkyp31x5F+rFPZl6lSevrlRj7T82oXdabD3ND5bbxc9Eg54c vX/lkslNNdj3vGvxeYzIxnQZUqZtMyk2eeWrhjxKQPc4u6FuhT3l/+gyZlBYDjQBTzvl QAdg== X-Forwarded-Encrypted: i=1; AJvYcCVAIL6ucKZUCjJPZKg2HYCgt7XTBRYQzr7Y7/RoD6NtrlHD3GX+vAm8WmmQSMjmMFCsNPvkKfLDLzzR4ng=@vger.kernel.org X-Gm-Message-State: AOJu0Yzt8oiJI8Ui2kAH4sSpa0nTD+oMxgKfpjpMhU+fVZzMP9WCa5XC 9kC6SOUwZwxbwdnQcXd27SVQ9pK7SB+rszTyi0b8o1E8QamFeT6WC31tcKVI1+UoUDXYZUyQ0nl PtmRd8Fv7KzvNn/sX41lXV1/cZwHHAy3HgshE3mVBLlBWQJx2qTxam2HlHRQVV/HnsAw= X-Gm-Gg: ASbGnctz870CSiMikvor7j+pAurOVsdgMoZfqIrG6tKkPCw2XzDTAoKwmy/e7SkVuTU 0LRGgaypOD2IUh2k0bAxLYQmD583Rl7r6RJm8Hakh6oii/OOaAzp+30YDfVlSwXT4NYEmnM6AYE dEjnwE8NgAK6zT22mCxddRROMwg/E8ik5QLRle/v610uIH00XKhP46PBNXDx4N68j/XHsv0FPvA AjmN4eueihBoFPVGnZdqwPHc0HUevOPM0ZEDCwagwRlUdi/MKAWUNykfl/Zb76p2OmDXgD+zALz oO0B3HplN8f2xKePXVVLQt0R+XAoQD68ewZomBnSCd5DBhDoEbe6cqlF/ucrOrXHxcLWTvgaLZm XJalwYF57op1d X-Received: by 2002:a05:622a:5815:b0:4b0:8e2e:fd9b with SMTP id d75a77b69052e-4b0aedd84acmr31136041cf.28.1754642974744; Fri, 08 Aug 2025 01:49:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFI4MrquLJrQpX3UAqdyaQaMdkJfnmZMvfNJszj1YElkRqKNt1Eh8t53qwcEjZvzsfUBzLZ1Q== X-Received: by 2002:a05:622a:5815:b0:4b0:8e2e:fd9b with SMTP id d75a77b69052e-4b0aedd84acmr31135741cf.28.1754642974215; Fri, 08 Aug 2025 01:49:34 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-459e58400f5sm122904295e9.2.2025.08.08.01.49.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 01:49:33 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, dmitry.baryshkov@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org, andersson@kernel.org Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 4/8] media: venus: hfi_plat_v4: Add capabilities for the 4XX lite core Date: Fri, 8 Aug 2025 10:49:19 +0200 Message-Id: <20250808084923.1402617-5-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> References: <20250808084923.1402617-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: AW1haW4tMjUwODA2MDAwOSBTYWx0ZWRfX28ZpqUsBiZO/ eU1mFMwhhgNL0NqX2yzlM5EoFvkSK6mcyhGaWBg0ZIR6SL9shBaFbsH7B5wW0wbs6B5cPwnDtGH EncG1AXrIVnS9rb8xKy/kNZZhyZK35NqjU2ca24feZuKzcJQUj9A9sQM8ZLjUTFpsjRvc9JUydH 90YGggdj//2p0NiHMvzB8fGcibk/W3k7bnDy9nJMnIu2mrQbft+Qr/ikQufXV5OZQa/oVo+UbIY uZwoVD1vXLJqujdyVCsVb8aXuqwNvbXMu4GB3SevLDV6xA8x/BiE32Jsz3bO10hIVJh1L3MQp0j 1G//wppJs7Y6dIFmknxrziefdziQZTxXMiwoh25GwEacClQceDN7VUSp2/Wz3iDx+Gd/TKjphHP VTDTnGtS X-Authority-Analysis: v=2.4 cv=Ha4UTjE8 c=1 sm=1 tr=0 ts=6895ba1f cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=FQp2d-uGNuPOlmPgRbUA:9 a=a_PwQJl-kcHnX1M80qC6:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: XWJJyP68VXHZOaW63rWyKOSa-PBpmYJ4 X-Proofpoint-GUID: XWJJyP68VXHZOaW63rWyKOSa-PBpmYJ4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-08_02,2025-08-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508060009 Content-Type: text/plain; charset="utf-8" Populate the HFI v4 lite capability set used by the AR50_LITE video core. These capabilities define the supported codec formats and operational limits specific to this streamlined VPU variant. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Bryan O'Donoghue --- .../platform/qcom/venus/hfi_platform_v4.c | 167 ++++++++++++++++-- 1 file changed, 151 insertions(+), 16 deletions(-) diff --git a/drivers/media/platform/qcom/venus/hfi_platform_v4.c b/drivers/= media/platform/qcom/venus/hfi_platform_v4.c index 41e4dc28ec1b..cda888b56b5d 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform_v4.c +++ b/drivers/media/platform/qcom/venus/hfi_platform_v4.c @@ -246,28 +246,150 @@ static const struct hfi_plat_caps caps[] =3D { .num_fmts =3D 4, } }; =20 +static const struct hfi_plat_caps caps_lite[] =3D { +{ + .codec =3D HFI_VIDEO_CODEC_H264, + .domain =3D VIDC_SESSION_TYPE_DEC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .num_caps =3D 7, + .pl[0] =3D { HFI_H264_PROFILE_BASELINE, HFI_H264_LEVEL_5}, + .pl[1] =3D {HFI_H264_PROFILE_MAIN, HFI_H264_LEVEL_5}, + .pl[2] =3D {HFI_H264_PROFILE_HIGH, HFI_H264_LEVEL_5}, + .pl[3] =3D {HFI_H264_PROFILE_CONSTRAINED_BASE, HFI_H264_LEVEL_5}, + .pl[4] =3D {HFI_H264_PROFILE_CONSTRAINED_HIGH, HFI_H264_LEVEL_5}, + .num_pl =3D 5, + .fmts[0] =3D {HFI_BUFFER_OUTPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[1] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[2] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12}, + .fmts[3] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV21}, + .num_fmts =3D 4, +}, { + .codec =3D HFI_VIDEO_CODEC_HEVC, + .domain =3D VIDC_SESSION_TYPE_DEC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .num_caps =3D 7, + .pl[0] =3D {HFI_HEVC_PROFILE_MAIN, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIGH0= << 28 }, + .pl[1] =3D {HFI_HEVC_PROFILE_MAIN10, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIG= H0 << 28 }, + .num_pl =3D 2, + .fmts[0] =3D {HFI_BUFFER_OUTPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[1] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[2] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12}, + .fmts[3] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV21}, + .num_fmts =3D 4, +}, { + .codec =3D HFI_VIDEO_CODEC_VP9, + .domain =3D VIDC_SESSION_TYPE_DEC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .num_caps =3D 7, + .pl[0] =3D {HFI_VP9_PROFILE_P0, 200}, + .pl[1] =3D {HFI_VP9_PROFILE_P2_10B, 200}, + .num_pl =3D 2, + .fmts[0] =3D {HFI_BUFFER_OUTPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[1] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[2] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12}, + .fmts[3] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV21}, + .num_fmts =3D 4, +}, { + .codec =3D HFI_VIDEO_CODEC_H264, + .domain =3D VIDC_SESSION_TYPE_ENC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .caps[7] =3D {HFI_CAPABILITY_HIER_P_NUM_ENH_LAYERS, 0, 6, 1}, + .caps[8] =3D {HFI_CAPABILITY_ENC_LTR_COUNT, 0, 4, 1}, + .caps[9] =3D {HFI_CAPABILITY_MBS_PER_SECOND_POWERSAVE, 0, 244800, 1}, + .caps[10] =3D {HFI_CAPABILITY_I_FRAME_QP, 0, 51, 1}, + .caps[11] =3D {HFI_CAPABILITY_P_FRAME_QP, 0, 51, 1}, + .caps[12] =3D {HFI_CAPABILITY_B_FRAME_QP, 0, 51, 1}, + .caps[13] =3D {HFI_CAPABILITY_SLICE_BYTE, 1, 10, 1}, + .caps[14] =3D {HFI_CAPABILITY_SLICE_MB, 1, 10, 1}, + .num_caps =3D 15, + .pl[0] =3D {HFI_H264_PROFILE_BASELINE, HFI_H264_LEVEL_5}, + .pl[1] =3D {HFI_H264_PROFILE_MAIN, HFI_H264_LEVEL_5}, + .pl[2] =3D {HFI_H264_PROFILE_HIGH, HFI_H264_LEVEL_5}, + .pl[3] =3D {HFI_H264_PROFILE_CONSTRAINED_BASE, HFI_H264_LEVEL_5}, + .pl[4] =3D {HFI_H264_PROFILE_CONSTRAINED_HIGH, HFI_H264_LEVEL_5}, + .num_pl =3D 5, + .fmts[0] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12}, + .fmts[1] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .num_fmts =3D 2, +}, { + .codec =3D HFI_VIDEO_CODEC_HEVC, + .domain =3D VIDC_SESSION_TYPE_ENC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .caps[7] =3D {HFI_CAPABILITY_HIER_P_NUM_ENH_LAYERS, 0, 6, 1}, + .caps[8] =3D {HFI_CAPABILITY_ENC_LTR_COUNT, 0, 4, 1}, + .caps[9] =3D {HFI_CAPABILITY_MBS_PER_SECOND_POWERSAVE, 0, 244800, 1}, + .caps[10] =3D {HFI_CAPABILITY_I_FRAME_QP, 0, 51, 1}, + .caps[11] =3D {HFI_CAPABILITY_P_FRAME_QP, 0, 51, 1}, + .caps[12] =3D {HFI_CAPABILITY_B_FRAME_QP, 0, 51, 1}, + .caps[13] =3D {HFI_CAPABILITY_SLICE_BYTE, 1, 10, 1}, + .caps[14] =3D {HFI_CAPABILITY_SLICE_MB, 1, 10, 1}, + .num_caps =3D 15, + .pl[0] =3D {HFI_HEVC_PROFILE_MAIN, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIGH0= }, + .pl[1] =3D {HFI_HEVC_PROFILE_MAIN10, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIG= H0}, + .num_pl =3D 2, + .fmts[0] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12}, + .fmts[1] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .num_fmts =3D 2, +} }; + static const struct hfi_plat_caps *get_capabilities(struct venus_core *cor= e, unsigned int *entries) { - if (is_lite(core)) - return NULL; + *entries =3D is_lite(core) ? ARRAY_SIZE(caps_lite) : ARRAY_SIZE(caps); =20 - *entries =3D ARRAY_SIZE(caps); - return caps; + return is_lite(core) ? caps_lite : caps; } =20 static void get_codecs(struct venus_core *core, u32 *enc_codecs, u32 *dec_codecs, u32 *count) { - if (is_lite(core)) - return; + const struct hfi_plat_caps *caps; + unsigned int num; + size_t i; + + *enc_codecs =3D 0; + *dec_codecs =3D 0; + + caps =3D get_capabilities(core, &num); =20 - *enc_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | - HFI_VIDEO_CODEC_VP8; - *dec_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | - HFI_VIDEO_CODEC_VP8 | HFI_VIDEO_CODEC_VP9 | - HFI_VIDEO_CODEC_MPEG2; - *count =3D 8; + for (i =3D 0; i < num; caps++, i++) { + if (caps->domain =3D=3D VIDC_SESSION_TYPE_ENC) + *enc_codecs |=3D caps->codec; + else + *dec_codecs |=3D caps->codec; + } + + *count =3D num; } =20 static const struct hfi_platform_codec_freq_data codec_freq_data[] =3D { @@ -281,15 +403,28 @@ static const struct hfi_platform_codec_freq_data code= c_freq_data[] =3D { { V4L2_PIX_FMT_VP9, VIDC_SESSION_TYPE_DEC, 200, 10, 200 }, }; =20 +static const struct hfi_platform_codec_freq_data codec_freq_data_lite[] = =3D { + { V4L2_PIX_FMT_H264, VIDC_SESSION_TYPE_DEC, 440, 0, 440 }, + { V4L2_PIX_FMT_HEVC, VIDC_SESSION_TYPE_DEC, 440, 0, 440 }, + { V4L2_PIX_FMT_VP9, VIDC_SESSION_TYPE_DEC, 440, 0, 440 }, + { V4L2_PIX_FMT_H264, VIDC_SESSION_TYPE_ENC, 675, 0, 675 }, + { V4L2_PIX_FMT_HEVC, VIDC_SESSION_TYPE_ENC, 675, 0, 675 }, +}; + static const struct hfi_platform_codec_freq_data * get_codec_freq_data(struct venus_core *core, u32 session_type, u32 pixfmt) { - const struct hfi_platform_codec_freq_data *data =3D codec_freq_data; - unsigned int i, data_size =3D ARRAY_SIZE(codec_freq_data); + const struct hfi_platform_codec_freq_data *data; + unsigned int i, data_size; const struct hfi_platform_codec_freq_data *found =3D NULL; =20 - if (is_lite(core)) - return NULL; + if (is_lite(core)) { + data =3D codec_freq_data_lite; + data_size =3D ARRAY_SIZE(codec_freq_data_lite); + } else { + data =3D codec_freq_data; + data_size =3D ARRAY_SIZE(codec_freq_data); + } =20 for (i =3D 0; i < data_size; i++) { if (data[i].pixfmt =3D=3D pixfmt && data[i].session_type =3D=3D session_= type) { --=20 2.34.1 From nobody Sun Oct 5 05:26:31 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6EB7C26AAAA for ; Fri, 8 Aug 2025 08:49:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642980; cv=none; b=An40Wd/WiIlEz1cwKsXIb6RsPbVk0nUc4WWmHCVIQzQx3LtlyVB0URcdvy6uQcrle8tARSy/PhdylTRaQmRSz31N/QvNLd9CNWhXcf9GJUB30KYnns/Dg+oU+ogCb9wNcKHMYXUgTwd3IxPqmQIO3SMQXX6DQ/V71GGaCkLu1bQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642980; c=relaxed/simple; bh=n+vg5ydQ7X4wyVt0+s72ttQVBKiwA0hDbAZIqS23E6A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=f8Gw6Wf6/1nlVpIB01PocqgsjRi+40w/ovY+nKG+ChAuxEEnTrB27E65XD29NW2osEmiqvr5lanMQqNEapL56o9JgRi79s5coumHY5trELrT7nkhl1/b6Rdb2JOZKl7w/nCKtsPHDV/Q5dCDpdeQcQdxgBHkumukPTIGJ876iGg= 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=MQ6xq7VP; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="MQ6xq7VP" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57878ASq007665 for ; Fri, 8 Aug 2025 08:49:37 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=MPC6xd2VF/s mOBIHZ6B9pOI38D2n59UvsoeVG2Ya7rA=; b=MQ6xq7VP0qVp8a3aHVrsXHpeSC2 n/ONq5QtvuUvgXqL/uQZDui2TuybsWCTaWNRN1WGIrWD3otA6w1Qmhjfolm+C+w1 S9hnR4bVbA7addlaRPVoDxv50xnGUGQ1GxF4sYBvaa1ZzpGQH+9nUWhKy1+y6Zjl pCTJL+QuCpywIgzI17m43qB/A62565S2Shh0ECWr/8AulK1u2LLfLxbeNRCmKiJD ver+eak2caDg8ln/6EUENJpRUGYfbGO3gth14hkFfjVpABzsMtk1WQD2+UisrdrH 6ddDK4ihbVUEFB1u2yarCL0XFreFmgMsKtxdCgXm4018g1eEuqpoMWU3QZA== 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 48c8u26csr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 08 Aug 2025 08:49:37 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4aedcff08fdso36036941cf.2 for ; Fri, 08 Aug 2025 01:49:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754642976; x=1755247776; 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=MPC6xd2VF/smOBIHZ6B9pOI38D2n59UvsoeVG2Ya7rA=; b=WNfJd+Pkd6w8xMPV10PQkB8hq1dp4DzZXfj0PDginmjzPAZVwOGy+DKO0T4DhsDOd1 S2s4X06dCPeSvJft43YKRZbEiQHLALeI7VKeAqBpqe/LLntwhzRoDIb1NsmhlzXrz6rm z5wX6m2RERwuJqKut30Wt+jrPdO91C++e//gsKT4d0po0AfXkxr5xRdeyFrqpJZuNgYk lAgfWCdfOhFdRhsCyCWN0tJbxj3C1iK7MdqGEVphg/WzDRcscztbsQhGFFDy0NY5Gac8 BFqNGXnX6dI8ThRlZ4RDRz+452EYvsIBH569kaH/Y+Q8FPv80bM9mctYs9z6yiuF08vJ 7B/w== X-Forwarded-Encrypted: i=1; AJvYcCV2If0z+F7t+R9/txlyAqEQwV8mVglv3+36Ww0FCWO2YM6/wkf7MWSagCqlaIOlwealxLZmjaaOKNS9RFA=@vger.kernel.org X-Gm-Message-State: AOJu0YxI+uqDfQmpYR9Cm/jJ/qTwTY4BGglX/ZD1+A8LdumUt1mmW0PW vT6YZKOMJ3wzsEr3kTGY7fGBZ+umIq/+BYVBr+o/kUuGoQyhJc69tTu921dlDPkeyKCxxaEL7LL 96aUqrKixUOy372GOOjbkvlID4PWrnX/X3WAqHbTWaxweeiCb86gdwpK5G9AA0dPVstU= X-Gm-Gg: ASbGncuRjorU2qDdJU3WXZHlXmYYzxFhnqWxcN/oQEv1Xv+mGe5gLZUF1mNtGrR2JcU vDCM1bPy/Iwb5vCnLezb0SMV6gyG+5HY7kOZafkptg+gOXmvN6HOM3ZDVQB9WHoH6qk13656O0t p8aJYSASMgc00se+nfrWr/xHtaZqUZm2NJtljZfCAMx2phnoVHCAn7o+iDm3X7zGV04mdFQWYLS BofE3GHmyjbmJPvYufC+VivnSocyWcdVts4Ncct3NoNh3kwRpOf6jesaSmNuvIfw7XLLsbviBDW R9olQVOHrnKTzBV+Vd8RaondjgyvSs+K/Q2JTCPgPMOckpQhY11mcq7/h/GfKdPYIFZyMj3aPFu VL6rLV2I8wlVv X-Received: by 2002:ac8:7dc2:0:b0:4af:575c:cc39 with SMTP id d75a77b69052e-4b0aed0ccc6mr26657461cf.1.1754642976218; Fri, 08 Aug 2025 01:49:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFPT5L9K1ndC4Lc0SocEjGMvLrP4Jtf9+LLMfgbO89C12Q1EWLhMTp/PQ5tpPfbopMSvLhQeg== X-Received: by 2002:ac8:7dc2:0:b0:4af:575c:cc39 with SMTP id d75a77b69052e-4b0aed0ccc6mr26657281cf.1.1754642975732; Fri, 08 Aug 2025 01:49:35 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-459e58400f5sm122904295e9.2.2025.08.08.01.49.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 01:49:35 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, dmitry.baryshkov@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org, andersson@kernel.org Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 5/8] media: venus: core: Sort dt_match alphabetically. Date: Fri, 8 Aug 2025 10:49:20 +0200 Message-Id: <20250808084923.1402617-6-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> References: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: o4iur1vKGSbdGz9WTyrQ3nred9M2nJYD X-Authority-Analysis: v=2.4 cv=Q/TS452a c=1 sm=1 tr=0 ts=6895ba21 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=tkZEzfabOtbtaFzRxSIA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-ORIG-GUID: o4iur1vKGSbdGz9WTyrQ3nred9M2nJYD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA2MDA5MCBTYWx0ZWRfX0T9XJ096ozy8 1hslwACGAXGhcJPdcJubmQEHjEIUNqUz1QToyw6o4Wo9fV+KM/8vsXBRzn45HBgmnREjdibzVnu uRdQt5crFADATeztt4ELO0DTwpTWG1rXiIvw9RCNcyyqO02O66uT9lAjU+Szr9RMECxwI1TvTod nPbtJPHcNObfFe1+WoiRYV9qt5TltxKkAnR1lSp3AUvdPxO60QtiYNZpVN05Z0ncSebEHH9bolU fEUVuODlkjegpJC26h9hWt1dItXJ5VMlJ6tC27Ro0nSRnInWoWib4c2VmyzPtwAIPTTGpop9Yr1 us/Vxt/q6ussTwbJIOhPnyzNRKWBkGVglrbDk/XsKeBgFwTtoA+Yb7d+P6uGK2nwQdfbG2cUP3w Lt3YlFZa X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-08_02,2025-08-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 clxscore=1015 suspectscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508060090 Content-Type: text/plain; charset="utf-8" From: Jorge Ramirez-Ortiz Correctly sort the array of venus_dt_match entries. Signed-off-by: Jorge Ramirez-Ortiz --- drivers/media/platform/qcom/venus/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index adc38fbc9d79..9604a7eed49d 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -1074,11 +1074,11 @@ 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, }, { .compatible =3D "qcom,msm8998-venus", .data =3D &msm8998_res, }, + { .compatible =3D "qcom,sc7180-venus", .data =3D &sc7180_res, }, + { .compatible =3D "qcom,sc7280-venus", .data =3D &sc7280_res, }, { .compatible =3D "qcom,sdm660-venus", .data =3D &sdm660_res, }, { .compatible =3D "qcom,sdm845-venus", .data =3D &sdm845_res, }, { .compatible =3D "qcom,sdm845-venus-v2", .data =3D &sdm845_res_v2, }, - { .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, }, { } }; --=20 2.34.1 From nobody Sun Oct 5 05:26:31 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 BFF08269D18 for ; Fri, 8 Aug 2025 08:49:39 +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=1754642982; cv=none; b=seXNm+1p0h16VhaWA59x0c8A0jyblN0DgDSlImcvmYLic0mnO3/ZhTmDpJM2qIDmD8nVTlWDVQ8FyNTEph22qDdfgXfxSmnbLzYROafCaFQD+Gi8v+HFJQUv6v2Vsp/bt4UGNo5SZouHe25Jr7wq47qUc295nrm/Xr6+btUUXt8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642982; c=relaxed/simple; bh=dARtMRs88U+SkvksFaX/4ibKTv2r3ZxeZPWci1xWpd0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=b0KrWhkFSAL/ZpL1rJEEkHhZnfOB4YzTMbhSUPkrpBltgHNQ7bmx21c4QJ5/zY3grcHUcV9i7ChyAvxIvG/94Hvlsb6sS47k5kDmRFCYTsBPrkxaJ+4E896uEPvzLWFIVIT0Twi4/hJVJAzMRRuJMLJ+DgNpm3xKmnXLDHUH6P4= 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=gRkfAeS6; 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="gRkfAeS6" 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 578201pG015910 for ; Fri, 8 Aug 2025 08:49:38 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=gdpKkg3HGmZ RyeizFHxrsWvpDDfvGRJLvLm05RIe+XY=; b=gRkfAeS6fKgZ+079cxiajdKtR7E cqqqzmmVU2wbqOSqLc4mvErqanRsZIniYGBqzoL4Rt5LBiT5CdCvjJjaqZY3RU8c up0Vd5LqUWkthe+Qa26I+Aqr+WrxThywiuNGByhIcvqbDTLTY3+DoB6kOvSEUiT1 YF7KvbuOAwVz6ACSnYhIyocfKr7fvsctN7oZXI/mfSSbxOQ9uCJwuz7+BtrsvX3O a2iiYT9LEKgehAWl/OP1+vKj37BBdAyZNYOAbixarYqYcyeJb+MdhAiBoOCU2Olg 57V4Tz74sZaMERJNqyyBPIJbB6UDbOCeLZnuwFcpCsC3CQRbAi60USlCMwA== 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 48bpw1h8jk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 08 Aug 2025 08:49:38 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4af199d0facso55178161cf.0 for ; Fri, 08 Aug 2025 01:49:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754642978; x=1755247778; 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=gdpKkg3HGmZRyeizFHxrsWvpDDfvGRJLvLm05RIe+XY=; b=VGNxiET8m7nS9veGBZoQyg/DyKGfaFnRYjJK4TVR0QvRIL3eX9JHC2QN5GHzTrY6As z6qM2uOSbpqTRsljxk0yxSXaPPaMNmE7MQ0CnyDqTWEg/l88pQWZo3WUz9DCfbhLKXKf DWwAJkX5qmh/DaKew5DTTx834xXiU5LP98JCGIXlwjn79LOytJKk4fRhorIjxB2OR0xA n1Hntp/bfW9XsoyFqaim2sBf3o56B1uX9kdNvOiYS+KVQCSfEmISbn3pD1FbD2X+S7D+ 9t3ooEMLkagHGgTtb3eKp7DHX3jFOUpFpWfuVqEnpCP7GVhJq0nsVyfGJ4unftny2s2L bfUg== X-Forwarded-Encrypted: i=1; AJvYcCX86U3aHQiy+NRdyXRk31g2+9gv2qlvA0tXr953Z0HbExrPPD3wjxdK/wKvBfQeZU9PQ2zj15h041Eq/8U=@vger.kernel.org X-Gm-Message-State: AOJu0YzA1aZ47jBdZSA4Ij539pUzLpJb97T3Bwat1w3O+JSrsro9UUeU JbjsX61abEwUuLL9m7Z5RSoAhDEyyPYMOZViVsGsNlR1ALDNjgDjGM1LEDGkDD8p9Dhb91GtArq zOaOJw/33qqB1OTw/02+bDx/w1RNTWA4sitKYkav6nqHIps1oIkw/2/mwc/sa6PDAY8s= X-Gm-Gg: ASbGncsSr+A04MPkT85D41WyT+6NmepX6LGU42+IorMGx/+ilvDgAA2xMTSZK2a21TM T6bH9yrPJJpvXMo/UMALVr0ZdRc5IA5cGk5LxdBzgujyOIWGnr/ZlvkmDoqNbiHzUtudn0m04/0 B8m8NPcD3STy088xM+bMce+r5QFUqdb84w7piGZRg+R9wtIU0ZdrON/QjGKzDFXIirLsVGQ3k2t wmd5jjmoWBfaP1qEOO4I9hSON5gtfQvNKVqPVn+5kfL20nJ3if1ioDDtl/bM7/9fHK8eVuAqMS0 deTyv0ylX/7pQG1jaU1tku0CFK5Zr0cdbgpnDHiZDUzHYwQnL++WUamG3VdDPzSoc4qyOJ7p80W cn6zS+Z8nkad5 X-Received: by 2002:ac8:5e4b:0:b0:4b0:7db9:92d7 with SMTP id d75a77b69052e-4b0a06eefbfmr94523691cf.2.1754642977619; Fri, 08 Aug 2025 01:49:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEguep/u/Npa26sKOi/vH/ZjbSdbK+aUw3YEpsOPlBPMGTppeQE2XwHp4/7VlNOhHsDaotKjw== X-Received: by 2002:ac8:5e4b:0:b0:4b0:7db9:92d7 with SMTP id d75a77b69052e-4b0a06eefbfmr94523471cf.2.1754642977131; Fri, 08 Aug 2025 01:49:37 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-459e58400f5sm122904295e9.2.2025.08.08.01.49.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 01:49:36 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, dmitry.baryshkov@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org, andersson@kernel.org Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 6/8] media: venus: core: Add qcm2290 DT compatible and resource data Date: Fri, 8 Aug 2025 10:49:21 +0200 Message-Id: <20250808084923.1402617-7-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> References: <20250808084923.1402617-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: AW1haW4tMjUwODA2MDAwOSBTYWx0ZWRfXw3VHKnz3apM7 jD2mFvvTi7yiyxeaKEhMlOJi7tcgrgXAILIWbnDc9Uxso55eTqqdZOtQLE9EbXq422XjwIDkev7 jTlTI+kOL5U9n6quswlIvPtxiAx8RgibB1oLI9xoB9LvtD1H2Nx3S+rRpidXDati07l6PGMckOW 3TCwX/YaQMOP4382ZPSARyd5nCClRp39m2yoI7pUZYLTnQS1V4ygxSeklTjPSH0J2r+Xys62OJF AfnTMEvfFUmX4sXuZTWowSgOsBMlq8DSC6FBZrJtGm08vWfLLZ1fwXBiF7MLcGUudPickIZ9t2L Ih1DevOBu5ShenftrrzNTmPCPZDOsLkq0x1NmmOncl4tczZyjrbdy2a5LedYOo58wSVBwjmNEic ZrLyE4Rs X-Authority-Analysis: v=2.4 cv=Ha4UTjE8 c=1 sm=1 tr=0 ts=6895ba22 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=COk6AnOGAAAA:8 a=5fA-3PHwp7xA7VOvTvgA:9 a=a_PwQJl-kcHnX1M80qC6:22 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 7xKGaaaCDAfScK7EHDFdREObRcaEdDy0 X-Proofpoint-GUID: 7xKGaaaCDAfScK7EHDFdREObRcaEdDy0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-08_02,2025-08-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508060009 Content-Type: text/plain; charset="utf-8" Add a qcm2290 compatible binding to the Venus core. The maximum concurrency is video decode at 1920x1080 (FullHD) with video encode at 1280x720 (HD). The driver is not available to firmware versions below 6.0.55 due to an internal requirement for secure buffers. The bandwidth tables incorporate a conservative safety margin to ensure stability under peak DDR and interconnect load conditions. Co-developed-by: Loic Poulain Signed-off-by: Loic Poulain Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Bryan O'Donoghue Reviewed-by: Dikshita Agarwal --- drivers/media/platform/qcom/venus/core.c | 50 ++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 9604a7eed49d..a7c960d1d818 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -1070,10 +1070,60 @@ static const struct venus_resources sc7280_res =3D { .enc_nodename =3D "video-encoder", }; =20 +static const struct bw_tbl qcm2290_bw_table_dec[] =3D { + { 352800, 597000, 0, 746000, 0 }, /* 1080p@30 + 720p@30 */ + { 244800, 413000, 0, 516000, 0 }, /* 1080p@30 */ + { 216000, 364000, 0, 454000, 0 }, /* 720p@60 */ + { 108000, 182000, 0, 227000, 0 }, /* 720p@30 */ +}; + +static const struct bw_tbl qcm2290_bw_table_enc[] =3D { + { 352800, 396000, 0, 0, 0 }, /* 1080p@30 + 720p@30 */ + { 244800, 275000, 0, 0, 0 }, /* 1080p@30 */ + { 216000, 242000, 0, 0, 0 }, /* 720p@60 */ + { 108000, 121000, 0, 0, 0 }, /* 720p@30 */ +}; + +static const struct firmware_version min_fw =3D { + .major =3D 6, .minor =3D 0, .rev =3D 55, +}; + +static const struct venus_resources qcm2290_res =3D { + .bw_tbl_dec =3D qcm2290_bw_table_dec, + .bw_tbl_dec_size =3D ARRAY_SIZE(qcm2290_bw_table_dec), + .bw_tbl_enc =3D qcm2290_bw_table_enc, + .bw_tbl_enc_size =3D ARRAY_SIZE(qcm2290_bw_table_enc), + .clks =3D { "core", "iface", "bus", "throttle" }, + .clks_num =3D 4, + .vcodec0_clks =3D { "vcodec0_core", "vcodec0_bus" }, + .vcodec_clks_num =3D 2, + .vcodec_pmdomains =3D (const char *[]) { "venus", "vcodec0" }, + .vcodec_pmdomains_num =3D 2, + .opp_pmdomain =3D (const char *[]) { "cx" }, + .vcodec_num =3D 1, + .hfi_version =3D HFI_VERSION_4XX, + .vpu_version =3D VPU_VERSION_AR50_LITE, + .max_load =3D 352800, + .num_vpp_pipes =3D 1, + .vmem_id =3D VIDC_RESOURCE_NONE, + .vmem_size =3D 0, + .vmem_addr =3D 0, + .cp_start =3D 0, + .cp_size =3D 0x70800000, + .cp_nonpixel_start =3D 0x1000000, + .cp_nonpixel_size =3D 0x24800000, + .dma_mask =3D 0xe0000000 - 1, + .fwname =3D "qcom/venus-6.0/venus.mbn", + .dec_nodename =3D "video-decoder", + .enc_nodename =3D "video-encoder", + .min_fw =3D &min_fw, +}; + static const struct of_device_id venus_dt_match[] =3D { { .compatible =3D "qcom,msm8916-venus", .data =3D &msm8916_res, }, { .compatible =3D "qcom,msm8996-venus", .data =3D &msm8996_res, }, { .compatible =3D "qcom,msm8998-venus", .data =3D &msm8998_res, }, + { .compatible =3D "qcom,qcm2290-venus", .data =3D &qcm2290_res, }, { .compatible =3D "qcom,sc7180-venus", .data =3D &sc7180_res, }, { .compatible =3D "qcom,sc7280-venus", .data =3D &sc7280_res, }, { .compatible =3D "qcom,sdm660-venus", .data =3D &sdm660_res, }, --=20 2.34.1 From nobody Sun Oct 5 05:26:31 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C7D726D4FB for ; Fri, 8 Aug 2025 08:49:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642983; cv=none; b=lGfXGizXwXW7mWLIYwek9KEsPBSfkQ9lCJBSMNb7ZC4FiPzEA4glyfjflDkJ0x0I782GgPe2LPkWikMQRCVmej8YmWVbvGzwukqACToB6Kx9nI8IwPeTsYAwOXxXJ3/4gH0GYCkuM/H2SL5okX5NyKiqUL1VHiaGwt4orQ0xatk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642983; c=relaxed/simple; bh=23E2L3+GM5Ne5G69gtx+iV/0DudIvZsRZTXNlVujEsM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sx4pyuYWEFp/Hz2T42Z87tzmrWTBbXDv5RelAYYQbxFEbFFOGpUFFXKTlpcpfQP7+w5fP//uWuDGjchbUEqMQVWH9DBOI1+Z/NL3UIqd45ze6vrGy7ZpKHTOKtDROtGt7qQElRw6j9nA15LziTNBwGXlZsBL5nUWqLvAk5Uv2Cg= 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=ePhFp+3J; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ePhFp+3J" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57877MTw011685 for ; Fri, 8 Aug 2025 08:49:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=WFXsE/Pq/OO 0HhZLOEUiCFKFRSimd89W5kjcE0yBaHY=; b=ePhFp+3J2AxulnJ0tRa7EH8+nlp o6OyCZuHRYAWinKlnqgWs4l9TJQWCpVPoW8tqcLhbELiVJ3Ydmx5CVNOa4CvpD8G E/e/IcMy9Bmle2GDTppOh2CzNzdaowot41jM5sw2/TYrjjd1117Q/AqQ2ZFOnAGJ KuL9rgQhSj6u6S9EIg9O+Mn5z6CFqhUo796IkKNHDCdoGDO/g8jlO4dI03m55sGt HlzVyGdli3lJzOpgPSM8DDnObDLkJDxyDzetyOKuYp1BsAEbV0md4d1p5KCMCoiV 1Ao/GyS4Kt/45NTFBC2c8e2GzPNZGfu08Cs9mVXDEgSdrAFez1HryuapVhw== 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 48cpvy44h1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 08 Aug 2025 08:49:40 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4b061ad3cc0so56062971cf.0 for ; Fri, 08 Aug 2025 01:49:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754642979; x=1755247779; 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=WFXsE/Pq/OO0HhZLOEUiCFKFRSimd89W5kjcE0yBaHY=; b=BAkxWd+GE3/cEvsvL5OeH8IQLIC+Qr2c9balYg1l8mGilOJQKsXnvVpZUWpXyWIDFX 9ufpKKJrP5FEE6cWz1tVsNlwf/pVtC6p5thEAutB2sMwFhgfrWmYp98GSCWUXfegAbCj jnCnaiMcBTh4+0ZNBy7ZGxAV6Dg21gzwnsHKYuA4H+0AvhS4fzB6Mm1c9st6TISZSTBu VXLcQ20L16ooppEM2a6AKtwWjsI6myUULYC9DAs6SMjg4SofQ7E7I39VzJKO/Ymxk5Pu 11f3x39P/ssUM+NNNV0nrimPIUWWBkdoobsb2vQOAqPwjZ/7KZ2/3goyS3oWaQ0NASf0 wpJg== X-Forwarded-Encrypted: i=1; AJvYcCU/Zv1vpZpz/cM1CtV62WbkTndAizZ0qRqzz1oPSLtdUmgtv/24HBM8gYfAzFJ7gUelJuOfCB/uu4IQ7y4=@vger.kernel.org X-Gm-Message-State: AOJu0YweNMnATXdPDf95PMwQ/T9K44tn0Zvw1z281OVF5rsGDtPVSElb S87BGnIIa3vd0O1nG8twsSf8Umt8s0UKQunId6GVbWN1j+HML+NhyBU9rvgyilbu7TFFsrwYJUT AlkqlVqrqJ9i8dYNurzJtrKBeHa+IrxscXCG6X2mctGfvbKhyTM6M6TXC8qWR3IVKQ2c= X-Gm-Gg: ASbGnctf6n+J/vzm6x2BLjYMXMiziuy8ioz/YiHTkZ3CJcGMuQe5JF3XzGuP4uY9g5I CeKUOCsECAbQMTZ4bwPe5gw+qmjA7Jw/OYoalpBQgFlQk81TuknKcEGN2qiwXhIFUqS+O9s2Lit K/gHcgS3ek6n2NMryXJ0NTAX83hi7w2z4RMgSBi0OLTIFMhxO6aoIroh4RpALtOdZ0pW8pRjWnT dOibqNnbvwgWqB+DjED1cdq1+/PoUZqf6XzzhPtZ0GUzXWWi1fNhjJZFDpwqYiDqXTTXeu1dqfs +u99GqjFwxxEJ4P5OyU24WPXQURTwoRr7ALuXuw+mntBEl9eNl24h3L7bYTqP3XMNhzFAeCI4QG sWjZyJNnb/CxG X-Received: by 2002:a05:622a:1a93:b0:4b0:8e1c:d87d with SMTP id d75a77b69052e-4b0aec59704mr30866001cf.2.1754642978964; Fri, 08 Aug 2025 01:49:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGPMIXHPPD1tdceQhbz+B4qpGQUoHEbS4Q68Djht2hs0DqD2kW+fYFCxOmTWJ4VNIBaNufslA== X-Received: by 2002:a05:622a:1a93:b0:4b0:8e1c:d87d with SMTP id d75a77b69052e-4b0aec59704mr30865781cf.2.1754642978561; Fri, 08 Aug 2025 01:49:38 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-459e58400f5sm122904295e9.2.2025.08.08.01.49.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 01:49:38 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, dmitry.baryshkov@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org, andersson@kernel.org Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 7/8] arm64: dts: qcom: qcm2290: Add Venus video node Date: Fri, 8 Aug 2025 10:49:22 +0200 Message-Id: <20250808084923.1402617-8-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> References: <20250808084923.1402617-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=TJpFS0la c=1 sm=1 tr=0 ts=6895ba24 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=KD12_Wl4P5iJQNenjFgA:9 a=kacYvNCVWA4VmyqE58fU:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: N7Y8iIm51Im5YN3p6EjWVSS6nuT0K6tR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA3MDA0NiBTYWx0ZWRfX4YV/k5txwSS8 TfeRTj4xY6K4fMiBabAi83k9DPfgMjMlvg70MmGnS5k6QFq/yQy5Yhd41Sa0MhP1HsJsIJnqeiW mJ+F9VMq7swY9vRuEWrXHTTBGdWDxDi8ONMeerQluZkGknBBXebUAySNwJ82JP6A3uCmgR9SqYt xOH6fTgIZT/sl6+hNiX3i9OuIr2EXje7YVMNF+lrRwhvX7fUCLpV9lmBY0rwVL2h5U5YjSnTGrt ldv4e0cv3MBrbZcxXBpWw3kwW3tzuW/t9SYm2+O1YWljqyxMMk9C2OuVjyNQdfxQYI2+miG/vcN kXVjqtb8UwHBqjRBomuh7OnjswsW5ZL3wJYYA178dngwTCe8ROFKqO/hRIENnPCamFesAPNlDIg t4Jrt677 X-Proofpoint-ORIG-GUID: N7Y8iIm51Im5YN3p6EjWVSS6nuT0K6tR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-08_02,2025-08-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 adultscore=0 spamscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508070046 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 Reviewed-by: Bryan O'Donoghue --- arch/arm64/boot/dts/qcom/qcm2290.dtsi | 55 +++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qcm2290.dtsi b/arch/arm64/boot/dts/qc= om/qcm2290.dtsi index f49ac1c1f8a3..7cfacd189a10 100644 --- a/arch/arm64/boot/dts/qcom/qcm2290.dtsi +++ b/arch/arm64/boot/dts/qcom/qcm2290.dtsi @@ -1628,6 +1628,61 @@ adreno_smmu: iommu@59a0000 { #iommu-cells =3D <2>; }; =20 + venus: video-codec@5a00000 { + compatible =3D "qcom,qcm2290-venus"; + reg =3D <0 0x5a00000 0 0xf0000>; + interrupts =3D ; + + power-domains =3D <&gcc GCC_VENUS_GDSC>, + <&gcc GCC_VCODEC0_GDSC>, + <&rpmpd QCM2290_VDDCX>; + power-domain-names =3D "venus", + "vcodec0", + "cx"; + operating-points-v2 =3D <&venus_opp_table>; + + clocks =3D <&gcc GCC_VIDEO_VENUS_CTL_CLK>, + <&gcc GCC_VIDEO_AHB_CLK>, + <&gcc GCC_VENUS_CTL_AXI_CLK>, + <&gcc GCC_VIDEO_THROTTLE_CORE_CLK>, + <&gcc GCC_VIDEO_VCODEC0_SYS_CLK>, + <&gcc GCC_VCODEC0_AXI_CLK>; + clock-names =3D "core", + "iface", + "bus", + "throttle", + "vcodec0_core", + "vcodec0_bus"; + + memory-region =3D <&pil_video_mem>; + iommus =3D <&apps_smmu 0x860 0x0>, + <&apps_smmu 0x880 0x0>, + <&apps_smmu 0x861 0x04>, + <&apps_smmu 0x863 0x0>, + <&apps_smmu 0x804 0xe0>; + + interconnects =3D <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG + &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, + <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG + &config_noc SLAVE_VENUS_CFG RPM_ACTIVE_TAG>; + interconnect-names =3D "video-mem", + "cpu-cfg"; + + venus_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-133333333 { + opp-hz =3D /bits/ 64 <133333333>; + required-opps =3D <&rpmpd_opp_low_svs>; + }; + + opp-240000000 { + opp-hz =3D /bits/ 64 <240000000>; + required-opps =3D <&rpmpd_opp_svs>; + }; + }; + }; + mdss: display-subsystem@5e00000 { compatible =3D "qcom,qcm2290-mdss"; reg =3D <0x0 0x05e00000 0x0 0x1000>; --=20 2.34.1 From nobody Sun Oct 5 05:26:31 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C3F4026F45D for ; Fri, 8 Aug 2025 08:49:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642985; cv=none; b=TyKLYoPQTewoMYfnFmY/DseRZUBcX5CMLI/KtUJio2KNrMsrCkc9/rXTlIMv3uju5rczhBcU3i+Tjzsfjm8P3UhIC24cGHvzmP2E2g9dq+5uWK3mbrMVVrhECkOsUaVfEYuC1tPqYhFt4lToDE+AxODlAzFpub7E+pWaWXpY8XQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754642985; c=relaxed/simple; bh=xLcisQUmX1kKWJaAAGMAi99CaZ3yNW/4jd6IUN4d/Tc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Y1nZ1P4FaXLTUibLY2n08ibDFxUrFwlyjHbnaiPFq7P210jQVFAAwRopQI/xHL6PCzrOpkj3NnS/XGspa+sQnOcN/lR6xXuD4xt7BYjpyjwUlll+QPiCva31iH3CA9fwwc0A/gCkR3hKs22NEAYDk5msdOVauXYLSqxJwQOnKks= 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=YRt7yuXw; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="YRt7yuXw" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5787X2rg008443 for ; Fri, 8 Aug 2025 08:49:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=XAMShpBw6gl 5ZzER3GWo8lF+QTIMlJwqOkE02a/mRys=; b=YRt7yuXw82QzPl4IJvpIKdkofL7 z3CM42yL42QspFG0Kgrp8nKnudsAJtAsxSVMhkKaJogyZPt0fGqb0RPNeUbKGBL2 Tvqavjv7WQRWn7CXOOZeBx1Cd+twKEjVkzh0ULcj+AkLjZECCJYEZes3XketblQl BjgcwBJqdMzsDWtrm6rINxFEb7MdpMjtw6/dcZfEYDYSfYm1BO1sOyEg2RKzxokw 8nqWGyDrpywoqw+D0nG6RHrUwLCPixu6paX9ubQr3HTSld+TuGcV8Q5Ukknzt7Lw W760uqySBQ/KyH/STYnBBEovvM6C2aQdaQP8fyRQzwn1/Lw6gSmg7ObpiJg== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48c8u26ct8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 08 Aug 2025 08:49:41 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4b08b271095so51638751cf.0 for ; Fri, 08 Aug 2025 01:49:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754642980; x=1755247780; 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=XAMShpBw6gl5ZzER3GWo8lF+QTIMlJwqOkE02a/mRys=; b=uy1DsXWhSD20il4fdlgun75z6+ga1w3S/XRDC98kA31Wu2TCFCWE5NqUU6e/qnR/yi G7d9yLfNwyZaCGmX3cjxQhFn2qkZqMyKdhyGWzQ07EnqZY7LHKcKDvjcZrJYkzKlMTp/ gaaCnWnemdbDhmdnWulYXZ7fFOrOSiW/uDq+N/vC56uk2AdLw/xu6i8YdXZC7cawlcaL gGyG9NSVUtsJItlPTKB/Ks+b7gU1SFfW41jfF+L0tlToWhy0aBoAGZFX3WnvASTGIOJo r71JFwbbg85Yen5wGgXv1IgdwnkySSJ+HN4C5fdgdT1AYDm7cL+WOVKVBQftUfKyJDVf 4Q1w== X-Forwarded-Encrypted: i=1; AJvYcCXIV1gbOlHGB3NfAJBHBb0HR3Z6pfo1mP3as6zzhmrnbaJ/2EyUiG+lwKgJBJvzernl/IGbkNI/xtuEtDw=@vger.kernel.org X-Gm-Message-State: AOJu0YyK18sJ25Pi8eKM/KtMbmNH7HYRYpKy7SnoMKTXf65Ql+gH5l7i uDvti9tKStO5Uje9auBREm7N8V/+YALkBFsg0mc78YyODhsv8/ez3arWSRTZ7ia1VD8dxYHwL7p AGE04ovaS6y9yU6b6hNQY06MQgQNG7T2JeWWPJuuvZwepuos4TBfqlLuEHSKEirUbuzw= X-Gm-Gg: ASbGnct4ZUyLblEj/OQSKKmLtQecmnUUqJh5pBC0xGglyqUSqDbihWdEeBixkMrunF6 BYlz6ESAqnoAVyWh1cC/2Mm2l9U+37KWb1czEdKiQsB3LCyN3u8PpqAupEwTkGWI3YyayB1WxF1 u6LNfPG2OOVuw8rCaRcKgBbibbujQiyF92VeFdFr/p0MzVqrFcj7Dtt5g1Z/QffB3ZZnxuMxklI vQd1MtomXcKlryhYQ8sa8LlUY+rzNaQm+7nbpI5jUrlaEnqUFfbVIMJafZ1AblVPSafYDfzoR9A 63/s3YZIrRMFVi+YDjcYvOjW/UdKk2t4UUpAdcKNhLcUhPodPCLmD/QxCRuCax2Jont4N1Lm9LK JmF13NFzaHgxn X-Received: by 2002:ac8:5f09:0:b0:4b0:8ac3:a38b with SMTP id d75a77b69052e-4b0aedd84d1mr38143521cf.29.1754642980395; Fri, 08 Aug 2025 01:49:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGE1yvscZAyrj30Um8VSEKm9PRcWAu6Pq/VWK93bOJfUynOJWNM5xox1ieq0bSmcUwi4Zfucg== X-Received: by 2002:ac8:5f09:0:b0:4b0:8ac3:a38b with SMTP id d75a77b69052e-4b0aedd84d1mr38143201cf.29.1754642979951; Fri, 08 Aug 2025 01:49:39 -0700 (PDT) Received: from trex.. (205.red-83-60-94.dynamicip.rima-tde.net. [83.60.94.205]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-459e58400f5sm122904295e9.2.2025.08.08.01.49.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Aug 2025 01:49:39 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, dmitry.baryshkov@oss.qualcomm.com, mchehab@kernel.org, robh@kernel.org, andersson@kernel.org Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 8/8] arm64: dts: qcom: qrb2210-rb1: Enable Venus Date: Fri, 8 Aug 2025 10:49:23 +0200 Message-Id: <20250808084923.1402617-9-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> References: <20250808084923.1402617-1-jorge.ramirez@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: MJ0z3mE0KB4EFb17FFLGwTOL7yzdZs9K X-Authority-Analysis: v=2.4 cv=Q/TS452a c=1 sm=1 tr=0 ts=6895ba25 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=Qms5JgQ9tnEuTiNUcoUA:9 a=dawVfQjAaf238kedN5IG:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: MJ0z3mE0KB4EFb17FFLGwTOL7yzdZs9K X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA2MDA5MCBTYWx0ZWRfX/3TzqwIT3kg9 U4fq5GnBQhlq8Ybmp32m6L7VYxKA+kiri/QKy+2/BpJ13C/AZwl5PAoHCN9KnttMV+ub+Fkd3uL aphNKxi6m8qVWyiwcNrs7AadhoLhi6iQO3EyY7gTwheVYzHyFw4XPNFZtOHiyU15aOxSwEDxBj3 Q5MqhQv/JiZsPBMTCdr3i4wv5/h6vBSDvuNHxFSoFDWgxsn1HD6yR+biJk0Tj4DpQX/L+VQHfcS 0dzGwTn8JD+Zz3OTrHUisGITzdLT5CrnM9vzulcCVoK1netj5LvF8lPKFtt6TAJcrZN8E0njT/g 2ULENCKXJkGA2qUuTzFrC+qwQEK+jSfm1BLFHOEcnqd3mdymWFTv4PJMXVlMBmUF+kZH85R+wJq QcC68xc0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-08_02,2025-08-06_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 clxscore=1015 suspectscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508060090 Content-Type: text/plain; charset="utf-8" Enable Venus on the QRB2210 RB1 development board. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Bryan O'Donoghue --- arch/arm64/boot/dts/qcom/qrb2210-rb1.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts b/arch/arm64/boot/dts= /qcom/qrb2210-rb1.dts index b2e0fc5501c1..e92d0d6ad1b8 100644 --- a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts +++ b/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts @@ -698,6 +698,10 @@ &usb_qmpphy_out { remote-endpoint =3D <&pm4125_ss_in>; }; =20 +&venus { + status =3D "okay"; +}; + &wifi { vdd-0.8-cx-mx-supply =3D <&pm4125_l7>; vdd-1.8-xo-supply =3D <&pm4125_l13>; --=20 2.34.1