From nobody Sat Oct 4 17:30:15 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 2934A2741CD for ; Thu, 14 Aug 2025 08:52:56 +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=1755161578; cv=none; b=MTUhygFnMfPzrFOfs5foOE63P9Et6J3di1G6imRJ87JNiSNRsnpFsCf6XKugVEburpqsHHe7Hq4AkTg2PZMY1PmrgMhZ75OClTd67AMKspCa8M8B76hY8LIL+mXn1Hut2xHu78227a0VDd+94e+WGjzSKIiqARGoAuETKzyvRfA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755161578; c=relaxed/simple; bh=VO/XqcSD3T9bRV+GvDZsTJwOmB/gxlb+z0LFlAiA8e0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=LHRMPgNu+qxJaUGCiIJIj9KD56UPNryYIV8CR8UXXA6vzT6thNQOZETfTi5jsqTXi9zbeJOrRi73///JlFLnR99XqRVFaOyq1LemgEkbKs/RNrrJ7hwOqYRixe5hBBzMQ+6mO2xAzlg3Y/HEAH/jDFl7vKHEdO0ZKsMOmjz/Evk= 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=eN+XB0Nb; 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="eN+XB0Nb" 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 57DMDOqh027018 for ; Thu, 14 Aug 2025 08:52:56 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=eN+XB0NbGXEBozjN5tXDEXR0wqs JiKBUy1t13SE0cnKS57IBBocZOxP0TjO4DsTvkUSSkpTq+VKwvSnIzlO36QRAe0l eJuFfIapVJ96IR4/QjvRCT7s4Brzsvx6yNjSVaAr6rtzHktdQm1v1FI8Lz2jOIuM yxdYf/fLvpym3BKuxWBFr7AHMUsxZFs9hk1pheD/DVtJd5VrszrxMV1abD8eE8wj p0uCsMaAIsRJCtDmUem0RKJL/BgOzn6hTRkHmcpShVjSiCOrhIyTn6cX16KseLZx E78dSLWdTRAeo3F6WJhUOTd9cRAqSSMbZ5jbZCrYfwVxb1tooRpXtn29+Cg== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48ffhjtv49-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 14 Aug 2025 08:52:55 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7e87069063aso269334885a.3 for ; Thu, 14 Aug 2025 01:52:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755161575; x=1755766375; 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=nwEk5NFcwhJJbp21pVMfOX75fdtRNBrd1FOOHphlS4DgvTTmWAnTB87nAQ1b3Dcfb+ 4Rm4C04IMu9wagbjqG0l5POsrA13eey+IT4ObBvVQQd0f+KKmkbifJms05+L1kXPzx3X ftUj3qjEM+zlwzO8qjSR3ZXjDJJbtLw8wAx+M/LUXbNZ0wzuOi297WH94Yg4mmObCiK0 gq4KSR/uINC2LhhT0mxV6q0QCdClhqdgpy0ngj5/xb29DGsRa0Ywc8BC+AdmEHga2L01 6+0Id17tiaCaalqLbYQjDw3v+exgnJyqG+28Td1d8BNWeYfzqnD00fAWzp73/vFPWACC diYA== X-Forwarded-Encrypted: i=1; AJvYcCUI+X++RlZyKQKZ+H7ONoQWhU1YdrrXOlyXoItSsbb2gcbGcbo5pKLlXSTlXUzKRRoaypMFpeQm6+oVxGk=@vger.kernel.org X-Gm-Message-State: AOJu0YyhmKz2028xaab79lkvocZEd1fvD4sh8hNsPioUfj+Vf3pZEe7P 9BivkEKFnMNvipAoUXGL5ta+4v6lTkA1QYlcLTvjGe+sc199O/4QIXLNFnl3VO0jrP+rgHZWruz vHVzzaXntDm5iQgNXLwezTTr6ni3sBAvvoQmVPuULS2sFEl6S/QdFkkrO2oujs5Mrqy8= X-Gm-Gg: ASbGncuuqSFGwWIQAy3y3SM91AK55wlenWLqWzKQk9eFrIxwQiMt6RZH3sBtDZtpVyl Dowlu6d2UG5tZecUIECVdCW2K/zAwx4nnMQeIZFyP4nntGL9/IuQzCfSeYcDXUi79FZPuqxfK+F NeBo4SQXrWzYck/Gq+91EPAbJwCy2S9OehAAOme2HgWPH6Ksoyd8LPVHIp9mw7z6NOsfF0kudqz O7cvRTJFc0Vj1kBFQ5/yo2k0cTbkvcOhILMW2h7HyxUGNLwdw/zLVY8SJ1/kG8Yt3aczOnbKPW0 9t0nzp7eKhRtQOLU2iGLtLd+snfT3J6vaOz5YV+h65tqVmMk2oPpsCx6OP0bwzRpCuO81aGSM+f yLBRMefAYOc3B X-Received: by 2002:a05:620a:44c5:b0:7e8:5f66:b2e0 with SMTP id af79cd13be357-7e8700cdd31mr328932585a.0.1755161574943; Thu, 14 Aug 2025 01:52:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHh38wOcsdNJkvL4KisYWyGtxcxEIxXog8BCbgZ1oRBY00G/LSJD7ZoVbRkvJslRPMiyE1swQ== X-Received: by 2002:a05:620a:44c5:b0:7e8:5f66:b2e0 with SMTP id af79cd13be357-7e8700cdd31mr328929085a.0.1755161574312; Thu, 14 Aug 2025 01:52:54 -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-45a1c6bc93fsm13155895e9.2.2025.08.14.01.52.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 01:52:53 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v10 1/8] media: dt-bindings: venus: Add qcm2290 dt schema Date: Thu, 14 Aug 2025 10:52:41 +0200 Message-Id: <20250814085248.2371130-2-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250814085248.2371130-1-jorge.ramirez@oss.qualcomm.com> References: <20250814085248.2371130-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: AW1haW4tMjUwODExMDA3NCBTYWx0ZWRfX49HHWEnMOBLv OO3IjKqTMgdh0q2skT6ee0SUIV+V2Vtnu+kaBd93D8I3SzF5H1KQlfpICCjoZqGfbQgeCIuEu1A Bb4tXuPz37F95vN9kNBFOhDlKuZ2b2RpWfVemhCB2fbqtCSnsinDpnNYtOC3MjmuMdvQpGBsqXg 2Z2v8BYOoiPhJCokAufGZTGrPcZF8wv2pnwqo28SvtK1bDxJkv1n28b/diqrdV4GrycyiHGo0TM H9KL3jVPjXTIFCMe4/k3ovRtoBvNKQXqApGbm1OFnIPLx5jVrsdtI1G2fvb/4i5IFsr9g/Ecxku HzDFOG2mvM7YM59RPE67IAIwt1EKrRqucfksCpbWDixhmB1CydLtQ8v7ftcSYRtvNzPYVVhNwAq mkjNsDgr X-Proofpoint-GUID: 83l3bVVmoyeTpHe7PYOsCozPpHvPQbwn X-Authority-Analysis: v=2.4 cv=TJFFS0la c=1 sm=1 tr=0 ts=689da3e7 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=Wl4eHCndyL1IYbKsAYUA:9 a=NFOGd7dJGGMPyQGDc5-O:22 a=sptkURWiP4Gy88Gu7hUp:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: 83l3bVVmoyeTpHe7PYOsCozPpHvPQbwn 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-13_02,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 clxscore=1015 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508110074 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 Sat Oct 4 17:30:15 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 A07AA2E11BF for ; Thu, 14 Aug 2025 08:52:58 +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=1755161580; cv=none; b=YLBim9Dr2OCT3oj6riayiOJczDi1lJgOYcNylotzhv482GZ7PIOc+q1+uM6517M9E2WvxuGgiMnMW6X1StJfecNk0rTJSZaoDVs1TSp87ah27VnGk5Y4Nbtq46n5xb7GnFQDv/PJSjIreAkKV81tGG6A/AW7MMjVOoIvqLliZ7E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755161580; c=relaxed/simple; bh=NMYbLeTxNf/eAT2qg03Bga6vjZf9LKqLlko86qdheJY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SZs1imnI7XpgV7wintUxcRe5/Vg+e0R5vry7ZETep1fevSj/E78CGBoEIjYrMX1SJT9wyM0NXShEYQ8RuBDmDcbqBu5jnsNXIEty5+Es3kHLMWTBc06rd5RwfePN/MrUMwgdZnb+1S7wlWzAxRs8c6ibVI/YnJR+hDLzFCxFYpQ= 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=fOGm+/yn; 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="fOGm+/yn" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57DLGIER012985 for ; Thu, 14 Aug 2025 08:52:58 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=jCLZjdpJ5XJ 8S8QQvw3d8wMyNSpqwMisHAf/LgDvfmU=; b=fOGm+/ynQFifkgAPw1EvnXn2LQ5 zg4ozJ3mjUJYMx6zAFPbp6sVdqiukKeDOzPGM2ZaqhX2ZkmBzhdRzBDjiB7f8rxx vAaEPI+ZOvFMtZ3L1o2lSGvf7Paflrju2dVvgr9FEbK5e/Yr7bXDYYJHopSIuExV cRunb4DbHG4fi4RdbAulpxxuIhuZ9jKo3ISAm7FxRZRukcomUt4vTJCfUjt1EsmA 1nUxbz6tytBoE93lRBN2mLn5wBegmwgkJNi/jkROvIbOwbLtuX+wUfIpv0dRymRm Hr2kKiVoy1gO/gH7NMSFINQbKpLkeCf8RSvWPVUZsF57Rr45wrKmUusoNEw== 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 48ffq6tve0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 14 Aug 2025 08:52:57 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-7e870324e8dso262594285a.0 for ; Thu, 14 Aug 2025 01:52:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755161576; x=1755766376; 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=jCLZjdpJ5XJ8S8QQvw3d8wMyNSpqwMisHAf/LgDvfmU=; b=XPIt93UPqeBnQ11IXcYprgY6PtSme2vcCUtBVoQyKimEMVbFwGAsy2o3AGCWAVPZfy UWpNbcpICsnKCUHQwZl/iTXdoey8xvsoKoC13Hz9QbtwCnLNWJw6rmZxEsL+xAEEH+Br aRXi9Khi0jILblqahQdu5kcM5Nrn9oLokqS58Ub2kRUdzTmAg4GnVHeWBSQPnaKSfLrp Pg4hjCuShadpy/9zMOz8Pl4r3tBBJObNP1TS2pPTL7kqG/cd6U3K+EWDgtjEAoMiqZIf KILHGwNBNtUQJWkRmQMipLYMKWSYH4IMTPXm/tIZ3raY3ZMFqfSoTUtsxy9JHrdy32Kq YqkA== X-Forwarded-Encrypted: i=1; AJvYcCXrN0A4Bm7IKAPEsFU8I2hgqhj+sRtfne2i29k8eyVM4eAeZeXb+5cjH0cpgVbv3lVwwopJ3Tv6md1m7KI=@vger.kernel.org X-Gm-Message-State: AOJu0YyquD10AOhUyZYjMquWMk3YNRqO07MXNy3TZ21eBPBGcEILfPjH 4I9ChD6nTJl7P+750RLENO6wVpyzUwWxR1vyjGft/X/DlhkufEXaQ/uudUR3JImOqgYjoSSWD/c NJVDcA88gzZU/sJo0jJxBtmYnqu3AgxFRmIQmEOzkSLVpFW3JVBSSnYEAL9AvPQ+vH4U= X-Gm-Gg: ASbGncsyFSp80pzmXrfY0cpB+DkKsr1ceWUUPt1DmGDhKwqi5mHeg1RcJODnGu5ASOQ FxR1QL5wcLQsA9B6crTyX8rl1mULHlLHCnPiT2yfOP4K/2mv66C1KEWz6r9gfVEr2+T1h9fBGK0 iQMgK1gDfTX83gBZAKtENdgdGzgESuCnJFksYh7L9mZh1tPYWKW6IzN4wVuznNT6X33m6GAB36S ix74A5s9HDlTxHsN5c2MRRHHqSuEyamH6FXTbX+9BWQalcBkb4wl9wTohdkFcuM/3Jf1P6n0eXn bBQqDhmKqcPIRcXQVH46YjRzrz46uEYqcJBV9+24KV1PREQZwgUEq9LcuAdRZyPuYUl5Z6Q7Vt4 +CiMheZUQ+NF8 X-Received: by 2002:a05:620a:1901:b0:7e8:2a39:7649 with SMTP id af79cd13be357-7e8702c06d9mr335796285a.16.1755161576315; Thu, 14 Aug 2025 01:52:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGZqZzz3uDaiwnXAxdJ1jz2zQh7Lvkgr6axfjgeHgmhbDcI+NrDl+NgUwS4ZMa1fdxr72cgzQ== X-Received: by 2002:a05:620a:1901:b0:7e8:2a39:7649 with SMTP id af79cd13be357-7e8702c06d9mr335793485a.16.1755161575826; Thu, 14 Aug 2025 01:52:55 -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-45a1c6bc93fsm13155895e9.2.2025.08.14.01.52.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 01:52:55 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v10 2/8] media: venus: Define minimum valid firmware version Date: Thu, 14 Aug 2025 10:52:42 +0200 Message-Id: <20250814085248.2371130-3-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250814085248.2371130-1-jorge.ramirez@oss.qualcomm.com> References: <20250814085248.2371130-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: AW1haW4tMjUwODExMDA3NSBTYWx0ZWRfXwN+z7obVbku1 oFb0i1h2kBNkuv+c0ooG/q5NbORgweChqyHNRMpiT1p+xVgaFatEFAYWb0il11yrB1whxrrm0oJ y+yEMje6+yzcraFPxZrQHqe8xB67ge1tATBg8lItMZd/PQ4IaWZgH6MoFOy/yZ4rqf8YhH8iX/U vHduJfuDI7tK4EEDUFLNZ3EUrp0nCGuYB6RphzlLTCuGX4GFZCU3W1bF04MfyG3d2f8UxEj5srX i8ok9rQ51D4oYrinMkwrZtaRhfw39khSap0/B7s+BDjz/hwKPWTgPn/1y24MeZRAmJ4MWgwxIFD J4Tjl8W4b4HjkDd8mFNpYDc67pUtE5gA9wrgmcliMnUA9Urzdmgq/o08J+Rv07VGSA7m28FD3VO SxaTkgx8 X-Authority-Analysis: v=2.4 cv=TLZFS0la c=1 sm=1 tr=0 ts=689da3e9 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=Ke7IK1sYoyxw6fKcqmkA:9 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-GUID: syLXJERkJMm3KOktlvG4Qw4dRDrYJvJa X-Proofpoint-ORIG-GUID: syLXJERkJMm3KOktlvG4Qw4dRDrYJvJa 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-13_02,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0 malwarescore=0 spamscore=0 priorityscore=1501 bulkscore=0 adultscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508110075 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 Reviewed-by: Dikshita Agarwal --- 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 + drivers/media/platform/qcom/venus/hfi_msgs.c | 11 +++++- 5 files changed, 61 insertions(+), 24 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 90de29f166ad..5d76e50234f6 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 db7b69b91db5..58da4752569a 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); diff --git a/drivers/media/platform/qcom/venus/hfi_msgs.c b/drivers/media/p= latform/qcom/venus/hfi_msgs.c index cf0d97cbc463..47b99d5b5af7 100644 --- a/drivers/media/platform/qcom/venus/hfi_msgs.c +++ b/drivers/media/platform/qcom/venus/hfi_msgs.c @@ -277,7 +277,12 @@ static void hfi_sys_init_done(struct venus_core *core,= struct venus_inst *inst, =20 done: core->error =3D error; - complete(&core->done); + /* + * Since core_init could ask for the firmware version to be validated, + * completion might have to wait until the version is retrieved. + */ + if (!core->res->min_fw) + complete(&core->done); } =20 static void @@ -328,6 +333,10 @@ sys_get_prop_image_version(struct venus_core *core, if (!IS_ERR(smem_tbl_ptr) && smem_blk_sz >=3D SMEM_IMG_OFFSET_VENUS + VER= _STR_SZ) memcpy(smem_tbl_ptr + SMEM_IMG_OFFSET_VENUS, img_ver, VER_STR_SZ); + + /* core_init could have had to wait for a version check */ + if (core->res->min_fw) + complete(&core->done); } =20 static void hfi_sys_property_info(struct venus_core *core, --=20 2.34.1 From nobody Sat Oct 4 17:30:15 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 7089E2EA171 for ; Thu, 14 Aug 2025 08:53:00 +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=1755161584; cv=none; b=Rdom0dvVd4GEe8Ekm2hvkm4XoTcCcNCv2I8Q+1cA5VVy91lYcZljkZbHF6mnhSER0OUP2+nmTZSXznZ8jtXzf+OTXJa3tW+f/yh/Joylc/U5pO+bwH2XJutE7JvrlrwA57mMdmLg+YX32B8Z0JTUem1YS7tZEIsi7apjgXCCHp8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755161584; c=relaxed/simple; bh=mYyDYspAu0fUCbPnUErnST1m7NLVnYaJcGPUj9JufqI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=QfecrwGF0DK0PzrpJNltVU8R7l9mflvgZuwMLYk8BxrCLc/4/gO8h/lWaxFcOkIHztUMC+LHqAPehW9YIonnDhZnObD1Zv9hDEYKehWBLLANulMexIDx6NYUg4vvahdGOvY83BHXcCZhiSZMRel97hKexlWRtGPfKdCUVUQeiMo= 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=bzshN/Pf; 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="bzshN/Pf" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57DMjkeD012182 for ; Thu, 14 Aug 2025 08:52:59 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=7+b/qQOykps 0yAY5//rOfRcyNIuwWZicShO434EstvQ=; b=bzshN/PfLZqPt2sQqOSwAuY5m/t Sw1ziyY5Ae/givBBwTk1FUEhDwqRwOwL/08F0EmTAdhFF8j4Mbg9d2HWB8Jv6Dj/ fb6p3OtMYGUJkIP1cXJb9hhOxT6CglnJ1Hc27bAnVRmTwtXLrassahW8z2h4EZaU AQwr8tXu3K5FqTWiLDjMZ+0D2jIRlHiRIMCgvgSft5hO7LsQYmbaIdxm5nUt5cuN zJLU8BK0yL8ROiToJAR/yQlTQrGq+mBohirYQgeA3/Q6KABuCZ0nROzwQXZcWkA9 i88j8PSl1IhamqWBJAgdxMILcWFfXwBgJze4bQezT9LM5tZN//SjPo6ULvw== 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 48eqhxd6a4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 14 Aug 2025 08:52:59 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4b109ac42c4so7823191cf.1 for ; Thu, 14 Aug 2025 01:52:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755161578; x=1755766378; 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=7+b/qQOykps0yAY5//rOfRcyNIuwWZicShO434EstvQ=; b=n/48rNBQxZJHdfjagPavRU6+hr1lNP/8sv4KFK5JcDRkEOhU9eRliDPNDxCw8hNpmw nNrDP84XjPBPm7T2rohgtxI8WSRILKUc/vHhimDm3SxKMDa+wLy9OGW4ANOB2efEgA08 2KmuHjnF9Zcn0vdIuu1M5+JVjfKA/lWCDRW9WcTqdBWb4mFG8uJKqNKHrlE5v9xaOlpD g9nENvHYZjFp5COTwzj7MGwfHWdbd/f6RKC2Y+LD9tfig5pNkIGi1qPrA7asvaJUmKpB ymaI+t3ixzCcOxdPy3ZwKz9C6dRDlIQzEgUWCvQJVjhi5yKdyPSBleGLrNuWGWhHtAHw Nugw== X-Forwarded-Encrypted: i=1; AJvYcCVj3gySgd0876IRDt7+fpgzpBLsTb8RkruT4H4jlC2HPfRFChE5ZLpACYXkt6XnqNrm2qbiwVuxxOuMscI=@vger.kernel.org X-Gm-Message-State: AOJu0YwpBKdvq2+456W53AlwZkgvxfpz10PrORVdU5ka92L0c9q709iG PqJbazTqJTWpeWOnkwukMhHCHsSJOpAIYLPkVUulZgzWqI4+2TuBMj+knU+rivz1Dzsrv4zDO4J BTuEpPlwe4385wqAKdvfYYGQ7Dt0r5A8Ja74SnQAYQtICTnMdRnN3JPddNDGlbSIMmIY= X-Gm-Gg: ASbGncvHNSwa/GnTyUoSwL1c0LFkXRsGzyS3cK8enZWjfgcZRA3K8seoAKkVplSCJTh qoktXfknfsi7U37iGWMPMm81q1a8Lt8AXLDY8UxaQx1XO9Wu5vYyGILpxV+8807DOMJhvoYSjlb QzagZKP+fRqIHmFoknVBieA10DL5435H38kl012hileQU1k9ehdFikDshyfqA6jxM9T4AqWEzJ8 KoiEasFkze8k43o34kV47YSzeoyV5ndoehuVYutItfGgbKh10nNruAN/+LoRbvXtFaecdoRkHoz 9dtwB03i/Huc3GLhyh9I3JumB3qSyW/rIQu9sxJOHVjnHWmxl5ohPvvPBdLiiKpD7AgWr9pG5J9 1EqiKFMeGiUt+ X-Received: by 2002:a05:622a:4c0c:b0:4ab:3c02:c449 with SMTP id d75a77b69052e-4b10c5213a6mr28755381cf.17.1755161578070; Thu, 14 Aug 2025 01:52:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEH/8S1BbpqlPcbKCaDzkJJa1l21FtNFbIQklNdHeu2LD5i/fucTmPrUPEAYksCNFN11cjAng== X-Received: by 2002:a05:622a:4c0c:b0:4ab:3c02:c449 with SMTP id d75a77b69052e-4b10c5213a6mr28755051cf.17.1755161577413; Thu, 14 Aug 2025 01:52:57 -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-45a1c6bc93fsm13155895e9.2.2025.08.14.01.52.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 01:52:56 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v10 3/8] media: venus: Add framework support for AR50_LITE video core Date: Thu, 14 Aug 2025 10:52:43 +0200 Message-Id: <20250814085248.2371130-4-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250814085248.2371130-1-jorge.ramirez@oss.qualcomm.com> References: <20250814085248.2371130-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: AW1haW4tMjUwODEwMDA1NyBTYWx0ZWRfXxZ1Q2psVsyQh WBRtRQ9Qc3lPOnh9XjN2iS9hXQU0qyPRI/Ao5+aOzQ4E1tEGu4tF4wqdJGcVd5IKYlTp/iboMVV C/ADdO1TBrSWxnPCGrwcBQbzJAvLSMKmdwXMtRpG/mkJJN5YJ7Jep2VyfDXaW1lFM1mQrJI4gWE W1nkqG5eRBPqyQdEA8fU/3pHXkcTYkSTM9I+/z28Zyf0CNWtpjwDHRXaq1QI8Uyx29ZnwwQWfy8 YisBG0AabasfXYQthA37aq/AAQ5BlOcNHhEYedseGb8S3wRkRtZya9LWC+REnhh0dNfi9Bt6OF5 /BNGZSCRuf3uES6Qv0R9HvMU3itcBZbjxRUhIYTaGFwYh0QmXfBLjw9iBEWxZ1PMnfcvYxwQ7Iz UjyUZnNC X-Proofpoint-GUID: WjzGrgC4HvVA6dwIpZevC-AOnhp1BMLg X-Authority-Analysis: v=2.4 cv=aYNhnQot c=1 sm=1 tr=0 ts=689da3eb cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=uVAX4AjkR_zw2avW950A:9 a=a_PwQJl-kcHnX1M80qC6:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: WjzGrgC4HvVA6dwIpZevC-AOnhp1BMLg 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-13_02,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 priorityscore=1501 suspectscore=0 phishscore=0 impostorscore=0 bulkscore=0 malwarescore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508100057 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 Reviewed-by: Bryan O'Donoghue --- 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 5d76e50234f6..bc7b255357cf 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 58da4752569a..7506f5d0f609 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 e32f8862a9f9..88618378129a 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -52,7 +52,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 Sat Oct 4 17:30:15 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 A72BD2E9EB3 for ; Thu, 14 Aug 2025 08:53:01 +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=1755161584; cv=none; b=E05s10fa8+21dgn/kcDUickjWXbCNbE2O0yfz7htD61qcgHh5nEFCt9FXcsruSy9uHxt5hZBAGquLEQ12psAqDQxDJJ5EjzwgzHy6gJwGPUr6VVn6Y2dQMfiJdV7vXLmhqqjAhHvMeDeiVlCq9fEtkq+tE4jsSdRxObMyerzE+o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755161584; c=relaxed/simple; bh=ZVNNiKtA5Rgype6F/aBEaOIK4q4cs2rX8klz6CO6Rk4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=rVjSRbr+NHR2OEJU72zGwj8iygFuxPe8LUtzoBmuLBWTtryv2bz3mLzs2AmMhjr7hDlA66ssh2eCOlsmDXzWgqk7gOI00C0UeFEjqhcuXgwaIdC1JqiuvVBQnnTRdmrn93NNtA055vR/ek4TVT+s5rJIU+zgHPp8MynuedlvUuc= 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=CPc1Rk4t; 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="CPc1Rk4t" 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 57DNJ8QJ031866 for ; Thu, 14 Aug 2025 08:53:00 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=L0hGWEyxKm0 3AZMzC2mojK5M/jR/yTzqJqNBHWVhPw0=; b=CPc1Rk4tW5a5+Y/zXhtPX+BxP3y UgFCuA5TDEOBkPg0u+qaLhV/1OZ2YTyKEPg0FYynsMp3H7f9dAFaGo+t2KkI0W7V wcJnXqr7FVPKM2Io0ku0EO7hacI3u0UqmacOD4F6GMrUWv3Sbt7rG8lqkgQzkAZF dNwf291W6jObpQSrsy8Ne55PuM2LAJIJ9tVEF1H3YiPw9Lp2m5bDam3OET4z2vvm 34dBJi6VkGSw5YQ4bRCIZE0pma4exlmmrh091aHMKfTtEeq2MsR6yzfWqDF6JHki 0yc4jDjyk7dzB3V17mI2XoE7M9AfsEl1TwelXGLbg6ZeMHTjFAVVtMifz/A== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48fem4jyv4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 14 Aug 2025 08:53:00 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7e8705feefaso192225585a.2 for ; Thu, 14 Aug 2025 01:53:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755161579; x=1755766379; 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=L0hGWEyxKm03AZMzC2mojK5M/jR/yTzqJqNBHWVhPw0=; b=BL/ITAOm6Z6Rku8nP7LPzpZ2c+6UR1IO4J/aETEbp5oe4tuc9RdN9Ya1xNfobShoun JPRe8i86pYwonXJbYLNeY31QipQs4XyadGvUmS79SJ+2DxibBa0UYVVkbc1ht2JQg4Wk mdpne6wg0qIXcWT+PaSrOdEFWG1WQFZwWSn1QHX19l5D8uA3o+JZFRcKAq46jVjCxhga IUqAmDdO+m11xAR5I5OUgOc3Zmo3BBo83pH8d528o8KX8DPzJtidG//GQr9ruv35AqEY 7mf6pK8mlxBnMbbk5woKXFR0m8QJV/RCArd4CjKAvJ+ykQD5YDwmq3HK8cBsB8wGreI4 eJ8Q== X-Forwarded-Encrypted: i=1; AJvYcCWLavwMda9HK6yiUdlY5zHoHtnJRrLMNBS2G99xVLX/v5sLeHzM6AIiINKkV/S6ePV0UTbuwzhn3OpRCW4=@vger.kernel.org X-Gm-Message-State: AOJu0YytxhNoIgTyAwpmGJltQ3s7zEl5onHAv5dRhwwzH6tMFP77pqZC 34zfs2WlX5nE5Ycs4WU16XCnjnIJMzzwnqV2hkTs6b86oy02FMBSRSxTyQZ4bYLm1bf1+1edQZt hvmfuJcv+L2dn5wOFxrIcV4OFN2wQ/K3n+eOubgZO9EXgYD4aCjKyVNyiuYGxJBonyFg= X-Gm-Gg: ASbGncs8F6Tf75Cc9A0BFLoclQM+czMD9TX3S89Y15p2QdpbkrBiVt6THEs5ESEKzgi KxrQfJVxO2r+SyS5zoSklkvINc4Du23M8KIfqgcGQR7rwPa78nSY1i27HMc8RFbV9NaWo7wif5o BwfumAc67tWJFNCXyCOmV15MIKmcH8/TG+H9IAFDakc9P1QlADuCsCDLmZLfYT3Le5D3ajvlWNA Bsoa0YcxSu6IedxAlv0TqD7IiUiQFU3u3d2Yds7JFiXiTf5Q9jKq5p5YgXjCg8qiDxTb2JCli8i jWVHAguLz6ZE/scLfL8SuUzZrq52Wy5T9BCCDyTovckTH1JWsqa7MOJma9n6mMMvDnbtrBtGL/w 8FH+b9Lxb0iEp X-Received: by 2002:ac8:5d55:0:b0:4ae:fa03:e75c with SMTP id d75a77b69052e-4b10aace87dmr27226151cf.18.1755161579414; Thu, 14 Aug 2025 01:52:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF73+WKAIKUqCAaI8gb7eyn3tt1QNWBFt4UqosYORIFQlCM7YG0Y1p3lLAHh7pL1/OWcj0DxA== X-Received: by 2002:ac8:5d55:0:b0:4ae:fa03:e75c with SMTP id d75a77b69052e-4b10aace87dmr27225991cf.18.1755161578873; Thu, 14 Aug 2025 01:52:58 -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-45a1c6bc93fsm13155895e9.2.2025.08.14.01.52.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 01:52:58 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v10 4/8] media: venus: hfi_plat_v4: Add capabilities for the 4XX lite core Date: Thu, 14 Aug 2025 10:52:44 +0200 Message-Id: <20250814085248.2371130-5-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250814085248.2371130-1-jorge.ramirez@oss.qualcomm.com> References: <20250814085248.2371130-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: XHZVhuIYft2IYC19IkLuk2yKNKLEpvQR X-Proofpoint-ORIG-GUID: XHZVhuIYft2IYC19IkLuk2yKNKLEpvQR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODExMDA2OCBTYWx0ZWRfX9BVXOUPtneB8 peRyoUXGo9vgL24nwS6hCtRO38Xk9up9iyp66IL2/Grvu7AXqcTcOJY6eTUZIe6ZyZAML8sQBhY 48qRPf28QlvCS5bapjwsDAMQvgPhqPiNqJz+brx4o1gZ+40HeRKL5Ak70pDjYgJYQLtNbnYfeKJ qgt/Hhp8sEDU5WWKQnRcyvHV/aIAz0oPERpfvDUBYnhPaW6WlnGxNbI7ottrodGLomqm5jV0Ofl Ct+TAEkautx9Q76zo2BtjZ0sBeZsRgnXKJhfmVdwF6/S4u4yi/D0r8lt7+jUdYGHg/GbaUTprZC 9r9l6PYBxfwvcOmg3yU2lt2bLCm4/FTg8IWUVdxhJ1XDDWH4pR6q1++N7UAWvqaRSbWTuFvQGTU G5PQVnDX X-Authority-Analysis: v=2.4 cv=YMafyQGx c=1 sm=1 tr=0 ts=689da3ec cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=COk6AnOGAAAA:8 a=FQp2d-uGNuPOlmPgRbUA:9 a=NFOGd7dJGGMPyQGDc5-O:22 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-13_02,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 priorityscore=1501 spamscore=0 suspectscore=0 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508110068 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 Reviewed-by: Dikshita Agarwal --- .../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 Sat Oct 4 17:30:15 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 CCF9E2EBB95 for ; Thu, 14 Aug 2025 08:53:02 +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=1755161584; cv=none; b=NBpZRSqkL97LN0ZQDlw+hvW6SJcyUcd60z+hNs96Y6hwRaSCBnxQhq4oUposxUtHmZZ0lJDV2zgdD4rJwaoWJZvs5Oyt3+icFkDtQrrZH8+vwxKG9XzaPoUl6B1ZHIkmlwrTZb51sLNIujA9cLYgLTiHgoQzx8dEOuuSpnQ6Z6o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755161584; c=relaxed/simple; bh=ER5Kb+8tz4fNvLOOzVyZpGvtPZZSeu4NJ+lkYxElmDU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DH2cIH+zPTUXTgK/rHXPbVSmtRG/H2FxmBtOva86gRQyRmxx8dYnvV8HCH6lB8QdVsa5mIkTS051B+5Uxd/tO5vZtsCpmsosYyTDwVa/RyAoT1AFfluWGnJ/63RVsBjwnczLkzY+ou4+nG/JqYZYxA10cBnLpDyP+6oi66wUf9A= 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=LkBQet9E; 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="LkBQet9E" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57DMe1PS011059 for ; Thu, 14 Aug 2025 08:53:02 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=nflzV9qq/tL /glhk9JNHKNEsSBm8wEvnbzo5OybERr4=; b=LkBQet9Ej4FDnCKsD53bZnxHWcU uylpFNxuMuaed+fineZtXzzM/85HyZaqJ/Lxp31l7bqdf519h9VfIY+6jshSesWU XRPa7pbcYrjgdFuqDYh5pw1I4robU7LtcNW9I8z5uvK9lSMNxwsEX0RuWNIlqSP2 +9cq4CPTkw9ZFHtZuSiti9FPcwEALBg/49xM5iPkunvVZcRsRSJtx8PV+tFsEDHM j58mTc8KTr/Jw/jUc6bu5OG/v+Q0LAeyLrsmUZyTdUDft+IETJB1ZB9OgNg4MLRm nebMLsv6Njx196Eliwg9pQFiS68Y7WO6h9XeefXHv7nz33BMqQY0sCKcOdw== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48fjxbj69f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 14 Aug 2025 08:53:02 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-70a92827a70so17141286d6.1 for ; Thu, 14 Aug 2025 01:53:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755161581; x=1755766381; 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=nflzV9qq/tL/glhk9JNHKNEsSBm8wEvnbzo5OybERr4=; b=VwDeRzLEHKaQhv9imcVJG84c28l+J1h0O7CR2EopA4pLC0Q6WoIy1f35ktOJginB/b zjw2zxqhoQqxoEOdXbleSGQQTuxIq5oo2Dyeu6ig+JC+dNR8OHTQiqyDwQKAIIdiGJsY XLUkm6XcvYAckWH+GRMMIfHVjezs/obZ7Ory58XBbuUUkJ/x9ojQzr6qHXYl5DS4vc7o YAkWjBvIQq2X3BXUoTkwzOIMBIdoKWop3zudcWfo3noUzexwkptDZNWWk1RXBtFJToXQ IEEUH2CgPdWdLM3smobMYXqVvqTJ6cO1V5IbkY338IxegDkne1Lvp84UsUjmHe5nNQkX y/xg== X-Forwarded-Encrypted: i=1; AJvYcCXFwEXFbbF30Q3RbgbhLAieVqn7IUamRt3+h/OuIB0d/iwoiImXGtV0Ya25L/C9OOrbBKYDeqUJRXngRbE=@vger.kernel.org X-Gm-Message-State: AOJu0YxQw+TNLYfzg1LGGUH/gMNVE/1dJjXVK5osDSWMDGIiKnOWBEvr SK5wYX/G5rAdDIGsr+/0BUOi3qfgH1bsQ7fjznVy/u3yy72vxiMrzI73xjZ06MyJwrvptXtfjXD HfxL4pbrE1NGFJCOzL8Ed2O8x04RzVPM+Koyl3+WesRDzMIQ0qpTnPRmC1rojP1OHtRI= X-Gm-Gg: ASbGnctAXE8PlFkjeUJL3iXOEWaRMJMJ+DZU0TAeMMwt+Efh3EQoOIIAVgAiz1HUtHN /F8W7eyPBa7EcY9Lci45ykNxHHAINtVy9wi7kGTvI06jRl+aNwEcW3MnnTI+9O7+yUauJR6C5Sy rH4+h6d/DHDaOV7xmrG+f8PKqXLI8BFthcThQAp2J8I59WDdY52EBD5P6nLgeVmcRjM42Pvc3v6 IdIuQdD7sN0PJYoMjIU0nhTXhzUI2w0EEVBnsmvwB0Wd0zyzEL1Jmo4sG8qCXy6jcy/xsm7h8oU GqIOL960hqnzfngXNFZNvQFHoObMMtSiaITXU4UlFd5DoRj8xWMcnCJUljaeu0+8xjSh/4gpKpN E1YTiwul3PIbp X-Received: by 2002:a05:622a:551a:b0:4b0:6d53:a0fc with SMTP id d75a77b69052e-4b10a958407mr32313691cf.7.1755161580769; Thu, 14 Aug 2025 01:53:00 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE7VBqCxB491bsqiTl2g2jB8aaqDVL3tegvRTBxyZwdhXGP6AmLmu9SM3LrDj9T0Zv7gbkXyQ== X-Received: by 2002:a05:622a:551a:b0:4b0:6d53:a0fc with SMTP id d75a77b69052e-4b10a958407mr32313361cf.7.1755161580281; Thu, 14 Aug 2025 01:53:00 -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-45a1c6bc93fsm13155895e9.2.2025.08.14.01.52.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 01:52:59 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v10 5/8] media: venus: core: Sort dt_match alphabetically. Date: Thu, 14 Aug 2025 10:52:45 +0200 Message-Id: <20250814085248.2371130-6-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250814085248.2371130-1-jorge.ramirez@oss.qualcomm.com> References: <20250814085248.2371130-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=G6EcE8k5 c=1 sm=1 tr=0 ts=689da3ee cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=KKAkSRfTAAAA:8 a=COk6AnOGAAAA:8 a=tkZEzfabOtbtaFzRxSIA:9 a=1HOtulTD9v-eNWfpl4qZ:22 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODExMDA5NyBTYWx0ZWRfX4ck4T2A13+eL XQt8yfNbCv+5ET1nNG5xhDdE5sWT4FTrwU/e+ouXTrgp58ovPuUfKziImPLmqFU5SVm26rmhS1u rFOyGm8PGfvKk8WPE5J1SyboBf1FN0gnNIQFM1hJMtbxobfAtV5Jz/xDukvYt0D7c55EaOeUbMu +NkvvMll8Jk4Z/0pNB6GgtndjoU3TyyxEiCiYTYx2+FbU/Z3vHbCiLFZ2E+A5VPq8CyRwE2aTrx QElYOe2n2/sxEHGphiY/VvWkF97DUlJLIEPRtddzzFV5nqrR6i5ScuMWQY5QLZ+thVLNfpTbeFi c2E34AhRmccSC2+JKnQS4sWvZF3JaafamQneFwexnXWxHPw1JqCLZ2CJV9664ZcF4ye/e53lg2o 15sCDTrI X-Proofpoint-ORIG-GUID: E9-HaQ38z4H90M5nhRnL37WK4q5CZJLU X-Proofpoint-GUID: E9-HaQ38z4H90M5nhRnL37WK4q5CZJLU 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-13_02,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 bulkscore=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508110097 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 Reviewed-by: Bryan O'Donoghue Reviewed-by: Dikshita Agarwal --- 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 bc7b255357cf..0ff48c92749c 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 Sat Oct 4 17:30:15 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 766262EB5A5 for ; Thu, 14 Aug 2025 08:53:04 +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=1755161586; cv=none; b=mEnKL555vzMr7Lyh+Fnc8B3/Xuiru+nE7P9Z1nEY/aq34mytvLaQIa9FuEpoNsU/U2yoLxiedD/clH8ACcX2BqraiJzYTA1C5C9jKN3O1c7/K/ANKM0SnKwjKWWtd/aJFW6G54/NlcTO6im4gHG/kz5hhFXOcBJosBwv9SvL08w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755161586; c=relaxed/simple; bh=3Yu4YRTqSg1zXYTpIyN2rJ/1IKFOnJNPBhgRAh5ZGNo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CkUB6ofVO5PUhys8sU0fElbl6HBbCANgVcN1bjmhL1r3WEYgxGseucPAWN1zq/yTgIhDceE+GObxWIiT6iJ72D0mpY6rVuV8a/emLlk/ShUF0jS48T/CAW0SkDyLDB7o4o/aMq4UsFPppVH/0gGb0mZQZrvAnIViADvz36QOCyc= 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=Rawq7ftz; 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="Rawq7ftz" 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 57DMOeK4000971 for ; Thu, 14 Aug 2025 08:53:03 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=Wq+5fFLLIUz p66ajnRYUduOzP75SP1IxkQPm7IsLBtg=; b=Rawq7ftz3WydsXDuOyccZaSqMGw QGhP30/wyReidZZvBcZ+MQQsNr6s53wn0jQhjW0aR/p4QcBHAWDQgwSB2xIyW9JQ uamaWkHnJpuxQrC+CkbiUY8zpGDOeC/vPAbQzvgf9F4d/kFUGua2Tld/l5j9wTaX HTr/pKxcMibWFQPZHtHiMvN8BaeMxdArBAn0BIeEBoHwXg/Q5X1nkJ/lMgMq430y gNAJZl1woGDOQe8xFaiR1zOAKGWKWzwN5YPNe6kgiAMY4hcB8apYonee2ZYDK+EY Ml0ZkvVmsJynProG5E66Htgzr/OcBSkQhFZhIu4tgYds3YTzOujr82Vrw3g== 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 48fm3vswx5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 14 Aug 2025 08:53:03 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4b0fa8190d4so47464021cf.0 for ; Thu, 14 Aug 2025 01:53:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755161582; x=1755766382; 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=Wq+5fFLLIUzp66ajnRYUduOzP75SP1IxkQPm7IsLBtg=; b=Z0Gkc5AMqaamMLPLisE/J3bVmzxMz31AgqiVL/3aoNQMVeHZgEwTLhNDFdMTPEus9/ HUBeGDGKXIvitWl1nkECiB1RuKHbA9qHmmxs4j0iOXMVVuOLnkCWl72PbTumiEAzfjxZ lmVugkud/9Ax3EJ0u5rcv/Rc45mhn16i4qAJEkx8l71tsRxjZjYyjkch2mCiSby2VbGw pYApon+0aiXjyY1qYFe2Q3/tk20LYcKiiL9BwfKoV6kz8LhLCdy9TRBmRsngC068MPRf 1g00CWFimNHtXqoZ9c3Oo5SpkQj/q2eCXiBxJYgBh0Q0umoZSjhWDsF8e0QF+e//UHiF qSgw== X-Forwarded-Encrypted: i=1; AJvYcCW0khIpnKke+eKBI7ik906HXrRywnlshHPe941EzPKrpY8AzqHmqG9k54M/Fd7q9QBpyOFrB8HLddVlU9I=@vger.kernel.org X-Gm-Message-State: AOJu0YxxAITOq02/KiQRb/0ToRmUAvNoWD7+m297Ija5zw+CNpQgOfOm ssP6SjSe93CtQn5JpyDESroVdGCxppQitxuG/p98ei1tZB4UfDGsqfI7U/9rg31MJh9+KnRebDi DwtI307CzMqQw3ZA6EfJjPCG/+fZYmKRcdFJayXlajip0MjNEZ8o6nEuUtM3pn1k0NSk= X-Gm-Gg: ASbGncthAPNRE7Bnsu0YW1oel4tZKq24Xj851eM0+TuCdsQnnZ+Po8+yuoy0+Mv7ptz S8zJQYByjG6Cjk/SnUUXUHmj5o0HsFNflCvYTptk51pxP+aTLWrtg1OHnTN2DRFPdwDZvljRufy mQM+WAU1bo2uVmjRl3h+/rzI6cEbHU4+n2rhYk+ZcN9eipdwxo34Bi7Q10BFR0pFqx2+jLjgAzp m3RJM7uGr9AcCDasebIA5ibpFiP0P/h5CBneo03hIdTPaKb0DwbKZygKbZf9rxfEE4mChblWP4M dExRFSt4P0+TQ5UmpokEeUKMF3O5L8duQ03IPDwODl3l/c/VPhek+4gEt0NznHYnNyVNkz3l1Sm edB4HaMnvy+Gg X-Received: by 2002:ac8:7d12:0:b0:4ab:63b8:3320 with SMTP id d75a77b69052e-4b10bffdce8mr21509831cf.23.1755161582197; Thu, 14 Aug 2025 01:53:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEbCJhhwINAU6zsIVUj0FUXSUYhKMewKYSebZl9Jrf4JlH0c2h4fQT4SdU+0VvyGI9Vf9VRAg== X-Received: by 2002:ac8:7d12:0:b0:4ab:63b8:3320 with SMTP id d75a77b69052e-4b10bffdce8mr21509621cf.23.1755161581708; Thu, 14 Aug 2025 01:53:01 -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-45a1c6bc93fsm13155895e9.2.2025.08.14.01.53.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 01:53:01 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v10 6/8] media: venus: core: Add qcm2290 DT compatible and resource data Date: Thu, 14 Aug 2025 10:52:46 +0200 Message-Id: <20250814085248.2371130-7-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250814085248.2371130-1-jorge.ramirez@oss.qualcomm.com> References: <20250814085248.2371130-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: AW1haW4tMjUwODExMDEwNyBTYWx0ZWRfX+zOTEhieVjgq 6FBBVaUXfhoat2kPzzuwpas8sY+c0pDOkgyEKfv7+z2JLM2TZNetED2b31WPCl9dSrbAXvwio0f +jIHYlQ3EJsyP0VmzoE2EwdQ7kgpCB/oN9JdxZHZzT8WWgzgf7JmEjY+mXAe9gwfo2NJPVJZ6gh GCz6VNLHVHZAwBeVGS2WpNUXQoRFPMNOcQyCQ7qguJ46awghg8uEI7vdow+Dl8MM/wOW1Pm3Gsv XADkuq3WufNUZZxRr4nUvxIImCn/btcrhl1NNl2V/2jsaF+khGync28A6rZOH4vwvYYjtJH/TsW dRizvOOQt3K7wY/HXyNeVQ+zS2wVLrKvd1JD51pfXF+x4rbqiXiFsr67EOh/T7ckYnVjq5TTj35 aBN2ImQd X-Proofpoint-GUID: MyLHvfnPY5Qs9tOq8ex5jrT2a4AAIVQ4 X-Authority-Analysis: v=2.4 cv=A+1sP7WG c=1 sm=1 tr=0 ts=689da3ef cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=COk6AnOGAAAA:8 a=5fA-3PHwp7xA7VOvTvgA:9 a=kacYvNCVWA4VmyqE58fU:22 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: MyLHvfnPY5Qs9tOq8ex5jrT2a4AAIVQ4 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-13_02,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 clxscore=1015 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508110107 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 0ff48c92749c..abf959b8f3a6 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 Sat Oct 4 17:30:15 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 D45B32E7F3A for ; Thu, 14 Aug 2025 08:53:05 +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=1755161587; cv=none; b=d1SIl0qo4tfXskXkdyvgivi3eEGPxr5nZYfpEvFtB3KV2r93K0U5O0fO4l2OManpk7tbWcOYw3j4we0ZXUyaEsXgHS7Cjjsn8zUSfTVSCW42PmKW7fwpIy3uzCJ+YYlLgwnPlJDPmchMWagwxz77ctEKLnfr/PvAAwokNA/fHlc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755161587; c=relaxed/simple; bh=gZm3ZSySExg5Ma1IWfjbw+2tWtzY5TEG+kq6H35x8Pg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=AFLKAAd3o+MBfEdznX+IfDGCDENTiveKb0glXlta9TAkFj/XIzL7MLfnymzlXIsem4UGXd063vqQWiJiO8HjDs48KLYGVh0AtrZbmMFdcc+xRrBPt9J+jJqJs6xZYNH4OSB0cM5NmQN48J6OzZogQPw2Igfq7B1TSnLeuwEMcyk= 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=TVI7W/an; 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="TVI7W/an" 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 57DMXWqg031953 for ; Thu, 14 Aug 2025 08:53:04 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=AUq6SEVReB4 B8mcPNqCG0K6dhPWA7iXTcCZXwcqT3AE=; b=TVI7W/anddYTHiaZc08DDZW7iIk HF5shSoo2umAKmJ4O11TD5WBGU+TcJbVXnzY47O6hdtD2kr9sOi5TrB2apZwq4mu CIPabL+8OIDMqE4S8k03NEIujZU4BYhK+lzztesv3T46el1IPx4Gd71ND2OlmTUC OhMKz74pw7VsXm2MdcDeRjT9kOLM/SYyvKjYP/IXez83/73BD9KTCKYPLPf4SfAI qSTRpFQ8pOgci6K3/zq8QKntWphck5riok3u0KtbJTTS8CDal8b8et52C9K0Cb1R zPI6dhx06zWjf4fv+0b0NcXZdiXlAeo1IvVHauGgH+B8Dge6/nEsFRh+G7w== 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 48fem4jyvk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 14 Aug 2025 08:53:04 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-7e8704d540cso77493685a.1 for ; Thu, 14 Aug 2025 01:53:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755161584; x=1755766384; 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=AUq6SEVReB4B8mcPNqCG0K6dhPWA7iXTcCZXwcqT3AE=; b=WcabHs9Sisv+f+WoV3wKFgWJ7CiboWAVorugoQOzkjWhkRbOVuf2/xJOpqI3IYn/I/ 9gFRzYRuM9hBeQWmTOFGdll66UOHgp9/3iYh/U+V+k/TpEm69GmEHPfuAXza0Wkm4sD1 bdeHN8c+6t8ClYBakhaEfyb8dvff5PjlYajMvehApXxs4pcW0NVknlAE65jiCYHPuEDf 2CDmtANgXG9zsHdiPhOczYaBPbhBEdVGj+tpkvD3IY8xyrmjCZkR1BD6pXCensNQ3Wkg Tjw9DQhq2pn1gGhUJ12SchfhFT5Ag9N0hHsnk15kqCHXlgahYpBpTZ607nStWOZ28L0b Yf9A== X-Forwarded-Encrypted: i=1; AJvYcCXm876woJ4ftDBjSX8O7DBVoKCaLKT+3KbnfvzJ63D/nJF9WnOQsAIAd20k788Yybk6zzStB/SXSS3oWyo=@vger.kernel.org X-Gm-Message-State: AOJu0YzOXPaj1wQ6tFyAS7XQBGAGHCD2j+XXqcUVqA7HBUOGa33/U9kM eoLMct4zwXVc4XagZ2wmAsKRa2DxiyteuKsI/lvnvs/+vv06tbHbHyb/0P253/kb52UJa/kTejc 5SZ7WiO5rHQKFpK500cvwrcuAj5YLugD6MJBKwccKlGUau9EMYiZWol53deEF/0EAnWo= X-Gm-Gg: ASbGnctoJa8/4ZXI3kbJ1146LuWGKJ97AQyst7XY2wLBPDh5kS85JIH9ZLZwYvY2N8L pS+xkR+uALjZqAge4tgkFmDl9XgT/KHKay7CgxNaDdFw7goa/TIoUETvzHmmlFFq4VADejX5uFm PQ5bdqYO1LeL493eGHl2D1To5dlHz28WEpyPh8Zwtu96oRu858zZ6HthpdhcAV8oUUNCyUiKiei XOkzV0JCCewLcNfKU7OVX4HjuHYSeJhcb0hJ09cE6P3Xn8+PXnJUMvpbHRoQJDPp+AskctmwSPi yIkkjfPtFAG6nbiZr6VDA9/nLTd/GZuOFZuHK1l1iJqjfkl5hgyzQRrl5+UC8cE4tTsN9ae5sVA GC0w3NcNdoLlV X-Received: by 2002:a05:622a:1f13:b0:4b0:71e9:1f95 with SMTP id d75a77b69052e-4b10a918517mr35987761cf.10.1755161583616; Thu, 14 Aug 2025 01:53:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFzsEBFX0XFzWTx08N9omB5JXz7W34VN/Ia8pVMBYnsd56pdZT3Br6u/m6Ok1Uqg3vq8AZrCQ== X-Received: by 2002:a05:622a:1f13:b0:4b0:71e9:1f95 with SMTP id d75a77b69052e-4b10a918517mr35987481cf.10.1755161583184; Thu, 14 Aug 2025 01:53:03 -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-45a1c6bc93fsm13155895e9.2.2025.08.14.01.53.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 01:53:02 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v10 7/8] arm64: dts: qcom: qcm2290: Add Venus video node Date: Thu, 14 Aug 2025 10:52:47 +0200 Message-Id: <20250814085248.2371130-8-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250814085248.2371130-1-jorge.ramirez@oss.qualcomm.com> References: <20250814085248.2371130-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: gNYg7tlSjfmeDSQfEqZNlf8vH_QsGUs_ X-Proofpoint-ORIG-GUID: gNYg7tlSjfmeDSQfEqZNlf8vH_QsGUs_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODExMDA2OCBTYWx0ZWRfX+KvCrQ4rNqDk N9Jqpgi7SpA7QeHoOeXXaVsuUOZ4ZBNeN/czmhP0F/awpdBmtdwizs1OKCtJBakOLTr0S48JpSq BoawfKJHa795s40B+FTf4hMzjytYWGvFYzw70LrhI//5H1NwzDLo6bzpoMbK2S4ZNwlDaXIeQl7 mdD300FOm7kNKY/Oh3mKKtBxzb2nsWHgTlkTSPCXyY45V/OXehSh3x1yMuTp5kznP4vY2BQzvO8 wEx22ut1JcJuplRyrzkH03Qyw2tHOKIbIBIAVU4JiLp2Ce+9zoeC3W3NAsFJuB6jrBC1cH1hh9V rUN2kL6KUmMq1shxz9gD/dJCSkAaw4695QXxun4T0x8umPGsiHnbuXWm/dRrQElQBUsu8u1Jr22 OlwgvVCW X-Authority-Analysis: v=2.4 cv=YMafyQGx c=1 sm=1 tr=0 ts=689da3f0 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=KD12_Wl4P5iJQNenjFgA:9 a=bTQJ7kPSJx9SKPbeHEYW: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-13_02,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 priorityscore=1501 spamscore=0 suspectscore=0 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508110068 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 fa24b77a31a7..b1a31af1afee 100644 --- a/arch/arm64/boot/dts/qcom/qcm2290.dtsi +++ b/arch/arm64/boot/dts/qcom/qcm2290.dtsi @@ -2096,6 +2096,61 @@ apps_smmu: iommu@c600000 { ; }; =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>; + }; + }; + }; + wifi: wifi@c800000 { compatible =3D "qcom,wcn3990-wifi"; reg =3D <0x0 0x0c800000 0x0 0x800000>; --=20 2.34.1 From nobody Sat Oct 4 17:30:15 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 34F072ECD3A for ; Thu, 14 Aug 2025 08:53:06 +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=1755161589; cv=none; b=nH63wsvLAhP6PWAxrdNr8w4Ez6DZWrhTVPA/2FjSE5RjNt5wxZy5GOEk9nJwhT8q4K57HxX+t+rPRSyntS89/RXT22TbP3M2QxhMdbpMn41pRgG6h3q/lbgwPdwdO0SfH9rjs7xejMBPhbc/cZm3e9VoF+aBJEDdtxQyDA3Vrts= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755161589; c=relaxed/simple; bh=2nrV1RGrteIGILA35JGVcooDPCw0i8l4s+Fs181xoas=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=abXj0Hm8RoLy26xKQVsaQDCxSv05TKwu0PaVZrngYcq8gf70YMP/6WUxg5UWEI0dYhMzNCYBLuILhkl+8Bw7mtpqlp1MJz5aeoq6oniFaWXiEPDparSR40nqUcJUerCghbrHotLWtHnNQAJQqlEExU9Pi4vTPo7br24AmqC60hw= 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=jyh4dR6Y; 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="jyh4dR6Y" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57E8j1DK020580 for ; Thu, 14 Aug 2025 08:53:06 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=802pdFifR+0 7OV/Ivdq0qgpF3I8tJB99ZMyu6lvL/YU=; b=jyh4dR6Y5GqRn9yuJLvkmi6qTRV W1SlCzCiWosgv77Dv6xxSxN2XXcwLBJccGOtJeFIx6ysXRCPtr7fvDrbaSw83d6Z twIYFk7pDFIA91QYFQtLMlNbSoUqh2vNpr3I6bAT+UA33MRhN4zHwOhIn2O0eEaR 3CjcdJYkjtXoG8Uhl/bl0GFEyyMZKsBTfuAlS14VfX3V1OKshB9LeVhbaQrjfyO3 u3Vs0EZbcFLnWgf9c3jZseeuy2EgX+9RolWGPOcRsvqNYky+0TzfmXhPmL3nEbfr PB7kda6Fx4iP/K0fM56yI+csS6tCxN2hhDm7yNNQ7Z5t++0AEbWP9mPzPyA== 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 48g5hmf01y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 14 Aug 2025 08:53:05 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4b109be525eso20316101cf.2 for ; Thu, 14 Aug 2025 01:53:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755161585; x=1755766385; 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=802pdFifR+07OV/Ivdq0qgpF3I8tJB99ZMyu6lvL/YU=; b=g61CYxstVzLg1YSqLcQmv5t/Y4QNcbDV1svyDX7xvo5HWxlbeEMRKxlLcTRT7UJr6I D1qdNxs22DMPCFthin1yGDlpX2ebX2r3n2glhlcPRq0m9O17BtueaXYsFhQZ/8gjMaYU uuv9Pc9JOhzmxliL1X8RDv5oU3RK+wfm6PLfndgu1fcU8MOYJ96CjbVQjvhDOnGzJYEx hwZCqyvz9ylZuPu0npYR9FzBIkBjz/Y3qQapmCkT/K9GjoUdgc+Ueg2t6bTGv693Xajw 5YiiDdb1z8cxCD1fpkQtcAm4vj2T+buUwCjIiTg6jwuVswU6HYGU1CVwfPi/I9lvB4JF snIA== X-Forwarded-Encrypted: i=1; AJvYcCXXS0kt/z15jRsDKYj4L+S5nBT4Ih3ULmtmbOo0S4iNFZraaRWkh6/pX+5vDPbwOHAL0ymtdT+tHHkL5Uk=@vger.kernel.org X-Gm-Message-State: AOJu0YyJj5ECwtX42vqLQC0VuaNm3uLyNnQuG8TLeOB/9ojjmkNpauc4 DRFmY3vKw3XuussKr3M/1FnHLKYZBJNInENRX0OO+vaBtcTZ1eEnUBMlhMmi1gTX2z6GkEAFtTT r8cwnK/rUW9/zVWPaXxP82ZvmHqoMNFB5Uh50M2mmQoq/jQzbl63otEhlv8RvluMR11k= X-Gm-Gg: ASbGncsNBs2A3VOjni8hB8h7Q6EVl++sBfxpBBoqI5wSF+rBFXHvpdVpWoBvaUnVyvc /c3E0gqrgA4NR+ZETWdgpM0IeP+yvkyXX+rufi15XzsaLqnmKV7uyaxcWPkSt/lRlcz1vCyIqHX Q+46wdXur9OECMJMI7IC0AvXuOq7zBmI3jGNRS3moku2ICvQMa2ez9MMtTItINFs3BQO9J0irBE j+FLfsEHQq3+Z1RVMeOr5xyj2Yi7MaCt3yCak/ndy8Ex+OijkPd3OeqlmUoXeuSlg8ujyTsHmrM 354/EqMLM+FHcu3TV0grd9pqPaU2MN9/XLSLiyKTngCBf4Ttxee2oHLe0sATTBcXVwIDuMhcFbu qYmZHzkqltIcv X-Received: by 2002:a05:622a:81c2:b0:4b0:e934:85e5 with SMTP id d75a77b69052e-4b10a958260mr23386691cf.5.1755161585096; Thu, 14 Aug 2025 01:53:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEDfgB8pIcLGblDgdcBbn8sEeOUMF0U28QhhTWEOvZWpvnlv7kxX3cNXjAhMSWaa/z5Xj1oDQ== X-Received: by 2002:a05:622a:81c2:b0:4b0:e934:85e5 with SMTP id d75a77b69052e-4b10a958260mr23386401cf.5.1755161584620; Thu, 14 Aug 2025 01:53:04 -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-45a1c6bc93fsm13155895e9.2.2025.08.14.01.53.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 01:53:04 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andersson@kernel.org, konradybcio@kernel.org Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v10 8/8] arm64: dts: qcom: qrb2210-rb1: Enable Venus Date: Thu, 14 Aug 2025 10:52:48 +0200 Message-Id: <20250814085248.2371130-9-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250814085248.2371130-1-jorge.ramirez@oss.qualcomm.com> References: <20250814085248.2371130-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: AW1haW4tMjUwODEyMDExOSBTYWx0ZWRfX+juomU3v39Do LDJ712kyCFUkVMEc07XqQqrsxe+8N1+gjVkeC1hMCA4gploUISYp9+qkoQjSx7Av4vkP6ZiN577 EtqM/jYCy/xg5722qr+ZTqCsNskYr8D6uBAnMl69QQxFOhjhCocI0palQkBa1R+DGRFTgB+aiDS DDN6l7Xv2I6CbWE+qTKwKNk7DxLt7rGNvY4TFagkGAwLEzZEP9Y89Cea+LjYnAPO03KPLjOr0P1 WPaANU+tw+EBgsVmKIv3TgJXSe0SxgMMY0qc1lcKfpQohAKRQy4osfOiHylh/w98Y9ALEIZyVXk sDuCikrIPKkIyqF9u59N5peeuen4brpqD9+vCTdYSL7cgLeBbPIkzxWVEMYv5BwG/N13cvI61st CGWBw82s X-Proofpoint-GUID: 8LwNLJZhRB8SvWoP5A6SkMh1RJST7ivP X-Proofpoint-ORIG-GUID: 8LwNLJZhRB8SvWoP5A6SkMh1RJST7ivP X-Authority-Analysis: v=2.4 cv=d4b1yQjE c=1 sm=1 tr=0 ts=689da3f1 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=Rr2dNH5/fcnoRoBmcVUeRg==:17 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=COk6AnOGAAAA:8 a=Qms5JgQ9tnEuTiNUcoUA:9 a=a_PwQJl-kcHnX1M80qC6:22 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-13_02,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 spamscore=0 phishscore=0 adultscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508120119 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 Reviewed-by: Dikshita Agarwal --- 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