From nobody Tue Oct 7 02:01:41 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 7614B1A76DA for ; Tue, 15 Jul 2025 20:48: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=1752612482; cv=none; b=rOW5F7JpTaTkI/5omm0RuAOBMsoBVAL+rTmvJue/AQG5Ugv08tkRdWdUjcjzc8nveHC9GBT1B8ONBKQi7aE26zyESbTmCAed1DCJVpnjytUOogZcOSU3YNdUNgkd6dhPDzA1CTN8+skR63N0qIrTOoXLZG3vT6jZIKEHgfKD1Q8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752612482; c=relaxed/simple; bh=KM3x/3Pbcpku4hi+Q2J5twTHiiakqH43ags6fQQ9T8I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sATo7WEhKvHdXO4RVRr/z2JIfSMziYG9yaxJLsIf2Y6Z8lO1sRntD3ECEUVKJhXT7c2tXp/R+233bZNnVXHDBvzmEMz9aamT8awNhNlHAVl2U0Mj3Sui+H6NPH8JN3woqSdHO0VQIVTi+2S2QYqoNcrHWKLWEwwrmqv/uUdpn3w= 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=L75PKYqN; 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="L75PKYqN" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56FGDK37024943 for ; Tue, 15 Jul 2025 20:47: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=YGHUolC1rCw c8hxbfX9G9XRUGGS2ug574YwaNTuSfSw=; b=L75PKYqN4yHjGCHgJAo/iwQb4w/ azE+n6M4KAokRKz4R2IiF5BgcKhxM5cPLlJVLp3t61/KqoyoWA7zo0QA9aa1eSiC j4sZ/CqTTiufO3+i4zo0QxFr/KyIetsSeP2wspUCpq3ICqqiYRf32ScWOmFvMOQ6 WmyE4JHPWpTEK2jK6mtw0xdhQ3IIB3I6Qnrz/jy9YDd0FdqwpDC1OuCwkQLptvYn mFBfHwpC+U1u6LlQMEAXECPx4dTkA1CCgEQqcQi/g7SR4/6Nhd3K9ONiDHubpS7H wVn9aGpksGuHq8bB7AWxuixPzqRnLc8w1hedkB7qRO5bYBrmfYeSYKAZakQ== 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 47w58ymdyc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 15 Jul 2025 20:47:58 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7e1b84c9a3dso435098285a.2 for ; Tue, 15 Jul 2025 13:47:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752612478; x=1753217278; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YGHUolC1rCwc8hxbfX9G9XRUGGS2ug574YwaNTuSfSw=; b=S6ZX1tTVZ/dyyD6M+i9rfpH/tXH6EEpY1BbJ2luarZTfvczgQ9iJoPTxPz0QczBVV/ aQe39oJieUwRICeQ05xxRal3IO/VyyZ82mGnd2mTABC8TVCSIxsrAHKgra7QnztDKwdj F3v9G5C8cE56h/tcd0qALvx0kVpxG++7IAzrI1pACLdTQFvacv95p7U8QLEn4UIBcClm Ru+/v0ScATO782XBuGh61Kkfhcmqz72c7Qjq8tuNCzT+gObg7526PAgP7ahdWlrS0YgA vzcwxN2zDAg1fHTkfwtKVrFQHG9/Tq0f+3spo90DxDFee4Vws1Xlfu8EF2DMh5N6nAYi G08w== X-Forwarded-Encrypted: i=1; AJvYcCXlFMC6V49FiazqxEzpt+fQYz/Tlsh4kLlIFpc7qfqThRQaKw46vy74sl3tV/spLnTHEbKJWEofRwQMLuQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyIy++0e4mQI4Q0LOm706wSJFWu5mUreyurlAYIhY7O0ztTc2At 0AXBwL8VKXJuVKQ7iZQ0SX1dJ4Cfff5ncw3awhVzeRXfVBVEIRUv2mZzMzMdE4A7W6eCxDk5vYn kcLrkvZCsUpFPGAbBy/lzxE/IbjC/WOIvHFPG3OexYpEmaxaAUXtWakOHmqphf5AeToA= X-Gm-Gg: ASbGnctgf0aCMmk027zOw0XYWuT11CTgWVSHk3U9BuABcuzzc3d3f2aZFRyl2SVSYBv Ic+QD0DUFV3sJEsJScKZ2Z/k9BS+2P3HfqhilJfPoffIfuYHE5OT32P6/sfopo6rGSVwalkkGMJ y5fPZlEXhEyg9CMUs2zruRBwezYrVMRYcivqZ1W1qOsLe1Z+8eMGtG3ihJBjCMDmjv+IKiPxcmA sxLTbghn2wEdm+z46dav353NDx1Eo2zLkMTWELezQ9oeoPWryq1M5UJjiCNiQCC17b09U4+8d71 bmW8RfqNFyji6SiF5GgjWrxFss8xRYmbWr15/6HIxcSDjVZzBqo8w9ZaFRVQ5i43E+547Fv5xH0 wP7g0shBgobK+NjkCRQ== X-Received: by 2002:a05:620a:4088:b0:7e0:52bd:1c8e with SMTP id af79cd13be357-7e34355efdbmr44763285a.23.1752612477866; Tue, 15 Jul 2025 13:47:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFqr/md1c+7NfOSUJbYC+tuOFYHioqdEZ2PgcXNIoLvDdWe57k70a8J84cehq5nZn/HSQ23zg== X-Received: by 2002:a05:620a:4088:b0:7e0:52bd:1c8e with SMTP id af79cd13be357-7e34355efdbmr44759085a.23.1752612477385; Tue, 15 Jul 2025 13:47:57 -0700 (PDT) Received: from trex.. (153.red-79-144-197.dynamicip.rima-tde.net. [79.144.197.153]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8dc2464sm16331877f8f.38.2025.07.15.13.47.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Jul 2025 13:47:57 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, andersson@kernel.org, conor+dt@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 1/7] media: dt-bindings: venus: Add qcm2290 dt schema Date: Tue, 15 Jul 2025 22:47:43 +0200 Message-Id: <20250715204749.2189875-2-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250715204749.2189875-1-jorge.ramirez@oss.qualcomm.com> References: <20250715204749.2189875-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: AW1haW4tMjUwNzE1MDE5MSBTYWx0ZWRfX1ZWtdMjPHBih nEVw1++Sppxgk3Ux4FtwjUwG+dG/zuoPmdgCp+C/QCWBuoQOd3o5SWPF//MTII/LkUPKd3WuXpx GMD+pJaDvWfZhjFhIjtEfMfx85x4wPHLJSR2s7S5GuEQ3dk+avyzm1Sj/MCUkcvHF3VtIF/y3nU ybCOMDWY9PkbuF28q0KqXIkGAvHYJcAOMM7p006oO1OfYFO+KN0U7jbBGOrvip4lojfhmHH9qoI rEe7eN5DIGH4lTYqg2RllyC1io18Bpahhrv2vAYL1OhzHC/d34N7dJuf+7+5iCaL33FRuK7cwkP ZwkFKHcxXvh6Y8+HExRFIIE+Z0K6nS+R5NYCgp1ykjpKJ0S4Mr0+Qzpu6hdhQbbQbzt5yIL45QC z+cc6A65CI48wlczyMAIrYjE0gbgUVgibns4ViFF+5JvRTR+bUmc0Q14dkpDeoZEUiSjIN65 X-Proofpoint-GUID: _Z4Qi5DilXlThj0dMwmjs_aScpqAUjGh X-Proofpoint-ORIG-GUID: _Z4Qi5DilXlThj0dMwmjs_aScpqAUjGh X-Authority-Analysis: v=2.4 cv=Or9Pyz/t c=1 sm=1 tr=0 ts=6876be7e cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=Ki5fnJvzvo7yLsyA0quaxQ==:17 a=Wb1JkmetP80A:10 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=COk6AnOGAAAA:8 a=1mX_ai67dwKzVtmm1w4A:9 a=NFOGd7dJGGMPyQGDc5-O:22 a=sptkURWiP4Gy88Gu7hUp:22 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-07-15_05,2025-07-15_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0 adultscore=0 spamscore=0 phishscore=0 priorityscore=1501 lowpriorityscore=0 mlxlogscore=999 bulkscore=0 impostorscore=0 malwarescore=0 clxscore=1015 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507150191 Content-Type: text/plain; charset="utf-8" Add a schema for the venus video encoder/decoder on the qcm2290. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Krzysztof Kozlowski Reviewed-by: Bryan O'Donoghue --- .../bindings/media/qcom,qcm2290-venus.yaml | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/qcom,qcm2290-ve= nus.yaml diff --git a/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yam= l b/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml new file mode 100644 index 000000000000..0371f8dd91a3 --- /dev/null +++ b/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml @@ -0,0 +1,127 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/qcom,qcm2290-venus.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm QCM2290 Venus video encode and decode accelerators + +maintainers: + - Vikash Garodia + +description: + The Venus AR50_LITE IP is a video encode and decode accelerator present + on Qualcomm platforms + +allOf: + - $ref: qcom,venus-common.yaml# + +properties: + compatible: + const: qcom,qcm2290-venus + + power-domains: + maxItems: 3 + + power-domain-names: + items: + - const: venus + - const: vcodec0 + - const: cx + + clocks: + maxItems: 6 + + clock-names: + items: + - const: core + - const: iface + - const: bus + - const: throttle + - const: vcodec0_core + - const: vcodec0_bus + + iommus: + minItems: 1 + maxItems: 5 + + interconnects: + maxItems: 2 + + interconnect-names: + items: + - const: video-mem + - const: cpu-cfg + + operating-points-v2: true + opp-table: + type: object + +required: + - compatible + - power-domain-names + - iommus + +unevaluatedProperties: false + +examples: + - | + #include + #include + #include + #include + #include + + venus: video-codec@5a00000 { + compatible =3D "qcom,qcm2290-venus"; + reg =3D <0x5a00000 0xf0000>; + interrupts =3D ; + + power-domains =3D <&gcc GCC_VENUS_GDSC>, + <&gcc GCC_VCODEC0_GDSC>, + <&rpmpd QCM2290_VDDCX>; + power-domain-names =3D "venus", + "vcodec0", + "cx"; + operating-points-v2 =3D <&venus_opp_table>; + + clocks =3D <&gcc GCC_VIDEO_VENUS_CTL_CLK>, + <&gcc GCC_VIDEO_AHB_CLK>, + <&gcc GCC_VENUS_CTL_AXI_CLK>, + <&gcc GCC_VIDEO_THROTTLE_CORE_CLK>, + <&gcc GCC_VIDEO_VCODEC0_SYS_CLK>, + <&gcc GCC_VCODEC0_AXI_CLK>; + clock-names =3D "core", + "iface", + "bus", + "throttle", + "vcodec0_core", + "vcodec0_bus"; + + memory-region =3D <&pil_video_mem>; + iommus =3D <&apps_smmu 0x860 0x0>, + <&apps_smmu 0x880 0x0>, + <&apps_smmu 0x861 0x04>, + <&apps_smmu 0x863 0x0>, + <&apps_smmu 0x804 0xe0>; + + interconnects =3D <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG + &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, + <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG + &config_noc SLAVE_VENUS_CFG RPM_ACTIVE_TAG>; + interconnect-names =3D "video-mem", + "cpu-cfg"; + + venus_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-133333333 { + opp-hz =3D /bits/ 64 <133333333>; + required-opps =3D <&rpmpd_opp_low_svs>; + }; + opp-240000000 { + opp-hz =3D /bits/ 64 <240000000>; + required-opps =3D <&rpmpd_opp_svs>; + }; + }; + }; --=20 2.34.1 From nobody Tue Oct 7 02:01:41 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 E55422BEC21 for ; Tue, 15 Jul 2025 20:48: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=1752612483; cv=none; b=g3t+KG14418/LdFH/VnfUA4jHFOr3l7tKdNf9UlmaHpAB3clo4xIijAaPDBXtTXXZ4SgM6s4ss9c56E8EUhsEMSD5yqVsHT6ybyBgOWDUZ7d5l2RuvxFKyLxMdY3VaiQxfO0buzXOnb0Ho8+DwhX15Iknro5cjhQ8ZeccYsHArI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752612483; c=relaxed/simple; bh=JLxRVXQhon6gxubKoqqTIwexA1gN3xO3FmETcqxOKgc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Ely2EMkVRTZdEjYb4C4W8xrHGrghzE8YEMCI2f9Zb3rjAh3vMfU3B2RaeKBkBV+4rUHJLiJwvXhhrH4/1tJauUBScs7WxBFALIXONp9hJOY2jGmWFQpVYI6jvvAaVhx98KPRCVtQgEgVjClnJST5mxEYSxExRY6NnPeW7F1kOQQ= 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=o+zgH/7f; 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="o+zgH/7f" 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 56FGDNTJ029579 for ; Tue, 15 Jul 2025 20:48: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=xqIJdlz4cKk IgtCaMYekqr5WxjgSE1e16/qhi8p04Sw=; b=o+zgH/7fycK1TVAMJXWmkfNwBy0 h69KVQRJBljc18REs+OJPqGYzcODG36GRBHWehfc5v/BNsFFaO89i0BC1IReJPhF QzojPvXA3jrJnuYs+PP783ieM+Q9XO+/FXzGg4sotcJvScajfMBH548KuLt1zXGb B7rOQsBgdMEmD0uosc57JziQK5KO7a63ouuazVe6DxFG0dy8EUtQhZb1KuUiU4zY V3zp48386+zU9VeU+GdzsdY9llxUKBOqAqphbDW5XEDc9e0FeS197PzrTjzyYSdb Vo5UIRLytzGHfTxpM5k9nFeOXACisBj/qZe4+c1NmgB/FUwGjNMSydOrv0g== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47ufxb1mkm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 15 Jul 2025 20:48:00 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-7e207330a45so449550785a.3 for ; Tue, 15 Jul 2025 13:48:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752612479; x=1753217279; 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=xqIJdlz4cKkIgtCaMYekqr5WxjgSE1e16/qhi8p04Sw=; b=PWnmsvsDVDV0DPc773T0VBrsWAGByAj28EChg364OB9Uk6+g4ugcJ0x+8xxE4lemqG 8JYYvhPqf8145pAElNtv4H+XzwxW4NLlKpMun9bqf/6lLF//5GZzYPb5JM+5ryBjLANR W2szGosak1vqniTuK566oUf1XnZebWzGpb8jcb8D7+d2phSo7HBmbRZ3i17kX8QA/yY9 AqVU2V34+Dt7yuEWJ2HskpKlhOvKnW0ddlmunjo4usgHg9mNi+/YaZRpD94NVbMjx7sv eFUWzRmeNgEnzCRfsQ4qDVf4dJbV+owGYBitpjibphgIXrm5ikeMi27bNlEAmBPFGpxR wHcQ== X-Forwarded-Encrypted: i=1; AJvYcCW0k343xlv45AgKkA8Mvz1H+GhPvNheR88Um/oJzWu1ACtaP2vroghoPnxup1uHrMf2HJDSAJJPMjX56fc=@vger.kernel.org X-Gm-Message-State: AOJu0YxreDPDnlJlXkiwZnGiPNfzXUDnHLKe1ukAQfGmDompjWpgedQb MHzHqMMNBvw8RBVtjMxLkyXUk5K3UEeV5SUhwp1DhLoLgZiT3XoT8xhL8IH9CWRjQo1czMOi4+X m7xSv0eIzdDFxsy3XpmuXHYqz4XjSiA7KaFsTxzc7hgqUEV97MxyX5JadbTjGeAjLrLk= X-Gm-Gg: ASbGncvAxp+TO6hQCuDhelEQZLFZIuDJIgdO9DiOldQMPebvY2oevy85CO0VhC2rpvl pd4+Bij/6tQESHU7z3VI4HLGEVP/x3DjM9yE9mPUNPTSPuMvYAlqT4qOY38p8CWgKSspM/Dxv2S TgBiOLD+3lVlczHKJSknMb0c6N4MrxS9fAkCzbxUbjxSVyYta++MnKLO9JzN7i2fULF5eKr1d90 Blei171P3ZqD1dRwfjPdYIgzCMKGqfoa2hUawDB9+2a18ZTUYV4C8l5kmVXxtVdPIHUcD5MvFcH PMljjZguV/0XEqIk5wJmi2QqHFp9XPnap7pDckDyoZOdI4hPG02n2zHk92r+aIRAaPGD4ldBXJR ktWXs70Izbmr0kwFjIw== X-Received: by 2002:a05:620a:1b9b:b0:7e0:cb93:6fb1 with SMTP id af79cd13be357-7e3433511a5mr45662285a.9.1752612479344; Tue, 15 Jul 2025 13:47:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE3uztf4eAZmDM24bnWWjsOEqyZP7OJqBLki+Bu0uvZ5eYMZGFNWgaXX9r3S8S4GW0aowWycQ== X-Received: by 2002:a05:620a:1b9b:b0:7e0:cb93:6fb1 with SMTP id af79cd13be357-7e3433511a5mr45658385a.9.1752612478892; Tue, 15 Jul 2025 13:47:58 -0700 (PDT) Received: from trex.. (153.red-79-144-197.dynamicip.rima-tde.net. [79.144.197.153]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8dc2464sm16331877f8f.38.2025.07.15.13.47.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Jul 2025 13:47: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, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, andersson@kernel.org, conor+dt@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 2/7] media: venus: Conditionally register codec nodes based on firmware version Date: Tue, 15 Jul 2025 22:47:44 +0200 Message-Id: <20250715204749.2189875-3-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250715204749.2189875-1-jorge.ramirez@oss.qualcomm.com> References: <20250715204749.2189875-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: zU_dNEkKkpd9TLd3BE5-0XNpOzMYJe6j X-Proofpoint-ORIG-GUID: zU_dNEkKkpd9TLd3BE5-0XNpOzMYJe6j X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzE1MDE5MSBTYWx0ZWRfX+TqOebPtE7PI wk6SvG3jNTnG8pIOS1Ja2U0PdP3ZSpOx3TmQICm4GPzhiXBin202TJF97HVcJFtwy7yk2tw8KqG B90VJ66z6rT0uz99/4HOav0vJxUVIfwQUJyrlso049SD5WMMUvvW7PDdYMxj1wXLT4iaVQ+Mu6J EYrpTdyAiykRukxiTu0YU4WPVwthFq31CuMVaMc0fFN0R9S/SvmV0mWtWuezj9C/9ynJfwJ2tJ/ 45+1FHxGHXhcnxBM65ocXusZY8cKeCCi+D42a7Wxm9IVhzZWYxdVSjAeM9CT+I+UnYMk2YZ572C 1QQ6vH9Mjl0B8m6eXzeltQ3U1rfaub6HkFbhYo8c6I5A/E7aQqjr3MhwmBNOchH3fqf2jSPkH3h Bf6fxnu9qgBiiyC78IF0ZT6Y/2gc6gH7thAlDVM9H2oLCAVrIV8AwBQ2TmsoulkgWSScwm1g X-Authority-Analysis: v=2.4 cv=Xc2JzJ55 c=1 sm=1 tr=0 ts=6876be80 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=Ki5fnJvzvo7yLsyA0quaxQ==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=b6RcsaAH2Bz4aJime2YA:9 a=IoWCM6iH3mJn3m4BftBB: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-07-15_05,2025-07-15_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 mlxscore=0 priorityscore=1501 adultscore=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507150191 Content-Type: text/plain; charset="utf-8" The encoding and decoding capabilities of a VPU can vary depending on the firmware version in use. This commit adds support for platforms with OF_DYNAMIC enabled to conditionally skip the creation of codec device nodes at runtime if the loaded firmware does not support the corresponding functionality. Note that the driver becomes aware of the firmware version only after the HFI layer has been initialized. Signed-off-by: Jorge Ramirez-Ortiz --- drivers/media/platform/qcom/venus/core.c | 76 +++++++++++++++--------- drivers/media/platform/qcom/venus/core.h | 8 +++ 2 files changed, 57 insertions(+), 27 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 4c049c694d9c..b7d6745b6124 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -28,6 +28,15 @@ #include "pm_helpers.h" #include "hfi_venus_io.h" =20 +static inline bool venus_fw_supports_codec(struct venus_core *core, + const struct venus_min_fw *ver) +{ + if (!ver) + return true; + + return is_fw_rev_or_newer(core, ver->major, ver->minor, ver->rev); +} + static void venus_coredump(struct venus_core *core) { struct device *dev; @@ -103,7 +112,9 @@ static void venus_sys_error_handler(struct work_struct = *work) core->state =3D CORE_UNINIT; =20 for (i =3D 0; i < max_attempts; i++) { - if (!pm_runtime_active(core->dev_dec) && !pm_runtime_active(core->dev_en= c)) + /* Not both nodes might be available */ + if ((!core->dev_dec || !pm_runtime_active(core->dev_dec)) && + (!core->dev_enc || !pm_runtime_active(core->dev_enc))) break; msleep(10); } @@ -202,7 +213,8 @@ static u32 to_v4l2_codec_type(u32 codec) } } =20 -static int venus_enumerate_codecs(struct venus_core *core, u32 type) +static int venus_enumerate_codecs(struct venus_core *core, u32 type, + const struct venus_min_fw *ver) { const struct hfi_inst_ops dummy_ops =3D {}; struct venus_inst *inst; @@ -213,6 +225,9 @@ static int venus_enumerate_codecs(struct venus_core *co= re, u32 type) if (core->res->hfi_version !=3D HFI_VERSION_1XX) return 0; =20 + if (!venus_fw_supports_codec(core, ver)) + return 0; + inst =3D kzalloc(sizeof(*inst), GFP_KERNEL); if (!inst) return -ENOMEM; @@ -288,14 +303,14 @@ static irqreturn_t venus_isr_thread(int irq, void *de= v_id) =20 #if defined(CONFIG_OF_DYNAMIC) static int venus_add_video_core(struct venus_core *core, const char *node_= name, - const char *compat) + const char *compat, const struct venus_min_fw *ver) { struct of_changeset *ocs =3D core->ocs; struct device *dev =3D core->dev; struct device_node *np, *enp; int ret; =20 - if (!node_name) + if (!node_name || !venus_fw_supports_codec(core, ver)) return 0; =20 enp =3D of_find_node_by_name(dev->of_node, node_name); @@ -330,11 +345,13 @@ static int venus_add_dynamic_nodes(struct venus_core = *core) =20 of_changeset_init(core->ocs); =20 - ret =3D venus_add_video_core(core, core->res->dec_nodename, "venus-decode= r"); + ret =3D venus_add_video_core(core, core->res->dec_nodename, "venus-decode= r", + core->res->dec_minfw); if (ret) goto err; =20 - ret =3D venus_add_video_core(core, core->res->enc_nodename, "venus-encode= r"); + ret =3D venus_add_video_core(core, core->res->enc_nodename, "venus-encode= r", + core->res->enc_minfw); if (ret) goto err; =20 @@ -363,6 +380,9 @@ static void venus_remove_dynamic_nodes(struct venus_cor= e *core) #else static int venus_add_dynamic_nodes(struct venus_core *core) { + WARN_ONCE(core->res->enc_minfw || core->res->dec_minfw, + "Feature not supported"); + return 0; } =20 @@ -432,7 +452,7 @@ static int venus_probe(struct platform_device *pdev) IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "venus", core); if (ret) - goto err_core_put; + goto err_hfi_destroy; =20 venus_assign_register_offsets(core); =20 @@ -448,19 +468,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 +484,46 @@ static int venus_probe(struct platform_device *pdev) if (ret) goto err_venus_shutdown; =20 - ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_DEC); + if (core->res->dec_nodename || core->res->enc_nodename) { + ret =3D venus_add_dynamic_nodes(core); + if (ret) + goto err_core_deinit; + } + + ret =3D of_platform_populate(dev->of_node, NULL, NULL, dev); if (ret) - goto err_core_deinit; + goto err_remove_dynamic_nodes; + + ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_DEC, + core->res->dec_minfw); + if (ret) + goto err_of_depopulate; =20 - ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_ENC); + ret =3D venus_enumerate_codecs(core, VIDC_SESSION_TYPE_ENC, + core->res->enc_minfw); if (ret) - goto err_core_deinit; + goto err_of_depopulate; =20 ret =3D pm_runtime_put_sync(dev); if (ret) { pm_runtime_get_noresume(dev); - goto err_core_deinit; + goto err_of_depopulate; } =20 venus_dbgfs_init(core); =20 return 0; =20 +err_of_depopulate: + of_platform_depopulate(dev); +err_remove_dynamic_nodes: + venus_remove_dynamic_nodes(core); err_core_deinit: hfi_core_deinit(core, false); err_venus_shutdown: venus_shutdown(core); err_firmware_deinit: venus_firmware_deinit(core); -err_of_depopulate: - of_platform_depopulate(dev); -err_remove_dynamic_nodes: - venus_remove_dynamic_nodes(core); err_runtime_disable: pm_runtime_put_noidle(dev); pm_runtime_disable(dev); diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index 5b1ba1c69adb..3af8386b78be 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -50,6 +50,12 @@ struct bw_tbl { u32 peak_10bit; }; =20 +struct venus_min_fw { + u32 major; + u32 minor; + u32 rev; +}; + enum vpu_version { VPU_VERSION_AR50, VPU_VERSION_AR50_LITE, @@ -92,6 +98,8 @@ struct venus_resources { u32 cp_nonpixel_start; u32 cp_nonpixel_size; const char *fwname; + const struct venus_min_fw *enc_minfw; + const struct venus_min_fw *dec_minfw; const char *enc_nodename; const char *dec_nodename; }; --=20 2.34.1 From nobody Tue Oct 7 02:01:41 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 A434F2BE645 for ; Tue, 15 Jul 2025 20:48:03 +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=1752612486; cv=none; b=oD4IHKB14WF7p21PcKfz7PEUh4nzGBlOGNLPGmKfXGDTsW8rgi+rq94xDS+yV/x01dNzCll3fTcYEyi2mnSRv5Mpns0CKiq/rcT4isdrTBao1OZUPDIvfLy1Jp6rlJ5M5ErfWp/jhoRAj8620W2iaAnO0tFtDMwJsPPU3e5LcFk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752612486; c=relaxed/simple; bh=FTM+53bRRVOHtoe28id393M3/rMRlzMvNdgdygu1FsM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JzF437wr0m34cs07qfUstJAQ2AZeEQ52TQvg9tCNsFSqqI2KEPrZmcMZwOv6oEMEBBUiVAylXBkpjrj4TGs9uVuAduOTpCdcYlfGEGprUQrX82x2RIeynWQN7kCJg6wAb3emJs2Lvwo57Xz50v7a9BlJI5ii4m9cS7lkQkGDk3M= 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=CLKlHh+E; 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="CLKlHh+E" 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 56FGDJLF026146 for ; Tue, 15 Jul 2025 20:48: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=OaMMPHPi/zp Bc19zLi9ig6YpA2t1zrIdsPiqN861Zlw=; b=CLKlHh+EB6rwfnPZWIDBoiMaQzR yncmSl6ZBGrAzTHhG809eVE6ITimjoJxh0vLu6QMtWEK+ldWfJJ3N0e5mkvcvhD6 qLWX1rBS+Jo2J1yYl0cygik0lS/aVA2UxnKkBxPWW3MPm+nigUrUokaos1DV0Kam 2r3jTEEDzn0PeX0diawFh0V7w+zP4a7ueOGCzzc0NUVHkuwt9WD6QTVyslG3mMpM XFYmAhMNkcxxm6dweFgcoc+kZu/BpyU3/CTNpcbF6J54RwzwAMhRJ+jVFskQUpRF gzH6BdZScCSuLdWGkwjtXQXTbwx7qM/LfcSrLQh6PbUxycQA8MLCUrOjCtw== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47wfca2ugj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 15 Jul 2025 20:48:02 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7e333fae758so400524785a.2 for ; Tue, 15 Jul 2025 13:48:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752612481; x=1753217281; 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=OaMMPHPi/zpBc19zLi9ig6YpA2t1zrIdsPiqN861Zlw=; b=K9yCbktaiMPvlfXdmgci6CIt71gFyn2sWRY3+w0iaPsf4fKhQVtqvOVUUt6/LJY+Bh pq1l5jmLRbNEon5TfMjVbWL4eF027ETLzA72+AswzfKpwSy8cNeLjvaIrjUDkCA8szzR TPzAa1p4xpzOQD0yofcW095qKMR4AZ5IgNPCEhgmJb25naunT0tFUsYkX4rA94UaWIma 8KjjOA4pa9AF20jFkDxpW+PIG2IVyI5GeKZovnyVIgsjagsWt2UCYt0+b+n6HbMoRh2g 3c7fKPb73bUaQLkXOyzDnMUjccEpNkDmMI88FH7GD/O5OkDYYbkYq+Hyokkk+DbxLDMW MNCA== X-Forwarded-Encrypted: i=1; AJvYcCXV80iK/xxPj0H00TwOOCbgskP3yiwjY2B4aXjQV+BFEHYdN4+3zhc8SNKm5+LlFlDX0PK89FtSH3uCUG4=@vger.kernel.org X-Gm-Message-State: AOJu0YzuDv9hyZA8VCqJuzNt7XBjjzRk3z3M59sjFDJjKaSgQejbBNbn uNZOV/dTh5APytJ7J0ZeOJWS6pTCXEKhp4/7gdIyb9cgl2upaZEDKDlGdn5cht8Ig8o+f59DREv BlOsxhqRKC3jb1KVnyo2GUAUHNzX8Vq4L5521qQ8h+fQl5gBFytfWg4K+DFSnNAHWGSM= X-Gm-Gg: ASbGncszfska8TFIWLAjkV1mj1OYT5o1R6go7PPsQVHuc7Vgpu9v4V2Qx8qlAxuLLOR /XORyBE0SFikbj41BWxuWchSfjVFmIMcEMBXAihxju27LwtfQ70gw1KLLV9WD81UPsXVpd4M26R iyh19TpZtZbo+++uiXALYDsJWaxH/5QU4We7/gMMlC+H+WAkp+VLH+qmPqZIxKi2iarBexXN/m6 yzjoSDlA0uV8Owbi/r+nqMFf6YZxSL+fFegSbnbrwGd+x9UQN24Se3VYfJ1wtZw+roTLMd+2TcZ kNGysUfRBFjWS60iQS2BdrZDuKn0hSjNWw3hKO9DhyFtwDqk6ObXmjw0MTJfvUIA1pURHai0yTT ya2R+algXD4QZ4jUIoA== X-Received: by 2002:a05:620a:8390:b0:7e3:28f3:893 with SMTP id af79cd13be357-7e3435ea1ffmr45799285a.35.1752612481010; Tue, 15 Jul 2025 13:48:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGBLFxJa9jSwaBUo5QAp9PxCrGHJ6gmYYTz22qRCxD7RWkcjeXREbTUK+MG7ac/OvQT1814mQ== X-Received: by 2002:a05:620a:8390:b0:7e3:28f3:893 with SMTP id af79cd13be357-7e3435ea1ffmr45795785a.35.1752612480472; Tue, 15 Jul 2025 13:48:00 -0700 (PDT) Received: from trex.. (153.red-79-144-197.dynamicip.rima-tde.net. [79.144.197.153]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8dc2464sm16331877f8f.38.2025.07.15.13.47.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Jul 2025 13:47: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, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, andersson@kernel.org, conor+dt@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 3/7] media: venus: Add support for AR50_LITE video core Date: Tue, 15 Jul 2025 22:47:45 +0200 Message-Id: <20250715204749.2189875-4-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250715204749.2189875-1-jorge.ramirez@oss.qualcomm.com> References: <20250715204749.2189875-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: AW1haW4tMjUwNzE1MDE5MSBTYWx0ZWRfXyPCLt87CLJhL e1By/nL4K1Lpe41W/RLr4+qrhlVbth9I1iWv2OncZNI7Mt6Qsb+LsCZM8/FbBpL4s5ORncukIRE wOMXTwMxjpGs0Cghmki9ERLguNQ8VQhV7mvoZ/RurBZsc6FkOukqDeJnaB03bQTYCHr2Rix9Ke6 1tjiy8CpKk4jO1hh1tYsvUWHM8R3bAheU8UPnM+mAgkjfHIaVSvbrJDHjm6CYPr9AAHrifVcue1 chr90653n7vQ3IuEQCRxbkDXku22j6ZtB3uFstclmSdjgIbjGKfLkRKZy2kIFeseRhp9ZIruOcF JqIVA6HmHXrKXhC0IuNx58YnyQGat74qG5qgKR2sdYuoIUPzEk7f7cB+9OtaIFUPJsyXu0lY9QM h56Hzstr35XcftyVRIn2tkrsGZawTgwf6r8KJsToQjWmQP2/AoN3G1kiILtjS0A/g9uRerUT X-Proofpoint-GUID: _WULiEQ3NxrwzkFH5Z7VVSO_c86TBSpo X-Authority-Analysis: v=2.4 cv=SeX3duRu c=1 sm=1 tr=0 ts=6876be82 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=Ki5fnJvzvo7yLsyA0quaxQ==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=bko80PZImhyAhWnkyZcA:9 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-ORIG-GUID: _WULiEQ3NxrwzkFH5Z7VVSO_c86TBSpo 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-07-15_05,2025-07-15_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 mlxscore=0 priorityscore=1501 bulkscore=0 phishscore=0 lowpriorityscore=0 mlxlogscore=999 impostorscore=0 clxscore=1015 adultscore=0 suspectscore=0 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507150191 Content-Type: text/plain; charset="utf-8" The AR50_LITE is a simplified variant of the AR50 video core, designed for power and cost-efficient platforms. It supports hardware-accelerated decoding of H.264, HEVC, and VP9 formats, and provides encoding support for H.264 and HEVC. Signed-off-by: Jorge Ramirez-Ortiz --- drivers/media/platform/qcom/venus/core.c | 15 +++++++-- drivers/media/platform/qcom/venus/core.h | 5 +++ drivers/media/platform/qcom/venus/firmware.c | 10 ++++++ drivers/media/platform/qcom/venus/firmware.h | 1 + drivers/media/platform/qcom/venus/helpers.c | 30 +++++++++++++++-- drivers/media/platform/qcom/venus/helpers.h | 2 ++ .../media/platform/qcom/venus/hfi_parser.c | 5 +-- .../media/platform/qcom/venus/hfi_platform.c | 20 +++++++----- .../media/platform/qcom/venus/hfi_platform.h | 25 ++++++++------- .../platform/qcom/venus/hfi_platform_v4.c | 31 ++++++++++++------ .../platform/qcom/venus/hfi_platform_v6.c | 32 +++++++++++++------ drivers/media/platform/qcom/venus/hfi_venus.c | 25 +++++++++++---- .../media/platform/qcom/venus/hfi_venus_io.h | 4 +++ .../media/platform/qcom/venus/pm_helpers.c | 2 +- drivers/media/platform/qcom/venus/vdec.c | 7 +--- 15 files changed, 154 insertions(+), 60 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index b7d6745b6124..bad49f0b4a77 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -269,14 +269,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; @@ -476,6 +481,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 3af8386b78be..f5b59e81e3c2 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -538,6 +538,11 @@ struct venus_inst { #define IS_IRIS2(core) ((core)->res->vpu_version =3D=3D VPU_VERSION_IRIS2) #define IS_IRIS2_1(core) ((core)->res->vpu_version =3D=3D VPU_VERSION_IRIS= 2_1) =20 +static inline bool is_lite(struct venus_core *core) +{ + return IS_AR50_LITE(core); +} + #define ctrl_to_inst(ctrl) \ container_of((ctrl)->handler, struct venus_inst, ctrl_handler) =20 diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/p= latform/qcom/venus/firmware.c index 66a18830e66d..c74988fd5ce2 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 aaccd847fa30..3fea4ab63bf7 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_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..438ed1abd8e8 100644 --- a/drivers/media/platform/qcom/venus/helpers.c +++ b/drivers/media/platform/qcom/venus/helpers.c @@ -230,6 +230,24 @@ int venus_helper_alloc_dpb_bufs(struct venus_inst *ins= t) } EXPORT_SYMBOL_GPL(venus_helper_alloc_dpb_bufs); =20 +void venus_helper_prepare_eos_data(struct venus_inst *inst, + struct hfi_frame_data *data) +{ + struct venus_core *core =3D inst->core; + + data->buffer_type =3D HFI_BUFFER_INPUT; + data->flags =3D HFI_BUFFERFLAG_EOS; + + if (IS_V6(core) && is_fw_rev_or_older(core, 1, 0, 87)) + return; + + if (IS_V4(core) && is_lite(core) && is_fw_rev_or_older(core, 6, 0, 53)) + data->alloc_len =3D 1; + + data->device_addr =3D 0xdeadb000; +} +EXPORT_SYMBOL_GPL(venus_helper_prepare_eos_data); + static int intbufs_set_buffer(struct venus_inst *inst, u32 type) { struct venus_core *core =3D inst->core; @@ -1715,11 +1733,17 @@ int venus_helper_session_init(struct venus_inst *in= st) if (ret) return ret; =20 - inst->clk_data.vpp_freq =3D hfi_platform_get_codec_vpp_freq(version, code= c, + inst->clk_data.vpp_freq =3D hfi_platform_get_codec_vpp_freq(version, + is_lite(inst->core), + codec, session_type); - inst->clk_data.vsp_freq =3D hfi_platform_get_codec_vsp_freq(version, code= c, + inst->clk_data.vsp_freq =3D hfi_platform_get_codec_vsp_freq(version, + is_lite(inst->core), + codec, session_type); - inst->clk_data.low_power_freq =3D hfi_platform_get_codec_lp_freq(version,= codec, + inst->clk_data.low_power_freq =3D hfi_platform_get_codec_lp_freq(version, + is_lite(inst->core), + codec, session_type); =20 return 0; diff --git a/drivers/media/platform/qcom/venus/helpers.h b/drivers/media/pl= atform/qcom/venus/helpers.h index 358e4f39c9c0..62a734c1da1d 100644 --- a/drivers/media/platform/qcom/venus/helpers.h +++ b/drivers/media/platform/qcom/venus/helpers.h @@ -58,6 +58,8 @@ int venus_helper_get_out_fmts(struct venus_inst *inst, u3= 2 fmt, u32 *out_fmt, bool venus_helper_check_format(struct venus_inst *inst, u32 v4l2_pixfmt); int venus_helper_alloc_dpb_bufs(struct venus_inst *inst); int venus_helper_free_dpb_bufs(struct venus_inst *inst); +void venus_helper_prepare_eos_data(struct venus_inst *inst, + struct hfi_frame_data *data); int venus_helper_intbufs_alloc(struct venus_inst *inst); int venus_helper_intbufs_free(struct venus_inst *inst); int venus_helper_intbufs_realloc(struct venus_inst *inst); diff --git a/drivers/media/platform/qcom/venus/hfi_parser.c b/drivers/media= /platform/qcom/venus/hfi_parser.c index 1b3db2caa99f..55cee1c786a0 100644 --- a/drivers/media/platform/qcom/venus/hfi_parser.c +++ b/drivers/media/platform/qcom/venus/hfi_parser.c @@ -277,12 +277,13 @@ static int hfi_platform_parser(struct venus_core *cor= e, struct venus_inst *inst) if (inst) return 0; =20 - ret =3D hfi_platform_get_codecs(core, &enc_codecs, &dec_codecs, &count); + ret =3D hfi_platform_get_codecs(core, &enc_codecs, &dec_codecs, &count, + is_lite(core)); if (ret) return ret; =20 if (plat->capabilities) - caps =3D plat->capabilities(&entries); + caps =3D plat->capabilities(&entries, is_lite(core)); =20 if (!caps || !entries || !count) return -EINVAL; diff --git a/drivers/media/platform/qcom/venus/hfi_platform.c b/drivers/med= ia/platform/qcom/venus/hfi_platform.c index 643e5aa138f5..c6c248561793 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform.c +++ b/drivers/media/platform/qcom/venus/hfi_platform.c @@ -21,7 +21,8 @@ const struct hfi_platform *hfi_platform_get(enum hfi_vers= ion version) } =20 unsigned long -hfi_platform_get_codec_vpp_freq(enum hfi_version version, u32 codec, u32 s= ession_type) +hfi_platform_get_codec_vpp_freq(enum hfi_version version, bool lite, u32 c= odec, + u32 session_type) { const struct hfi_platform *plat; unsigned long freq =3D 0; @@ -31,13 +32,14 @@ hfi_platform_get_codec_vpp_freq(enum hfi_version versio= n, u32 codec, u32 session return 0; =20 if (plat->codec_vpp_freq) - freq =3D plat->codec_vpp_freq(session_type, codec); + freq =3D plat->codec_vpp_freq(session_type, codec, lite); =20 return freq; } =20 unsigned long -hfi_platform_get_codec_vsp_freq(enum hfi_version version, u32 codec, u32 s= ession_type) +hfi_platform_get_codec_vsp_freq(enum hfi_version version, bool lite, u32 c= odec, + u32 session_type) { const struct hfi_platform *plat; unsigned long freq =3D 0; @@ -47,13 +49,14 @@ hfi_platform_get_codec_vsp_freq(enum hfi_version versio= n, u32 codec, u32 session return 0; =20 if (plat->codec_vpp_freq) - freq =3D plat->codec_vsp_freq(session_type, codec); + freq =3D plat->codec_vsp_freq(session_type, codec, lite); =20 return freq; } =20 unsigned long -hfi_platform_get_codec_lp_freq(enum hfi_version version, u32 codec, u32 se= ssion_type) +hfi_platform_get_codec_lp_freq(enum hfi_version version, bool lite, u32 co= dec, + u32 session_type) { const struct hfi_platform *plat; unsigned long freq =3D 0; @@ -63,13 +66,14 @@ hfi_platform_get_codec_lp_freq(enum hfi_version version= , u32 codec, u32 session_ return 0; =20 if (plat->codec_lp_freq) - freq =3D plat->codec_lp_freq(session_type, codec); + freq =3D plat->codec_lp_freq(session_type, codec, lite); =20 return freq; } =20 int -hfi_platform_get_codecs(struct venus_core *core, u32 *enc_codecs, u32 *dec= _codecs, u32 *count) +hfi_platform_get_codecs(struct venus_core *core, u32 *enc_codecs, u32 *dec= _codecs, u32 *count, + bool lite) { const struct hfi_platform *plat; =20 @@ -78,7 +82,7 @@ hfi_platform_get_codecs(struct venus_core *core, u32 *enc= _codecs, u32 *dec_codec return -EINVAL; =20 if (plat->codecs) - plat->codecs(enc_codecs, dec_codecs, count); + plat->codecs(enc_codecs, dec_codecs, count, lite); =20 if (IS_IRIS2_1(core)) { *enc_codecs &=3D ~HFI_VIDEO_CODEC_VP8; diff --git a/drivers/media/platform/qcom/venus/hfi_platform.h b/drivers/med= ia/platform/qcom/venus/hfi_platform.h index ec89a90a8129..a9f1ead18084 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform.h +++ b/drivers/media/platform/qcom/venus/hfi_platform.h @@ -47,11 +47,12 @@ struct hfi_platform_codec_freq_data { }; =20 struct hfi_platform { - unsigned long (*codec_vpp_freq)(u32 session_type, u32 codec); - unsigned long (*codec_vsp_freq)(u32 session_type, u32 codec); - unsigned long (*codec_lp_freq)(u32 session_type, u32 codec); - void (*codecs)(u32 *enc_codecs, u32 *dec_codecs, u32 *count); - const struct hfi_plat_caps *(*capabilities)(unsigned int *entries); + unsigned long (*codec_vpp_freq)(u32 session_type, u32 codec, bool lite); + unsigned long (*codec_vsp_freq)(u32 session_type, u32 codec, bool lite); + unsigned long (*codec_lp_freq)(u32 session_type, u32 codec, bool lite); + void (*codecs)(u32 *enc_codecs, u32 *dec_codecs, u32 *count, bool lite); + const struct hfi_plat_caps *(*capabilities)(unsigned int *entries, + bool lite); int (*bufreq)(struct hfi_plat_buffers_params *params, u32 session_type, u32 buftype, struct hfi_buffer_requirements *bufreq); }; @@ -60,12 +61,12 @@ extern const struct hfi_platform hfi_plat_v4; extern const struct hfi_platform hfi_plat_v6; =20 const struct hfi_platform *hfi_platform_get(enum hfi_version version); -unsigned long hfi_platform_get_codec_vpp_freq(enum hfi_version version, u3= 2 codec, - u32 session_type); -unsigned long hfi_platform_get_codec_vsp_freq(enum hfi_version version, u3= 2 codec, - u32 session_type); -unsigned long hfi_platform_get_codec_lp_freq(enum hfi_version version, u32= codec, - u32 session_type); +unsigned long hfi_platform_get_codec_vpp_freq(enum hfi_version version, bo= ol lite, + u32 codec, u32 session_type); +unsigned long hfi_platform_get_codec_vsp_freq(enum hfi_version version, bo= ol lite, + u32 codec, u32 session_type); +unsigned long hfi_platform_get_codec_lp_freq(enum hfi_version version, boo= l lite, + u32 codec, u32 session_type); int hfi_platform_get_codecs(struct venus_core *core, u32 *enc_codecs, u32 = *dec_codecs, - u32 *count); + u32 *count, bool lite); #endif diff --git a/drivers/media/platform/qcom/venus/hfi_platform_v4.c b/drivers/= media/platform/qcom/venus/hfi_platform_v4.c index e3f0a90a567b..4ae7ed476c48 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform_v4.c +++ b/drivers/media/platform/qcom/venus/hfi_platform_v4.c @@ -245,14 +245,19 @@ static const struct hfi_plat_caps caps[] =3D { .num_fmts =3D 4, } }; =20 -static const struct hfi_plat_caps *get_capabilities(unsigned int *entries) +static const struct hfi_plat_caps *get_capabilities(unsigned int *entries, + bool lite) { + WARN_ON(lite); + *entries =3D ARRAY_SIZE(caps); return caps; } =20 -static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count) +static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count, bool = lite) { + WARN_ON(lite); + *enc_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | HFI_VIDEO_CODEC_VP8; *dec_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | @@ -273,12 +278,14 @@ static const struct hfi_platform_codec_freq_data code= c_freq_data[] =3D { }; =20 static const struct hfi_platform_codec_freq_data * -get_codec_freq_data(u32 session_type, u32 pixfmt) +get_codec_freq_data(u32 session_type, u32 pixfmt, bool lite) { const struct hfi_platform_codec_freq_data *data =3D codec_freq_data; unsigned int i, data_size =3D ARRAY_SIZE(codec_freq_data); const struct hfi_platform_codec_freq_data *found =3D NULL; =20 + WARN_ON(lite); + for (i =3D 0; i < data_size; i++) { if (data[i].pixfmt =3D=3D pixfmt && data[i].session_type =3D=3D session_= type) { found =3D &data[i]; @@ -289,33 +296,39 @@ get_codec_freq_data(u32 session_type, u32 pixfmt) return found; } =20 -static unsigned long codec_vpp_freq(u32 session_type, u32 codec) +static unsigned long codec_vpp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vpp_freq; =20 return 0; } =20 -static unsigned long codec_vsp_freq(u32 session_type, u32 codec) +static unsigned long codec_vsp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vsp_freq; =20 return 0; } =20 -static unsigned long codec_lp_freq(u32 session_type, u32 codec) +static unsigned long codec_lp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->low_power_freq; =20 diff --git a/drivers/media/platform/qcom/venus/hfi_platform_v6.c b/drivers/= media/platform/qcom/venus/hfi_platform_v6.c index 4e8af645f8b9..ad08d26cd7ba 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform_v6.c +++ b/drivers/media/platform/qcom/venus/hfi_platform_v6.c @@ -245,14 +245,20 @@ static const struct hfi_plat_caps caps[] =3D { .num_fmts =3D 4, } }; =20 -static const struct hfi_plat_caps *get_capabilities(unsigned int *entries) +static const struct hfi_plat_caps *get_capabilities(unsigned int *entries, + bool lite) { + WARN_ON(lite); + *entries =3D ARRAY_SIZE(caps); return caps; } =20 -static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count) +static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count, + bool lite) { + WARN_ON(lite); + *enc_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | HFI_VIDEO_CODEC_VP8; *dec_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | @@ -273,12 +279,14 @@ static const struct hfi_platform_codec_freq_data code= c_freq_data[] =3D { }; =20 static const struct hfi_platform_codec_freq_data * -get_codec_freq_data(u32 session_type, u32 pixfmt) +get_codec_freq_data(u32 session_type, u32 pixfmt, bool lite) { const struct hfi_platform_codec_freq_data *data =3D codec_freq_data; unsigned int i, data_size =3D ARRAY_SIZE(codec_freq_data); const struct hfi_platform_codec_freq_data *found =3D NULL; =20 + WARN_ON(lite); + for (i =3D 0; i < data_size; i++) { if (data[i].pixfmt =3D=3D pixfmt && data[i].session_type =3D=3D session_= type) { found =3D &data[i]; @@ -289,33 +297,39 @@ get_codec_freq_data(u32 session_type, u32 pixfmt) return found; } =20 -static unsigned long codec_vpp_freq(u32 session_type, u32 codec) +static unsigned long codec_vpp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vpp_freq; =20 return 0; } =20 -static unsigned long codec_vsp_freq(u32 session_type, u32 codec) +static unsigned long codec_vsp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vsp_freq; =20 return 0; } =20 -static unsigned long codec_lp_freq(u32 session_type, u32 codec) +static unsigned long codec_lp_freq(u32 session_type, u32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - data =3D get_codec_freq_data(session_type, codec); + WARN_ON(lite); + + data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->low_power_freq; =20 diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/= platform/qcom/venus/hfi_venus.c index cec7f5964d3d..d3da35f67fd5 100644 --- a/drivers/media/platform/qcom/venus/hfi_venus.c +++ b/drivers/media/platform/qcom/venus/hfi_venus.c @@ -380,7 +380,7 @@ static void venus_soft_int(struct venus_hfi_device *hde= v) void __iomem *cpu_ic_base =3D hdev->core->cpu_ic_base; u32 clear_bit; =20 - if (IS_V6(hdev->core)) + if (IS_V6(hdev->core) || (IS_V4(hdev->core) && is_lite(hdev->core))) clear_bit =3D BIT(CPU_IC_SOFTINT_H2A_SHIFT_V6); else clear_bit =3D BIT(CPU_IC_SOFTINT_H2A_SHIFT); @@ -501,9 +501,11 @@ static int venus_boot_core(struct venus_hfi_device *hd= ev) if (count >=3D max_tries) ret =3D -ETIMEDOUT; =20 - if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) { + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core) || IS_AR50_LITE(hdev->= core)) { writel(0x1, cpu_cs_base + CPU_CS_H2XSOFTINTEN_V6); - writel(0x0, cpu_cs_base + CPU_CS_X2RPMH_V6); + + if (!IS_AR50_LITE(hdev->core)) + writel(0x0, cpu_cs_base + CPU_CS_X2RPMH_V6); } =20 return ret; @@ -569,6 +571,9 @@ static int venus_halt_axi(struct venus_hfi_device *hdev) u32 mask_val; int ret; =20 + if (IS_AR50_LITE(hdev->core)) + return 0; + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) { writel(0x3, cpu_cs_base + CPU_CS_X2RPMH_V6); =20 @@ -1138,7 +1143,13 @@ static irqreturn_t venus_isr(struct venus_core *core) wrapper_base =3D hdev->core->wrapper_base; =20 status =3D readl(wrapper_base + WRAPPER_INTR_STATUS); - if (IS_IRIS2(core) || IS_IRIS2_1(core)) { + + if (IS_AR50_LITE(core)) { + if (status & WRAPPER_INTR_STATUS_A2H_MASK || + status & WRAPPER_INTR_STATUS_A2HWD_MASK_V4_LITE || + status & CPU_CS_SCIACMDARG0_INIT_IDLE_MSG_MASK) + hdev->irq_status =3D status; + } else if (IS_IRIS2(core) || IS_IRIS2_1(core)) { if (status & WRAPPER_INTR_STATUS_A2H_MASK || status & WRAPPER_INTR_STATUS_A2HWD_MASK_V6 || status & CPU_CS_SCIACMDARG0_INIT_IDLE_MSG_MASK) @@ -1150,7 +1161,7 @@ static irqreturn_t venus_isr(struct venus_core *core) hdev->irq_status =3D status; } writel(1, cpu_cs_base + CPU_CS_A2HSOFTINTCLR); - if (!(IS_IRIS2(core) || IS_IRIS2_1(core))) + if (!(IS_IRIS2(core) || IS_IRIS2_1(core) || IS_AR50_LITE(core))) writel(status, wrapper_base + WRAPPER_INTR_CLEAR); =20 return IRQ_WAKE_THREAD; @@ -1535,7 +1546,7 @@ static bool venus_cpu_and_video_core_idle(struct venu= s_hfi_device *hdev) void __iomem *cpu_cs_base =3D hdev->core->cpu_cs_base; u32 ctrl_status, cpu_status; =20 - if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core) || IS_AR50_LITE(hdev->= core)) cpu_status =3D readl(wrapper_tz_base + WRAPPER_TZ_CPU_STATUS_V6); else cpu_status =3D readl(wrapper_base + WRAPPER_CPU_STATUS); @@ -1555,7 +1566,7 @@ static bool venus_cpu_idle_and_pc_ready(struct venus_= hfi_device *hdev) void __iomem *cpu_cs_base =3D hdev->core->cpu_cs_base; u32 ctrl_status, cpu_status; =20 - if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core)) + if (IS_IRIS2(hdev->core) || IS_IRIS2_1(hdev->core) || IS_AR50_LITE(hdev->= core)) cpu_status =3D readl(wrapper_tz_base + WRAPPER_TZ_CPU_STATUS_V6); else cpu_status =3D readl(wrapper_base + WRAPPER_CPU_STATUS); diff --git a/drivers/media/platform/qcom/venus/hfi_venus_io.h b/drivers/med= ia/platform/qcom/venus/hfi_venus_io.h index 9735a246ce36..f2c3064c44ae 100644 --- a/drivers/media/platform/qcom/venus/hfi_venus_io.h +++ b/drivers/media/platform/qcom/venus/hfi_venus_io.h @@ -51,6 +51,9 @@ /* Venus cpu */ #define CPU_CS_SCIACMDARG3 0x58 =20 +#define CPU_CS_VCICMD 0x20 +#define CPU_CS_VCICMD_ARP_OFF BIT(0) + #define SFR_ADDR 0x5c #define MMAP_ADDR 0x60 #define UC_REGION_ADDR 0x64 @@ -100,6 +103,7 @@ #define WRAPPER_INTR_MASK_A2HCPU_MASK 0x4 #define WRAPPER_INTR_MASK_A2HCPU_SHIFT 0x2 =20 +#define WRAPPER_INTR_STATUS_A2HWD_MASK_V4_LITE 0x10 #define WRAPPER_INTR_STATUS_A2HWD_MASK_V6 0x8 #define WRAPPER_INTR_MASK_A2HWD_BASK_V6 0x8 =20 diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 8dd5a9b0d060..e09b0d9ae610 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -51,7 +51,7 @@ static int core_clks_enable(struct venus_core *core) dev_pm_opp_put(opp); =20 for (i =3D 0; i < res->clks_num; i++) { - if (IS_V6(core)) { + if (IS_V6(core) || (IS_V4(core) && is_lite(core))) { ret =3D clk_set_rate(core->clks[i], freq); if (ret) goto err; diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platf= orm/qcom/venus/vdec.c index 29b0d6a5303d..ac3d2760b2e0 100644 --- a/drivers/media/platform/qcom/venus/vdec.c +++ b/drivers/media/platform/qcom/venus/vdec.c @@ -565,12 +565,7 @@ vdec_decoder_cmd(struct file *file, void *fh, struct v= 4l2_decoder_cmd *cmd) if (!(inst->streamon_out && inst->streamon_cap)) goto unlock; =20 - fdata.buffer_type =3D HFI_BUFFER_INPUT; - fdata.flags |=3D HFI_BUFFERFLAG_EOS; - if (IS_V6(inst->core) && is_fw_rev_or_older(inst->core, 1, 0, 87)) - fdata.device_addr =3D 0; - else - fdata.device_addr =3D 0xdeadb000; + venus_helper_prepare_eos_data(inst, &fdata); =20 ret =3D hfi_session_process_buf(inst, &fdata); =20 --=20 2.34.1 From nobody Tue Oct 7 02:01:41 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 588462C15AB for ; Tue, 15 Jul 2025 20:48:06 +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=1752612488; cv=none; b=Zrh9kzv9uw+6srUvAI5lF6a8Z6d5OVU1D2RGh6iEXtNdWkeS4rLzKHLhgDx+e1Q+1+KhTjm+NJXvDY6QS+p9NOcTI/QjHYPKvnUSbnDWkMNNp3eN0HlIhEI6OwXm/4JiHgaew5bV0cLLXYFePjqPP9cZoLGSx0MsyUOEWsE+4z0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752612488; c=relaxed/simple; bh=kh0Ph3bqQddgQzpw9+lMuJbV/+PCW4ohrv2EdwjU/cw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CbGx5n6tm3rPSDUNps1OBwVLI08XD2r81d7BMExCZMMNPiZmR8jMWRYgVF8DQe9Fe0hYDE2ZE+vkQG5ZTgYM11G56EdyU1yWx36O1GlM3YIijIMoJQoJR8DfYUotp86jd1lkfZq9tt9djb5J4uG3GL5fjRsjmkkPpFZjDGE6lJ0= 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=XGXvF/w6; 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="XGXvF/w6" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56FGDcL3015317 for ; Tue, 15 Jul 2025 20:48:05 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=Fw43xE6mx8d cGK2M+aYLxJiaO6zR75NvC+HG1OSWBzs=; b=XGXvF/w6K/TaMsZfZ0/+zjGdcV1 zhxAcyF0/bWRTpoZX2eSadC8bxvs3Tr3h01CBO2Ga74YazwSdNPkGg1LoKu2U/S5 wJ3I7Vy1k92b+NbiIxCYPra45TGPoVPfiViyS9JfhTouasHFOJKBJqsRXQoU8t0w l8rtRlIBzQBfuU7WnJQH/p3FXEjH0aMkdBY7211FUuqrNjYNNhFkkyg8VruTd9MD Z/HtlVM26SBCESIt+B8rjlKO4aQl4dWE6q3gcu8cQC9QwVfdxDjYRn45q1zUG/J7 4NgNiScr2SEJcX2diGUGJCrz3Xq+JyzP9Xk+pb2SZGDNHoNj/Z1sg2fAsqA== 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 47w5dymf1k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 15 Jul 2025 20:48:05 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7e333fae758so400533685a.2 for ; Tue, 15 Jul 2025 13:48:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752612484; x=1753217284; 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=Fw43xE6mx8dcGK2M+aYLxJiaO6zR75NvC+HG1OSWBzs=; b=oxjNpg20vo3CdkEaej6+Mmehj9kMTAnvnhNmLy+G1YyfTxLSM/9HOD66L+6TPeBnu6 Ek7P9CW/BX8iYPaNIxrT2iEEJaOXbEnW+RkMkiP0QOJyjKoNyvTQ3B83dJc6nWoCMTjO XWWPWCXtcCVwZC7Y2lylw65C99vPwKPn5QncE4PZByE99J92JWEirIaf3gIDPHWYNcbi XOeTBzN4U7VnD83/BchaQczqimOTUEMSiKdvmYuevRTx8THXoAQt/Jp41r/ofQtGdQWr gr/j/5FnYSNTpovrMYpgsovg15LA/sm1BeLzHtM1lcOZ9HIQIDyhGqHH4C05XQ1WUb5O y+sQ== X-Forwarded-Encrypted: i=1; AJvYcCUEk0ijBl5RVR8MogLXjA679e97xZbrMpMHmOuGr1EmW16LMrrmZhGa5cHaREbSjY9XfYEDlE7R36/tQPk=@vger.kernel.org X-Gm-Message-State: AOJu0YwMSvMwhrP2hOtv6adpU4leQOcKD/anhlX+BFGn+UIZ/EPhA9sl r8fNXRtLXebxwVRucAdHTmfk1FDrVnLbK7T3mikNOV8CLEW4p52BwCF0Fi9dIqPvmGyDyVOfaqJ rHS/Iv9wYQc1pwXtLkTpDr4I969vWDlayhlsz1RwJJaH5CowXm+tctgC2lsNqm8/oJ0A= X-Gm-Gg: ASbGncvBcE+rUqhhNUq32MuIwpfAOZqKB0d3qjAIZVJNp1T0tYq0sgLGsds1FHROKyJ 8+SxJjmdYPNT/Ahiplcwql9Z8AMqBt+RaqHG3fALg/bGjNLLbiYwDb0KvYUax42txRgY2ETkmAd x/33oYQtEQTOCX4ddn0lUz25Vhg3USfoccozhBwqmjRww6kX1OOAWjQ6IXUocYjpaGdBFVnBVkZ m/84GIWUzjtCMTX5+JaGknRMpyNYWACXwIu8n6lqT4BBr8v6aR7fjUy1wkszvB/J7yUviaryX+4 3RN121YTDZezlVA+FhusZ1n15mvGVN/INYrjiWoAsm4mHMbUgGziAkj0aOUFTIjzPlBT6QgrINq lD3jHuVKCOLWHOTRlmg== X-Received: by 2002:a05:620a:40d6:b0:7dc:471:3a6c with SMTP id af79cd13be357-7e34334a203mr49943585a.1.1752612483775; Tue, 15 Jul 2025 13:48:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFz7BhN9g/yxUJqdgV5TQUs4dpLhHX8En/5PS0CBXidrUh27czPh19OP0AtHAquuTx/gxL/zg== X-Received: by 2002:a05:620a:40d6:b0:7dc:471:3a6c with SMTP id af79cd13be357-7e34334a203mr49938685a.1.1752612483258; Tue, 15 Jul 2025 13:48:03 -0700 (PDT) Received: from trex.. (153.red-79-144-197.dynamicip.rima-tde.net. [79.144.197.153]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8dc2464sm16331877f8f.38.2025.07.15.13.48.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Jul 2025 13:48: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, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, andersson@kernel.org, conor+dt@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 4/7] media: venus: hfi_plat_v4: Add capabilities for the 4XX lite core Date: Tue, 15 Jul 2025 22:47:46 +0200 Message-Id: <20250715204749.2189875-5-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250715204749.2189875-1-jorge.ramirez@oss.qualcomm.com> References: <20250715204749.2189875-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-ORIG-GUID: q9dqMUio81UxzaFhHoelt5bRo_Y2HIZb X-Authority-Analysis: v=2.4 cv=RtXFLDmK c=1 sm=1 tr=0 ts=6876be85 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=Ki5fnJvzvo7yLsyA0quaxQ==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=5l9M9ejOZEj2P9uvktAA:9 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzE1MDE5MSBTYWx0ZWRfX1SkliVPOoE38 4XtrPXrIcsjXtwumluz0NwrSU3Zdsqoy5n0+JFhj3niZKWbPAyTrWE4T0CUsnUt0TXXnyR7Cxsi 95BixInAkVWAUb7EPLgkRd+imif3ypOdYLnN9xBQqea9jj5GbmXfdAB/2xcHo46mq4t+/6IN5rN BkhM1ozAM8nuBAQKocJ1pymzjPqBFCcsWPRDcxvVZe9XIh++DlRr9o1bknUIN28Iylguotp5CDF s9HRTL/EUP9M/pgWqUl3uLkDv6ee/krevXpnl2DTUVTTRBST2oZ4SucIOt3Atjq6R/sJndWUlId g14fA1W7PfYt90hgPGIXO4wyCfIU2+v8L6wek/zSBYFM0BUKuiTJAM9uAM+z56JJRWiEf4neuzv DVesaEdreWJmfghSD0B190FvPnUHtSjWQnh1l/0Gw1s3+UUyJarZ/bJQrgScGd5X7h3oyMUC X-Proofpoint-GUID: q9dqMUio81UxzaFhHoelt5bRo_Y2HIZb 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-07-15_05,2025-07-15_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxscore=0 bulkscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 clxscore=1015 mlxlogscore=999 priorityscore=1501 phishscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507150191 Content-Type: text/plain; charset="utf-8" Populate the HFI v4 lite capability set used by the AR50_LITE video core. These capabilities define the supported codec formats and operational limits specific to this streamlined VPU variant. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Bryan O'Donoghue --- .../platform/qcom/venus/hfi_platform_v4.c | 164 +++++++++++++++--- 1 file changed, 143 insertions(+), 21 deletions(-) diff --git a/drivers/media/platform/qcom/venus/hfi_platform_v4.c b/drivers/= media/platform/qcom/venus/hfi_platform_v4.c index 4ae7ed476c48..23ed5e689f5a 100644 --- a/drivers/media/platform/qcom/venus/hfi_platform_v4.c +++ b/drivers/media/platform/qcom/venus/hfi_platform_v4.c @@ -245,25 +245,145 @@ static const struct hfi_plat_caps caps[] =3D { .num_fmts =3D 4, } }; =20 +static const struct hfi_plat_caps caps_lite[] =3D { +{ + .codec =3D HFI_VIDEO_CODEC_H264, + .domain =3D VIDC_SESSION_TYPE_DEC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .num_caps =3D 7, + .pl[0] =3D { HFI_H264_PROFILE_BASELINE, HFI_H264_LEVEL_5}, + .pl[1] =3D {HFI_H264_PROFILE_MAIN, HFI_H264_LEVEL_5}, + .pl[2] =3D {HFI_H264_PROFILE_HIGH, HFI_H264_LEVEL_5}, + .pl[3] =3D {HFI_H264_PROFILE_CONSTRAINED_BASE, HFI_H264_LEVEL_5}, + .pl[4] =3D {HFI_H264_PROFILE_CONSTRAINED_HIGH, HFI_H264_LEVEL_5}, + .num_pl =3D 5, + .fmts[0] =3D {HFI_BUFFER_OUTPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[1] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[2] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12}, + .fmts[3] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV21}, + .num_fmts =3D 4, +}, { + .codec =3D HFI_VIDEO_CODEC_HEVC, + .domain =3D VIDC_SESSION_TYPE_DEC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .num_caps =3D 7, + .pl[0] =3D {HFI_HEVC_PROFILE_MAIN, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIGH0= << 28 }, + .pl[1] =3D {HFI_HEVC_PROFILE_MAIN10, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIG= H0 << 28 }, + .num_pl =3D 2, + .fmts[0] =3D {HFI_BUFFER_OUTPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[1] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[2] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12}, + .fmts[3] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV21}, + .num_fmts =3D 4, +}, { + .codec =3D HFI_VIDEO_CODEC_VP9, + .domain =3D VIDC_SESSION_TYPE_DEC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .num_caps =3D 7, + .pl[0] =3D {HFI_VP9_PROFILE_P0, 200}, + .pl[1] =3D {HFI_VP9_PROFILE_P2_10B, 200}, + .num_pl =3D 2, + .fmts[0] =3D {HFI_BUFFER_OUTPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[1] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12_UBWC}, + .fmts[2] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV12}, + .fmts[3] =3D {HFI_BUFFER_OUTPUT2, HFI_COLOR_FORMAT_NV21}, + .num_fmts =3D 4, +}, { + .codec =3D HFI_VIDEO_CODEC_H264, + .domain =3D VIDC_SESSION_TYPE_ENC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .caps[7] =3D {HFI_CAPABILITY_HIER_P_NUM_ENH_LAYERS, 0, 6, 1}, + .caps[8] =3D {HFI_CAPABILITY_ENC_LTR_COUNT, 0, 4, 1}, + .caps[9] =3D {HFI_CAPABILITY_MBS_PER_SECOND_POWERSAVE, 0, 244800, 1}, + .caps[10] =3D {HFI_CAPABILITY_I_FRAME_QP, 0, 51, 1}, + .caps[11] =3D {HFI_CAPABILITY_P_FRAME_QP, 0, 51, 1}, + .caps[12] =3D {HFI_CAPABILITY_B_FRAME_QP, 0, 51, 1}, + .caps[13] =3D {HFI_CAPABILITY_SLICE_BYTE, 1, 10, 1}, + .caps[14] =3D {HFI_CAPABILITY_SLICE_MB, 1, 10, 1}, + .num_caps =3D 15, + .pl[0] =3D {HFI_H264_PROFILE_BASELINE, HFI_H264_LEVEL_5}, + .pl[1] =3D {HFI_H264_PROFILE_MAIN, HFI_H264_LEVEL_5}, + .pl[2] =3D {HFI_H264_PROFILE_HIGH, HFI_H264_LEVEL_5}, + .pl[3] =3D {HFI_H264_PROFILE_CONSTRAINED_BASE, HFI_H264_LEVEL_5}, + .pl[4] =3D {HFI_H264_PROFILE_CONSTRAINED_HIGH, HFI_H264_LEVEL_5}, + .num_pl =3D 5, + .fmts[0] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12}, + .fmts[1] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .num_fmts =3D 2, +}, { + .codec =3D HFI_VIDEO_CODEC_HEVC, + .domain =3D VIDC_SESSION_TYPE_ENC, + .caps[0] =3D {HFI_CAPABILITY_FRAME_WIDTH, 128, 1920, 1}, + .caps[1] =3D {HFI_CAPABILITY_FRAME_HEIGHT, 128, 1920, 1}, + .caps[2] =3D {HFI_CAPABILITY_MBS_PER_FRAME, 64, 8160, 1}, + .caps[3] =3D {HFI_CAPABILITY_BITRATE, 1, 60000000, 1 }, + .caps[4] =3D {HFI_CAPABILITY_MBS_PER_SECOND, 64, 244800, 1}, + .caps[5] =3D {HFI_CAPABILITY_FRAMERATE, 1, 120, 1}, + .caps[6] =3D {HFI_CAPABILITY_MAX_VIDEOCORES, 0, 1, 1}, + .caps[7] =3D {HFI_CAPABILITY_HIER_P_NUM_ENH_LAYERS, 0, 6, 1}, + .caps[8] =3D {HFI_CAPABILITY_ENC_LTR_COUNT, 0, 4, 1}, + .caps[9] =3D {HFI_CAPABILITY_MBS_PER_SECOND_POWERSAVE, 0, 244800, 1}, + .caps[10] =3D {HFI_CAPABILITY_I_FRAME_QP, 0, 51, 1}, + .caps[11] =3D {HFI_CAPABILITY_P_FRAME_QP, 0, 51, 1}, + .caps[12] =3D {HFI_CAPABILITY_B_FRAME_QP, 0, 51, 1}, + .caps[13] =3D {HFI_CAPABILITY_SLICE_BYTE, 1, 10, 1}, + .caps[14] =3D {HFI_CAPABILITY_SLICE_MB, 1, 10, 1}, + .num_caps =3D 15, + .pl[0] =3D {HFI_HEVC_PROFILE_MAIN, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIGH0= }, + .pl[1] =3D {HFI_HEVC_PROFILE_MAIN10, HFI_HEVC_LEVEL_5 | HFI_HEVC_TIER_HIG= H0}, + .num_pl =3D 2, + .fmts[0] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12}, + .fmts[1] =3D {HFI_BUFFER_INPUT, HFI_COLOR_FORMAT_NV12_UBWC}, + .num_fmts =3D 2, +} }; + static const struct hfi_plat_caps *get_capabilities(unsigned int *entries, bool lite) { - WARN_ON(lite); + *entries =3D lite ? ARRAY_SIZE(caps_lite) : ARRAY_SIZE(caps); =20 - *entries =3D ARRAY_SIZE(caps); - return caps; + return lite ? caps_lite : caps; } =20 static void get_codecs(u32 *enc_codecs, u32 *dec_codecs, u32 *count, bool = lite) { - WARN_ON(lite); - - *enc_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | - HFI_VIDEO_CODEC_VP8; - *dec_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | - HFI_VIDEO_CODEC_VP8 | HFI_VIDEO_CODEC_VP9 | - HFI_VIDEO_CODEC_MPEG2; - *count =3D 8; + if (lite) { + *enc_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC; + *dec_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | + HFI_VIDEO_CODEC_VP9; + *count =3D 5; + } else { + *enc_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | + HFI_VIDEO_CODEC_VP8; + *dec_codecs =3D HFI_VIDEO_CODEC_H264 | HFI_VIDEO_CODEC_HEVC | + HFI_VIDEO_CODEC_VP8 | HFI_VIDEO_CODEC_VP9 | + HFI_VIDEO_CODEC_MPEG2; + *count =3D 8; + } } =20 static const struct hfi_platform_codec_freq_data codec_freq_data[] =3D { @@ -277,15 +397,23 @@ static const struct hfi_platform_codec_freq_data code= c_freq_data[] =3D { { V4L2_PIX_FMT_VP9, VIDC_SESSION_TYPE_DEC, 200, 10, 200 }, }; =20 +static const struct hfi_platform_codec_freq_data codec_freq_data_lite[] = =3D { + { V4L2_PIX_FMT_H264, VIDC_SESSION_TYPE_DEC, 440, 0, 440 }, + { V4L2_PIX_FMT_HEVC, VIDC_SESSION_TYPE_DEC, 440, 0, 440 }, + { V4L2_PIX_FMT_VP9, VIDC_SESSION_TYPE_DEC, 440, 0, 440 }, + { V4L2_PIX_FMT_H264, VIDC_SESSION_TYPE_ENC, 675, 0, 675 }, + { V4L2_PIX_FMT_HEVC, VIDC_SESSION_TYPE_ENC, 675, 0, 675 }, +}; + static const struct hfi_platform_codec_freq_data * get_codec_freq_data(u32 session_type, u32 pixfmt, bool lite) { - const struct hfi_platform_codec_freq_data *data =3D codec_freq_data; - unsigned int i, data_size =3D ARRAY_SIZE(codec_freq_data); + const struct hfi_platform_codec_freq_data *data =3D lite ? + codec_freq_data_lite : codec_freq_data; + unsigned int i, data_size =3D lite ? ARRAY_SIZE(codec_freq_data_lite) : + ARRAY_SIZE(codec_freq_data); const struct hfi_platform_codec_freq_data *found =3D NULL; =20 - WARN_ON(lite); - for (i =3D 0; i < data_size; i++) { if (data[i].pixfmt =3D=3D pixfmt && data[i].session_type =3D=3D session_= type) { found =3D &data[i]; @@ -300,8 +428,6 @@ static unsigned long codec_vpp_freq(u32 session_type, u= 32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - WARN_ON(lite); - data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vpp_freq; @@ -313,8 +439,6 @@ static unsigned long codec_vsp_freq(u32 session_type, u= 32 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - WARN_ON(lite); - data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->vsp_freq; @@ -326,8 +450,6 @@ static unsigned long codec_lp_freq(u32 session_type, u3= 2 codec, bool lite) { const struct hfi_platform_codec_freq_data *data; =20 - WARN_ON(lite); - data =3D get_codec_freq_data(session_type, codec, lite); if (data) return data->low_power_freq; --=20 2.34.1 From nobody Tue Oct 7 02:01:41 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 C4A652C17B2 for ; Tue, 15 Jul 2025 20:48:07 +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=1752612489; cv=none; b=aTfHZdEyd5mBzTbCc4R3qKYYQI5p4gLud9SISrEkWTRW3Be5V55Hnv+5U4iyB6P3ThkwJ+aAPG+BFo0IQ8hRlR0iJT/1n4WBdYkVgGtUA6gj5lEupVjGLjfYMRxCHbSJPpPvwSbtPohmWE3NPxNbp1siQpQ4y9mg3ruo+cJnmwo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752612489; c=relaxed/simple; bh=O5EiLgNoX4zrnl7zUWRTzCuo9dcfSMTokUeXVORx29c=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VyGcZb0h/aosLvm4dh8d2ixRBWmciW6mYvWZAWJExPaaOf4zbwc3+Kv6KIzXnyO5c7Piq+s4Ec3860uFSq8+uJxTi6/crp/mw2WULcFGBMGUN8ura6I0g6ZY/4WO3Xb7sL6M8jrUCVrblGh3/vXklSgYnWzDSyIg1AGXXRaMLDo= 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=Ead4W02B; 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="Ead4W02B" 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 56FGDKe5026152 for ; Tue, 15 Jul 2025 20:48: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=yORvCYEbul2 A41whH+/fjglHUohPhim10fqgtAyMY+c=; b=Ead4W02BGzCyyT51ir5/+OtzIj+ fEauq1Bl1OZa4SHuq2s/A+doH6/wUaD28CiMwf0Y2RETmd0QYc34TC70KlJJPRMb 1iswUyDLNl53t4tEPBzZWw7yPBgA6plgpw5fq47xTOErDVk1ddIVy9Z4qoenuENj Zkw8l5YEFklhmmeyCSSkDyYi5q6AAc2Pclde96Lhj3XSV7tbQCpEGNr9LIYW2EPR jIeBUPEa0C+o14+V3mhC1WoAbLfi5Z071WBoPQJnTAN/oyY7EKIc7SwzBOgxwAph JJ+Z7vha/Mccq/g3hnzT8NPy1+0TIY78/INGzu7ewK1KPzBTEgCExrJLjFg== 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 47wfca2ugr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 15 Jul 2025 20:48:06 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-7e095227f5dso577069685a.1 for ; Tue, 15 Jul 2025 13:48:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752612485; x=1753217285; 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=yORvCYEbul2A41whH+/fjglHUohPhim10fqgtAyMY+c=; b=p/fkL8jCq8u9z4jsZs4tmVTsieEkBZs9ktW6K87ZFWtJYQcu5LvR4xeoQMSgYXzY5O DnzgG5+0uFdCyZddxmmI/u2yUO5dHE+ooPhcw8gNmmiU1GhMJ5RxUTkcYp7rqWdGpkpL 0a9tyXv1u4np1VCE9fn4s36rV29L9hTKHGvIZbUK0dsWC8zb0SF1NkyNxIzW5iAddTfq lE3rkQra0qXKhA/7MyPSdv68voBDi4oKIQcQi8TNK0pq8W4TU73TitbT8wyCueGCn9h4 RScLYBJEUpu6aUn5kekkxgrHagLjk3cNo1hyjp7zlD50M2h3HgngaHiK4NR88b9KKkI1 Zlfw== X-Forwarded-Encrypted: i=1; AJvYcCWtIvKe41/VrvY5jNAJIXziO47Q2Mc/K8MpTTDErO15L2uvRa7KvAMycS91145F2WOxC6aI0SMvruRetc0=@vger.kernel.org X-Gm-Message-State: AOJu0Yz/RG4fYSFvtGlI+hMzhXCTjmn3dxS2rRne2j49xX5y54je9uIk +3sg4TxpEcEXoaZ3SuPWFQGCRGsJ31h2ZUi9Lkt5DJroURgb3ihlqIoNKZjU9nvX1MrHT/drkcR YsRXER0xVr+p68oU1btaHKwDT9DTEXPQ/b8Q/d4AIdEjbFSmDIxV+QIDr9ni4Emp0N0w= X-Gm-Gg: ASbGncsaf6iN1qmzHtzsCU4zoxt+0l3O7N77JOqSyoBDVo54v2iE++5oNxIpmm6lqrP tpegdHZRv9no8xE9kf8w3pGjIjlhnivIoliyTZUxuGmeAxqDv59xrJflNkh10sfWxLJ9Zz6mjOv qr7oRnniYEUVH/PxggBbni3U2ua0/30NaQZNiOHsDR44KvRjlda4S9ohC1z+hLCqkKpfKzobF4K pBV3cFH1PryiGHpsRFxBTIYMjOb+PezssrjqHKD5LNzDZYRtuhSTS3aOp3TrAWq+Jj9cO2re52x YEx/5OPr0ylzRRwOiNPpLFi4wUichsriFNRUFz9A80YpfoOJJ6eKWGslN+CLTTBY1g13nm2JJSH V4crUUqMbWH/12ZFMew== X-Received: by 2002:a05:620a:170c:b0:7e3:2d1d:bda0 with SMTP id af79cd13be357-7e342a5ee77mr82162185a.2.1752612485411; Tue, 15 Jul 2025 13:48:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFeyFhb5+mniM5F4l13WS+hafGISjrNwouIiQonRZXe9PQwVEv9wtSbHfDDjPFl6t5Rf1nwXg== X-Received: by 2002:a05:620a:170c:b0:7e3:2d1d:bda0 with SMTP id af79cd13be357-7e342a5ee77mr82157885a.2.1752612484855; Tue, 15 Jul 2025 13:48:04 -0700 (PDT) Received: from trex.. (153.red-79-144-197.dynamicip.rima-tde.net. [79.144.197.153]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8dc2464sm16331877f8f.38.2025.07.15.13.48.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Jul 2025 13:48: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, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, andersson@kernel.org, conor+dt@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 5/7] media: venus: core: Add qcm2290 DT compatible and resource data Date: Tue, 15 Jul 2025 22:47:47 +0200 Message-Id: <20250715204749.2189875-6-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250715204749.2189875-1-jorge.ramirez@oss.qualcomm.com> References: <20250715204749.2189875-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: AW1haW4tMjUwNzE1MDE5MSBTYWx0ZWRfX/Rcernjt0jXk mUEd24CwDkkR2hIRe2BddUfDXP8Gg1YQiwkD4VtsIRNkcFVmRMSmJVpj/7265yDO8O+xLv4VE9N VAvA4/U2yTKAbLc33R6SMnbuFJJcUx4tWs1FYyNq7Ch425V8w5negjjPkzY6Lt2oRkKoCGXps1J v7MKxtowdLVjMse8nem2Y6WCQiZyOk3nUHI22DOAzG2baqv/hydUUtzYMg78CxAwcO+tYPlAS4b +LJ6aarkW9R2kXBsEsd8/VB5ie9cWaZ0ERr4nWhAcL9myIuqFBptKUqqBUX9YRt031mAAylrv36 lpxqBdo0VCIH+M+u2XyjUg62YmAC3imMvEP7AV5gdItkqAV6JISy2M1wiNQD1fOkJIYefDjD2Cc DHdeFd6cSGwxSRhDbzN94kFOPVsHehuiZYhz3yqNKlLMwyt14drEOmYJzOk/rA4OOfeQPHm4 X-Proofpoint-GUID: KWGzRJ50JIgDBXWbHEpOQBJHorRTMi-7 X-Authority-Analysis: v=2.4 cv=SeX3duRu c=1 sm=1 tr=0 ts=6876be86 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=Ki5fnJvzvo7yLsyA0quaxQ==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=KS-C2OkT5QpsyoF3dlgA:9 a=bTQJ7kPSJx9SKPbeHEYW:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: KWGzRJ50JIgDBXWbHEpOQBJHorRTMi-7 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-07-15_05,2025-07-15_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 mlxscore=0 priorityscore=1501 bulkscore=0 phishscore=0 lowpriorityscore=0 mlxlogscore=999 impostorscore=0 clxscore=1015 adultscore=0 suspectscore=0 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507150191 Content-Type: text/plain; charset="utf-8" Add a qcm2290 compatible binding to the Cenus core. The maximum concurrency is video decode at 1920x1080 (FullHD) with video encode at 1280x720 (HD). The encoder is not available to firmware versions below 6.0.54 due to an internal requirement for secure buffers. 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 | 51 ++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index bad49f0b4a77..2c9e2e0f95f5 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -1088,6 +1088,56 @@ 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 venus_min_fw min_fw_encode =3D { + .major =3D 6, .minor =3D 0, .rev =3D 54 /* encode min fw version */ +}; + +static const struct venus_resources qcm2290_res =3D { + .bw_tbl_dec =3D qcm2290_bw_table_dec, + .bw_tbl_dec_size =3D ARRAY_SIZE(qcm2290_bw_table_dec), + .bw_tbl_enc =3D qcm2290_bw_table_enc, + .bw_tbl_enc_size =3D ARRAY_SIZE(qcm2290_bw_table_enc), + .clks =3D { "core", "iface", "bus", "throttle" }, + .clks_num =3D 4, + .vcodec0_clks =3D { "vcodec0_core", "vcodec0_bus" }, + .vcodec_clks_num =3D 2, + .vcodec_pmdomains =3D (const char *[]) { "venus", "vcodec0" }, + .vcodec_pmdomains_num =3D 2, + .opp_pmdomain =3D (const char *[]) { "cx" }, + .vcodec_num =3D 1, + .hfi_version =3D HFI_VERSION_4XX, + .vpu_version =3D VPU_VERSION_AR50_LITE, + .max_load =3D 352800, + .num_vpp_pipes =3D 1, + .vmem_id =3D VIDC_RESOURCE_NONE, + .vmem_size =3D 0, + .vmem_addr =3D 0, + .cp_start =3D 0, + .cp_size =3D 0x70800000, + .cp_nonpixel_start =3D 0x1000000, + .cp_nonpixel_size =3D 0x24800000, + .dma_mask =3D 0xe0000000 - 1, + .fwname =3D "qcom/venus-6.0/venus.mbn", + .dec_nodename =3D "video-decoder", + .dec_minfw =3D NULL, + .enc_nodename =3D "video-encoder", + .enc_minfw =3D &min_fw_encode, +}; + static const struct of_device_id venus_dt_match[] =3D { { .compatible =3D "qcom,msm8916-venus", .data =3D &msm8916_res, }, { .compatible =3D "qcom,msm8996-venus", .data =3D &msm8996_res, }, @@ -1098,6 +1148,7 @@ static const struct of_device_id venus_dt_match[] =3D= { { .compatible =3D "qcom,sc7180-venus", .data =3D &sc7180_res, }, { .compatible =3D "qcom,sc7280-venus", .data =3D &sc7280_res, }, { .compatible =3D "qcom,sm8250-venus", .data =3D &sm8250_res, }, + { .compatible =3D "qcom,qcm2290-venus", .data =3D &qcm2290_res, }, { } }; MODULE_DEVICE_TABLE(of, venus_dt_match); --=20 2.34.1 From nobody Tue Oct 7 02:01:41 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 522AE2C15A9 for ; Tue, 15 Jul 2025 20:48:09 +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=1752612491; cv=none; b=J2coH9W+z2CazoicnOE0G83IkVWRpjeSjtDtSY0kOH/V2fFugLiYFOGZXJGaLwvEzq+WkHLQDDuR4/NH/TIxA5AORPUBY+eVIxmtfCTQjJ3zRsiVd4gtjtJAYDUgt6NlUg1HNGcIDjpNVwSySrNdvXaaOShP+PdTNhmkch1KrGE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752612491; c=relaxed/simple; bh=tI4EJY+AX+r+95HyElw6Y87H6Z+WIIFID7OrbHLVJ9g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=h2WkWCvbSrKDT/0+A5soB6jOnfLc3tgwOv8/Sc18bxOLQMgLpUHzNtBZXzYHe9YyuI5Mm7nbyttRoqGhIJuPO15pceCQb+6pNvl5US8EkA0Q0d5GrXIeAUXKRo5HfrXATxAWMnZeudTcZWYjuPPppqoF0PsfhycDXGO9DLqddug= 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=IGCFEoEX; 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="IGCFEoEX" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56FGDLPe024983 for ; Tue, 15 Jul 2025 20:48:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=cDNJIT1X4FF Dqpcezls1gtG8Nez0pdy1Boer2Zl4v9A=; b=IGCFEoEX1vwkNIi2yy0zlJ7Fz5h l7dIhVb1c9VmrXrQdIF7h7Myi3T5Ri4DKi6ADTuweG2/6STM3cJlhL89n5u8ZFb/ chpfpGo3VDZO9ufFSahvQ+sZ1IE/HzWBkt4Cy8t1eTIYonVkq7F5Ry66SBjfyJ0I 6ZKgnfcmvSk8lmnZpVY3uCJyAOW9ZS1jF5lt9JDmGuoE+tsHEJGZsshGUtCXk5ob i1suKOBCnZY5LUvPcUmYaeMslEbQsKrVtm/IvQOUmn4i+sKAz5s6N72Ak04oUCVL 5WcTWFVOpcD9s9rOqzudoPX1NHiY1bLUItmdlN97b6UvOfM/BSd7kQJ7OvQ== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47w58ymdyv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 15 Jul 2025 20:48:07 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-7e03ac1bf79so329024285a.3 for ; Tue, 15 Jul 2025 13:48:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752612487; x=1753217287; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cDNJIT1X4FFDqpcezls1gtG8Nez0pdy1Boer2Zl4v9A=; b=JuVkA2tE8hYZU2t+IgpCZF4bABKNNH0sm9i7lKy5DqFjhOuawaqdXoov3453lgWRHT An0KY5IllkumV6FpAi/EzCr8ueyNFiGIWGF8dvrjfJEpXYpP09hIf7niThouo1Wh/zHt +5pnf7YzcIOxESvOwv2z5jjEdZJc9CYYZagJavJW9qfasnfyNzj2mITrjGrjCBpJqkyb FZLdH9eFc79cczqCImjgDokjOrxzSlb9iIhGlrZeT1v+MTkgQphQf4Rr5RcApPAinGQy Ml/RdX4sr+YLHqrpDklMByWYDnTVy/cd65bEC90XqDU9NJgkOKP/vh0DREyVHGdImjkX abYw== X-Forwarded-Encrypted: i=1; AJvYcCVY5z3SauTCuXy3FfVk+6rnzm/4ex6XQRTn7TDhqiGEWbtPL5pDpljk+L5EMNhlgFFaiqFBrp1L2DjGT8w=@vger.kernel.org X-Gm-Message-State: AOJu0YwJKNxkGa70TClrKueDDsNY78/odALGj5vJDcP5+lhm8kiAgcgB g+jPVeMAtNVMovjQuGCb49Nhl970goYz71c32CsEAJLC9eFmJOWr5oSkvzj3bw0zLjA6GwYz9c6 /mefkI7VAEsSznslYQZH+NN6T2wv54GiDHar/WgRFdzjInTIzadVo5HEyoWsaIZSnCXE= X-Gm-Gg: ASbGnctGvEgBvTagc6vPxhCI/5qhe2I5HnZIuVZgt0pskLtN9l9bPgh/cWlPd9JK6og Q2f38HwOfm/K9HRPP4+Kvvd7aaMZEL/Sv81b6KSvXA4ETTTRSLKXa3tE5Fa4F80RvIDUhe9Eoh0 UhvrSPTBEVCprGAX6haXLyne0wnInsXhb6rJMtYGPlYzK3ZobVvnDPTXzwYzzh0bVOroOecmTfy /DeWe159boanjgpFgGM/FN5TvVcoVWzhpkHm0v3R7RLLhjz9LNfJmrssjVE5mNW323kE6BSunsg VH2sKVb/cN7nrnTjrHqliVQh9YmH0zbRFDPWWkX/v38uBqvW4Tt1S5XySM+QKtoJ/hZqfv8CP3n IwcMtzfjbut+OTlkEYw== X-Received: by 2002:a05:620a:1794:b0:7e3:320b:437 with SMTP id af79cd13be357-7e343351613mr46872785a.1.1752612486924; Tue, 15 Jul 2025 13:48:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHaeqOjGAPeWkJ+TUoENrlyBUvMJ4sXuXZS39RAbxA2XpPfqiQ58OtzuOP9EGEQ7JHQRLcPCw== X-Received: by 2002:a05:620a:1794:b0:7e3:320b:437 with SMTP id af79cd13be357-7e343351613mr46867985a.1.1752612486325; Tue, 15 Jul 2025 13:48:06 -0700 (PDT) Received: from trex.. (153.red-79-144-197.dynamicip.rima-tde.net. [79.144.197.153]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8dc2464sm16331877f8f.38.2025.07.15.13.48.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Jul 2025 13:48:05 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, andersson@kernel.org, conor+dt@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 6/7] arm64: dts: qcom: qcm2290: Add Venus video node Date: Tue, 15 Jul 2025 22:47:48 +0200 Message-Id: <20250715204749.2189875-7-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250715204749.2189875-1-jorge.ramirez@oss.qualcomm.com> References: <20250715204749.2189875-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: AW1haW4tMjUwNzE1MDE5MSBTYWx0ZWRfX93hHMg3IOHXV hkJ3VCa8GMIhO8XpLVEMIhgHKysXi04UvdQ69rOXRMuMS0iNkriCAMxLSLp3d433oi6r5xoi/g/ lTzx+i5B5ZW6i9vmmoFEBKcSqpEbDH2EivO6T+0x7jUMQyUEMxdrNxeR9U8SM0Y0dvvDcuOuHfT +sDKcjquG1EkFovf6qjYBVoSv+pxsL5Pd8NAh0Kqfjbl/IXLlmTQa8u8CEUXSVNZPsb9YjYHIAe SMuBZAcSbobvZEiM5lroXDIaUd7dSmJJsZyZV3/XoUScBpO5WDO1rRU440+5bBfEJevw9SsPz3T D/xcWaFMyXgtBePOkjxb6+V8J5CF6Ng7+WGn+OEF5vtIgvGC8sM9RyXemtTw5UdewO1VWX6I2nk 6yJWLHqAH7G9DRhuzkGFhxfJFw8EgQrm3sWQ3WTWaIWoijQZE2GA4/g1fU3aI8tiosaePYF5 X-Proofpoint-GUID: nJ0gGdiDoSiwgrplO0N-sCZvtj_GACkV X-Proofpoint-ORIG-GUID: nJ0gGdiDoSiwgrplO0N-sCZvtj_GACkV X-Authority-Analysis: v=2.4 cv=Or9Pyz/t c=1 sm=1 tr=0 ts=6876be87 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=Ki5fnJvzvo7yLsyA0quaxQ==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=KD12_Wl4P5iJQNenjFgA:9 a=IoWCM6iH3mJn3m4BftBB: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-07-15_05,2025-07-15_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0 adultscore=0 spamscore=0 phishscore=0 priorityscore=1501 lowpriorityscore=0 mlxlogscore=999 bulkscore=0 impostorscore=0 malwarescore=0 clxscore=1015 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507150191 Content-Type: text/plain; charset="utf-8" Add DT entries for the qcm2290 Venus encoder/decoder. Co-developed-by: Loic Poulain Signed-off-by: Loic Poulain Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Konrad Dybcio --- arch/arm64/boot/dts/qcom/qcm2290.dtsi | 55 +++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qcm2290.dtsi b/arch/arm64/boot/dts/qc= om/qcm2290.dtsi index f49ac1c1f8a3..7cfacd189a10 100644 --- a/arch/arm64/boot/dts/qcom/qcm2290.dtsi +++ b/arch/arm64/boot/dts/qcom/qcm2290.dtsi @@ -1628,6 +1628,61 @@ adreno_smmu: iommu@59a0000 { #iommu-cells =3D <2>; }; =20 + venus: video-codec@5a00000 { + compatible =3D "qcom,qcm2290-venus"; + reg =3D <0 0x5a00000 0 0xf0000>; + interrupts =3D ; + + power-domains =3D <&gcc GCC_VENUS_GDSC>, + <&gcc GCC_VCODEC0_GDSC>, + <&rpmpd QCM2290_VDDCX>; + power-domain-names =3D "venus", + "vcodec0", + "cx"; + operating-points-v2 =3D <&venus_opp_table>; + + clocks =3D <&gcc GCC_VIDEO_VENUS_CTL_CLK>, + <&gcc GCC_VIDEO_AHB_CLK>, + <&gcc GCC_VENUS_CTL_AXI_CLK>, + <&gcc GCC_VIDEO_THROTTLE_CORE_CLK>, + <&gcc GCC_VIDEO_VCODEC0_SYS_CLK>, + <&gcc GCC_VCODEC0_AXI_CLK>; + clock-names =3D "core", + "iface", + "bus", + "throttle", + "vcodec0_core", + "vcodec0_bus"; + + memory-region =3D <&pil_video_mem>; + iommus =3D <&apps_smmu 0x860 0x0>, + <&apps_smmu 0x880 0x0>, + <&apps_smmu 0x861 0x04>, + <&apps_smmu 0x863 0x0>, + <&apps_smmu 0x804 0xe0>; + + interconnects =3D <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG + &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>, + <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG + &config_noc SLAVE_VENUS_CFG RPM_ACTIVE_TAG>; + interconnect-names =3D "video-mem", + "cpu-cfg"; + + venus_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-133333333 { + opp-hz =3D /bits/ 64 <133333333>; + required-opps =3D <&rpmpd_opp_low_svs>; + }; + + opp-240000000 { + opp-hz =3D /bits/ 64 <240000000>; + required-opps =3D <&rpmpd_opp_svs>; + }; + }; + }; + mdss: display-subsystem@5e00000 { compatible =3D "qcom,qcm2290-mdss"; reg =3D <0x0 0x05e00000 0x0 0x1000>; --=20 2.34.1 From nobody Tue Oct 7 02:01:41 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 952BB2C17A0 for ; Tue, 15 Jul 2025 20:48:10 +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=1752612492; cv=none; b=YLYPDbyLHvSonD9Sftg5n9k+GzU3zlRtOdZSLG9eSHS/F/l+QeJ9/O49UnTxBEQVbiM5UvoIyvLrhGaF7v6meTl4x02jWFixP8YT8y7MgaRCmxyUUh9P0mXTQ+ibikixkMJaiRES3k8lcB71PAohTrBRwaRLL+EqkDxvWbQtuOY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752612492; c=relaxed/simple; bh=BnlN8BH0y5miKc7waS4rKUqhxFa14KCTqJylMT6SIe4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Ju2dRzWXh+CnGuqgEFpJGRuGQqbgxpFC4ax8+rAe1pqdp6H3zarETy9mJlRN95aaMkgR6+qSo3xH6Pz2mbyXnLeVe4wVwhbM23ud4eQmqZabj3om7ZZjzhcduwAaQNmlJzlL5vQ2PPN0WP/822Nv42Q+UgLm1vEECqimnJ3bOM0= 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=FCrVWsn7; 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="FCrVWsn7" 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 56FGDJRl026137 for ; Tue, 15 Jul 2025 20:48:09 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=Ulnnyakmdjr TKRRwRremdAmueSN3wLLHqGlctDxytVc=; b=FCrVWsn7DwpAiRU03Bf7J3G10cA 8p25K05EY7CBZRIGQM6AyjVxlOR2oIwb+DQI997+Iu4vcB6XSrTzDCFrC0dQb/xI Lxt8a+/oP4Seb8DmW8DUObqPyyACQYchIeaNbicANBF/pIQLlHKDz7giOsKzw3FA dHayKBpV9m8wbC0seZUTD1UHxcVO3dntGfzcPnBx8ve0fKr3K4VThehhsntDZPWW YNqnT0TTq5IMisspE5kfQ1GDHWA8D5KAOCPAG/IEZ/tF8TdgA1TLP3bXMPtgyYMA hdbTLK4pV73iw8411U5bEvioVR/tSq3CapeCa0KH8HWC+tbV4ZmXkk0HjcQ== 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 47wfca2ugy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 15 Jul 2025 20:48:09 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7e2e8a90a90so385325385a.1 for ; Tue, 15 Jul 2025 13:48:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752612488; x=1753217288; 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=UlnnyakmdjrTKRRwRremdAmueSN3wLLHqGlctDxytVc=; b=BeXxHLKqzxOVgx3Lv6Ra1/8REDjKyDDs+2u5J5cVejiCsNis1NgfOCT5gkNNNOqur8 j1iIp+JhRsmWbV01yIKRMoQmOrak+/5z6auD4kvvKCwIx+mRwcFypisL44uANLO42cxs jRrtW4STGbBwl8GkAQBxJpoI+pnqUZSNlhtOLBVcUex56mrwoSdAnbiitXBEzYOZXrwD pnbtBfmPPu4CxjFGzdUkBQqBzM4yJGGo2lD0b9w4fM67J9F9HMyDSKw/sX0sWvxDOazq NDQW3vI0AnFVWBQJ1lwHsKbJdYy5OD7Ne+/wojSZJufzARNYPdfexihGp75XSHKUgdSQ NULQ== X-Forwarded-Encrypted: i=1; AJvYcCUg9G3k+0iW5wwvlx/Yji8bEkoCLL6WkKu0I27FVZ34BwAZpRbnT4a3RVpH30uSIawHKdcMLuWfSDi9byc=@vger.kernel.org X-Gm-Message-State: AOJu0YzbWdDCkuihNmYqFJ16JOmwZFV14lFgMP1mLoseYJWKkEo8an46 xRUTW+E1SwXFff3liR70FokrORy1KwdG/OsoM6/p20UvtyljFR78KCV0Wbc6gRlZ0dg+PImLK0+ vzrbz12VVt7ZaOb2wnq8Q3bNESSriEejtqB4CPXz6RdHGRvSMU5sOzY98q5CMjiOUjKc= X-Gm-Gg: ASbGncszdcbDs4PwH9VmaSvF8bLAekpkqHPloZzsJFrTkHOJZBWMHR/ANimLnnEhxoG 4Z9eexDh2oQEJiN27NSRZAydukkIEkUkBDEsmWEI+G4r4qZR52cTUo4L+0OFmzJzPfboPhMIp/O /CgGvkPUyUW9bYGjcho3s+xaAW/HGdTdhaa+ZzT+ZggVU+9vS7XJsajqJcCCyijpF286/J5piNl abIf73af/oWkP6dmpjclZIrhyJVhu3yeMSbeQCJt6o2RFQ6kCipvt9xKWEaQjQmEExGi/SMKKHz yWp/7YO81N5l6MUEVs4moyrGW82SFcKPyXcjyZ/2lrjMEqtWlUwPmB22Nk0fNan0LQ0oxeJ5xik dXOM0ohV5d/EW0SKOzw== X-Received: by 2002:a05:620a:468e:b0:7e3:3065:a6b9 with SMTP id af79cd13be357-7e3433486d1mr52337485a.7.1752612488360; Tue, 15 Jul 2025 13:48:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHlw27oAr+iNWanGODjwWubXZcxp8SV4xbSVfakE6bozSVtRFetzaqd9UG4J7kX9ItIp+YXDQ== X-Received: by 2002:a05:620a:468e:b0:7e3:3065:a6b9 with SMTP id af79cd13be357-7e3433486d1mr52333885a.7.1752612487970; Tue, 15 Jul 2025 13:48:07 -0700 (PDT) Received: from trex.. (153.red-79-144-197.dynamicip.rima-tde.net. [79.144.197.153]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8dc2464sm16331877f8f.38.2025.07.15.13.48.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Jul 2025 13:48:07 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez@oss.qualcomm.com, quic_vgarodia@quicinc.com, quic_dikshita@quicinc.com, bryan.odonoghue@linaro.org, krzk+dt@kernel.org, konradybcio@kernel.org, mchehab@kernel.org, andersson@kernel.org, conor+dt@kernel.org, amit.kucheria@oss.qualcomm.com Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 7/7] arm64: dts: qcom: qrb2210-rb1: Enable Venus Date: Tue, 15 Jul 2025 22:47:49 +0200 Message-Id: <20250715204749.2189875-8-jorge.ramirez@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250715204749.2189875-1-jorge.ramirez@oss.qualcomm.com> References: <20250715204749.2189875-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: AW1haW4tMjUwNzE1MDE5MSBTYWx0ZWRfX+WOJ6lmj/e0y 45YP5+2DDELNxBmwgHeTpom5OYUZKhWY7hY1b10Lvd7mLlNN0GBca7v+fcdXPRx2rRKz1GhXkj/ T4NCmA7wUbp6iNJIOLczsFCMF39VpTtR+EE5dbFEeF71UQEypcjhuL3TW+Dhx9WRoLPsMnZ6Qnq AMyRlEGw6cXHG0N18raEAWgrFLBgK4TZXpAdjVQoKcm0ZBOTf4+GqMI/19+ap0Cz2mf4KwunREx OYqItmwsrhdlfFF3IJsh7VTVslp+g8Q8Fs3UhOJXLWNDKbmb9jmkwiS2rjR7qbVxS6X3TyRVHMR z18oapdLHRSBtG8YydL7k0mAaqXvTYkPKHp3XnCTu/Trf2nKxKxyONJQ3G7sBt/MnchlZG0ov0y y14mcYhTzhkn2jyEc919EYQqd34co5Yjs8Hv/nubBu+K8o5sj+6sJQ+HrqNT7Pf0esUdHRQu X-Proofpoint-GUID: w9GDMQ3PJ0DJ_E1vge9AtQqiHCWWerRK X-Authority-Analysis: v=2.4 cv=SeX3duRu c=1 sm=1 tr=0 ts=6876be89 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=Ki5fnJvzvo7yLsyA0quaxQ==:17 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=Qms5JgQ9tnEuTiNUcoUA:9 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-ORIG-GUID: w9GDMQ3PJ0DJ_E1vge9AtQqiHCWWerRK 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-07-15_05,2025-07-15_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 mlxscore=0 priorityscore=1501 bulkscore=0 phishscore=0 lowpriorityscore=0 mlxlogscore=732 impostorscore=0 clxscore=1015 adultscore=0 suspectscore=0 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507150191 Content-Type: text/plain; charset="utf-8" Enable Venus on the QRB2210 RB1 development board. Signed-off-by: Jorge Ramirez-Ortiz --- arch/arm64/boot/dts/qcom/qrb2210-rb1.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts b/arch/arm64/boot/dts= /qcom/qrb2210-rb1.dts index b2e0fc5501c1..8ccc217d2a80 100644 --- a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts +++ b/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts @@ -711,3 +711,7 @@ &wifi { &xo_board { clock-frequency =3D <38400000>; }; + +&venus { + status =3D "okay"; +}; --=20 2.34.1