From nobody Fri Jun 12 12:29:12 2026 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 83C14371CE2 for ; Fri, 12 Jun 2026 09:25:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256345; cv=none; b=ZuxYhh4BnlvXCm1IBKO+xjKqSmuHLcu6AJYj1g/2DEVJDV3pkm6WMdzZQMJwGA9js5pGsnJz1H7yZzq2ql40Buo8f+fgctSzVqGJODIHzdiMrGJ+WJLZzHoeXsHUCMqRUYFbsJsvDGUNu8JAhZt8IGavcd9mjcdArJ8A6qQ6RSg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256345; c=relaxed/simple; bh=aFCxwN+s0nObB9dYmcqshZUCs9EjeMcuhwbHJaldKhc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YOO09+mEhou5hYsSet2/O9rdVuilDy1/gsrqt3Qq+ZuJlbRV5F1iByAq4AdeV4Gizqa5LWJqMwmp8/6ubRTWaqJtNL58yV7uKWxrbHsGCGd4zhW90F7EJYAcJi/auSF1uhZP9RfIUYkTP+h8izJA5pBiTz6+SX4PxUT4FIBYpGg= 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=CaJ22dBD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kPVfbzsK; 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="CaJ22dBD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kPVfbzsK" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C39cNZ2411606 for ; Fri, 12 Jun 2026 09:25:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= CUFPN10YozDbbYt5j7NhH44x2aT4ZP340z/Eg0bq1Jk=; b=CaJ22dBDnOAlakLu rSvzu319rVXYBhf/HrEA78o/j9xUjL2Yqn6f0bgVjv20y12oppysceI+fBpjVCAM u/PKPj37Z5TFo6+l/JlBZ4J+XiaBtNnx2VPo3lHPRNwiHkeBHhE6m00yJUf5wMQh C4l1Zs8WHuqF1XFkLTNdwbGy4wKk1IruCuP8UbEuPYQSkfYL/W+d/fQ5VkLIrCL4 LXv5F/g2kcB6w3lCfZFPHbW6+CLD0KO73n9k21YtwPfDaWTuxR0VCjaKEEwZUr3I FNOyIpnWr72nwE9QNAACHIlUW28BDMzs72d+FrPQIDG5qsTX0bhD/QiXQvsPjEaW A2qdTg== Received: from mail-vk1-f198.google.com (mail-vk1-f198.google.com [209.85.221.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er165awc5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:25:43 +0000 (GMT) Received: by mail-vk1-f198.google.com with SMTP id 71dfb90a1353d-5ab02fb4f39so382008e0c.1 for ; Fri, 12 Jun 2026 02:25:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256343; x=1781861143; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=CUFPN10YozDbbYt5j7NhH44x2aT4ZP340z/Eg0bq1Jk=; b=kPVfbzsKVYWUKoYPTX+uH8yqviOmQlawn/zUTmwm0KIuOFH7F5CZvVT6zK21rMQt5x 7UCaNoGZ9hf6xJYoBpE7rb1helNlwqblcgDshVWYHhW9h9/XZ0iMtQ+YFY6cSV85KM5a X6lV8jI1F1t/HJMw37UumVel+i7ZGJioVPd3/Ar9MbxPB0g/uFJ7SLJ2ND33GbDAHm2U gB67PEn6XLTH8Fhx6VTFQRydTMAS40c22TOhiS7ILsJgSvAiUI7HDaHO+cAPR+4DuuYe W3/mTvG6MRIHUf4LfuUfTtowBfMd3MAn+uhnte4OIONVNODEami9IzV+qyaWxHB7unxj SUlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256343; x=1781861143; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=CUFPN10YozDbbYt5j7NhH44x2aT4ZP340z/Eg0bq1Jk=; b=f2zww1aURU3TpPsDcKUvOA3USuSmFundM4bRPiHtcC+0blcWqge/2P1kWvQHS3yvaO o+rCtW8Q4lM3v0enascphrwMihaVNTpzQKSou+ndenmdvEYpCVLV+f70Qntgz61pGaB3 en/xlDo7R7MDu5EId461bF0XehRpZdsPbky9Vx0grMM7x9n8w/sZbDgGnRdioi1X8YYo r/NiPCbbGOamp3A6NhqWbbNfaqa2ORNldDHp7Awb2cM6iRsWpWOOWMFNPA6uGEz5536G 0qWUi+UKS13r3WZwXVzdFTCmaN9/1QZ7xudne99MRHTLz9AdEtexph+wgcV5hb7MXiDs 3TCw== X-Forwarded-Encrypted: i=1; AFNElJ/CVFqMzHNGPPgF81JQ9XqYUJbQJr/+zChz97HBaR562OrYF53tjMOQFZsQJjy4xD4IhiTO3EvDGhz31Mg=@vger.kernel.org X-Gm-Message-State: AOJu0Yxe6AM2df3VrDGKMrRiGfH/x/u1WtKtoYHXZT6CIPVOrLgrVXUE utePEaF/eShHbh2UJnVRyhViI/Z8ihZd+NuDrfh0itnTTwQwoMg2mjhzNnyLopTmLMOP/ffBJ+6 i9ugyvThbeF+JiIgZ2SLHfsS7XpxNG+d2AUAvyO8syzkTUcElxiKcs3DN5y6fQUNrUg8= X-Gm-Gg: Acq92OEaCelptbRSbhasXFiT2hJvj/DN7a/sSKD0wpQ1RLtHXDb3veqA4X1h7vAStU9 qR5NJLXWmyZOs7wDkBhSjcRpFDtmfqM/vElOpwf5qGa6RMLBqXyAhej0N40QoslwrTnCDYwUu1k h8v9hAFV2ClC+bhyR1urwJZ2Vikr+AiaqVo//VKpt5mLFmObWr61ETUzrXN54BucBgyIeECZgQG cfOSa3uDUEUcXuii53CXOaOU/w8Ta2zj+A+TPDhHb63oXEsnV+w8550pSHDM2pTooZF1AxUW/aq hMnp2SVU715vFzQ7qMcWGvJkpI+9radfL2dPtUMd9GkPqSFYhKaET7Fn6ikKaMF+581vzaXAm+g hMgpTBPJuc5oqs3QZzxBEVKGCu28soPMRQQnAR6AlkSIRRPY04UNu8cSpxQlktUnXMq9GWWwcWv +XWwv70uhzU2LJLY6LyjClrG5V4pyjf1mF+0w= X-Received: by 2002:a05:6102:2b98:b0:6a2:cf9a:a5f3 with SMTP id ada2fe7eead31-71e888c088amr738023137.0.1781256342831; Fri, 12 Jun 2026 02:25:42 -0700 (PDT) X-Received: by 2002:a05:6102:2b98:b0:6a2:cf9a:a5f3 with SMTP id ada2fe7eead31-71e888c088amr738011137.0.1781256342448; Fri, 12 Jun 2026 02:25:42 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.25.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:25:39 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:33 +0300 Subject: [PATCH v4 01/16] media: iris: Skip UBWC configuration when not supported Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-1-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal , Konrad Dybcio X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1263; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=SkhEj21efbGwh1OhN+7NneptPnsqOcydi7iGjY56ptE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CPwZPO0cN0OQb8rKNsKDy2TPAKrkP/B2msY 7r4j+VGLtOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQjwAKCRCLPIo+Aiko 1b1rCACp504C40HruoVsq8k3/NZr3gQVKQigLmI44owZM/nGTYSGUmJisKxVkzKDlW9Wb25qa6A eMg81mELF0+bqqYnA/U1EtzLKzyxsXRbDntfUk1zGP1/D9W5xyPDopvmUh3peAb0oiRc4bfYPvn mPxCU4e/poV7QLQZAvcmTbw0rBqAEY0r5UC9Z0O0WVkA8vpxM+tUyXENbbOdONYJ6HDYMfx3tpk oG4ZJVRThQraaLfSWlRmjRF8Wlb+uPgCWgV8HYZXkS7VT62ZmcE7sntzkM+xHz0+4o0qie1yp17 EOx1QYcVwYtuZeZxKLdtMJo7UUVkvifjW5jIBtaJOux5Kqc7 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX19bhqniu5OBf rHcLx7cl38P9b8H8WN0DfPZsOVAVO0xb9eSOn6QBl7A/DBdOC4iueNx5+capdoMBQnWukdbSMyw FTeoibNiJ/2RBkj4rLFsXhUCEO7In2WVcVwf0E8EDo786v4jBETBntoW7vO6sTHTJIvjs2WAp5I bFsDXudZiKu0vIAQG3nnDdO9RCN58KUS+dd2fyRRh8DSqdsqWlR5IwkR8mfs9nbejI3aItgVdyS epG2OjtuwD7LgScAREwo1yRXCWtlItsi3/UfR5Gg2T/szEv7LHpARsc3N1XxJ3zTOmA0Gtxw1Vl cGUfv9rNzKEz4L8AmwH3wyXmHhhz5bwJIdbGyG0gPb6Q8Xu2Ofx7xlvQPO7fGCezwZeJTdKoj87 jbMWDRcA2CYQiuZnEcVBjoI98tUlVjDu/U//7LYlyTb0HEaFU1kuP09ksPMu/hozoNpelqOo8Q3 yyyPTxLAQT0P8qhio8g== X-Authority-Analysis: v=2.4 cv=LNpWhpW9 c=1 sm=1 tr=0 ts=6a2bd097 cx=c_pps a=1Os3MKEOqt8YzSjcPV0cFA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=wrkyJH6U6m0Jdbs6q_kA:9 a=QEXdDO2ut3YA:10 a=hhpmQAJR8DioWGSBphRh:22 X-Proofpoint-ORIG-GUID: XLPbAdTmzFThWpude9FYIVSkBMdv3kqW X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX9Wh4HIZP2RGA bExcTM0WsAIuXstvac4Zsc+mImTngt/cI5oLXZFL254kAOo0Tt8whBoMcXNP/kM5GbEHBkRvLTN yN+hJZWPx5NhZEf0Hau2/jfxh8cHh6o= X-Proofpoint-GUID: XLPbAdTmzFThWpude9FYIVSkBMdv3kqW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 clxscore=1015 spamscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 From: Dikshita Agarwal UBWC configuration is not applicable to all SoCs. Add a check to avoid configuring UBWC during sys init on unsupported platforms. Reviewed-by: Dmitry Baryshkov Signed-off-by: Dikshita Agarwal Reviewed-by: Vishnu Reddy Reviewed-by: Vikash Garodia Reviewed-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_hfi_gen2_packet.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_packet.c b/driv= ers/media/platform/qcom/iris/iris_hfi_gen2_packet.c index 0d05dd2afc07..6e04175eb904 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_packet.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_packet.c @@ -140,6 +140,9 @@ void iris_hfi_gen2_packet_sys_init(struct iris_core *co= re, struct iris_hfi_heade &payload, sizeof(u32)); =20 + if (!ubwc->ubwc_enc_version) + return; + payload =3D qcom_ubwc_macrotile_mode(ubwc) ? 8 : 4; iris_hfi_gen2_create_packet(hdr, HFI_PROP_UBWC_MAX_CHANNELS, --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 783883769EE for ; Fri, 12 Jun 2026 09:25:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256349; cv=none; b=AaWky6u8Q+mhixgsfoSm85i+iej50BPOTBkXtGgOn+6wlf2KJuzGAZnt4uqOVWApWsd3VN+0zc/i5Eukp/zEE5uIvHsbsSjTYo4MoXkrZKRMA9E9nD2qcs4MZlid9mQIytizxqa/RZq8xiPSKlOGuVUquKPQflWo5nUaTeqDvdg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256349; c=relaxed/simple; bh=H0V82aG3dPYbnrAz0FGj59jRwGH9B0JQTcpQnE8Ylck=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s1S+08P6e3IBL4e8Bbtsy+FHoq/1i4KuM6DiDFC4rEPCzLDLnZtetbMQn5ZEQDj0xxCJB4Vfn+fmj/cqWJm6jXPCAoHLHiYCcSGJpwfaKf7005kbmy1afbMRKGrZx2zkxlInRXmsVDkw4QzWT9snEBYLZ4R0JrMOJUovHEAgpeA= 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=ZIbqGHYm; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=VEUtkhS/; 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="ZIbqGHYm"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="VEUtkhS/" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C39SXM2502684 for ; Fri, 12 Jun 2026 09:25:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= aWTJE5glnmUAzyAbMWhXl5nquYnqgRSsKh6pLuxFe3Q=; b=ZIbqGHYm2Jb/821a /OaqAqV95SoLEDXSd59kyjoZ1KCWB9rZSXVZZfZB5JlJM2Ujm/SKaFQpRAdk2/va RQ8ps0ovB1dcJgVQJrXxAM6MBUwdhe2AZyhRQbuNdDZktSTkHFpWd64IaTo6vYcE lCXDwnJfZgRilvSc/qFgeEd6wl5OYpYNSpbRRAk1csHxTjMSDBIAReW1c5JrMKic eicsXBLMr5iuIe8TzBgu7FLUBXxWGHF+sTt8epx1lJPpmQTOwjS8geYngAvHroZt DQXiy4QnYTIBfD3Ssa6qM6yPC2hboL4kTTyC3lTVHmdZgOYHwWam4a2TFcvEyllC yx3+3Q== Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er0xd30n9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:25:46 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-6ee0bfb5681so804316137.0 for ; Fri, 12 Jun 2026 02:25:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256346; x=1781861146; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=aWTJE5glnmUAzyAbMWhXl5nquYnqgRSsKh6pLuxFe3Q=; b=VEUtkhS/eSlHM5RAieBeUejEa/3FTRW8shoRamI53+ui9hsF5BQJtTqZg8x2OrCTAA dgTZIMyvXhdioIj017NHPehQeuhZPagYIuYT4uyMtlbI1H2bOSoib3slbnIRbs8mTnk0 sTqPQDPA4Iwt9ue41w1+ARZMOMLX0lfSilmV6r5G5v8bVFCfe1ulmEloNZR0JBovK+iE xUr/tlznxkZBYmHCbU42jrlgCINx0i7D1IV8ENLNne/9Owbh6xys5ipd6FvrSNooderL 0iBtDuSooB3JccQkEcpclo1MxWfl9UudNd7AE3cdW+lviyUJuUUKtUkuqKMzlY3AUvDO 9kPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256346; x=1781861146; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=aWTJE5glnmUAzyAbMWhXl5nquYnqgRSsKh6pLuxFe3Q=; b=azFuGSbmd2fgVGT/gaaZkLyXF6pOCf99yPDvqwnN3Jh3v/T3uhzyCGHTQiW/x5gyHI Uop6yS+Y/ctSZeoAbMg4A1XG4Af6Ia5l84QiN0aeFMjdqSQzvbKu3JXZM4ODTnTGyltG MiXvIjlBP2bkCMyvv1mDcGE+Ld3bZAPNkdbGi7cb2+GR/7GyLw9RiepHWqv0eeI/CXH1 UmWR4S8QAqjEgeVlfkFKVVDLjY0V7KGguRQ9hBxCbX0KQnKr9iA0rb0utAiC5pjnRZ8j +ZfV9EMcAOrbJLk7avZHZZn5vqP7iTZIVcrWg/V6TM271cCnfWtpqDqpv2L0Hrz6i1Hx /yBA== X-Forwarded-Encrypted: i=1; AFNElJ9nEguJiJxaoXIclJ/Dmkuyim8pkmuNmy4aBGbtS1c+DzAKhpUw/HljZmLCSqgI/WBK6BMb0qJ5heSkg1s=@vger.kernel.org X-Gm-Message-State: AOJu0YyjlIEHXHI+BVxft0J6DeH+nwua56NMtawhgqsdH7gkNK/9kEpU mjsInDMw5msS11uCOfl36+IX6b08tiNtIhCvHeqUfTYTQHTh4BUkLSIgTkbIQl4eXea7/6QnD34 Z1zcGV+FQyyz+7eyYWSwqVHF3c68aLO4VmRsq3i1T79KLhr8M0J6KuYnVjYrF88fJkrE= X-Gm-Gg: Acq92OHBGE2lk352R+iLl0kV5mf13ZYRDsqIezd8ryUYvkq8xAws/yyNU4PGCQHDmhX gFvMW6ghYaohP9PRMv6UgCh553WQDlTDFACeZlgVfgx28CSSRGvFWeyLtUUadoCjyWsD3KQnWlJ 9xbv4MuEG5p3nmBcsFjDBoBZY31QtqMyYZAUJu6QjA31WTRWudh0chfgLO8bxrV0Gh9/7Fizx2P qJ/3aNH/mLa58qin/KZeh+w4dXJuWo4kOIxoHR636viCx42h9AhhaZwu60ut8IPUJaHg3z/GZVS OTU0lv1mg5wHY9KUB8/tBvzJPI19lP8mwwzHfEZrXOseMxKpLFV/AfDVbiYMIEngdp4G4o9HCSX 2u3pSKJlmINdZwS7sdiiKAloDBuArZN0rFolV6tXW8gmDL5/AnJ0OoMvyg4VWtoSwj+04EPbyKn LSOu+a6hmV6o2t+MeG92jzxEZ+KX9opwerMJg= X-Received: by 2002:a05:6102:f13:b0:6c6:432c:84d3 with SMTP id ada2fe7eead31-71e88b36277mr863737137.12.1781256345694; Fri, 12 Jun 2026 02:25:45 -0700 (PDT) X-Received: by 2002:a05:6102:f13:b0:6c6:432c:84d3 with SMTP id ada2fe7eead31-71e88b36277mr863722137.12.1781256345218; Fri, 12 Jun 2026 02:25:45 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.25.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:25:42 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:34 +0300 Subject: [PATCH v4 02/16] media: iris: Filter UBWC raw formats based on hardware capabilities Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-2-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4535; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=ksWQgJMkKP/JHjPoFVDtiRDL31oOL67/XmVWJa1aDqk=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ5b2hf53rIt2cUsaVMupq10Plp1+6qG9RW2bzQqzBAOXB LEzoVWdjMYsDIxcDLJiiiw+BS1TYzYlh33YMbUeZhArE8gUBi5OAZgIuzD7P80UMfPfjSW1C68x iNl/zVJ6cKP4qcDaGx2V+xq+vGMpiNeuWnbqtFTU1R+bn/QqdP/3yT1fLbj+XQPL2rWpsXHc2+0 kJ/XxCswVVlPj+FbhXDPbbf+NVOdE/7xP2dEui7fqlG4L/jFHJH6Kgq9Yzaleifxvl2a4sOUUbd vTrWT5ReNMkvI3i/UJ2i++ydxb0inszaLfo/rN9KKr+b0zq16esDv6bvGGzo03pgnNalXPt68yC O6dGbK3csZZtpWB7+bunLt47ol1wSdq9EIvZgbcdzdt1uv/kXuW98yvwurpfh9PyNptN3ZhmuqY PFPYofgr85ZrJ/XiUxO2SeUbRdkZ/WKrMVXrZJm4/2wTAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: OeuWB-gdyjVzJDHWQBmhLxwm2dEpW4RK X-Proofpoint-GUID: OeuWB-gdyjVzJDHWQBmhLxwm2dEpW4RK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX7p6eAZfVh1yZ 2PubjsYOpGc1xi8nf/y/FERWp6a7Acd2CAgCQIQm/ZqwIahFedCjXR+eGjr3df2u4SQ3y8kV9qX qcx9Rz8GfZhJyAR/MUBf8lSj2hu6NkKHTzD1V6cqngWGa3YwwPU4TLEl8T3VM7qoFMhQHV2C3j4 pwVIerAxF4gvLENQiGnG+kguGW93hKNzhgaY36KIOmDmWOdMi2nhe0mlXdRyV2oa10txfx4N3r0 s2h17L/vWdl/seGFCg0srzaySGZI9OTX37u+dGfTTA1HhYWg6X0tWdv82Qg0MXEbh8b4vlOerqL dyL0XrXWYBMhbo0T/zOr/xG2mH1EKiuw4C5UVDugQTHm5+0SxOh13XxpaFZQqRh+wbR/Akg2u33 rN0tinwx7ip3wlfxWth2mdcs8a5AOTTXBZCNeVr7EpxARS0Zn75zG59aIK2X5AMWVq/AY71DOvC /OyhGlVOJf/Pu/UnK2Q== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX5uEBotifntzz VrpSYSUCaGGgE5X9Y5ZGjuBkFNxQ23Y6C9wQdewN7o2A+g8+4I1GTED1GmMI7G/FcoD6oRqCblP HnrUMjMY0SG1+ZJhF+TJxRpVW1IyOQk= X-Authority-Analysis: v=2.4 cv=O6UJeh9W c=1 sm=1 tr=0 ts=6a2bd09a cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=HWmRtQhKy1KQUjwlQEkA:9 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 phishscore=0 priorityscore=1501 spamscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 From: Dikshita Agarwal The raw formats supported by Iris were previously advertised unconditionally, assuming UBWC support on all platforms. However, some platforms do not support UBWC which results in incorrect format capability exposure. Use the UBWC configuration provided by the platform to dynamically filter raw formats at runtime. If UBWC is not supported, UBWC-based formats are omitted from the advertised capability list, while linear formats remain available. Reviewed-by: Dmitry Baryshkov Signed-off-by: Dikshita Agarwal Reviewed-by: Vishnu Reddy Reviewed-by: Vikash Garodia Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_vdec.c | 9 +++++++++ drivers/media/platform/qcom/iris/iris_venc.c | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_vdec.c b/drivers/media/p= latform/qcom/iris/iris_vdec.c index 9e228b70420e..7da43f312ba9 100644 --- a/drivers/media/platform/qcom/iris/iris_vdec.c +++ b/drivers/media/platform/qcom/iris/iris_vdec.c @@ -3,6 +3,7 @@ * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 +#include #include #include =20 @@ -71,6 +72,7 @@ static const u32 iris_vdec_formats_cap[] =3D { =20 static bool check_format(struct iris_inst *inst, u32 pixfmt, u32 type) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size, i; const u32 *fmt; =20 @@ -82,6 +84,9 @@ static bool check_format(struct iris_inst *inst, u32 pixf= mt, u32 type) case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: fmt =3D iris_vdec_formats_cap; size =3D ARRAY_SIZE(iris_vdec_formats_cap); + /* Last format is UBWC; drop it if UBWC is unsupported */ + if (!ubwc->ubwc_enc_version) + size--; break; default: return false; @@ -110,6 +115,7 @@ static bool check_format(struct iris_inst *inst, u32 pi= xfmt, u32 type) =20 static u32 find_format_by_index(struct iris_inst *inst, u32 index, u32 typ= e) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size; const u32 *fmt; =20 @@ -121,6 +127,9 @@ static u32 find_format_by_index(struct iris_inst *inst,= u32 index, u32 type) case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: fmt =3D iris_vdec_formats_cap; size =3D ARRAY_SIZE(iris_vdec_formats_cap); + /* Last format is UBWC; drop it if UBWC is unsupported */ + if (!ubwc->ubwc_enc_version) + size--; break; default: return 0; diff --git a/drivers/media/platform/qcom/iris/iris_venc.c b/drivers/media/p= latform/qcom/iris/iris_venc.c index a945992f63aa..2cafbe9f8abb 100644 --- a/drivers/media/platform/qcom/iris/iris_venc.c +++ b/drivers/media/platform/qcom/iris/iris_venc.c @@ -3,6 +3,7 @@ * Copyright (c) 2022-2025 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 +#include #include #include =20 @@ -91,6 +92,7 @@ static const u32 iris_venc_formats_out[] =3D { =20 static bool check_format(struct iris_inst *inst, u32 pixfmt, u32 type) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size, i; const u32 *fmt; =20 @@ -98,6 +100,9 @@ static bool check_format(struct iris_inst *inst, u32 pix= fmt, u32 type) case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: fmt =3D iris_venc_formats_out; size =3D ARRAY_SIZE(iris_venc_formats_out); + /* Last format is UBWC; drop it if UBWC is unsupported */ + if (!ubwc->ubwc_enc_version) + size--; break; case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: fmt =3D iris_venc_formats_cap; @@ -117,6 +122,7 @@ static bool check_format(struct iris_inst *inst, u32 pi= xfmt, u32 type) =20 static u32 find_format_by_index(struct iris_inst *inst, u32 index, u32 typ= e) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size; const u32 *fmt; =20 @@ -124,6 +130,9 @@ static u32 find_format_by_index(struct iris_inst *inst,= u32 index, u32 type) case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: fmt =3D iris_venc_formats_out; size =3D ARRAY_SIZE(iris_venc_formats_out); + /* Last format is UBWC; drop it if UBWC is unsupported */ + if (!ubwc->ubwc_enc_version) + size--; break; case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: fmt =3D iris_venc_formats_cap; --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 25EBF37E301 for ; Fri, 12 Jun 2026 09:25:50 +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=1781256352; cv=none; b=PbImePbQC3ntPW79O+AwwUzpyNNyi+rG/w99MYSzFD11lsjeidiYc+ohwebU/tRNkr+j9zpapJgr4r/Ytsax8OoiYya8s81qC5cissORtJJ1J4Bt3Bcm08YtJ0Ca8Xm+5wh0ZFEUvpFE0XpUlUpAMcvbrEmMI1YcMdaMmMRXyWA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256352; c=relaxed/simple; bh=SUPr9326R8/I85NqmtSxzGXasITRZ38mBZxBYOCk/p0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JD03RgcnddfEYG/x+jo/DcgGcuw5rdejRMQE5xpBHOcjKxi85kGaOF45kNM3lEf2oL6jXBuL787FFuZTcfZmNXSgP3HzB/joLRKUGftck/Pm7vsgvrCISnu8F5rK5SbSShKiFK9ZLs6vtrPZjzzyIPe//OB78bEwJerFzNUoMmM= 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=FC4OnYya; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=A8MShnKS; 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="FC4OnYya"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="A8MShnKS" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C39Sxk2502681 for ; Fri, 12 Jun 2026 09:25:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rZBfUegtVT46gf+3kV/ulvsSL+G4ssvBArwyOeiJ5Vw=; b=FC4OnYyanQwlf6YP sRu0Kr0XS2TOxOLpct+/px4A9tn42duMpcNMoHaFT3iNxZCj/L+qOyOkdwfys9do 5ctg0SnNUg0xcvdsoEwNg1flp6zjOmYR7Wkiaf4ABwzjv99Sdc8uYk20nuuhaXD8 XFhJNvA0sB+OQ/lZz3meBO20Mk9SCc3bK+qSAkgzCcg+9lkL2Q2ekBNWt6NMSBA/ 0uF5h6wVul0AfO/DrdonumDOAMVJiaWvRkWFQzesDpk7ZRwgzTYxJP92nWgpK3zU d0OO3dMOPxcjOje4OkPaChfEhfY1NwBwh3hugtH52JnuoRUJDLcxpMi+H19dJ1Fd ZfMqGA== Received: from mail-ua1-f72.google.com (mail-ua1-f72.google.com [209.85.222.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er0xd30nm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:25:49 +0000 (GMT) Received: by mail-ua1-f72.google.com with SMTP id a1e0cc1a2514c-963d7c11611so242626241.0 for ; Fri, 12 Jun 2026 02:25:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256348; x=1781861148; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=rZBfUegtVT46gf+3kV/ulvsSL+G4ssvBArwyOeiJ5Vw=; b=A8MShnKSNtcXVVI2wKMG8uFLy5CIms5VW0tKLvQ+m/j/fTIG9FlKIIJkLdOK6GsJCo Vn0EpnbgQ2fZGOmp2oyjZec6WUfzORhnpRh81yHsFPrSn6+Lu6ENuKiK9vF1SWug1hV+ hnD/vDihiUxDpMPdaYX//mlrrP+KSlJKViKZtO+lfzYsjFTW3zOsnHd6kIC8V8wcohsd egXhUrsU9+ebKZrvhXsEY8112nL4bkFQUqV9hFBlhd7+MwXQcN7LpNg0/iBOIbtLzIiu TDnedkmidkajdH88kWx7dm4ecthQHNRoH8iEEpj5LwL5P4l0Rn41HsWmIs86Gz85AGGL VIRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256348; x=1781861148; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=rZBfUegtVT46gf+3kV/ulvsSL+G4ssvBArwyOeiJ5Vw=; b=IlFhQQg2lTTROnVDV6uvc87mbpmX3gjvk/seUOt3LMIncw63m/mZznG5mVsAFSUUWj otspS54RsRPdLZxn4fqt4zVMrE+nG91DCJHk9YWRFuubb7r+GR42hnKHMtkUztYpJtMk YFUE8lC5RjDYNl6Pj0IEPKj56PYE1A2ph7euPx7SS8nrJqKuRkx7ikEkSy+ktExjXjJ2 HiSeF4mqO2mDGtJImBeJnkMTR1qERcCAhsYKPmF4S/ffXg1VjfS3644WDDyKQrxFIFXz wqiujV/Ao8a1tdlyAQcxeFMYNvhcwzrwiNGApStLGhoAEAEU6JOdM8KPSGuTc4sDC+Bp 5A7Q== X-Forwarded-Encrypted: i=1; AFNElJ9TUlWwvC2DSWG1gcut8IknNY9sGfWQ4/DjycQSiGjlvSoNbPlBdIV9unqY8zGsf8BkFWgU4n1RQgbo19c=@vger.kernel.org X-Gm-Message-State: AOJu0Yx8QS7Ha4bEduMmXDn7rP6fbLSuYuhOgFZbUEOP4dgXaTse0KAA WgKWcTqeaPNN7vnKmW4mHqhSzJbXYtEEmKcnLxz9uW5YBe7QpV4FVZGw6JURRaVtJcOPNv4+PTE AUdVi8O+jL8h2nB5DnGxNK8fisDq2PW0Y19L1RiCL4AVY41Dlj5yxasEfaS/uqcuQ35s= X-Gm-Gg: Acq92OEyCJK4UpMMUvTl4rnJ3fb8yJ4p6YJMTLnVB8riJU55xvbDUb7cL8WCg7TpBN0 /RcvOky4/CpmNje8FdQ2aYUtgrkIhVkHXHgthbHdBtL0D4ecLxz9qMcauLdOsaINDy+fieWOOTO G/Cqw5fBCXBmJ/4606SGL5uSYpIM7upbmAHRj7ieRoF/8B6h6/Q+eZpvK1xS5l14HOvlSp9P1b5 c1CiO/Dy7961auo8c5E2GplFr9h4euC80KSBT6uPN8AiSsvKBI/Z0f6l+WqsVclqnguHwRPvJln vkkXOjAkPTi4KPYPPUJiZyZZ5xZz12FJuTmtm+wyJzMv8+5XLE3FGRIGh6WofWNFvVcy2Mz1dcr 1KvL8vfen1TigtBsmQc0AjREtA2szOXp1UHy2PjYb6CjDw4CQ4wCliUFh4HrGjyfmpelACZ0Uzr gSoH9f98AY5phfCPXY5UdoZFEOhHbczHQOiKo= X-Received: by 2002:a05:6102:e0e:b0:631:b834:e05f with SMTP id ada2fe7eead31-71e88b2429amr696327137.11.1781256348448; Fri, 12 Jun 2026 02:25:48 -0700 (PDT) X-Received: by 2002:a05:6102:e0e:b0:631:b834:e05f with SMTP id ada2fe7eead31-71e88b2429amr696312137.11.1781256348047; Fri, 12 Jun 2026 02:25:48 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.25.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:25:45 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:35 +0300 Subject: [PATCH v4 03/16] media: iris: Introduce set_preset_register as a vpu_op Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-3-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4447; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=vk2n05YaqyNL1lA1l7CdzDHPMAEMMeRGvxRtE9L+Mhs=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CP06uA1MfAx9NVcJQtYISoHjxpkdnctXAUv EI3dWTY7OuJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQjwAKCRCLPIo+Aiko 1dByB/9h49Ludasl5mHPJr2+ZuLwbzoVRnrgxMRn2mQlejV2yKPfTWhCS4U680kJTVRLvPZIW0C irs3/gMJzbjUPZmidXm9Drhi1YDO6nQldgNbmwwA8h5dEQmbwtPmLj5NTtsSLhk5dHEyzqRbEve iWdVdnZ9GRUSvv9wwyggzAtxEi2F9Aceo07gwANcqZTbcO6++ZKeXbKsO2cRzsOTavArVJYtQgb tkT6qOi/P+Ba3dbG1cFLvRtpMF/jsL+cIFDtUJ9Ce5NuiL7fhRJxhFCHF1YSy0ZE7TkVQuivpa5 GRapbEFfQeXYlVJP0bMRbn0KmiSAzHSDDPdYWi5xWntfOyaA X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: fIDHSKIk6vw9NAUGfuXZh2ly-aZWHz24 X-Proofpoint-GUID: fIDHSKIk6vw9NAUGfuXZh2ly-aZWHz24 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfXzbJxC7HiLLQp qhymZeupumbgmhdR4/Mdd4sCuk82i86rnVSjUg3tlKTOcyeGqciclx39Tg2Kj4l0KIPkxAA9agA 3x4twD81vIyB++6OI4mdxyjBEq/BeBMNqTNBzTKB0vnn2+KC8kfWWRprQ6T8lsjztv4h0hQzjXa BCuleWfssJPxHHUozIBZBiUMf8fmdi9dmSf7Y3QgqaxGCskMGeli/3b6CUNRsppCx4jRbf6drXb bCl0jdHX7PCscAsD+LgcjWf2H6bJvv3AAb2uIh/F67x0oI/rDdxV/Y8UX25Nlz3Qcd3iuWjBta1 RcVjWcADOBIRjb62lYUwaCogjCKRxwxwgDQEI1JEq7qZk7w+hCQaaX6Pa6HQtSPrXCnmda/E6nB amWhqfL2slhSpbv1iZOKazMARYHJ8+nqCouHWXOxq7dEucXydFGpXNSELzdo6C1YCT9ErolLPBT klFJ4yRoC0Ae9uZLOxA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX4paK4fK8qkAy 27xFQT87gEtFcpPB305TePJKuGDSXq648RfVasegFMl4xPckAPTcrOkwsIQIWFetexBgR8/S5/Q PFU1MAnBn9ZpTjipeCqZNZQOFQOQkrg= X-Authority-Analysis: v=2.4 cv=O6UJeh9W c=1 sm=1 tr=0 ts=6a2bd09d cx=c_pps a=ULNsgckmlI/WJG3HAyAuOQ==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=4Uh0hlRDs2lXuULb_e4A:9 a=QEXdDO2ut3YA:10 a=1WsBpfsz9X-RYQiigVTh:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 phishscore=0 priorityscore=1501 spamscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 From: Dikshita Agarwal The set_preset_registers sequence is currently shared across all supported devices. Starting with Qualcomm QCM2290 (AR50LT), the register programming would differ. Move set_preset_register into a vpu_op to allow per-device customization. This change prepares the driver for upcoming hardware variants. No functional change so far for existing devices. Reviewed-by: Dmitry Baryshkov Signed-off-by: Dikshita Agarwal Reviewed-by: Vishnu Reddy Reviewed-by: Vikash Garodia Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_vpu2.c | 1 + drivers/media/platform/qcom/iris/iris_vpu3x.c | 3 +++ drivers/media/platform/qcom/iris/iris_vpu4x.c | 1 + drivers/media/platform/qcom/iris/iris_vpu_common.c | 2 +- drivers/media/platform/qcom/iris/iris_vpu_common.h | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/iris_vpu2.c b/drivers/media/p= latform/qcom/iris/iris_vpu2.c index b8714dcbad10..2dc121a3f5e8 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_vpu2.c @@ -45,4 +45,5 @@ const struct vpu_ops iris_vpu2_ops =3D { .power_on_controller =3D iris_vpu_power_on_controller, .calc_freq =3D iris_vpu2_calc_freq, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu3x.c b/drivers/media/= platform/qcom/iris/iris_vpu3x.c index 3dad47be78b5..dc02ced1b931 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu3x.c @@ -261,6 +261,7 @@ const struct vpu_ops iris_vpu3_ops =3D { .power_on_controller =3D iris_vpu_power_on_controller, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; =20 const struct vpu_ops iris_vpu33_ops =3D { @@ -270,6 +271,7 @@ const struct vpu_ops iris_vpu33_ops =3D { .power_on_controller =3D iris_vpu_power_on_controller, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; =20 const struct vpu_ops iris_vpu35_ops =3D { @@ -280,4 +282,5 @@ const struct vpu_ops iris_vpu35_ops =3D { .program_bootup_registers =3D iris_vpu35_vpu4x_program_bootup_registers, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu4x.c b/drivers/media/= platform/qcom/iris/iris_vpu4x.c index 02e100a4045f..f608a297d4a3 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu4x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu4x.c @@ -368,4 +368,5 @@ const struct vpu_ops iris_vpu4x_ops =3D { .program_bootup_registers =3D iris_vpu35_vpu4x_program_bootup_registers, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu4x_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index ab41da1f47c8..a49113b0da23 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -483,7 +483,7 @@ int iris_vpu_power_on(struct iris_core *core) =20 iris_opp_set_rate(core->dev, freq); =20 - iris_vpu_set_preset_registers(core); + core->iris_platform_data->vpu_ops->set_preset_registers(core); =20 iris_vpu_interrupt_init(core); core->intr_status =3D 0; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index 09799a375c14..21ed4c9bd5e3 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -22,6 +22,7 @@ struct vpu_ops { void (*program_bootup_registers)(struct iris_core *core); u64 (*calc_freq)(struct iris_inst *inst, size_t data_size); int (*set_hwmode)(struct iris_core *core); + void (*set_preset_registers)(struct iris_core *core); }; =20 int iris_vpu_boot_firmware(struct iris_core *core); --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 3A0613655D8 for ; Fri, 12 Jun 2026 09:25:53 +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=1781256358; cv=none; b=Oi/Eg5I+n7d8IR8m1XCbTXEmqSNZkS2PsSB6Kbe+iQGuVN9/e3eXBNEwSA5C6KUqAr/YzUL5zykhkEe/L9mk27FILcgldd0iRlQVPb1S/eLQ/o2WmGdAn6NMSSEGE5lruDnrAfFbT5Yjylz7e3npxk8xh5+ytKMyfSTfog+OmYA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256358; c=relaxed/simple; bh=yyIDQGnpqw47Z3k4tzIXofdpxVdasMXKqZZ+/KV+U0k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=M1yfvWcn3jQITivlSEnTANr2YLA9xOirk+1cy4bswu8ut5PeBFgC36mLXvidL0k/spbHfHVuHvlTqlOyyefbvoT0+4alD8ugH/BZXMgrTa2diYiLFwLhnnu0uH1G9QgQCxMgqqfu9Vhm/UKyf6hMhhhsaJp+CL7DDpWtjXICIic= 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=YEkGD1fP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ImVs3Ksy; 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="YEkGD1fP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ImVs3Ksy" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C39o012411676 for ; Fri, 12 Jun 2026 09:25:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= cvnF1OQ4GXe8rJfhWJK1UOc4dDsy8Bqru0sVMGkFW0c=; b=YEkGD1fPB/nIHnd/ E4Xnb87WuOllAbN6rcVzeLUx1LfKtH1LQKjo4SxRK1VU8WSBmsPq8JG2Tr1+t/u4 ozX6HcMiLxF7vMFFkbskLdSbyw24JKaF6SueeDu+x4xKVE/wyxJMCEAxZl4USwdR 6iIbIehoj+8PUih7GeoMZTMoXvrC+hLN4ozxFT7cFltduMxUurGO3JUC3QE1wHja 5r8V8oG1jeUACMSpP9WHKH32Fx0d8hZCvUwZJvl/GyMP6NqGi2ebp98rdbSy8xKE q9DNRnooDRGFm7nwig5FgTRhUoPxolG78CAJGJKkgSsbyd2wWSsMQuV2Q0Vy2zUM C1nxyQ== Received: from mail-vk1-f197.google.com (mail-vk1-f197.google.com [209.85.221.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er165awcv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:25:52 +0000 (GMT) Received: by mail-vk1-f197.google.com with SMTP id 71dfb90a1353d-59ece6adf0cso481946e0c.3 for ; Fri, 12 Jun 2026 02:25:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256351; x=1781861151; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=cvnF1OQ4GXe8rJfhWJK1UOc4dDsy8Bqru0sVMGkFW0c=; b=ImVs3KsyCRCOe8iL4zauG0XYc83kLk/Z0t6yGeUXjaSbM0DfJSGnhzeNvUYNwwcQdr Q1ibNPJa2B6tbT5G9pwRlMhBLIEFp6CpFIyiEHUmD8930maUHBEqh6NduE0dNjTBvxEo w76JBWAQJ/iWLzYVeWnDAmrTTXkAdDZSFQF6YFItEIoMiaz0lXdscSKz6lUCssWGyxak 36AzIeRBBHjFp32I4PvTulBrYuayzhexCOa/yuC3xta+npto0RnVjuukaMgk9POx6fH4 6ym8GuTsGhRySAlmnneo7PTqle9egZO6vS3yVbODKn0i+2H+bkySL/GZkGg+fyahskiz g9hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256351; x=1781861151; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=cvnF1OQ4GXe8rJfhWJK1UOc4dDsy8Bqru0sVMGkFW0c=; b=V52YMo/WAUDcjm/ESZjXzqoGxZBiQSdRbDBrmLc5S2sqQ2iqM+YSYZZ0UgXoCxUTDV 4NjSImqyps27GOQKC+zzg3+EuMGPZJsGLiachsKoM25SoOv73cF0wx7b01W4ZG59GS/6 yqr3dGFf03NqMwBkEJ2h0Lky4PieG6MSqDn/CEkHTEueeFxRZLodlY5UJnSXWntnnlQm cyBO7CLb0GpQEyTbO6LWYN6OKtk57+IUIG0gAvTDvuPgg4h+HYPYpnd9bpEsnSqttI+n gAfcrDgyFyt70iKtrDoPa8OZt6LT8MTJCnAvSphZ0te2F+G6YJwX6XjxplO6GYt5GDxI O8gQ== X-Forwarded-Encrypted: i=1; AFNElJ+satEXyHgXy6aZ/MNvKF5wsAO3eaNfG1OXhEf9TFyKXkNlLvwpgmrZofnceCl7Ajkaw13SEG00m9QJ94Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yymng2NRq2Mdw7kRmBOHul3JQ4B1ALTyTu2aDZxbqAlwxt/Hz2/ hnwweXfC+c72KYDcnFlpYK8nALfx1Cp4OtqhzALI0d7Tgor7VyaevHOvnuOgV8ApMKTZICep3EJ lpPZ24Ttrl1F7VbHZRux9Y5cOxT+S+b17l6NxbCDrvIz4HUCqWfeCOvld/MbCDcK6H+o= X-Gm-Gg: Acq92OH9q6Iqr+gbK0BC3MefE+QEF9oEYKwhS+0x3WIcj6Osp6HLLI25ABFT7ec+5he qT5mwWPfGA1x9w4clU5U32l6izruQGHIJ+ZbVmH771Bs+ZAnThCycZozkPdZA/xTBAP0O9dCQNF 851whjAE9pt9JFaISQ1dOCRidv37ZJTy9+ZOUGPfKvoeheeIvX4vUkqMQbWJlEJ6D7axu3EjOvu rOG6VnSCVy0LYmxV5ASw8ky2DWxm5JjlAgjUkcio7I0tdgYdsrPrMyCgbXFcOmie9DRM3qBuf49 sK6yo56dtcfh6328qQEYd62JdLVRP5d1KX2rmtAvoQApJ3mBH36F+trVfOa9R8VtlH5PGgPToME rovTivX6AmSD2qzBRrXJVohmmF+6ONJmY0rp5lfRfmGyR+6FgGqM8OpDn0Qq8UHiq8QBENy8Q0k OIjXckbnRLgx/XV7KJG0oJMsEizTZMK+6ATAA= X-Received: by 2002:a05:6102:5e88:b0:6e7:5c89:3fb3 with SMTP id ada2fe7eead31-71e88ace141mr706717137.3.1781256351213; Fri, 12 Jun 2026 02:25:51 -0700 (PDT) X-Received: by 2002:a05:6102:5e88:b0:6e7:5c89:3fb3 with SMTP id ada2fe7eead31-71e88ace141mr706704137.3.1781256350719; Fri, 12 Jun 2026 02:25:50 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.25.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:25:48 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:36 +0300 Subject: [PATCH v4 04/16] media: iris: Introduce interrupt_init as a vpu_op Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-4-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4871; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=lfYu0fyLLGbMbRpjIhlKmEvDl05nyaFsLxPi3elcBRk=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CPkGQ+TVPUvjX8IvaBOLqAzEX6uTsoYkcGn wtBW847r3uJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQjwAKCRCLPIo+Aiko 1fN9B/sF5l9MAAlhCJv57XP+BprX7t5xFEDjNo2tM1mka2e2u1ObAp6w6ifEwCWxPTbcAhwecj+ KBgMCxW5iKUqw2+6P0kBd9ZhHD7m9K42LMmFWKb+K/vtRUfeLQz0qShRT8FsgHbJwjDlMPFIulQ w/6GYsuZLo7Dgu9cWwm8VQ/ptnv/HpJb/yPcMyIjCm8pt80P6I9dz8ZXIjQqV+fmYzbB2qdMYiy dngrtExuw5AF5abtHduthzPy8mdaXbWMJmSDK+fbxxQ8/t8ob3la++os6x4OF3ZSjLoBxp6/v0G znjsEK3ejHrqwlTP7XKA1QWaOzIa+jnAOqEmrrDpqm5E08Ya X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX0KgjDVWh2f/J AhYYwGYUjZXpVJj7lJdOu0UySeqjoLO4S1gaze0k9+Eie/5tNePLGdf5+8C+/LB5Hs8hHk3t1Yt fx9bJfCBqp6zuexXhNG64r1dtHseBVUYCjYcUneOIHGmm8yDZdteAyuAOLowTTHI5xtwcEPFHSA D5q6OsqcWK3ss8x87kkikJU9H796D2C1HMlZ5WKx9awMBb62UAofwuR/EHvHx3s0CRVPKVyaenI XHyK6Di2ynkp6xfISO03GjXQ8g/ZDL6grWOV3cr3/uAVQ9SE7IpSmYq7PvFmFLsXUiuZE/trzub 1VtoRvBrW7TNmql9xidXCtYkZ1BiBArQkaZk0iVC9E5RTtDyqwt+Ak/ToPlXGdVa+zeDBIa5y58 inqeVHxbzl7Rh8NzDPsjPJDF1RefZMiODrjDrpHJc2ME9CTCkjTbzoHjo85hR32i+vvmsMsm/Dk S0twbpbrfPyTLcfnipA== X-Authority-Analysis: v=2.4 cv=LNpWhpW9 c=1 sm=1 tr=0 ts=6a2bd0a0 cx=c_pps a=JIY1xp/sjQ9K5JH4t62bdg==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=2EYiHOum3YQmkHKk0wkA:9 a=QEXdDO2ut3YA:10 a=tNoRWFLymzeba-QzToBc:22 X-Proofpoint-ORIG-GUID: v8CXfACz0_4X9_h7TnFsfC6p5E0L-Psz X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX00EEuqKKV1Ti aEXgtBTNVIUsT+wL9LQFSJSJTmBXKAQalxKjD96RtPyWmlK94GTr5Psi8OJXDUHyWxmBqgG0fCv E+434xe7+UzZ+NrhrTuAvle/2hRtpQk= X-Proofpoint-GUID: v8CXfACz0_4X9_h7TnFsfC6p5E0L-Psz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 clxscore=1015 spamscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 From: Dikshita Agarwal The interrupt_init sequence is currently shared across all supported devices. Starting with Qualcomm QCM2290 (AR50LT), the register programming would differ. Move interrupt_init into a vpu_op to allow per-device customization. This change prepares the driver for upcoming hardware variants. No functional change so far for existing devices. Reviewed-by: Dmitry Baryshkov Signed-off-by: Dikshita Agarwal Reviewed-by: Vikash Garodia Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_vpu2.c | 1 + drivers/media/platform/qcom/iris/iris_vpu3x.c | 3 +++ drivers/media/platform/qcom/iris/iris_vpu4x.c | 1 + drivers/media/platform/qcom/iris/iris_vpu_common.c | 4 ++-- drivers/media/platform/qcom/iris/iris_vpu_common.h | 2 ++ 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_vpu2.c b/drivers/media/p= latform/qcom/iris/iris_vpu2.c index 2dc121a3f5e8..dd2eeae0d9eb 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_vpu2.c @@ -46,4 +46,5 @@ const struct vpu_ops iris_vpu2_ops =3D { .calc_freq =3D iris_vpu2_calc_freq, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu3x.c b/drivers/media/= platform/qcom/iris/iris_vpu3x.c index dc02ced1b931..c3b760730c98 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu3x.c @@ -262,6 +262,7 @@ const struct vpu_ops iris_vpu3_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; =20 const struct vpu_ops iris_vpu33_ops =3D { @@ -272,6 +273,7 @@ const struct vpu_ops iris_vpu33_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; =20 const struct vpu_ops iris_vpu35_ops =3D { @@ -283,4 +285,5 @@ const struct vpu_ops iris_vpu35_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu4x.c b/drivers/media/= platform/qcom/iris/iris_vpu4x.c index f608a297d4a3..90ccdc0d2a07 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu4x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu4x.c @@ -369,4 +369,5 @@ const struct vpu_ops iris_vpu4x_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu4x_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index a49113b0da23..375bcd923476 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -31,7 +31,7 @@ #define UC_REGION_ADDR (CPU_CS_BASE_OFFS + 0x64) #define UC_REGION_SIZE (CPU_CS_BASE_OFFS + 0x68) =20 -static void iris_vpu_interrupt_init(struct iris_core *core) +void iris_vpu_interrupt_init(struct iris_core *core) { u32 mask_val; =20 @@ -485,7 +485,7 @@ int iris_vpu_power_on(struct iris_core *core) =20 core->iris_platform_data->vpu_ops->set_preset_registers(core); =20 - iris_vpu_interrupt_init(core); + core->iris_platform_data->vpu_ops->interrupt_init(core); core->intr_status =3D 0; enable_irq(core->irq); =20 diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index 21ed4c9bd5e3..9151545065cd 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -23,6 +23,7 @@ struct vpu_ops { u64 (*calc_freq)(struct iris_inst *inst, size_t data_size); int (*set_hwmode)(struct iris_core *core); void (*set_preset_registers)(struct iris_core *core); + void (*interrupt_init)(struct iris_core *core); }; =20 int iris_vpu_boot_firmware(struct iris_core *core); @@ -44,5 +45,6 @@ void iris_vpu35_vpu4x_program_bootup_registers(struct iri= s_core *core); u64 iris_vpu3x_vpu4x_calculate_frequency(struct iris_inst *inst, size_t da= ta_size); =20 void iris_vpu_set_preset_registers(struct iris_core *core); +void iris_vpu_interrupt_init(struct iris_core *core); =20 #endif --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 21B23363C6B for ; Fri, 12 Jun 2026 09:25:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256358; cv=none; b=l2HDsFF7qBM6ctD4rbuVliKjZb73LSQmp67rFYdWMeK6oYVJRLGipH6v6UbxFIRfhHmkye/kTGzxdjR6gwBQc8uyej6vzCY/lhbpcJtre+9mMcnN30z9Q1hYOddCQJYkHUIA/ClYcOV4JrboixuWpYfHBMbfQ6jFznoGhmPwuKU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256358; c=relaxed/simple; bh=H5gjTCkahlz2x03Clh/PysKqV1bvgbU9MHDzqSGjKm0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GsTDu1w79XWPmyjPR63CT7mcAFQVoWQq+cOSK4hf2tCCiscCtPVvhENclzmPub2ZFnJJTrTGw3oW8ArmBD9x6WGCo+TdJd/EzkTG7ai9ulNP6PUtvia3MfnLTbQzdq+aCS5Lo2WWgjuccyCbQREoXvRq9XFaFDgjYJIsfmzEROA= 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=Fh+l8D3k; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QpjGXoQd; 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="Fh+l8D3k"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QpjGXoQd" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C3C31L2452063 for ; Fri, 12 Jun 2026 09:25:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7GXhlm42Lq8jhZpNQbWDnVnjUliqMt9PAaqnfp5/6jw=; b=Fh+l8D3kdBn2vW0t lYOhU1WjzSJDFwHivi7NcZklnmc3opzHplySJ1CzT1SJNcA/aIX2gBLQV+5Y5v6i drJGGLxlwU7yMWIR/MSqdSMGj2JYvnIWSFwYXqqVUo1duM9/3tZoFVxzhdiipCb7 HxiRZGkKNO1dfXvDldlLeE3TmJd8FMjCZuqIuiBGRTEEh0Z9JJ/ckocRbEiD5LxK mXNz1X+clF250mhEOc236qVe1CzWMUHDqJnb9Lrqal53XsbJctcp3Tkcr4ofmPMj Y1YPizKkw9yH2MbMBEyqlp4ApPC7R9T+MYYOEIl+iHzEz5WG5JqvH3jBzVXnEO2v Xr7Qqg== Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er1xcjn9j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:25:55 +0000 (GMT) Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-7002d6c3426so853243137.1 for ; Fri, 12 Jun 2026 02:25:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256355; x=1781861155; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=7GXhlm42Lq8jhZpNQbWDnVnjUliqMt9PAaqnfp5/6jw=; b=QpjGXoQdvT4kkrdMgMIH+viJy1eomlGPFKcnW/bI16qlzZyxQ8ilfFyRGP+DczJdOE iFqiIFMP8TZyIay/EelSPETXnmxYXQjCYi3pKYLuXJynHlQxQ9g6xiMAo4v1juHZ4RwJ m+NLZgzIVuocIElUDLaitGB/OSORzm0Xa2YgyIdeF/KOQ/MYdnXG5XyNPpCytwVhx25C ugKbUZUP2mBIskCgINV7SB3TTnurCfseFpEZrKvQsx3dAvw+nmQxflqJjBe9h2bBECd1 GFFfeQqW0naeVZshcU6b96y5X73otu6oJtdsDlcBzmUlRQ2s5nKbCE1+6q1XnoMLO7uN jBLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256355; x=1781861155; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=7GXhlm42Lq8jhZpNQbWDnVnjUliqMt9PAaqnfp5/6jw=; b=s5dL4r5uNV0zFiqNxiq39incVsPl/8LiLSPBZivM4QixiPzOHksw6bk46HbD8Yq51P 4VVm+JYbH/cnxo0dP7yyKkg/T8TYfqrHja1aslvjyJn0J0ZRyrEAnr+a6lLUcXY6GONR leFt5OksCHejeW7MC8ln27TTxdkRmar4ITQAWCsYYsyWPkLn3Q+BSiJIuU44dI+fyr7a riaG3J+CVWaSX/8J1QcRGJyst3aspGP3bo8EYeBSDSTMLEla1xdqVaIlhoQqm/fKFMIG kykgIfX310BUUUSAIZt27mXi7SopieisdhfPP6ErKTEV4GszhHwStu0/a2unIJ6B4oZW nZYg== X-Forwarded-Encrypted: i=1; AFNElJ87oqym8pYtP26Mc2CMPVoSKn037dXfa/nJ04ZIDptZrcd7sfgu16YYLMd7WKJ75oTyXxGLJoLPMWHFY+g=@vger.kernel.org X-Gm-Message-State: AOJu0YxceAZ/SYMmMsIYJUaNIBNI7HGLI9ei9i25cLTECu1YHchR2s1T Dj8p4FsFAZOTAD4pFgE3XTumtqVkZFhdk1KD7fOhOY4c3EdxmND9LcVjp3PyqjKSczp86RfukBk ZFFe3jmrBegnVIjGW0DEfx1WGHLjvp/OrJCyLinwNGp8PaWKrRepz9/W4vBdzjMhMo5E= X-Gm-Gg: Acq92OGr5a0B353t34tzeBmXUQmcgn2+ajxQaxIDmhZBWI6Zu6DIJNH0BJli6lPDWYD 7Vhc1JYxY0lcVCuNfVsSPQ7CFPqWWDMRBIblaF/mq46yckFAhNhRl05DC5yKxtnfZPH4UBU8DzD VCfWH8GC71uWFFqorS4lNpToIvTDhFgQt+y0j6/48mZ7c5cnuEcVYJwzPCzOwxpj+d4t2VcuN5R EF6bO/Kd1olwwikeafdp54Vgie4X1k/JabYQ3ATCHnGox4j79a9i3VF8Xhv3rHZAA41ESk0veHm Ew8R0q+0cqpsDS9hFLplQUepzwEdMNZrkSE68Snje7KVxjI8TAYCBrHdfqYrlL2w+iF7SrQ1f8S Jwu8t6/NTl9LlOdUrf2FKDvZIjkhiX9JhbtnzUDEj9ICNFTAstSm9/AkRg4p/Gew3onPOnlWL8X TnGm5fYbz56wbY1MtCNLovtY83ngIyAiPxG5o= X-Received: by 2002:a05:6102:f0d:b0:631:ec2d:12c1 with SMTP id ada2fe7eead31-71e88aec031mr735588137.1.1781256355241; Fri, 12 Jun 2026 02:25:55 -0700 (PDT) X-Received: by 2002:a05:6102:f0d:b0:631:ec2d:12c1 with SMTP id ada2fe7eead31-71e88aec031mr735570137.1.1781256354827; Fri, 12 Jun 2026 02:25:54 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.25.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:25:52 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:37 +0300 Subject: [PATCH v4 05/16] media: iris: add vpu op hook to disable ARP buffer Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-5-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3064; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=1XoxNMQkIKQIwreQUtjXXBpaKx8sVaEKHYTsCNEF0Ak=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CP4UdqCYXR73UMpgJmkY4fMmlKngfvik5r6 IHV5xG2m/uJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQjwAKCRCLPIo+Aiko 1WZDB/9bpXlx6XOeSkRV/QP+vbTkRVTT30WynVGDLXFaGcGG9hFVmZlTo9hHLJI052CXslY387N Vy9V9WiD9CwEeF9Uob86uu5GF+/xVcQza0ZD8rar7QsPDWTIV7f2BVlnst1j5el5gj3UisV1qCq 6A+nWRKOYtaHLuQRU9U9pMmHSBq01garlOVf1E5jocytS3zE1NJVlNjCf+dXUS8g71xC8NZigAt I4SGub1iUwSxH9JOBn47m7EJckp7/c1SNie3oPOZXI2ufVNcZ6jofkxDjR/50NGFs8pEhsnnKPL LDtcZklgKvqrBel0RczvmFGKJL38p3Q8Rcbo7v/DFlBVH6bt X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX+8NAsenE52Fa 0f88qNrO03Myk6YA2Lj2UeiHkrHkrLlrdqOIYbl0F1W+ssRzYygJ21Z6Z4v3kJ3PTtLA4jSvn88 RM61CG9xhZ4rVPIqbaXT0aBX8Okpqh0HO4eW0JHCtJR5Kg5t60Z12bct+kJopQ55p4LfrRhxIbn bV+fBoSmOZx1/zYmKYGTxrUOOGgXVZo4Zb0z7lBdOqZU7hXBpxjSvHP9cNtF7rOZwI6X/bac4Ue cKeVQ9oFls25vlbdgRBN3UL8dcsVE06jiCxgAE6pflvGPBzf3Zk7fomiVTnAgFbwawd/3ibrT+N REU5sLMmYHNsuV9w0ihPlN+bB1pZjWHy8191X3ZR84g7VUknn8cL/1zofTqvyCzk1mP5kZu8h0C MNsy/g9WxZ4PKT9J5cQfBccvoB0hVkXtZlniinIN1Hr2TxBn8Lf7P4bCP7UosWVciEEBhAFZYzz d55M8JAqZ0ddw352FUg== X-Proofpoint-GUID: Un1J8G07403FaqjSzGvkhrR09kchcVAN X-Proofpoint-ORIG-GUID: Un1J8G07403FaqjSzGvkhrR09kchcVAN X-Authority-Analysis: v=2.4 cv=NZPWEWD4 c=1 sm=1 tr=0 ts=6a2bd0a3 cx=c_pps a=DUEm7b3gzWu7BqY5nP7+9g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=vdBeo_PM3xCM7oyOFJQA:9 a=QEXdDO2ut3YA:10 a=-aSRE8QhW-JAV6biHavz:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX9E+UO/TKJHUv 42sOPuXl1mWDzxBDGb+iga0cFIdl66OtZAArqenWEjGN+Wf+l1XjSrXAe+eHAD4qCIfyljaeg3H VrUjNKBbjmNLt3sT6MCi4dXC9MYg/98= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 bulkscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 From: Dikshita Agarwal On AR50LT platforms AbsolutelyPerfectRouting (ARP) needs to be disabled so firmware can configure the ARP internal buffer as non-secure for encoder usage. In preparation of adding support for AR50LT platforms, add an optional disable_arp callback to the VPU ops and invoke it from core init and resume paths. No functional change for existing platforms. Reviewed-by: Dmitry Baryshkov Signed-off-by: Dikshita Agarwal Reviewed-by: Vishnu Reddy Reviewed-by: Vikash Garodia Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_core.c | 4 ++++ drivers/media/platform/qcom/iris/iris_hfi_common.c | 4 ++++ drivers/media/platform/qcom/iris/iris_vpu_common.h | 1 + 3 files changed, 9 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_core.c b/drivers/media/p= latform/qcom/iris/iris_core.c index 52bf56e517f9..bd22076f3557 100644 --- a/drivers/media/platform/qcom/iris/iris_core.c +++ b/drivers/media/platform/qcom/iris/iris_core.c @@ -45,6 +45,7 @@ static int iris_wait_for_system_response(struct iris_core= *core) =20 int iris_core_init(struct iris_core *core) { + const struct vpu_ops *vpu_ops =3D core->iris_platform_data->vpu_ops; int ret; =20 mutex_lock(&core->lock); @@ -78,6 +79,9 @@ int iris_core_init(struct iris_core *core) if (ret) goto error_unload_fw; =20 + if (vpu_ops->disable_arp) + vpu_ops->disable_arp(core); + core->iris_firmware_data->init_hfi_ops(core); =20 ret =3D iris_hfi_core_init(core); diff --git a/drivers/media/platform/qcom/iris/iris_hfi_common.c b/drivers/m= edia/platform/qcom/iris/iris_hfi_common.c index 8769ec61f117..8f04f3793d9a 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_common.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_common.c @@ -144,6 +144,7 @@ int iris_hfi_pm_suspend(struct iris_core *core) =20 int iris_hfi_pm_resume(struct iris_core *core) { + const struct vpu_ops *vpu_ops =3D core->iris_platform_data->vpu_ops; const struct iris_hfi_sys_ops *ops =3D core->hfi_sys_ops; int ret; =20 @@ -163,6 +164,9 @@ int iris_hfi_pm_resume(struct iris_core *core) if (ret) goto err_suspend_hw; =20 + if (vpu_ops->disable_arp) + vpu_ops->disable_arp(core); + ret =3D ops->sys_interframe_powercollapse(core); if (ret) goto err_suspend_hw; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index 9151545065cd..71d96921ed37 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -24,6 +24,7 @@ struct vpu_ops { int (*set_hwmode)(struct iris_core *core); void (*set_preset_registers)(struct iris_core *core); void (*interrupt_init)(struct iris_core *core); + void (*disable_arp)(struct iris_core *core); }; =20 int iris_vpu_boot_firmware(struct iris_core *core); --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 B8FB239E6D4 for ; Fri, 12 Jun 2026 09:25:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256364; cv=none; b=euhW8T8cVl0PXpuVvmBGtR93ARDtU5Z6EGqhmkEDScatNnKrqpLcIDSqOgQ2Ufg8mmTy3AjMaT+MAICcmI0rnIjhaUKwU8CKYjlXhKoR7/KxckloGmt8VsmfhyM1kKgYbWyZrdoCj4Yn7cBWQPKdp3yrUuxK2Zkcwohl/6OzlMQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256364; c=relaxed/simple; bh=8QoTp3WESlHjz0HtjADLefp60LQ9X+szvJ8mIzieMHw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZQbbHIt38PekS1A/nnV4VLhdf6pEyFiF2y4LI8VmNUpWAs9R6wqt3+QFGhRKMrDN7P7vo5HpKEg5mbeUafIEFEKWCcIQj2ihrdeBY+sXkZKb0BYJBfhH0aI/lHsbg9wGDnVJmJVGVa5tJtHnFgUy32w1ThCB3ZH+NpJFlVJoXp4= 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=TtFz/sja; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FIoMUkGh; 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="TtFz/sja"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FIoMUkGh" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C39enI2516226 for ; Fri, 12 Jun 2026 09:25:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= kHsj9KW0wACdSEHR+duy/C4FIe+uMWCS7zjU8xpxO8E=; b=TtFz/sjaRLim639B wxn1Xao0kJok9evbr2IrT6hWwQ8NDtY/korSWSGUZqFKpDHLVXD/55zcxWawqQ2B PhJqJ9u9vJM63pFq2mkfEkm+AuCaxDqvd8lzhmQhdg8aVWygIWKLbluuKrMo4t1t dm2frt0yWCgwtW+NCabHqEIvEhTlz6SPRmtg48FvrINS9Sf98Ol+WeeYS6+e5cRe PAhu4BG+P778/5knDIRdddIDboCV2JAmPXD7yEAVPL9Svy3VoGE+lE+KSKlNoDEK 7LStQUzzprAFWe0S3Q6lMRapvEA9qOwMUa4ANEu8qp+ggugXl3pVI2mxVN+hBj50 I7TriQ== Received: from mail-ua1-f69.google.com (mail-ua1-f69.google.com [209.85.222.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er2r72cfx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:25:57 +0000 (GMT) Received: by mail-ua1-f69.google.com with SMTP id a1e0cc1a2514c-963a02dca36so754162241.1 for ; Fri, 12 Jun 2026 02:25:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256357; x=1781861157; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=kHsj9KW0wACdSEHR+duy/C4FIe+uMWCS7zjU8xpxO8E=; b=FIoMUkGhXbV2f2kFuIP1jWiZWnETQvC99W5jjBp/fT/HBbilrG9KiUp7GIxi8WSbWY nyB/BAQO2ujnFWXXOAfevqel8dqiiVbylDtFjTBdt5x8S+0e09nhloEJuqJvSTb1NZwc 7vzaii4zwlgKK7F6h4RKGXSU1SBN2/q8CoGWbMR/ThKb+/KhhQfRiJcbeCUk3Mcl1xR6 OGC9y1sRrSoJHdwZFdl5YXFypRRka1hFulSFNi35QMbRvio8lcioDJzM/BxBGt5+pVQK 3DAFfJRF4nXxAQjWx0E/kpGgXqACONOHx8N5OoURFRJGMjJAagt3HUTfXJ0Rgho2dri0 ZHxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256357; x=1781861157; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=kHsj9KW0wACdSEHR+duy/C4FIe+uMWCS7zjU8xpxO8E=; b=bEKaQSL/HCgCEf7jtqUkG/AhMiy7rAsPXK3skg9997Hd7H94+SitiHK09CygQKnYNB 8USA1SaT6Goduu1Yv4DnMTpjfDYa7SgKW/yGaQF0Q7klUxb6JRC/KWwVrRTBnk1qd8T2 qJt5CT4BTzOqunU4/F9/Enyjz1iS8T9mG7AG5GUOnyzoGjWPmqGpMq37+fHX89FScP6g SjPMwvNnXPyvSbyaKfDe62ieD3oGIGKGIvKCHxkmPXGNiswqaLib8sLkzGGuISvt7exF EbZgOWHzkmeAzvKXYlb3qJ6zherMVMTcPGYLeOLk/IeaqB95n4uzSw/7EmHwW1LmyB8A oDDA== X-Forwarded-Encrypted: i=1; AFNElJ8ZxSxrTjwsPdoK1G1Red/cWDBVbGfaGWG/Xu8L95loDSE+4ODjDz3qqfslJlgZDyDc18JDvWtMc9XG+DQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyYvWHfdBWWuUBNzR4bfMHlr+JkZxbSYehoVa/U+RL5aLgM+aU8 GQ/4pZZ2nOZEy8QpMtUYF2/5c/sBkXTtKGC7I5jmSdIrrOmIxLov7iGrOzY7X1lfAAnhvBzkras COcdLMa99VSRqvgFkrcz0IUAHJeh+sMPnoZIDGk4PluK1C6D8Zov2ljq/1EJyZCqpasA= X-Gm-Gg: Acq92OHpIEz+k9hr8EmxTQadWSjV4GQ13U3ZvHmE3pl7nDE7uej8tTLDcW3TAZCjerV yIK9SgBE5envvBiOWVrLU+YVaIN0RGyA7uDLdF6b4UXxmj2HUrF43HgXYt+5oFEOlamOTT/t1dF gmmWkNB+dtLM1J87kUYj26LEFztpQGLOrnSckiOXxWYmZPpjwEFQi0aIHy66lCFLkh25LyXvsTv /dIdTiweKxqNjme9cgHNizCTGu7O/zEEyrviDLsbdmlnFNtSBtkmMlF1uqWpdOGhXUEjeLJEsEN Tti/ivnBT9vCHxsEF7kU2Jb8CgfdKMw33nGdR2yyT3vPZJNdNdYpPHARG5Hw6jP9BFu1eyxSHxc Mj/ATHAN7VBFFvvD1z31rDGfcKqM7uo4QSZiG5Ny4A3MlsX+ic9CnF+VdU1vC0iJNYA3hGqqWmO apqpkcCWTigJEu07nvgsKExL8DkP1ZuPU1UdI= X-Received: by 2002:a05:6102:3582:b0:62f:2d6f:cc11 with SMTP id ada2fe7eead31-71e88ad70f7mr1009446137.2.1781256356864; Fri, 12 Jun 2026 02:25:56 -0700 (PDT) X-Received: by 2002:a05:6102:3582:b0:62f:2d6f:cc11 with SMTP id ada2fe7eead31-71e88ad70f7mr1009423137.2.1781256356431; Fri, 12 Jun 2026 02:25:56 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.25.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:25:55 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:38 +0300 Subject: [PATCH v4 06/16] media: iris: Add platform data field for watchdog interrupt mask Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-6-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6463; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=HyLhNzDH8iJsyixGhN+Kz8MQMgeK/r9IohhV2Hc9QBQ=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CPdiJbGDuZkFtSOHtqO/38H8WydEO5oTzYT 7dft4b/f4GJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQjwAKCRCLPIo+Aiko 1Q+DB/9jUdGAMVnY8RXQo31nk/YZKbOISV9ExV9pQXneN9ZIv5OU2dfK3NL08RW2orVz2KcWO3F xuqUCOSq5uX+JSa+12UBz48Vau69g6GnOIdGXahnxN+r3/1Mjc5ZWXX8zhTOp39IWV8zQZNSWjX s0bUQ7pX79TMEIbsml/Q3o7cSB7wapPqUSn8rd7i0i23ygKoagZH8VjePnM+gMGML1QGKgkm+8w 13caPGXE0ustdF9kfJJk1GRo/Lwcu8r3p4jgYlJF6wC+sBmN6/9nRJJuCIqL20TxUnALi1ZtEhZ /3H1he4DOefV7DrkUo/P7WdGUxgz4pOOT08aBbE4owZJjjsm X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: bhZFeQn8PyvTpaScEupwQ_QWiZQ37EqR X-Authority-Analysis: v=2.4 cv=RJGD2Yi+ c=1 sm=1 tr=0 ts=6a2bd0a6 cx=c_pps a=UbhLPJ621ZpgOD2l3yZY1w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=kEHwHBA7O1j3tG1WbfwA:9 a=QEXdDO2ut3YA:10 a=TOPH6uDL9cOC6tEoww4z:22 X-Proofpoint-GUID: bhZFeQn8PyvTpaScEupwQ_QWiZQ37EqR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX9A21MFFfEDXk iRRSuw3MMc4d9l+k3llt5I5HazCbtoJeYxzzY0R88p7ydErA7UsYD9xZiQje+C9AWRxuo5qrmJY SOYy4VTQ2vGELs1fDzrVJn4JQRCKblUgRyx+F246sTmhQYD+FnS0jGE2qZzlItRkVnfC04wNtjH 64VXvz68zSFRbYHE0jUamZsO2b52GlYmi6QQeDd27hpUe7IZSrUt408QXu4Z/XzLVCZ2jP3pAA4 cNPEOV6SVfkchaztrhM9tFs8fpu1X9Ot2qf69lvOfw5TZGI5gb3lPnkdA+60hnwNtQKt0sJrjxF nymYKpU5ulOkBBwxtJhxFEbRAO20MHZDC8TUOECBRQNsIeNb6MaYijgYfE9f/nm/BrK9Pbg/N2R HIp4HTa9Fiv8TH3nISLDOW2ScdkZV2B6hHhHpEcNh8FM640bbpkb1bEzmWeHCGvKo4NyAr5MpUY 0PBycYYXD+eSPTunBFw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfXyaxxv7L5ITbq nAaDD/d8ypzjW5Uy1G8J3ltJelPlEh1f92RoaxUYN/bhzgDj8sgIexh6FFxuSq6xqWOcdK2lFxl Hkx8SbEgqhOd+67apWZFQLffOgtnlM0= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 bulkscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 From: Dikshita Agarwal For AR50LT core, the value of WRAPPER_INTR_STATUS_A2HWD_BMASK differs from the currently supported VPUs. In preparation for adding AR50LT support in subsequent patches, introduce a platform data field, wd_intr_mask, to capture the watchdog interrupt bitmask per platform. Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_platform_common.h | 1 + drivers/media/platform/qcom/iris/iris_platform_vpu2.c | 4 ++++ drivers/media/platform/qcom/iris/iris_platform_vpu3x.c | 6 ++++++ drivers/media/platform/qcom/iris/iris_vpu_common.c | 8 +++++--- drivers/media/platform/qcom/iris/iris_vpu_register_defines.h | 1 - 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 55a4fa356985..81fcb2854772 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -315,6 +315,7 @@ struct iris_platform_data { u32 tz_cp_config_data_size; u32 num_vpp_pipe; bool no_aon; + u32 wd_intr_mask; u32 max_session_count; /* max number of macroblocks per frame supported */ u32 max_core_mbpf; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c b/driver= s/media/platform/qcom/iris/iris_platform_vpu2.c index 961dce2e6aa9..eeef453c583f 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu2.c @@ -16,6 +16,8 @@ #include "iris_platform_sc7280.h" #include "iris_platform_sm8250.h" =20 +#define WRAPPER_INTR_STATUS_A2HWD_BMSK BIT(3) + static const struct iris_firmware_desc iris_vpu20_p1_gen1_desc =3D { .firmware_data =3D &iris_hfi_gen1_data, .get_vpu_buffer_size =3D iris_vpu_buf_size, @@ -94,6 +96,7 @@ const struct iris_platform_data sc7280_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu2), .num_vpp_pipe =3D 1, .no_aon =3D true, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D 4096 * 2176 / 256 * 2 + 1920 * 1088 / 256, /* max spec for SC7280 is 4096x2176@60fps */ @@ -124,6 +127,7 @@ const struct iris_platform_data sm8250_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu2, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu2), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c b/drive= rs/media/platform/qcom/iris/iris_platform_vpu3x.c index 74626b35d9cb..261db38a013b 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c @@ -18,6 +18,8 @@ #include "iris_platform_sm8750.h" #include "iris_platform_x1p42100.h" =20 +#define WRAPPER_INTR_STATUS_A2HWD_BMSK BIT(3) + static const struct iris_firmware_desc iris_vpu30_p4_s6_gen2_desc =3D { .firmware_data =3D &iris_hfi_gen2_data, .get_vpu_buffer_size =3D iris_vpu_buf_size, @@ -113,6 +115,7 @@ const struct iris_platform_data qcs8300_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 2, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D ((4096 * 2176) / 256) * 4, .max_core_mbps =3D (((3840 * 2176) / 256) * 120), @@ -142,6 +145,7 @@ const struct iris_platform_data sm8550_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -179,6 +183,7 @@ const struct iris_platform_data sm8650_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -208,6 +213,7 @@ const struct iris_platform_data sm8750_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index 375bcd923476..41498f94480e 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -109,11 +109,11 @@ void iris_vpu_raise_interrupt(struct iris_core *core) =20 void iris_vpu_clear_interrupt(struct iris_core *core) { + u32 wd_intr_mask =3D core->iris_platform_data->wd_intr_mask; u32 intr_status, mask; =20 intr_status =3D readl(core->reg_base + WRAPPER_INTR_STATUS); - mask =3D (WRAPPER_INTR_STATUS_A2H_BMSK | - WRAPPER_INTR_STATUS_A2HWD_BMSK | + mask =3D (WRAPPER_INTR_STATUS_A2H_BMSK | wd_intr_mask | CTRL_INIT_IDLE_MSG_BMSK); =20 if (intr_status & mask) @@ -124,7 +124,9 @@ void iris_vpu_clear_interrupt(struct iris_core *core) =20 int iris_vpu_watchdog(struct iris_core *core, u32 intr_status) { - if (intr_status & WRAPPER_INTR_STATUS_A2HWD_BMSK) { + u32 wd_intr_mask =3D core->iris_platform_data->wd_intr_mask; + + if (intr_status & wd_intr_mask) { dev_err(core->dev, "received watchdog interrupt\n"); return -ETIME; } diff --git a/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h b= /drivers/media/platform/qcom/iris/iris_vpu_register_defines.h index 72168b9ffa73..4fffa094c52f 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h @@ -41,7 +41,6 @@ #define MSK_CORE_POWER_ON BIT(1) =20 #define WRAPPER_INTR_STATUS (WRAPPER_BASE_OFFS + 0x0C) -#define WRAPPER_INTR_STATUS_A2HWD_BMSK BIT(3) #define WRAPPER_INTR_STATUS_A2H_BMSK BIT(2) =20 #define WRAPPER_INTR_MASK (WRAPPER_BASE_OFFS + 0x10) --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 682AE3A6F04 for ; Fri, 12 Jun 2026 09:26: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=1781256367; cv=none; b=jB/Pb0Hiqx4FDmX1DbtK4gGRB90UrGZUgxOfXf2SwYGFc8xVYR41Rwui6Q7JlZK9zftZq5FW0+iBbfGK16oSIJeVJQdNPs/eGDeUXI4vPp5M0VavvLbjsZlGIRigDAV8R5j9fcQwTKVWeVrlxhyPpIU2zER9UtfpPatENqrQ5RU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256367; c=relaxed/simple; bh=xNsqm+B3LOE10tLNQts5eunxNV5RsjVx0kaWEOCN+lE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G1MQOyrGzadLybD/h6YYWrSul8QWeFW7VEp1PhyAlNSQS94gQc+Bzf/4e7D0xCa16cbgkquNuLMP3BHNmB9VntvYoj3UIJCNLea1Kr1O13oB5UimVlMTYg+CiOfqHGhtzK39ewOGbHQ1AfRpNG8yOw9heo2+RuuSQM5s05R6Cos= 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=lUUqjXkw; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CcKElokS; 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="lUUqjXkw"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CcKElokS" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C3C6CC2534214 for ; Fri, 12 Jun 2026 09:26:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= L9Ew5+SW+kC22+WMmYtdad6wVyhCdPtwJDrWQBFGf2w=; b=lUUqjXkwQsvvukaF plRq6OE5C7UNH3QrMFAOxxVJcK/Ty/0R4tKEWduwxn6ksGUKqvp570UfMhiwiMF+ IXDJ/sqZYHOwcdio+TVb1e6gpAHG2fTgm1/DwNo3P3/G8V2D3/MedAVdUq2xpZtR lIuxSZETv9lXSImVrkMzstmlFobLWxFG9ocaMI6rowHu0sWlHETH7xqoEfBXUscf UbsTdQAtHNudNvpaCv2Vdomv9p/UAV9vG4lRoNraqBgQ3tlXzIrnaoi1iPHwTdJJ D4mqR0PnOvoAPfizgxm5HrYsz1NT4/3tWVca2m11HY+wq+9uSpHXQNTgL1AjjirM wGw/qQ== Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er2u42aru-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:26:00 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-6e907a982f5so2003618137.0 for ; Fri, 12 Jun 2026 02:26:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256359; x=1781861159; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=L9Ew5+SW+kC22+WMmYtdad6wVyhCdPtwJDrWQBFGf2w=; b=CcKElokSXHyqRqMVwtbrcZ8BzREixdCPnYcw6osN5/Tx4EYSAeBrv5ZEBEUJfjCstq iJdW6lqCDlCT3jc3c+DltThng00HLzQwJyoRY1XnsiNJFZ31NDuaXfz1h+8D/ETphXF8 oB9eNnVm5P1q14EZXNstPKZa2yaewNhbP6fNUR6uV7Zqv0v4xR4Xv+LnUZ/UwipPCMjV zViPdJ+R2jNDgQRrZpvO0027crqiQW8lUvgkP6vz5kHak6f1Ru7Twogqc8ulvPQgJjsW LK/o6Scn23Swnisy1NiqwGpbzf5b+oQ3EG4QE04rC9CTBIBj3OYaXJLeuJ31TYYFbrJr 3ndA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256359; x=1781861159; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=L9Ew5+SW+kC22+WMmYtdad6wVyhCdPtwJDrWQBFGf2w=; b=kSDZtVYaJ8O57eOJWYMhemXHGL8auevaZnrRmogAapGyheZeMGGEp/5F37tNZeFwXU GEKy07IW6GCoWMqC+zH9bu/+FL+bQJd1Hzt5H+5LF57r3QgTY99uzU4p15TYCJHElXQt NFeOcSv6dhkTau2jwP3obB4FW3OK9d99byeN5Gonwjo0JYuynfEQxb1VBWUtnlL3vq1z A1Dfh4ilR7N55S5tvimSUE5SMd2wR6wVAYiX6RLelzts6eO8mAIYtDqr8FB43OR32Vam SfnEwZGnJ4QOAuNjhc9LBmY7WintSKKxtxTvPRvYf0r6QpJiV04fumZR2UqhLfNCE6zV OqAg== X-Forwarded-Encrypted: i=1; AFNElJ8mxfObAQW7zdQ6OtEutsCDfEtYjL9rb119TQsyYmdGd371SEttIBN8ho3A6T6kfdLvYsVwsFRqw9tj2uU=@vger.kernel.org X-Gm-Message-State: AOJu0YwhcBW4SanOIcizhqpL+P2ll8yS6uPG7tLsPQ7jEt5XniX8yXMy aVQI/WdjKkVIHUbOIFRkQKLQMG9jiJ7NkcUenide2/ntuGb+FXAs/RxdRFwklY5dyZlakDfVxdi CemqelKZN4FIJrD0/nA4JTICblay63Bs4ctXcC4mjeiZxv3W7FZnDK1Ek3tpWqgfsisM= X-Gm-Gg: Acq92OFOvYnLcbAT6Ep80584ENjjX+JgHQEcInICQ9OQQFwKRrG0aKA1R+KbvzTixgG ldC79LB1PVivQxdhkc1X9c7115PPx2w/2Fddn4TB5g7IG8rLL88PtEDRveRLolJNd4Me+cRSZr7 tYahP6A7BXQYOdkeetTuGLHLL/sc9pcUXUaHhnKqlZqkgHPD0aMTSmBAPsvnVecdCUOdum0czGv JeqRooGt+ywCaj1rPqRiz9sf6c9kPQ0d9hNLOls1hnhxO3cuERQ7/ugfnW1oEg595I6Xqi45flE uWUl8CU3vFhtykSCF9Yam2G5uM/6RpguTBG+rEzlGwPTLloIN2nx2BDOExfOHqhkHmw29xddvX8 430cR7dGp0b8mzaE443LQCl4oqXX8MVAV+Sj59Z6IMDY3rEuv0vLy193vThYRX/a0PprHbKg16w q3f4YeXJuaocz4dGytxiM8J1vc7RY0EXdSWF4= X-Received: by 2002:a05:6102:61ca:20b0:6cb:b3db:c31c with SMTP id ada2fe7eead31-71e61ef611fmr671928137.0.1781256359633; Fri, 12 Jun 2026 02:25:59 -0700 (PDT) X-Received: by 2002:a05:6102:61ca:20b0:6cb:b3db:c31c with SMTP id ada2fe7eead31-71e61ef611fmr671913137.0.1781256359166; Fri, 12 Jun 2026 02:25:59 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.25.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:25:56 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:39 +0300 Subject: [PATCH v4 07/16] media: iris: Add platform flag for instantaneous bandwidth voting Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-7-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4991; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=RnwWFAaJcZbGFM4BPtgb/HiyJNOnSGTgdllJ6NoVDw0=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CQnqHoBieSia91XFs5XPA/VfkeCtH7g+3B5 wUSJpPKYtKJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQkAAKCRCLPIo+Aiko 1St4CACEU1jg9eaZaKESXwgnhYwNZvjNIOSi+O1BL4emf9VdQ4dFvv0JS7KXW21XyNidiI2e+Nk VNWjNWVzbCKNKe1XwzI0kB5LZ05eBbrMfOQJ+cKyIxpHqp6uUhLtmwX8MMYdP5NuKdiB5UHpyph 6Ru2asYwv67IjAbkjap+q06Cq6vfCzapKH3r/Yf79WKlZ/8uRgJRsVkulWdHCxJrPnXsTlrZ1ej nioAXXqeMASTNOWAae9cbZzemmdbBDlJOoxk/VRxwTnFJPePE29/BuiI7PRDRs0gbzpIBiWFnxX ig0e8B6M7bHrA+5virOIXEzJDZV5Hu6sWsWDKxhIMPKKK87l X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: AoQOyoVmqxnSsO0YCZwsb-vxvVYrzT_O X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX3eOEgvvqfJam LPAZ7o3j3kytsmZ/DrVsy+SHKFr/TtVGmnoDqKog33PL6APlavKvYo2LPJ4WcBLX5EzzLo+yaqL LS/qbCllHhajTCqTBUsX/DJKEchl7s0= X-Proofpoint-ORIG-GUID: AoQOyoVmqxnSsO0YCZwsb-vxvVYrzT_O X-Authority-Analysis: v=2.4 cv=N94Z0W9B c=1 sm=1 tr=0 ts=6a2bd0a8 cx=c_pps a=P2rfLEam3zuxRRdjJWA2cw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=hZPXDZ8rEFHKWOVG6IQA:9 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX7bS8PwhGSBY7 JfkDqdKZLyVkT2SIB2mIgZURV5RKFWcKrxqQd0yUXvGAlANRb35uSzkSaSNcfluNQMzsTZCzOvC Yuiecj29I1j+qWfLROQIQzbSQs7erbTdZe4d5spYeoglDAwGxBujEHRwRdkUTh5IFn3pCxVp6UB UkgRhIhfdQ6KriW592xU5A+p0LsmcqwG111WJ6Z624Dpbht23RxORpUSpZhnG6EG2R4B59aRJpp DEQkk+qQplcMKgGUeBYguKwKSsTM9IcGOFvctyRrqEV2sUJQ4AGcWKT6HbkpRjBLr+Gk+yXx1gL XZCzZNDN5OzInPnVPCfb2RKUZeNfD3el6DbkNcsI6g25blwQhN5wesBAoMFVvEVmvLK6qQTTtun eJ1398+BgwkUjL6cfqjMCshvUODwvxOUAgWpKtfhwzztMMAt2mBBGd86RPrzbqbL3i4U6eG7Urc 9u5cP18gK2w5fP3cIQA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 From: Dikshita Agarwal AR50LT require explicit instantaneous bandwidth (IB) voting in addition to average bandwidth (AB) when configuring interconnect QoS. This requirement is due to QSB (Qualcomm System Bus) 128b to QNS ( Qualcomm Network Switch) 256b conversion at video noc in AR50LT which is not needed for other IRIS cores. In preparation of adding support for AR50LT core, introduce platform-configurable IB multiplier and enable IB voting for all SoCs. Existing platforms default to IB =3D=3D AB, while AR50LT requires 2x peak bandwidth. Signed-off-by: Dikshita Agarwal Reviewed-by: Vikash Garodia Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_platform_common.h | 1 + drivers/media/platform/qcom/iris/iris_platform_vpu2.c | 2 ++ drivers/media/platform/qcom/iris/iris_platform_vpu3x.c | 4 ++++ drivers/media/platform/qcom/iris/iris_resources.c | 2 ++ 4 files changed, 9 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 81fcb2854772..accc1627defd 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -316,6 +316,7 @@ struct iris_platform_data { u32 num_vpp_pipe; bool no_aon; u32 wd_intr_mask; + u32 icc_ib_multiplier; u32 max_session_count; /* max number of macroblocks per frame supported */ u32 max_core_mbpf; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c b/driver= s/media/platform/qcom/iris/iris_platform_vpu2.c index eeef453c583f..e2fddc29abc7 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu2.c @@ -97,6 +97,7 @@ const struct iris_platform_data sc7280_data =3D { .num_vpp_pipe =3D 1, .no_aon =3D true, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D 4096 * 2176 / 256 * 2 + 1920 * 1088 / 256, /* max spec for SC7280 is 4096x2176@60fps */ @@ -128,6 +129,7 @@ const struct iris_platform_data sm8250_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu2), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c b/drive= rs/media/platform/qcom/iris/iris_platform_vpu3x.c index 261db38a013b..64cf182d67cc 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c @@ -116,6 +116,7 @@ const struct iris_platform_data qcs8300_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 2, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D ((4096 * 2176) / 256) * 4, .max_core_mbps =3D (((3840 * 2176) / 256) * 120), @@ -146,6 +147,7 @@ const struct iris_platform_data sm8550_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -184,6 +186,7 @@ const struct iris_platform_data sm8650_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -214,6 +217,7 @@ const struct iris_platform_data sm8750_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, diff --git a/drivers/media/platform/qcom/iris/iris_resources.c b/drivers/me= dia/platform/qcom/iris/iris_resources.c index 773f6548370a..caeaf199cef7 100644 --- a/drivers/media/platform/qcom/iris/iris_resources.c +++ b/drivers/media/platform/qcom/iris/iris_resources.c @@ -18,6 +18,7 @@ =20 int iris_set_icc_bw(struct iris_core *core, unsigned long icc_bw) { + u32 icc_ib_multiplier =3D core->iris_platform_data->icc_ib_multiplier; unsigned long bw_kbps =3D 0, bw_prev =3D 0; const struct icc_info *icc_tbl; int ret =3D 0, i; @@ -36,6 +37,7 @@ int iris_set_icc_bw(struct iris_core *core, unsigned long= icc_bw) return ret; =20 core->icc_tbl[i].avg_bw =3D bw_kbps; + core->icc_tbl[i].peak_bw =3D bw_kbps * icc_ib_multiplier; =20 core->power.icc_bw =3D bw_kbps; break; --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 CD6A2395D9F for ; Fri, 12 Jun 2026 09:26:02 +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=1781256365; cv=none; b=K7G2AIr2328WuLpXzJ2Sxiu+4SLmc16ML/kBXcRCzxs+B+rCTUCaRWMyI6F3SgAYTMHRPK/+zZ10r5mQhA7vLx1EwAW+/Wm7lt6NUY1rxke1vEd7MABBxyuizTMcOUvkYUrO+rDCzllMx125DoPZxyrJFiDJP0sXhEVxJ0OzDDs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256365; c=relaxed/simple; bh=sUPB9VJRkRZ4see9KcmUKrC+0hNnHbRSIZoFexQREuo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LgFWUyxWlfjkZFWJpdx7FBmoXSng/V40215NKfmitFqtexESawcndLi0cSD4PZ13E452T0e6W60qMXB3ZWZxRi7oSMxQeo1/k2xCDItZTrJfKrl+WSOfxRvoIzh66J4H5w2iKIuvvJptxOMwe5n7H45gkgYQs+hFvzf1cKD6160= 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=N0lp+KTQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LSvceLR/; 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="N0lp+KTQ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LSvceLR/" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C3CNKY2403086 for ; Fri, 12 Jun 2026 09:26:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= U0gyuvkccvtpcfH79fJjPBeyRgK2qdZ/uoYlWvMd7TM=; b=N0lp+KTQW6pkD7Si l7qUOvhY/D8RR1ZiLGw4IX7+TazNgOwuKHn0jntZPT9V5oMA3HzQx+yBRynFF0GK zGwHsD2PZA8wDctJYwKDGX2aWrWkbjvUfvDk6S2XL+i57sLid6FBrB0r1ekmCJJS kbDl9CpvcrJjQLLJisnitGecw3grRpqNQaWxgPF9YNO9TQpKhf8oKpRWIgfkznqP UchUbygKKKGyfX8hsVaMLnFu62eN1hK/UnZ8P1MaNwdM7jIQ1Kbfn4fO1aliki53 LfURV0sbueZsrZOSr4ToGTrq6lw245YyWtYtFThh0Aq/8rD/PwyAdHFtKKXzMY1c VnVL9g== Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er30gabk6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:26:01 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-6cfb3463931so710574137.0 for ; Fri, 12 Jun 2026 02:26:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256361; x=1781861161; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=U0gyuvkccvtpcfH79fJjPBeyRgK2qdZ/uoYlWvMd7TM=; b=LSvceLR/FLQ6T/Z/VF5JsSErqtktlkKTrG2l65ynn5sP4rxkffDTqVj4Mwz59/xJVt DGMXMBNIbgavitrhj2XmoWqJH5RCW4418JtwJ6nh27iFDDModundtB+3dawSc33VcrVB 7qOu73IP4mD/CwSPuPqXlQxQpRycdxXp96syXz0AmGt/c4ERljxK0M1knCBHVLNzPSQc eszcpiq5IWVLqY4vP0037JIgjSmRPwWAAeNyAyCxjDWkPSHORPac36NiE/PY+eG2skvS o2TPEifZ5zXd79xUW0p+1nmzNpyxUOCsaG1GcY4IZBzZCorJpYsgXT/3VQbOohaAJd+/ 5e/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256361; x=1781861161; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=U0gyuvkccvtpcfH79fJjPBeyRgK2qdZ/uoYlWvMd7TM=; b=VZPpyKMx69XZso1ON5qBTjPXMxKgx/pmE7zCvs1Epr2GjrY8ZIrN1zASQ3iiccs2RN +jNl5nGzDYzMyPOIMgfBg3xQA1PPF4osjOdxIg84WyL59gvQcUW5fGK3MGodGdQctsFt qZtUrRkHyttPUETsuXkDFbIPRelDOuBvAhuJFqFANd4Ng+3jljK0hqIwxMVnRDcE4TQX G4eFYHkvTTIaUPvxfTfxpy5dvF4QIkQBeV5qWFssY+FPFJCSKNOsTlZxmzi/ggqiHpbq SCaSgKLgpi6JBgq3FUKRYJp+bTjXyD81L8FCCoMVBp1BCTobYGoPvhwbbzdBPRMt3DZd UQiw== X-Forwarded-Encrypted: i=1; AFNElJ9e/ab7iROPvX3ZKt7g6uN3Is94L81awX7Eds+Qwb7WeA7NERhSP6trh6C/Dw9CUfKx19Kv4+SlQ7oM0hc=@vger.kernel.org X-Gm-Message-State: AOJu0Yxu5JpXT8F4BT8HtE3EwhSZlbPpfvK1aTOVGAronLQauYamsf+p RPpCbKLyYXmYgP4npLgSj87mWhTXdi/VRVpfv0EVJLjdhF4qipipljHapN7xErczbVzrBlgszTR M5HCucAqurXTRXqHM7tBh/uSRNCuy1hgr6jSfBuuZAHcMeaHHyHE48ERBi6biu+2H/Zs= X-Gm-Gg: Acq92OFbvqlXGgQMWRUvWA/WuL0yR2zlF1ccIbW1AOyWq4Jyh5C/sZnyPAKgLQFclSu GxMXkVvNm+FtjZzmbAKFaFUX+O0ZtK9IWIt8QlSiRdX2iBfs2YAmsooLUd5bJNAnLt/T0dZPczJ ic6GnpOoVkuvX4GsBdfVJM1F+sPEl0vbp3UTMoX4/kwe7VP2UTscJxe+EY8+5vaC25rXxZCloFq D2++8HXcT81EW/Ij5EzbgZL8hH1ENN2Q/P2xSfuDItUN1FDVbL8D8bE5Y721c6jaJEAQLuHfb9r mhqLCt38TwFOsEP7eW34c08EwzLUub9Orsi9S4ATpuswA7vdiFhPt2wJleouxM/Qz9prOOECzDe L0XLrqufP22F8RQWp1fX37qkLfXBjsbC4U3rJl96SwX8+NJbGPxLbzi6UjzOFKGptfg1cSrqDOw 3IGaSDn43jntkmpCgw3SAqFidZHj+fKzUbY7M= X-Received: by 2002:a05:6102:330d:b0:631:ff40:22b2 with SMTP id ada2fe7eead31-71e88aba506mr803594137.2.1781256361113; Fri, 12 Jun 2026 02:26:01 -0700 (PDT) X-Received: by 2002:a05:6102:330d:b0:631:ff40:22b2 with SMTP id ada2fe7eead31-71e88aba506mr803574137.2.1781256360680; Fri, 12 Jun 2026 02:26:00 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.25.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:25:59 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:40 +0300 Subject: [PATCH v4 08/16] media: iris: skip PIPE if it is not supported by the platform Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-8-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1159; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=sUPB9VJRkRZ4see9KcmUKrC+0hNnHbRSIZoFexQREuo=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CQzimk7CfvnnnQnvM5Hl1meJWWFSD8oLzR2 KXbIgmwWBGJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQkAAKCRCLPIo+Aiko 1WA9CACAN+xCfByVuOkvI4/VINKTW32xKp94696jqfK+4hKhstfWSAhkJgNPk5QORhUUlu4qbhT 5trWiTjxwSN4H4/ccLmpmFOj9IWy8I5v2tnXCyzbnz+NPt9qFT50crT/JuFMpC7KBbh0bTVpJGO DY27k49aYB9nS7pnUCstiT5jERdV3j95swRHSIRgBiEv9SAGI32TL7xwREenVCRtZuVMhGOyPiE SX9MokSEXM/8ID5dPhhpmtKFJuKCQ6MAhOR3/sQfmDzqMEMC9aSngPemX+U/6fBbz4W02w3rtIa eJ3hxiMTHPtZvObl/TzHCGoiWYiPm+Y9jKjGfH+rUFHa6DZ4 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX5RMA4LNt9laQ dkoPQz0joIXw2DmwG793ndGRmGGfKQmRqQk1o3r0nM8OQdQyvq1geQ+5uZ9s7nGGrmG7nj2mXE5 P8YJWoXppnKmZWhreoKcwyI8KSgWB9Y= X-Proofpoint-GUID: C7b6JQNyS5FNP0Vjy6umECbZP3jp71pw X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX8k5yAq7t0fQQ s9KpSbZjNP8/pm4Uu0dMdwwrJ8I+YqJ5O0tn7KS1tTjCxNMvxWnaeEDOKfsPBtOk8FOdHSxXbRU h01iBS/ubvQzlS2w4BqHyfZGTFUfYcdrSm0h7GXLJqy8Nuj1ywG8az8SCt/KfWJXxMPInmMjyuF 7VNE9LLWQg/KwBTR+zZPoKvkopj5GP+zS7J4VL7EPCZjydJwfNwKKv0h0aJIzHJ0hiPGLAk1gA4 Ip3Hq3nQQLHIVViPpdkJt15/vRvyE6XzdyI/2wnELZTtYOCnp259sTf5b7c60h5qFrsi3QeREdF IIpD2zuGXz8WHMlu+wONfRjgKtKSrzhuduHHjB4vaCPH5cHaML+Z1Q1l6NMTOrXOyQuO77S2vee e428NzTkiJhP12NqT8R4tt5nGJFBTAnYBykq1NtJZdpHl1qnnlFXdkg/7/oby5Djt/eZZbzG+hE rmXL3MPHL07F58ZXRHw== X-Authority-Analysis: v=2.4 cv=evnvCIpX c=1 sm=1 tr=0 ts=6a2bd0a9 cx=c_pps a=P2rfLEam3zuxRRdjJWA2cw==:117 a=9TuWGWrZIemhly9L:21 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=DRvvl89rPFtLv9ObwM0A:9 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-ORIG-GUID: C7b6JQNyS5FNP0Vjy6umECbZP3jp71pw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 phishscore=0 spamscore=0 impostorscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 AR50Lt doesn't support HFI_PROPERTY_PARAM_WORK_ROUTE. Tables for AR50LT won't have corresponding entry in the capability tables. Let iris_set_pipe() silently skip propgramming the property if there is no corresponding capability. Reviewed-by: Vishnu Reddy Reviewed-by: Vikash Garodia Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_ctrls.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_ctrls.c b/drivers/media/= platform/qcom/iris/iris_ctrls.c index 10e33b8a73f6..33a34573391a 100644 --- a/drivers/media/platform/qcom/iris/iris_ctrls.c +++ b/drivers/media/platform/qcom/iris/iris_ctrls.c @@ -534,6 +534,9 @@ int iris_set_pipe(struct iris_inst *inst, enum platform= _inst_fw_cap_type cap_id) u32 work_route =3D inst->fw_caps[PIPE].value; u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; =20 + if (!hfi_id) + return 0; + return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, iris_get_port_info(inst, cap_id), --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 060F239DBD0 for ; Fri, 12 Jun 2026 09:26:05 +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=1781256369; cv=none; b=sDp51Xf9IvCcldEWO6J3DuWU7Kc271HKH19DU0srLHTbZYVDptlNDDS2pY4eLhck9qzK/XvlASCvIw16yzMJgaX7ncu+iCkvRn2MQh9sW0FTxdUDGSYVRk4lDNtetB9lNAIVFqLaVyLtgYtQ+cack8EDMUAtLkccxXRreHwgdpQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256369; c=relaxed/simple; bh=I3Z0NYX6XDBZkxlAm3drfNsOlkrf/TDMZOXvVbZv+aU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=duuOjVG0bIIqJD3eWrnCDftv7LLZpQl3gzTGfD5JH4tvYAo/rZXWTjxBG4UPhijUCtg0WrYcgtXavQ5mrv3NF7xs1dm0O66bF9utTB5Bg8INg2Hatp6zhSxHa5b0MV0VrZvEkPCAa811uCZmbLUWTCIN5T3UOFOurIIq0FFOqoA= 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=Z0/EKFiG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=dFTglExS; 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="Z0/EKFiG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="dFTglExS" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C39Lcp2495825 for ; Fri, 12 Jun 2026 09:26:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 1eIf0xp5hZBEBNH7WRO9eVs/5PtTegLcmrXxMejWeX4=; b=Z0/EKFiG7dxFxpNJ DKGG2WUqH9YjYwDMKDEpndJhwLHWSeZZzThRCBVFrlIv+2aXG/rFa2fadpX+fyZ7 8IFO/zi2N2266GfDC5VmbxsUO9zyVXhDG8se8D25bN5wuJR9dg94DWmLUhxcAewT eR+ycG9W0/PxxUGV6jiJC1Qw5pJaUUiTndpI0SX8y08JKaxlkINNLIhm6LScY3QM C6/xgNqFzJbrndKufSkY7KAXKv1S6oDrd7lAm6EKorvREFkVauuKrRcBa22/KKvQ GQKh0p/BdTqWQtOBJfUiOoMcg3DizH1+CxoAEqzxES0FptvYacgIEPrj1Dvnf3fs 15NhZA== Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er0x7jxq5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:26:05 +0000 (GMT) Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-6cfe512e871so383162137.2 for ; Fri, 12 Jun 2026 02:26:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256364; x=1781861164; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=1eIf0xp5hZBEBNH7WRO9eVs/5PtTegLcmrXxMejWeX4=; b=dFTglExS8HxkTJwpg8T8ZaLM1Nw/HTFxx+OHOvi2rZ4KdkP+A2EgVDX3jpLS4mu1nY KyjF1c1VhGIkF6z4AU8f3z+WpQAAn2c6mp0WCiPpyJpZ6AR98RqZ/8BneVfexlnlGu20 hiMckHgmWuLSHBz/WHWToY19FCuihwzQJl53R4hlAqNajTOOftLxMsnCwQWcqMbN3qYB J1TnW9dJVkm485BZJvQT+c6lwTrQgwXhbUI9GJv2ww26WoCdwVrsbeANcDckL+zzt+0q BsPJY+vp7IcdadwGy8qIya+GmWrVjiSZQsJI7vSyoNsf9oKh7QeZWxvQUmHUgazGSlai wbbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256364; x=1781861164; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=1eIf0xp5hZBEBNH7WRO9eVs/5PtTegLcmrXxMejWeX4=; b=aWkANkew+PEA/5hCxYwEBK+0P5ClnCC9U6MIqZ7rGq3AR+9nxXJfN/8PnOQEwWiZ0n 61vkQ1O6uuc4cHR5h40orooTbFakryrSvr1Vmczgk+i04wL+fr0N6gPzVPoPnuwLYMgj 4bwfB9xAae2CsvCoq0ubvrQJeN0OztYuyGBo2IIf968ncQsnb6eMykeiez4LLrhs50Zr R1jjM8rMIYd504GVg44IJRhIy5DFzua7hmT1OD3x31z59lPrl4EMZDgRhmbxsHS/p/G9 3fCvGUj+UraOrScfm10VUtmeJ7+zr0qFeJse2tvkdDQZSXdT3GTMOGqF8EZfMtoSDoNx QD5Q== X-Forwarded-Encrypted: i=1; AFNElJ9VK27/D88umaMTi/TLp969OgTmAMdTuhCtFRiy0EU9S8qOMgOlKEuqPlloC4dlkfO4Iib47axidSk1v+w=@vger.kernel.org X-Gm-Message-State: AOJu0YwzXtZv19JwPhLGyY82hQGLBpuLlLQPZ3eAE8PSiX6Q7gLL+EpR HZziC6/oEwPXmGwE3Vt8XmutoHM/bTbE+8Sf0m93GkEkzhdech2N7+4kMwBvE9r5jtZhXq1xkmI P7QG7tHGu1VfZsm3+vWppfll4hqyeHNb6hFXZvUmARYAJr4T0WmuozSbAm0EjNS1V7kw= X-Gm-Gg: Acq92OE7QPAHEYiVevNMyxuJmBfmoFZeBVcZJlC6jVBu5g1hUYfOimBthFX3XnH3IuO 658bkLrz2Le1X+DAGrLXbmyR4nmYowm2tnyhUw6vCIha8N2bakee87byk/Fc+NxbST1QVb8glL1 EPlirGqWV0kxSmbki5Me50S1EA9juWZKEQqvS5d/JoTZhI/gdEuONMBzKnh4TAKLt19+qX/2wxv 8YqnZFtLta+tjxmP0Ld7YXKztnquUI1258DoX88VQHgSDrmf7m2ApsubiALpmy1SeH6shAwBDWY Z18PJ58Op6W1U0zKMpPc9Jh7/CoJKKhIA0JsurLFJpgetpIjbUZ7O8RmYIk58/wjXn8BKENzA+Y NmEiVsS5L/OSpluXFdOpqy1N8OsXCmXUs7SEkyzXk3HmxLHPP7QfpD/sjXiI8fvtcckBAzzvIZy 2Knxtnk/zptWOOMoHLXgD/44knBq4RIhSTks4= X-Received: by 2002:a05:6102:41ac:b0:631:81d6:e15c with SMTP id ada2fe7eead31-71e88ac3b40mr713868137.4.1781256364086; Fri, 12 Jun 2026 02:26:04 -0700 (PDT) X-Received: by 2002:a05:6102:41ac:b0:631:81d6:e15c with SMTP id ada2fe7eead31-71e88ac3b40mr713847137.4.1781256363589; Fri, 12 Jun 2026 02:26:03 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.26.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:26:01 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:41 +0300 Subject: [PATCH v4 09/16] media: iris: Add framework support for AR50_LITE video core Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-9-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=8118; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=9DQMCHqkqZR4kYnFSm/8VmYUprdVpc9QpDcgMlyKNYs=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CQupY9yh4YharMq5EC4OLtbjyDaTe8H0oDb oVVu0bF9faJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQkAAKCRCLPIo+Aiko 1V9MB/wMffLpSbLfZ3/uGyEvhyXO86pEtPgyw8se9UuoKk3+3dl1SgqeO5fWoKAitujoOQhXHZI z+VZpKraQyz7Ek3R0SZ7yvnOcwgZef0vjbFVWTCJybvc2OfiwTpFu0Fk2CzxrmxTBQL6CgKCwTO lAiFGaKh0qikqV2I+wpI5N9Yf8NG5zXaX9kZeJcm0Hu8luMpG+XhtQntV5h5CpPejBXwV26xYqP yTbRh77KIHLJmf0IkvQHHn0AQ9QSaou7ixc4+Ta6vCrw7wYFCsUynBwAhe02WWEvSQfwvPDwIe2 WZvwExOyWxtLB/Qs2fZeLJ5WXZ4RWOzasS2tEzcy5ORoykpE X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: 7VZresANYd7mSzBDJhxYpF3aOIZAjp4V X-Authority-Analysis: v=2.4 cv=c4abhx9l c=1 sm=1 tr=0 ts=6a2bd0ad cx=c_pps a=DUEm7b3gzWu7BqY5nP7+9g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=x0nZcyIE9sK-8O7Lov0A:9 a=QEXdDO2ut3YA:10 a=-aSRE8QhW-JAV6biHavz:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX4devLMlZx6Z0 EjS+2DoyOFCnxETD/oh7CCJwq9BOFyohDq8MklTmeDluuUaXoeUt2WaPtGO+rB74ZftZFcLlWaK ATkMdobQp+KdYYcRwl7D2z05TgkhWILoKhNIwimh5L08i5Vl8/KrYX4UbhQETnonY0uOOsG6YDM EoYh6GZRQaJUjs+0n6wIFbgLIMLeJFVEQQXxNnDoQulNa5RFWFkOuj9eZilJtoVlEPxLAL+U+dy laE3/pF0/9LCFhvDt5bN6bkLdVpWHU8sKmaQ01ZOEK5dSacclXP83u+K71htq7tA14H9Qi6EYNx MX9jAhFyOTmgjNT++KatuOcA6UPNaTnYxznuiLHI2cBcOYfhtevKsgkBLc//tCKVUS4OeBLmlhf Tj0uw7BeqW3G8Z1CIyuj2kHoJ5CpHI7b6pPS/x1rGFzZLz1yqk8Y9X5lXqxmntOHw/uoKRZCvVL MEF6C+D3PKA9u6481lw== X-Proofpoint-ORIG-GUID: 7VZresANYd7mSzBDJhxYpF3aOIZAjp4V X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX4O3sdNaCH6Zc av5IzqqEugj+ESG2zHjoHmbYW6JEH+9bOAWS3d+yacEfgqeeH9CbmnmwnEDr3WE3d5T6x/JkTxK H8czdILC7CNJm5DuxYrlzKjjn/Byn7g= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 clxscore=1015 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 From: Dikshita Agarwal Add power sequence for ar5lt core. Add register handling for ar50lt by hooking up vpu op with ar50lt specific implemtation or resue from earlier generation wherever feasible. Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/Makefile | 1 + .../platform/qcom/iris/iris_platform_common.h | 2 + drivers/media/platform/qcom/iris/iris_vpu_ar50lt.c | 156 +++++++++++++++++= ++++ drivers/media/platform/qcom/iris/iris_vpu_common.c | 3 +- drivers/media/platform/qcom/iris/iris_vpu_common.h | 1 + 5 files changed, 162 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/plat= form/qcom/iris/Makefile index 48e415cbc439..f1b204b95694 100644 --- a/drivers/media/platform/qcom/iris/Makefile +++ b/drivers/media/platform/qcom/iris/Makefile @@ -26,6 +26,7 @@ qcom-iris-objs +=3D iris_buffer.o \ iris_vpu2.o \ iris_vpu3x.o \ iris_vpu4x.o \ + iris_vpu_ar50lt.o \ iris_vpu_buffer.o \ iris_vpu_common.o \ =20 diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index accc1627defd..6a189489369f 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -74,6 +74,7 @@ enum platform_clk_type { IRIS_VPP0_HW_CLK, IRIS_VPP1_HW_CLK, IRIS_APV_HW_CLK, + IRIS_THROTTLE_CLK, }; =20 struct platform_clk_data { @@ -315,6 +316,7 @@ struct iris_platform_data { u32 tz_cp_config_data_size; u32 num_vpp_pipe; bool no_aon; + bool no_rpmh; u32 wd_intr_mask; u32 icc_ib_multiplier; u32 max_session_count; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_ar50lt.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_ar50lt.c new file mode 100644 index 000000000000..1af20b067c03 --- /dev/null +++ b/drivers/media/platform/qcom/iris/iris_vpu_ar50lt.c @@ -0,0 +1,156 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2026 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include +#include + +#include "iris_instance.h" +#include "iris_vpu_common.h" + +#include "iris_vpu_register_defines.h" + +#define WRAPPER_INTR_MASK_A2HVCODEC_BMSK_AR50LT BIT(3) + +#define WRAPPER_VCODEC0_CLOCK_CONFIG_AR50LT 0xb0080 + +#define CPU_CS_VCICMD 0xa0020 +#define CPU_CS_VCICMD_ARP_OFF 0x1 + +static void iris_vpu_ar50lt_set_preset_registers(struct iris_core *core) +{ + writel(0x0, core->reg_base + WRAPPER_VCODEC0_CLOCK_CONFIG_AR50LT); +} + +static void iris_vpu_ar50lt_interrupt_init(struct iris_core *core) +{ + writel(WRAPPER_INTR_MASK_A2HVCODEC_BMSK_AR50LT, core->reg_base + WRAPPER_= INTR_MASK); +} + +static void iris_vpu_ar50lt_disable_arp(struct iris_core *core) +{ + writel(CPU_CS_VCICMD_ARP_OFF, core->reg_base + CPU_CS_VCICMD); +} + +static int iris_vpu_ar50lt_power_off_controller(struct iris_core *core) +{ + iris_disable_unprepare_clock(core, IRIS_AHB_CLK); + iris_disable_unprepare_clock(core, IRIS_AXI_CLK); + iris_disable_unprepare_clock(core, IRIS_CTRL_CLK); + iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_CTRL_PO= WER_DOMAIN]); + + return 0; +} + +static void iris_vpu_ar50lt_power_off_hw(struct iris_core *core) +{ + dev_pm_genpd_set_hwmode(core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN]= , false); + iris_disable_unprepare_clock(core, IRIS_THROTTLE_CLK); + iris_disable_unprepare_clock(core, IRIS_HW_AHB_CLK); + iris_disable_unprepare_clock(core, IRIS_HW_CLK); + iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_HW_POWE= R_DOMAIN]); +} + +static int iris_vpu_ar50lt_power_on_controller(struct iris_core *core) +{ + int ret; + + ret =3D iris_enable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_= CTRL_POWER_DOMAIN]); + if (ret) + return ret; + + ret =3D iris_prepare_enable_clock(core, IRIS_CTRL_CLK); + if (ret) + goto err_disable_power; + + ret =3D iris_prepare_enable_clock(core, IRIS_AXI_CLK); + if (ret && ret !=3D -ENOENT) + goto err_disable_ctrl_clock; + + ret =3D iris_prepare_enable_clock(core, IRIS_AHB_CLK); + if (ret) + goto err_disable_axi_clock; + + return 0; + +err_disable_axi_clock: + iris_disable_unprepare_clock(core, IRIS_AXI_CLK); +err_disable_ctrl_clock: + iris_disable_unprepare_clock(core, IRIS_CTRL_CLK); +err_disable_power: + iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_CTRL_PO= WER_DOMAIN]); + + return ret; +} + +static int iris_vpu_ar50lt_power_on_hw(struct iris_core *core) +{ + int ret; + + ret =3D iris_enable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_= HW_POWER_DOMAIN]); + if (ret) + return ret; + + ret =3D iris_prepare_enable_clock(core, IRIS_HW_CLK); + if (ret) + goto err_disable_power; + + ret =3D iris_prepare_enable_clock(core, IRIS_HW_AHB_CLK); + if (ret) + goto err_disable_hw_clock; + + ret =3D iris_prepare_enable_clock(core, IRIS_THROTTLE_CLK); + if (ret) + goto err_disable_hw_ahb_clock; + + return 0; + +err_disable_hw_ahb_clock: + iris_disable_unprepare_clock(core, IRIS_HW_AHB_CLK); +err_disable_hw_clock: + iris_disable_unprepare_clock(core, IRIS_HW_CLK); +err_disable_power: + iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_HW_POWE= R_DOMAIN]); + + return ret; +} + +static u64 iris_vpu_ar50lt_calc_freq(struct iris_inst *inst, size_t data_s= ize) +{ + struct platform_inst_caps *caps =3D inst->core->iris_platform_data->inst_= caps; + struct v4l2_format *inp_f =3D inst->fmt_src; + u32 mbs_per_second, mbpf, height, width; + unsigned long vpp_freq, vsp_freq; + u32 fps =3D DEFAULT_FPS; + + width =3D max(inp_f->fmt.pix_mp.width, inst->crop.width); + height =3D max(inp_f->fmt.pix_mp.height, inst->crop.height); + + mbpf =3D NUM_MBS_PER_FRAME(height, width); + mbs_per_second =3D mbpf * fps; + + vpp_freq =3D mbs_per_second * caps->mb_cycles_vpp; + + /* 21 / 20 is overhead factor */ + vpp_freq +=3D vpp_freq / 20; + vsp_freq =3D mbs_per_second * caps->mb_cycles_vsp; + + /* 10 / 7 is overhead factor */ + vsp_freq +=3D ((fps * data_size * 8) * 10) / 7; + + return max(vpp_freq, vsp_freq); +} + +const struct vpu_ops iris_vpu_ar50lt_ops =3D { + .power_off_hw =3D iris_vpu_ar50lt_power_off_hw, + .power_on_hw =3D iris_vpu_ar50lt_power_on_hw, + .power_off_controller =3D iris_vpu_ar50lt_power_off_controller, + .power_on_controller =3D iris_vpu_ar50lt_power_on_controller, + .calc_freq =3D iris_vpu_ar50lt_calc_freq, + .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_ar50lt_set_preset_registers, + .interrupt_init =3D iris_vpu_ar50lt_interrupt_init, + .disable_arp =3D iris_vpu_ar50lt_disable_arp, +}; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index 41498f94480e..75dc051cc6cb 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -97,7 +97,8 @@ int iris_vpu_boot_firmware(struct iris_core *core) } =20 writel(HOST2XTENSA_INTR_ENABLE, core->reg_base + CPU_CS_H2XSOFTINTEN); - writel(0x0, core->reg_base + CPU_CS_X2RPMH); + if (!core->iris_platform_data->no_rpmh) + writel(0x0, core->reg_base + CPU_CS_X2RPMH); =20 return 0; } diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index 71d96921ed37..f00e2de5fa53 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -13,6 +13,7 @@ extern const struct vpu_ops iris_vpu3_ops; extern const struct vpu_ops iris_vpu33_ops; extern const struct vpu_ops iris_vpu35_ops; extern const struct vpu_ops iris_vpu4x_ops; +extern const struct vpu_ops iris_vpu_ar50lt_ops; =20 struct vpu_ops { void (*power_off_hw)(struct iris_core *core); --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 835051C2324 for ; Fri, 12 Jun 2026 09:26:08 +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=1781256371; cv=none; b=FxtnKJ/iMvbFYUuu+YElZnAtPbwtfDrTM59tAA8b1t3x6gLS/H4NPW3f+EKDQHE3TbvPa/3dyCppIifGUtalpk/7AMOQkDwCT9HAPrhy3CNL+fyyYT+dhOdJiqwq5HIz9XuXffnWp2CL3eBcBykr2UDn+mmJXi/WZUhBu+Nbcbc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256371; c=relaxed/simple; bh=mHXDVdfr7gnTb95IEhVzRsetkQWLh/qFMSUsTo2m6qI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=emaHEK2epcQpNDC4WlCcHVgogvTXdTxdAY5QsCMVRUiUzTAWNkO1WdA8wYwcqMMS4YxzklQGJUdi4pPZYV2rDmlaNNFsZdaJ1OkL8x0m3cbeIEkLHL87AKQCu4kI6DGTiksqozODc7Q3DaJZO+1SRetXvN6CH2xsKk6f2sr4w40= 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=dv5VJoUJ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WHImsBYf; 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="dv5VJoUJ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WHImsBYf" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C3Br0n2401906 for ; Fri, 12 Jun 2026 09:26:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= bXndIN75K0AaXVjopFWYHYCCeFs50ol73V5r1YtNQ7s=; b=dv5VJoUJsmlpNo+m i4E7qhiNz7IbrybRY2qrSVxJn3BMAVItXcZKXdxH5/jCUuC2Krsa0Ced8QLpbwmv ACdATbAJ/gwdKC4cZHjWpOHVHalDU5dSaz6ubALV13IL853AIvjDBhKuVKc2J4OE +Jps5TdwBu1bCKARCmIbv7H6Do1x3AKc3Gc+y0gTC9SJRAoC7YIm40181xAx4vde bswSmtu38uQvSYUhfUqyj8wyruJrq6k44ibmoMghVQbMrLFO+L3uPzsUyfiV3BT3 lzimONwLQZyDpFVvBHxJ6RJmTnBSrCUmH8CZtRhXXmXRya34uWnByB0IyULMRJuU Ce4ZYw== Received: from mail-ua1-f72.google.com (mail-ua1-f72.google.com [209.85.222.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er30gabkk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:26:07 +0000 (GMT) Received: by mail-ua1-f72.google.com with SMTP id a1e0cc1a2514c-963d7c11611so242790241.0 for ; Fri, 12 Jun 2026 02:26:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256367; x=1781861167; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=bXndIN75K0AaXVjopFWYHYCCeFs50ol73V5r1YtNQ7s=; b=WHImsBYfigSMyXEzpoPWg6k6kjQ3nTirEwyxwPHerY2hn6YWQtAsMc1iZQzhG4P9ge +K8HKhOTlHHjqLGdX7JxYFogt1On4nRXui7Fo/7IFxF0N/usGFk7mwsyI6CGhF2dlGth bT/SdPQaatEqs/1URQGJk9U1iTeN2giOedK5q0ms+aPX3c4G42G4mwvRtTlceRmBacWL NCVgSdpRCHPcTVyAjolA+TVd1u9yaDOKBmPD9LF/4n3vFU7d7U9VTKj/twn1M/47LwKi 2HrvbO3sWJtHGTQ/irJgwIIhaGT5obOTDapZGHNsF4BtYeyhQpZN2A7KnmZaD7NJhsmb pAIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256367; x=1781861167; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=bXndIN75K0AaXVjopFWYHYCCeFs50ol73V5r1YtNQ7s=; b=ZEIettNHH7CFUpzJFX/A1hmmsV24iDZ0k4P5Pl7MG+CWVPSicl0fw0IlDIptFSDU4q C+hHvHqba8GZppdEYqzMoUqD0OIIvBYkCkwTHVUw5fWXHyqDnEhYA0uAE94vIbMW/adQ UbEs0ApkNTOiMLl4XFggH2CbXZjpUDnpQCAhpFutm9WROtsDCsXklDIUzcG6r3nffTpL 1RCUMhgKH4hzfrA7SR6Y5aAdRLyIT0lqKHDxx6qDYxPEYkDNkNHGYRoEEyf5h3bJrmQf ocEHiDcTzvF/h7WIWgalctcR3xYZsfP21CfOIkDkvpHhlOlrzCcCUDnneMx4Yy5TzFR8 JCrA== X-Forwarded-Encrypted: i=1; AFNElJ95gcS5SVoHptHMN9wII88H5VysCwdJaNiAy60QDNCXihGFWggCQPmHF6et2n2gqhxZKnObqa3GqDRtJYw=@vger.kernel.org X-Gm-Message-State: AOJu0Yyziuy0Wro21hwU45SDWpHLt8qB42+Y+eW/LcBUFodOb/iZowcb jSfQvw0E5d/jZInJEy6lUJObLAr6pZ53DtcnUWjGNDa1feQr/uzhtOjVHIJ6RUIrr5yPp0lF80g DsIHIH2hGD1Dp7NDRwehI7mBQ7sULiytySuJyiPjOnwK/lh8JJ0etMlRTs/v83AL/jY4= X-Gm-Gg: Acq92OFK9aHqdPXAo3NFAtqz0E3k6xbzPZR5fs9gaf9sDYrAWt0vydzklPeaLtapMTV /0ROTT6EfWUIHfl1+1Ib8UGg1xJunzxpL2ztBkIcRIlN6jsicNl9h+SH85ZG/lSKgVu0GuFRQl1 ZuZAYctw35G0ZPxF5LsRZer5rciKT8Ovc3vtOda5Ik69Pj6RRY5xvngo/yQ9lz6FSOjll3DhsA0 yr0fR8lZIN3NebxU8kHLLPfIsf6P3F23BVyLBXElIX1yUSV7NrQtlZTBl2G0FDoiPww5qtV5G0z NXSgqrBkh3mgKDihnH4eYCgoCKqy3f0GcDDw8E2mrpItvap7vjIb2DiLn591MFLze0g5cdDbY+/ 1MnNa/YWkuZZL8vHbuMJkNsLgD1XX2HW8RQ8sBJ5Z2QHoY4+dlfdJ6Y0N0m6e6QgbQ5t65ktO6J T7aal7f1HT10RvFUkGEC4iVxLgC2jk0kF9Sts= X-Received: by 2002:a05:6102:6a8f:b0:632:29a5:2b27 with SMTP id ada2fe7eead31-71e88ac8d00mr630899137.3.1781256366916; Fri, 12 Jun 2026 02:26:06 -0700 (PDT) X-Received: by 2002:a05:6102:6a8f:b0:632:29a5:2b27 with SMTP id ada2fe7eead31-71e88ac8d00mr630886137.3.1781256366415; Fri, 12 Jun 2026 02:26:06 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.26.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:26:04 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:42 +0300 Subject: [PATCH v4 10/16] media: iris: add minimal GET_PROPERTY implementation Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-10-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5660; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=mHXDVdfr7gnTb95IEhVzRsetkQWLh/qFMSUsTo2m6qI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CQh268wxh4KI1kmUq3UxOlKVe3lPkF7/RVK 9eAGWWjKL6JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQkAAKCRCLPIo+Aiko 1fODB/9cC+BkMa0lNoeX9Uy3YCEaRlzUH+byxpXq0gGIVzZbExdYaeBb8cmoTsM9tuG6Oj2n99g wrg9RA5F6KnzELcTVVNBBohGNFvhktQTFVpG0F0dDxOkmhF8f4mXV33g3dw7QK0RjiMPsJKXW6r QNmYUy5FXteXKf0RQ+PQnvDz+2BwFtqLPZLJfyCgB6oy+CKugI9m+6wR5feA+NDYMjFdLDYBmNP FrVKxtZDXU9ghcOkDG5v2a469LtP+VD0ui1Sv/w2JJiJuAaHGPDMX4WBqyiyWpE2ovzrJmQKZIs WoJXXfhRXIrFrBqAwA2aIIq7GQPmcTTBn6ufHvSuJIejOvTe X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX1E89ItRkX/2a pMjQX4JsochOzjFG3zG0lPHHyfdejkro3K5YSJoCFE2lTr/BLPS+ugABkkYeJsTXB/tz+AHUv30 glRkNS5tbqTijGBO2tlcF+/pTlK7z78= X-Proofpoint-GUID: GRAwQYyDtLQe0_T85DQxdkt6sn3pbuBM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX84o2pDPowDhK sgrVYwGSUfemZMKm0lo5QCcp2RlNjbtUPJf91ktmf3LxOz++yRXasUBr+5Vc0tbFGGCr4zmzNew sOGGS8BbDfhh2XbVw3e9iITGk7ygglG/gGHeu680lb56DeEbLqtob3ZaDXzYDPAsLh3z25+UTzU FP80DNp1vC6qJAr1UDBy16OhyY5nnLWXbqlwfuv7Pxc4oIjm16OGdFuzX89iQunM+bzHA0Gb5MA +H8KC3LMGOILoNH9pqOh3LTWRhNeWGan85zcERgrPOhMYnaqCtKNhr+fnqwllOtT2iRCR52lHqR 1pGhtmK8rwXeI81w+cl4TjwsUYwhwbYXLHjO+rn2Sw65FTT42CigyLA3PgXSYGpEz8nuS8mGxaT 8AWxLvZWgROgaBFvwhVF3ntSosf7vsPHQxySNdkTnXmaU0FfUNzu6l9CaHZ+DBwHfssA9cOcdw1 kBQpUE5gig2VGDGEPwA== X-Authority-Analysis: v=2.4 cv=evnvCIpX c=1 sm=1 tr=0 ts=6a2bd0af cx=c_pps a=ULNsgckmlI/WJG3HAyAuOQ==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=4y4YWC2vBVg0P_IM3hEA:9 a=QEXdDO2ut3YA:10 a=1WsBpfsz9X-RYQiigVTh:22 X-Proofpoint-ORIG-GUID: GRAwQYyDtLQe0_T85DQxdkt6sn3pbuBM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 phishscore=0 spamscore=0 impostorscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 AR50Lt with the Gen1 firmware requires host to read HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS property, otherwie it doesn't update internal data and fails the HFI_CMD_SESSION_LOAD_RESOURCES command. Implement minimal support for querying the properties from the firmware. Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_hfi_common.h | 1 + .../platform/qcom/iris/iris_hfi_gen1_command.c | 21 +++++++++++++++++= ++++ .../platform/qcom/iris/iris_hfi_gen1_defines.h | 15 +++++++++++++++ .../platform/qcom/iris/iris_hfi_gen1_response.c | 6 ++++++ 4 files changed, 43 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_common.h b/drivers/m= edia/platform/qcom/iris/iris_hfi_common.h index a27447eb2519..16099f9a25b6 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_common.h +++ b/drivers/media/platform/qcom/iris/iris_hfi_common.h @@ -121,6 +121,7 @@ struct iris_hfi_session_ops { int (*session_set_property)(struct iris_inst *inst, u32 packet_type, u32 flag, u32 plane, u32 payload_type, void *payload, u32 payload_size); + int (*session_get_property)(struct iris_inst *inst, u32 packet_type); int (*session_open)(struct iris_inst *inst); int (*session_start)(struct iris_inst *inst, u32 plane); int (*session_queue_buf)(struct iris_inst *inst, struct iris_buffer *buff= er); diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c b/dri= vers/media/platform/qcom/iris/iris_hfi_gen1_command.c index 7674b47ad6c4..99e82e5510ab 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c @@ -1117,10 +1117,31 @@ static int iris_hfi_gen1_session_set_config_params(= struct iris_inst *inst, u32 p return 0; } =20 +static int iris_hfi_gen1_session_get_property(struct iris_inst *inst, u32 = packet_type) +{ + struct hfi_session_get_property_pkt pkt; + int ret; + + pkt.shdr.hdr.size =3D sizeof(pkt); + pkt.shdr.hdr.pkt_type =3D HFI_CMD_SESSION_GET_PROPERTY; + pkt.shdr.session_id =3D inst->session_id; + pkt.num_properties =3D 1; + pkt.data =3D packet_type; + + reinit_completion(&inst->completion); + + ret =3D iris_hfi_queue_cmd_write(inst->core, &pkt, pkt.shdr.hdr.size); + if (ret) + return ret; + + return iris_wait_for_session_response(inst, false); +} + static const struct iris_hfi_session_ops iris_hfi_gen1_session_ops =3D { .session_open =3D iris_hfi_gen1_session_open, .session_set_config_params =3D iris_hfi_gen1_session_set_config_params, .session_set_property =3D iris_hfi_gen1_session_set_property, + .session_get_property =3D iris_hfi_gen1_session_get_property, .session_start =3D iris_hfi_gen1_session_start, .session_queue_buf =3D iris_hfi_gen1_session_queue_buffer, .session_release_buf =3D iris_hfi_gen1_session_unset_buffers, diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h b/dri= vers/media/platform/qcom/iris/iris_hfi_gen1_defines.h index 0e4dee192384..bb495a1d2623 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h @@ -35,6 +35,7 @@ #define HFI_CMD_SESSION_EMPTY_BUFFER 0x211004 #define HFI_CMD_SESSION_FILL_BUFFER 0x211005 #define HFI_CMD_SESSION_FLUSH 0x211008 +#define HFI_CMD_SESSION_GET_PROPERTY 0x211009 #define HFI_CMD_SESSION_RELEASE_BUFFERS 0x21100b #define HFI_CMD_SESSION_RELEASE_RESOURCES 0x21100c #define HFI_CMD_SESSION_CONTINUE 0x21100d @@ -113,6 +114,7 @@ #define HFI_MSG_SESSION_FLUSH 0x221006 #define HFI_MSG_SESSION_EMPTY_BUFFER 0x221007 #define HFI_MSG_SESSION_FILL_BUFFER 0x221008 +#define HFI_MSG_SESSION_PROPERTY_INFO 0x221009 #define HFI_MSG_SESSION_RELEASE_RESOURCES 0x22100a #define HFI_MSG_SESSION_RELEASE_BUFFERS 0x22100c =20 @@ -205,6 +207,12 @@ struct hfi_session_set_property_pkt { u32 data[]; }; =20 +struct hfi_session_get_property_pkt { + struct hfi_session_hdr_pkt shdr; + u32 num_properties; + u32 data; +}; + struct hfi_sys_pc_prep_pkt { struct hfi_pkt_hdr hdr; }; @@ -574,6 +582,13 @@ struct hfi_msg_session_fbd_uncompressed_plane0_pkt { u32 data[]; }; =20 +struct hfi_msg_session_property_info_pkt { + struct hfi_session_hdr_pkt shdr; + u32 num_properties; + u32 property; + u8 data[]; +}; + struct hfi_msg_session_release_buffers_done_pkt { struct hfi_msg_session_hdr_pkt shdr; u32 num_buffers; diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c b/dr= ivers/media/platform/qcom/iris/iris_hfi_gen1_response.c index bfd7495bf44f..23fc7194b1e3 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c @@ -591,6 +591,10 @@ static const struct iris_hfi_gen1_response_pkt_info pk= t_infos[] =3D { .pkt =3D HFI_MSG_SESSION_RELEASE_BUFFERS, .pkt_sz =3D sizeof(struct hfi_msg_session_release_buffers_done_pkt), }, + { + .pkt =3D HFI_MSG_SESSION_PROPERTY_INFO, + .pkt_sz =3D sizeof(struct hfi_msg_session_property_info_pkt), + }, }; =20 static void iris_hfi_gen1_handle_response(struct iris_core *core, void *re= sponse) @@ -652,6 +656,8 @@ static void iris_hfi_gen1_handle_response(struct iris_c= ore *core, void *response iris_hfi_gen1_session_etb_done(inst, hdr); } else if (hdr->pkt_type =3D=3D HFI_MSG_SESSION_FILL_BUFFER) { iris_hfi_gen1_session_ftb_done(inst, hdr); + } else if (hdr->pkt_type =3D=3D HFI_MSG_SESSION_PROPERTY_INFO) { + complete(&inst->completion); } else { struct hfi_msg_session_hdr_pkt *shdr; =20 --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 B0E2130F94D for ; Fri, 12 Jun 2026 09:26:11 +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=1781256373; cv=none; b=hW8lKD0atyktdMMNtC4XVEmCS4ZHwVtn5ZoC8rFqnyZgH1MRKmNOnRfA2aKz7fmaez8gcK/aJdzpkJQqM6UwQa5wv4wb59GfTa4WfHohwrKn3BudkrhE1s8le+0xrFUqmekg/q5TRNqZxQQs/OTUSo+SaOgbmc82/VZA99OW0e0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256373; c=relaxed/simple; bh=51abVJLmqPXnrz/IkKiqyklTNSZTZj3V8WGdms5cxdg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G8HL4Zyo6q6BZMZuiKGPRhsCIQHvlhqQ5erE0mS+ZDlnbrIAYaBHc5W5EpN9y7JqaaVGI6iu+AwQr0DsfKKeB6BnDtYiPFvvCOu/sShVRAmD66iUYscMEb8fNqkpIkPXFRv8rSstpzmHyUc6eyUS10Fcwq3Sg0ILnpAsumch3H8= 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=kNiN4b75; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=it8wvq/2; 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="kNiN4b75"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="it8wvq/2" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C3Bts72451851 for ; Fri, 12 Jun 2026 09:26:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= yVW7PJDNqNGBBo4tUTiap+vPu+AjRGuVR1+5KXJSqK0=; b=kNiN4b75biUAXK0c Eu3Yn2Zcl8Cx/ySg2Ch4DBrmcGx8LbgSaFQnK4c4pUe48asPb9IDkV9QsYNMUYpG 1bgqA+Q+7DeGcMrKdY8WEy1JQ3L7MGZRRXCbSNi0yySGV1OhRam4wC92PtikehtK OIGsNS+qJzZ/zY2N62ZehqDfKWQqKRZWq/Vh+8MBKeOCq0lvANXDFWT+F3wfCRtj kGv99/y76lhslNcXGjQ10sZElBRrIex+WnFH4Cq6wGZXnJrKU4zXgQ3+MLLmwh5V Wosns8whHlttTOGn63rxaG3UpSgGvHOilDZcEVSmfQ1oFQcbKNWkHoKysF8PGI9v 8XoIag== Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er1xcjnaf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:26:10 +0000 (GMT) Received: by mail-ua1-f71.google.com with SMTP id a1e0cc1a2514c-9638fe9399dso302596241.3 for ; Fri, 12 Jun 2026 02:26:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256370; x=1781861170; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=yVW7PJDNqNGBBo4tUTiap+vPu+AjRGuVR1+5KXJSqK0=; b=it8wvq/24WWoiHYdNGcKvzS7lA/hAj17VtPBiaVqGMAnkz4kgzql2I3TRdsi9MCqBc /Ku0m2xpHPDv7S4byEAN15/WHxebXM/P/OeFk6T6q1n+IeMxJDM024i1JAMkSVwJNyLF WY4ZB00ltaXEz4Z5PJXl0Ra5MbRRxkvlU9N0diXmwpFBfCZacEtoX4XG4KLzmV/Pfu0Y ua9UN2IFdG7cIOdhnLuzaWR7zZwdTEwDOHBeII733jD36YwT73nRiDCoaemOpnfnw2qv fXHZSQkgxci1Et07RuAEk6h7/blIFxcStVPzBBl4bERUAcpSnnUPnoP+AmwHs2o9k2Ko sqTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256370; x=1781861170; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=yVW7PJDNqNGBBo4tUTiap+vPu+AjRGuVR1+5KXJSqK0=; b=rteQU3cv4uFQx7bemk8rPLzdjJ/hJmS9nocxhUUnYNEkemkKNGWOGPkaTN3UVa9mGz 1nSqfpDX67PqTXbFyG8CKQ6eJt3u43R0GqNJUhil3wXcrwJb1ynfPcV+7VHAC75VbYgl YgAxjoGporPnT7kLGL6ZL3zzHLajT2Y4AwfjFEVh5lSbnjFJdJvHMGA9byHTy3AuPHZm ZOJCGyv2Nmqtjk78Nc3thQ0H8e3V7d0SwxguWJ5FMjrEYpFnrawlY6jR+GeIRRrXKGnc RuFgWjet64s6qmWLpn1pQHl70RdTv2zm+7jOydAQ3QD5HeuhWoS5f1np/JNw6oC2AKuL MrfA== X-Forwarded-Encrypted: i=1; AFNElJ/EKOk/NhgV53k+QPZRPzppZtJGhD0C2eLz79PqB8YOm00R7YnQZMt9n2dlohxcR8oA7FkyIQq2ko8ry68=@vger.kernel.org X-Gm-Message-State: AOJu0YwWacBTtXe/J7uuR+GNkl8+x/weDxhr5oKvXwAuJaJRy5BOzaSF jjqoYDOTpSaRyowBQv/AIShu4nKViawCbmjtTrc2ZFC+9g2DFGdBtl2LneySDPnuYm9P6hLGWiF H98QNwY4LhByKO1SSjxXNMHDALbVbMP5ku72+7j8fXDVK5f4b2bClma+dIpVJeY1wI6Y= X-Gm-Gg: Acq92OHuG41wYJqvsXbIf+07M773rczMztQeF/uWihjIETpb5G/Qnm2aoA7fDOFaKf7 JgXlq320JCPYXXIFnDNz9OYCJKKQ+2QY6o4nHDGXcl7QtKqjpqo/b3/jj3iDEt/gR/aDcH2l5Ui rj5Kq+kVIy8oJLcdlR7tqQfrfJx59PiXjlEGDPdsN/Ld4NZohkm5FOSXhaGMeRJ1tLixlbBiMRo WxWyaECt2Qsm27h1b/fh45U61/MLBsHtK9uxvWgszYx89fAGdYze7SP3nrG+PBBgE0bLIf+To9T RdOS3to29KY8r357G1aOkmHVnfSCCGFprqDxXljIXfZQGa0GDXsJDAkUS2uhkTvVwpg9QgmLXtp FC60Pc6J8FrOKJrb0ceybj1VVcmNWHWwoe2+TGdJHp1vFjTDMIYFEy+++BVmdHMB+SnAv4Oewgj VHFPj05B/0hx/zcOOCIWV6IDdHlv/l0PTFzYQ= X-Received: by 2002:a05:6102:5a99:b0:633:2389:3a82 with SMTP id ada2fe7eead31-71e88e147bemr665047137.28.1781256369610; Fri, 12 Jun 2026 02:26:09 -0700 (PDT) X-Received: by 2002:a05:6102:5a99:b0:633:2389:3a82 with SMTP id ada2fe7eead31-71e88e147bemr665039137.28.1781256369151; Fri, 12 Jun 2026 02:26:09 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.26.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:26:06 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:43 +0300 Subject: [PATCH v4 11/16] media: iris: update buffer requirements based on received info Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-11-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3369; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=51abVJLmqPXnrz/IkKiqyklTNSZTZj3V8WGdms5cxdg=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CQZYXf60MyfOxVb9wTv93rBVEZgDui1mD/a fawi7ariQKJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQkAAKCRCLPIo+Aiko 1XVLB/4i0tIX6WVscClZzJsjFQLZy/dNSBvDrLQ7a1P0BZy1NOLLc/Pff7sUFu9DNstHukCxltc iuinYPA8JRzEUh+bxodD/M6s0/ulGYlxvElUA9A/+m7yOx5AzcgQjiKlGiBhtUeJGzPetvX3oux Yqxrq+LVOW3hRX7NpD3AXxF9YWFCHC67nL6gpXi4J983y29WIkUKLCbx5ylFhdPfDgg2pe99RKn KC1zzJDYFnnG4dmx6QG45qe2Funajbk+PFjEKeSV8TKdr0Nx8OoXCwpCaBQouq+Nya8FivxP3qo YeqkO40JFJU6wSc0z1+zt8C3GHt43MmRA6VcNrtVO2JTQk5A X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX4RuzpR9XMp5X ofyM4z5ZU9YwoPNfie5Il4ZaERUAeEYjKF5T5BRS38Wf38sHYcWP/fTm5Wwrp6mm2iscYIohhiS mwhbYsxll5yIwsvU/FCoWuD6H7Aat1/BwrhEFniNUaJA1FCxZv6y/bWN9Wh9fEAlXEWMRE5ZtOc mZ8+fx+ToWWFUSeVGW2+6IGEXSxWYkwYmXf/6HAmo/5OlLEh/dJ25JwkN6+MQcfuJ0o5SSurUnP AdFNNCu79Ie0CHV50mOQ2KyDXs5jpZrFRF1Gp2ILfY/bj70xGAmjiESfVkNNk56TdqSPXYkBkIB YJcuFkCALBDbMxTPoHUEMI9BZUAjTQ2UJeZUmctcJUV17e3YKpzZqwilE9rVJHydDQ7XmWGl+D9 LKuj/OkiDc2CM9Q7MEUQAfTqfxy96ZBez2qDDRh9qANoBvvcZOVqvbCT7Jfwrgq6BS7TM9dOfjT +xsgKWRLpchvcltuDzQ== X-Proofpoint-GUID: tSmMT2nuEUZGv9WRCkRcOCAsXPKWI6Gf X-Proofpoint-ORIG-GUID: tSmMT2nuEUZGv9WRCkRcOCAsXPKWI6Gf X-Authority-Analysis: v=2.4 cv=NZPWEWD4 c=1 sm=1 tr=0 ts=6a2bd0b2 cx=c_pps a=KB4UBwrhAZV1kjiGHFQexw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=_TRJU0tGboi39qq34nEA:9 a=QEXdDO2ut3YA:10 a=o1xkdb1NAhiiM49bd1HK:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfXy5YaDqGQKmc+ 7W6CtTzL0xD+YPmYRB/AtqlA/d8isDWh0QsRqbNRUEXPTYU7gTIxrrnT1A5DbUcJjH0vi5EYt/I TBpaYLYRjjbwJTZsvvtKGtajRwFzJy4= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 bulkscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 Upon receiving data for HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS the driver should update buffer sizes and counts from the received data. Implement corresponding functionality updating buffers data. This will be used for upcoming support of AR50Lt platforms with Gen1 firmware. Signed-off-by: Dmitry Baryshkov --- .../platform/qcom/iris/iris_hfi_gen1_response.c | 74 ++++++++++++++++++= +++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c b/dr= ivers/media/platform/qcom/iris/iris_hfi_gen1_response.c index 23fc7194b1e3..ee996eb1f41f 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c @@ -533,6 +533,78 @@ static void iris_hfi_gen1_session_ftb_done(struct iris= _inst *inst, void *packet) dev_err(core->dev, "error in ftb done\n"); } =20 +static enum iris_buffer_type iris_hfi_gen1_buf_type(struct iris_inst *inst= , u32 type) +{ + switch (type) { + case HFI_BUFFER_INPUT: + return BUF_INPUT; + case HFI_BUFFER_OUTPUT: + if (iris_split_mode_enabled(inst)) + return BUF_DPB; + return BUF_OUTPUT; + case HFI_BUFFER_OUTPUT2: + if (iris_split_mode_enabled(inst)) + return BUF_OUTPUT; + return BUF_DPB; + case HFI_BUFFER_INTERNAL_PERSIST_1: + return BUF_PERSIST; + case HFI_BUFFER_INTERNAL_SCRATCH: + return BUF_BIN; + case HFI_BUFFER_INTERNAL_SCRATCH_1: + return BUF_SCRATCH_1; + case HFI_BUFFER_INTERNAL_SCRATCH_2: + return BUF_SCRATCH_2; + case HFI_BUFFER_INTERNAL_PERSIST: + return BUF_ARP; + default: + return -EINVAL; + } +} + +static void iris_hfi_gen1_session_buffer_requirements(struct iris_inst *in= st, + void *data, size_t size) +{ + struct hfi_buffer_requirements *req; + + if (!size || size % sizeof(*req)) + return; + + for (req =3D data; size; size -=3D sizeof(*req), req++) { + enum iris_buffer_type type =3D iris_hfi_gen1_buf_type(inst, req->type); + + if (type =3D=3D -EINVAL) + continue; + + inst->buffers[type].min_count =3D req->hold_count; + inst->buffers[type].size =3D req->size; + + if (type =3D=3D BUF_OUTPUT) + inst->fw_min_count =3D req->count_actual; + } +} + +static void iris_hfi_gen1_session_property_info(struct iris_inst *inst, vo= id *packet) +{ + struct hfi_msg_session_property_info_pkt *pkt =3D packet; + + if (!pkt->num_properties) { + dev_err(inst->core->dev, "error, no properties\n"); + goto out; + } + + switch (pkt->property) { + case HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS: + iris_hfi_gen1_session_buffer_requirements(inst, pkt->data, + pkt->shdr.hdr.size - sizeof(*pkt)); + break; + default: + dev_warn(inst->core->dev, "unknown property id: %x\n", pkt->property); + } + +out: + complete(&inst->completion); +} + struct iris_hfi_gen1_response_pkt_info { u32 pkt; u32 pkt_sz; @@ -657,7 +729,7 @@ static void iris_hfi_gen1_handle_response(struct iris_c= ore *core, void *response } else if (hdr->pkt_type =3D=3D HFI_MSG_SESSION_FILL_BUFFER) { iris_hfi_gen1_session_ftb_done(inst, hdr); } else if (hdr->pkt_type =3D=3D HFI_MSG_SESSION_PROPERTY_INFO) { - complete(&inst->completion); + iris_hfi_gen1_session_property_info(inst, hdr); } else { struct hfi_msg_session_hdr_pkt *shdr; =20 --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 3CA793A9DB2 for ; Fri, 12 Jun 2026 09:26:13 +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=1781256375; cv=none; b=tZ3dHk6olDb64tgx26TLeGQObOcW5ypyYeQy7a00OMGKZZ7EKwx2SvW9b7xkbD6IGJl31RMLzpnMfNUQHRaM+Olv9/7XSIlT4NIUwAMlJDm7ju91j24rEZZ+ZfzcQa0BLB5qzELoMvJR4kc0DniCHsRD3ahimu7Mbn1dKQCBzo8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256375; c=relaxed/simple; bh=9UNxbtDOKcqj/XRj767wK8XZ/LIeAPPIVLk9YZhcHWE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r4XqSIk1dwMSsFdW7/+3Q6yDDP4wLEdIJEW7RSupie/aAa3Z05ILp4T9hnkd6ipUUiocmjc9BiSHA8GPk19HckQ+gLfTnTCMKh/o5fHNYSAefJOQrxq9LkqEih3jr45K97pN7Jj94OW/c9E+GDX+c0uXrWS6zj/opVhVclfLuuw= 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=DJcllXGv; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=V97xLKxh; 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="DJcllXGv"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="V97xLKxh" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C3BbXi2548181 for ; Fri, 12 Jun 2026 09:26:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= /OOL9Fbb5ab9YXxSbJvRKruTCR6weoazdSeJyfd3wBk=; b=DJcllXGv7u3L/EVD y8mE7AmE1DXKA/FLyP0tTMYOBD4EKSAktVgEU1VTM8jpr+Guav42fMU/NKwDg5O/ N0YR/eCTduFKTOUnVoMEUkUWXp/DVsUPKsYdQhaVou0KhPAZHgzp4/khaDr09juH GXAY4AEU0K4aYFP9B3KuLAG0WESwGmmfkARZjTU/GGuPVh5+mshBAHOgY3SE+4yc 3aRqCCLAGN1jkzkpwrtm6ZizJXKBQz1umwHgMo4mrSyIBlsZNssCINejN5sy5XpO ZiDKj5GDvNhhUXxZ83dG3e7vK2+f7Q8ncsiRg8/P7WR71HjzxeIJUhlRWKuMwkxk 65uUQg== Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er29utgd0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:26:12 +0000 (GMT) Received: by mail-ua1-f71.google.com with SMTP id a1e0cc1a2514c-963d7c11611so242819241.0 for ; Fri, 12 Jun 2026 02:26:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256371; x=1781861171; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/OOL9Fbb5ab9YXxSbJvRKruTCR6weoazdSeJyfd3wBk=; b=V97xLKxh0T8Pqx/wmoISr103y3QvjDwJRr3NWwZK9gY+IJZ75aAeOtJ4N96TvFUR4z 9iYoxzHfSGoa61RLfMwegwbDwKWAVrnKWyFk18vL9kO99lRbUt1F7fSntRo6R+bBINMX vf7bry2XfGkjGOTQnp2gJjisojZz5bF3J0CvxEWN9Ov4bGA5wXpFY0y4UAJyTnX6SMut Wzl+zzCXaKDkUgRaFKqriJeMR+AH2UXTN1dJiCi83tDkdlhgGTiVEh6aZq70yxORDDnC qJzMJEkKPoHOWvrdDCfLkqHS8GkEqpiawVSoCL4IMy9zp5B52ZkwDpJAsF+Y7IzgAaI9 p2jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256371; x=1781861171; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=/OOL9Fbb5ab9YXxSbJvRKruTCR6weoazdSeJyfd3wBk=; b=kFvy9efK+ZixeNnWJXb7Gva/q5TLs65wzSWAbL1i8hu2S/rzvAG4/FZdVR/w4odNtz kLEzjiIHOzlJGXpr+LwTuin8tBrr+0+ue9f7kfZzPGcMjY5oC1cdaAPn5hRvDxzku98v we9QgkofbK0AxEfOOxLSQ8T9ReLl5TEpkPgPXbF3QpCUlAnjL+b+SsZ5te0N8avtoLWx 1OAYw4I3DUeOZCzeMaOd2pVTN2wanM8RJzN8AOTzURSjtfCGQtwEaIvcoBJ7+plOY2Zq a4Gcb/PYxzz42WgRfFQw+iS0YryDcH/Hl1t0YLsxyHlxdhxbrKcbUTHLy+sp9jCATP5/ YMSw== X-Forwarded-Encrypted: i=1; AFNElJ+mNeeNpyfqJ5QRix4+fjEs4JaCochf3Ap5oxnAIHWvHYrTRC0ZA+FcfiDs5mCQ+a1PoIxLS7oHamwJ9CM=@vger.kernel.org X-Gm-Message-State: AOJu0YyUhzHCABEhEIt5pXi8JPm+1luM4qY+sTGkpF/fQD8vP066pFJL GKlohmIwUWTi7bZn9QIjoDBjrWBbW1L8b0/dfUfhmlOk9iSFPUJOqN6uF7aXYs2YKIDsWe0Xe9u da96mcpcAJ4fdXt2+N+eHBQruDaQ9IGwNsu4fJavU1AyIif8+v8rmFV79hzHy1MvPpes= X-Gm-Gg: Acq92OGYMylYUKw1OXDrUplvDq5js5ZI2QNQwgzUZ0MSyl4aTBFgl/v2IhOadh9BA/J 01rmtk9m6gwn0YGXVA0dEhc2SJkicZyD4gW6WCAxb1BM5l0kWNMyPGB1BKcIIgwNluWvyr0dCck HETi1GDFKZcGxD7Wf0MskciC86H4/0gbyflUoKFch0njxyWmgFOB+QZn1aYGIdanksbcRloGJey +WPWVDa0sbt7gx6HZ1zzvgIev5ktUeRTlPENSVOTzJTIIKRj5aFZAchBs8RGnX6e1X6F01FGW1g w/Lr0nvIPSucBJO7lt6u1O5K8YTqp+2uoNJJ0zA59NCVlHFaIVwgwgLGw7jUD6+PUDSwEkntnIa 3qQ5tUFXsE42cj2CiU8QltQrw2dXFhuew88qwKT62uelMjURYVfuneoFp+kwNWgWZlq89is+CtC 9HYaw1a99mZMVC/eGgWE0xEq24Yvj4gsd/4GY= X-Received: by 2002:a05:6102:b10:b0:631:b834:e052 with SMTP id ada2fe7eead31-71e88b2b1f8mr876016137.12.1781256371352; Fri, 12 Jun 2026 02:26:11 -0700 (PDT) X-Received: by 2002:a05:6102:b10:b0:631:b834:e052 with SMTP id ada2fe7eead31-71e88b2b1f8mr875999137.12.1781256370737; Fri, 12 Jun 2026 02:26:10 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.26.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:26:09 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:44 +0300 Subject: [PATCH v4 12/16] media: iris: implement support for the Agatti platform Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-12-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=17237; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=9UNxbtDOKcqj/XRj767wK8XZ/LIeAPPIVLk9YZhcHWE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CQOr+Td0y8PrVbuhAaUHXocQxALKhMhYI2H aacRx7rGUWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQkAAKCRCLPIo+Aiko 1ZnzB/42dGP/KtSPQwmdwhXsDECawOCywVdthUHyd29fB8BGp5la41YuYzaVYX3tTADIT6MKZ7z BPdyeL8OGMgrIJk3cxElsfF3/5/AaMhsadCHMwhMn4EuzGsxg+xBKUs1cGG/74aGXZUBoEtV/RH CD+g1WyJJyelf4EDoY32PRed4Hby275H1OtUtg0rHutr6ypoN3UpP/oAHvVjBqJxZeRg3gxsEJg Eo3aeTTf9D68D+i9f4tXNWpuEMtw9XmKVlCbKUIUYefRZ/k53guKTRe4uGBFuAfjJ5PRPv3H1JL 1DZVaZvxwSjGRFqiIr0YWq4wp80jQluUcn7OVmPztc1IPZfO X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfXyhqPHxgQ1MX/ kXLwDbwLewASH2Y6mDOl2MJi90fVuFGtO7vdPeAkYv+rRIcSLLFsuvNtB5NOXwUODI5AYcwC1U3 qp1VrYamy4wa/MaSZKZM7PJI03bi3/0= X-Proofpoint-GUID: 5Q7aVoXpyqGf5BKdUkgJ1JBw72WESiW- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX9brI8+Kay73w B/e0syLjkJV51HxWtFOOyA7E4Zsgf5VkJB/xgD7fkssxX39dst72W2eOTCq+5qb/VewLuIJSlDM ZaFOTpd80QpObeMteQNJmbnCW8fogq4cvSUpstwmPsYFDn7M8A5Uaeer5CKzlB+26/q9ttYl4Vd 58kmUTUHxaWq9y1Ao7oQ57RLNS89mLfMaqg6zkZ0s1I+mZCbHMr1eiEWl9jI3G3wuygMdfo5j2J nZT8DopClziLRw/DjThegLx2lY37I3mjGnWhFIqN3spbo91MStzJzo5Hetbzh3DxhFPp3FkUVn3 3DSqMpui5VxiSKh+ssqh1r66NzAx082cFSkJebMxS/JwJBFTRuBE82Xio1KUjL9ISSrIlo3Rag0 UEIcfsUI4T6BU8cyq2iYqMDBY404ibdiDadwcKPWqY66A1ZG+CcWVC6/jcMGaLIYgyQnglGwsIZ RCpVFUkH3BO+eeyBSLg== X-Authority-Analysis: v=2.4 cv=DppmPm/+ c=1 sm=1 tr=0 ts=6a2bd0b4 cx=c_pps a=KB4UBwrhAZV1kjiGHFQexw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=dOk1iDCBItVmpnauvPoA:9 a=QEXdDO2ut3YA:10 a=o1xkdb1NAhiiM49bd1HK:22 X-Proofpoint-ORIG-GUID: 5Q7aVoXpyqGf5BKdUkgJ1JBw72WESiW- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 phishscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 spamscore=0 clxscore=1015 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 Port support for the AR50Lt video codec core (present for example on the Agatti platform) to the Iris driver. Unlike more recent cores this generation doesn't have the PIPE property (as it always has only one pipe). Also, unlike newer platforms, buffer sizes are requested from the firmware instead of being calculated by the driver. Co-developed-by: Dikshita Agarwal Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/Makefile | 1 + drivers/media/platform/qcom/iris/iris_hfi_gen1.c | 227 +++++++++++++++++= ++++ .../platform/qcom/iris/iris_platform_common.h | 6 + .../platform/qcom/iris/iris_platform_vpu_ar50lt.c | 110 ++++++++++ drivers/media/platform/qcom/iris/iris_probe.c | 4 + drivers/media/platform/qcom/iris/iris_vpu_buffer.c | 13 ++ drivers/media/platform/qcom/iris/iris_vpu_buffer.h | 1 + 7 files changed, 362 insertions(+) diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/plat= form/qcom/iris/Makefile index f1b204b95694..bbd1f724963e 100644 --- a/drivers/media/platform/qcom/iris/Makefile +++ b/drivers/media/platform/qcom/iris/Makefile @@ -14,6 +14,7 @@ qcom-iris-objs +=3D iris_buffer.o \ iris_hfi_queue.o \ iris_platform_vpu2.o \ iris_platform_vpu3x.o \ + iris_platform_vpu_ar50lt.o \ iris_power.o \ iris_probe.o \ iris_resources.o \ diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c b/drivers/med= ia/platform/qcom/iris/iris_hfi_gen1.c index ca1545d28b53..f57af31dbd9f 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1.c @@ -443,3 +443,230 @@ const struct iris_firmware_data iris_hfi_gen1_data = =3D { .enc_ip_int_buf_tbl =3D sm8250_enc_ip_int_buf_tbl, .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl), }; + +static const struct platform_inst_fw_cap iris_inst_fw_cap_gen1_ar50lt_dec[= ] =3D { + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROPERTY_PARAM_WORK_MODE, + .set =3D iris_set_stage, + }, +}; + +static const struct platform_inst_fw_cap inst_fw_cap_gen1_ar50lt_enc[] =3D= { + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROPERTY_PARAM_WORK_MODE, + .set =3D iris_set_stage, + }, + { + .cap_id =3D PROFILE_H264, + .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH), + .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D PROFILE_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE), + .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D LEVEL_H264, + .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2), + .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D LEVEL_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D HEADER_MODE, + .min =3D V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, + .max =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) | + BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME), + .value =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .hfi_id =3D HFI_PROPERTY_CONFIG_VENC_SYNC_FRAME_SEQUENCE_HEADER, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_header_mode_gen1, + }, + { + .cap_id =3D BITRATE, + .min =3D BITRATE_MIN, + .max =3D BITRATE_MAX_AR50LT, + .step_or_mask =3D BITRATE_STEP, + .value =3D BITRATE_DEFAULT_AR50LT, + .hfi_id =3D HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_bitrate_gen1, + }, + { + .cap_id =3D BITRATE_MODE, + .min =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .max =3D V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) | + BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR), + .value =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_RATE_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_bitrate_mode_gen1, + }, + { + .cap_id =3D FRAME_SKIP_MODE, + .min =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .max =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) | + BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT), + .value =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + }, + { + .cap_id =3D FRAME_RC_ENABLE, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 1, + }, + { + .cap_id =3D GOP_SIZE, + .min =3D 0, + .max =3D (1 << 16) - 1, + .step_or_mask =3D 1, + .value =3D 30, + .set =3D iris_set_u32 + }, + { + .cap_id =3D ENTROPY_MODE, + .min =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .max =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) | + BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC), + .value =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_entropy_mode_gen1, + }, + { + .cap_id =3D MIN_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MIN_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP_HEVC, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MAX_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MAX_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP_HEVC, + .step_or_mask =3D 1, + .value =3D MAX_QP_HEVC, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, +}; + +static const u32 iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl[] =3D { + BUF_BIN, + BUF_SCRATCH_1, +}; + +const struct iris_firmware_data iris_hfi_gen1_ar50lt_data =3D { + .init_hfi_ops =3D &iris_hfi_gen1_sys_ops_init, + + .inst_fw_caps_dec =3D iris_inst_fw_cap_gen1_ar50lt_dec, + .inst_fw_caps_dec_size =3D ARRAY_SIZE(iris_inst_fw_cap_gen1_ar50lt_dec), + .inst_fw_caps_enc =3D inst_fw_cap_gen1_ar50lt_enc, + .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_gen1_ar50lt_enc), + + .dec_input_config_params_default =3D + sm8250_vdec_input_config_param_default, + .dec_input_config_params_default_size =3D + ARRAY_SIZE(sm8250_vdec_input_config_param_default), + .enc_input_config_params =3D sm8250_venc_input_config_param, + .enc_input_config_params_size =3D + ARRAY_SIZE(sm8250_venc_input_config_param), + + .dec_ip_int_buf_tbl =3D iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl, + .dec_ip_int_buf_tbl_size =3D ARRAY_SIZE(iris_hfi_gen2_ar50lt_dec_ip_int_b= uf_tbl), + .dec_op_int_buf_tbl =3D sm8250_dec_op_int_buf_tbl, + .dec_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_dec_op_int_buf_tbl), + + .enc_ip_int_buf_tbl =3D sm8250_enc_ip_int_buf_tbl, + .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl), +}; diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 6a189489369f..bc04831ae7fc 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -39,6 +39,10 @@ struct iris_inst; #define MAX_HEVC_VBR_LAYER_HP_SLIDING_WINDOW 5 #define MAX_HIER_CODING_LAYER_GEN1 6 =20 +#define BITRATE_MAX_AR50LT 100000000 +#define BITRATE_DEFAULT_AR50LT 20000000 +#define MIN_QP_8BIT_AR50LT 0 + enum stage_type { STAGE_1 =3D 1, STAGE_2 =3D 2, @@ -51,8 +55,10 @@ enum pipe_type { }; =20 extern const struct iris_firmware_data iris_hfi_gen1_data; +extern const struct iris_firmware_data iris_hfi_gen1_ar50lt_data; extern const struct iris_firmware_data iris_hfi_gen2_data; =20 +extern const struct iris_platform_data qcm2290_data; extern const struct iris_platform_data qcs8300_data; extern const struct iris_platform_data sc7280_data; extern const struct iris_platform_data sm8250_data; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c b/= drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c new file mode 100644 index 000000000000..393256f39112 --- /dev/null +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c @@ -0,0 +1,110 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include "iris_core.h" +#include "iris_ctrls.h" +#include "iris_hfi_gen2.h" +#include "iris_hfi_gen2_defines.h" +#include "iris_platform_common.h" +#include "iris_vpu_buffer.h" +#include "iris_vpu_common.h" + +#define WRAPPER_INTR_STATUS_A2HWD_BMSK 0x10 + +const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen1_s6_desc =3D { + .firmware_data =3D &iris_hfi_gen1_ar50lt_data, + .get_vpu_buffer_size =3D iris_vpu_ar50lt_gen1_buf_size, + .fwname =3D "qcom/venus-6.0/venus.mbn", +}; + +static const u32 iris_fmts_ar50lt_dec[] =3D { + [IRIS_FMT_H264] =3D V4L2_PIX_FMT_H264, + [IRIS_FMT_HEVC] =3D V4L2_PIX_FMT_HEVC, + [IRIS_FMT_VP9] =3D V4L2_PIX_FMT_VP9, +}; + +static const struct bw_info iris_bw_table_dec_ar50lt[] =3D { + { ((1920 * 1080) / 256) * 60, 1564000, }, + { ((1920 * 1080) / 256) * 30, 791000, }, + { ((1280 * 720) / 256) * 60, 688000, }, + { ((1280 * 720) / 256) * 30, 347000, }, +}; + +static const struct icc_info iris_icc_info_ar50lt[] =3D { + { "cpu-cfg", 1000, 1000 }, + { "video-mem", 1000, 6500000 }, +}; + +static const char * const iris_pmdomain_table_ar50lt[] =3D { "venus", "vco= dec0" }; + +static const char * const iris_opp_pd_table_ar50lt[] =3D { "cx" }; + +static const struct platform_clk_data iris_clk_table_ar50lt[] =3D { + {IRIS_CTRL_CLK, "core" }, + {IRIS_AXI_CLK, "iface" }, + {IRIS_AHB_CLK, "bus" }, + {IRIS_HW_CLK, "vcodec0_core" }, + {IRIS_HW_AHB_CLK, "vcodec0_bus" }, + {IRIS_THROTTLE_CLK, "throttle" }, +}; + +static const char * const iris_opp_clk_table_ar50lt[] =3D { + "vcodec0_core", + NULL, +}; + +static const struct tz_cp_config tz_cp_config_ar50lt[] =3D { + { + .cp_start =3D 0, + .cp_size =3D 0x25800000, + .cp_nonpixel_start =3D 0x01000000, + .cp_nonpixel_size =3D 0x24800000, + }, +}; + +static struct platform_inst_caps platform_inst_cap_ar50lt =3D { + .min_frame_width =3D 128, + .max_frame_width =3D 1920, + .min_frame_height =3D 128, + .max_frame_height =3D 1920, + .max_mbpf =3D (1920 * 1088) / 256, + .mb_cycles_vpp =3D 440, + .mb_cycles_fw =3D 733003, + .mb_cycles_fw_vpp =3D 225975, + .max_frame_rate =3D 120, + .max_operating_rate =3D 120, +}; + +const struct iris_platform_data qcm2290_data =3D { + .firmware_desc_gen1 =3D &iris_vpu_ar50lt_p1_gen1_s6_desc, + .vpu_ops =3D &iris_vpu_ar50lt_ops, + .icc_tbl =3D iris_icc_info_ar50lt, + .icc_tbl_size =3D ARRAY_SIZE(iris_icc_info_ar50lt), + .bw_tbl_dec =3D iris_bw_table_dec_ar50lt, + .bw_tbl_dec_size =3D ARRAY_SIZE(iris_bw_table_dec_ar50lt), + .pmdomain_tbl =3D iris_pmdomain_table_ar50lt, + .pmdomain_tbl_size =3D ARRAY_SIZE(iris_pmdomain_table_ar50lt), + .opp_pd_tbl =3D iris_opp_pd_table_ar50lt, + .opp_pd_tbl_size =3D ARRAY_SIZE(iris_opp_pd_table_ar50lt), + .clk_tbl =3D iris_clk_table_ar50lt, + .clk_tbl_size =3D ARRAY_SIZE(iris_clk_table_ar50lt), + .opp_clk_tbl =3D iris_opp_clk_table_ar50lt, + /* Upper bound of DMA address range */ + .dma_mask =3D 0xe0000000 - 1, + .inst_iris_fmts =3D iris_fmts_ar50lt_dec, + .inst_iris_fmts_size =3D ARRAY_SIZE(iris_fmts_ar50lt_dec), + .inst_caps =3D &platform_inst_cap_ar50lt, + .tz_cp_config_data =3D tz_cp_config_ar50lt, + .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_ar50lt), + .num_vpp_pipe =3D 1, + .no_rpmh =3D true, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 2, + .max_session_count =3D 8, + .max_core_mbpf =3D ((1920 * 1088) / 256) * 4, + /* Concurrency: 1080p@30 decode + 1080p@30 encode */ + /* Concurrency: 3 * 1080p@30 decode */ + .max_core_mbps =3D (((1920 * 1088) / 256) * 90), +}; diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/= platform/qcom/iris/iris_probe.c index 7fe31136df21..472d9e293ece 100644 --- a/drivers/media/platform/qcom/iris/iris_probe.c +++ b/drivers/media/platform/qcom/iris/iris_probe.c @@ -356,6 +356,10 @@ static const struct dev_pm_ops iris_pm_ops =3D { }; =20 static const struct of_device_id iris_dt_match[] =3D { + { + .compatible =3D "qcom,qcm2290-venus", + .data =3D &qcm2290_data, + }, { .compatible =3D "qcom,qcs8300-iris", .data =3D &qcs8300_data, diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.c index fb6f1016415e..4a39b8fef52b 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.c @@ -2194,6 +2194,19 @@ u32 iris_vpu4x_buf_size(struct iris_inst *inst, enum= iris_buffer_type buffer_typ return size; } =20 +u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type) +{ + const struct iris_hfi_session_ops *hfi_ops =3D inst->hfi_session_ops; + int ret; + + /* return 0 on error to let the driver cope */ + ret =3D hfi_ops->session_get_property(inst, HFI_PROPERTY_CONFIG_BUFFER_RE= QUIREMENTS); + if (ret) + return 0; + + return inst->buffers[buffer_type].size; +} + static u32 internal_buffer_count(struct iris_inst *inst, enum iris_buffer_type buffer_type) { diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.h index 8c0d6b7b5de8..1d07137c70cd 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.h @@ -288,6 +288,7 @@ static inline u32 size_av1d_qp(u32 frame_width, u32 fra= me_height) u32 iris_vpu_buf_size(struct iris_inst *inst, enum iris_buffer_type buffer= _type); u32 iris_vpu33_buf_size(struct iris_inst *inst, enum iris_buffer_type buff= er_type); u32 iris_vpu4x_buf_size(struct iris_inst *inst, enum iris_buffer_type buff= er_type); +u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type); int iris_vpu_buf_count(struct iris_inst *inst, enum iris_buffer_type buffe= r_type); =20 #endif --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 7BA8B3AD517 for ; Fri, 12 Jun 2026 09:26:15 +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=1781256377; cv=none; b=mUIf8pMr6qHG4R5YNRtt40CVjrMzET+GlwKrjMc082+5xfEq5sCGuKoRr91ZggWT6xeTc7BamgcrF/cYkicpabU3DpTMa7joysWiExU1F8wlut4q8pNZGqTxY5LS6v9NX+iJPUNODjr3FYg7OQATQeqkOpaqkQCsMEGLyhdOK+A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256377; c=relaxed/simple; bh=1rqisT53JJGh/fNyyVTyZE2yM1bDUT6+91E494r1IQQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Rwm4OrGQTLDmHWvxfoU3ZQD39hiECnpgNzMfKOFWhivio0gBzCPFcdP1YL0mAoiLw84AQDnOmosekVs2x3hjaq83fDaPK0HFZ0mk7EhQLlY1prsTG45pl06K72Hc9pPk6DkqB7jIVnoObvYb5xuj0KYGYkueHlBsuqb0rgS7UU0= 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=kOAFgGFK; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UlU6pARb; 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="kOAFgGFK"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UlU6pARb" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C39Qav2502648 for ; Fri, 12 Jun 2026 09:26:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= fGMRe9Q9Hy9J04p9JzSuFbN7mDJTpbypQJ8HaqAzsFE=; b=kOAFgGFKjBHNFNt0 htWxS9QXtQLEn4e0pCrPwfpqayxEIE3UjkbMI5X+FMJlPhyTSrJdBFXIAKwLg0cR 7jv7ST7FAWhVCKhyMoZsQGzFXsozqidk3lJzyRTUL7r58xB8zbUWc0I/fkVICu4S ze7euxUqcJk+YlQIs8vlRF9qqiLRTnjG9FMCzXrrzGNAGzqmMRelWcdna+0Ur9QC w+axqckjZAWHWKQB+I5bktmujdfgXlrYfMkHP2Ot1yCH8pZSfboTbyF6ZFErEIlT gbX4cdbUTs2a8pz1PUxEaRMwE0cTh4lLX/RSkZWSwDvgXdNg2RXub/1BpX4wh9Fj zLYB3w== Received: from mail-ua1-f72.google.com (mail-ua1-f72.google.com [209.85.222.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er0xd30r3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:26:14 +0000 (GMT) Received: by mail-ua1-f72.google.com with SMTP id a1e0cc1a2514c-963b0a0b727so178513241.1 for ; Fri, 12 Jun 2026 02:26:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256374; x=1781861174; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=fGMRe9Q9Hy9J04p9JzSuFbN7mDJTpbypQJ8HaqAzsFE=; b=UlU6pARb7KM1xXINLm8krlKf64NzQaD9ygHzpOzXmOx1c91V/bszTSfkAV/yluPFHd y3FGl9ijkgOlQJFk1jZVKiJDQ+wNZkXVszF9zdoeNsyDL79+lzuidUfZVWAy4nGnW5P+ HL8FIeqinJ2guXrD1qFWYhEgYvhnQS0ICHSdXGxubDQX6XSmrKF8d+GdRkJdnu1CqtUF LTVuFqEQukWrYxv7HmmxCHGg0n1fElrYeF+vtGYU971kPSsiXPQ2sBwuRe2UYxu1wkBC +cI2ZGJzlAsvudco35S52yM6MKWvUDOk25T+kqeTn+Zv1ajE5U+esEN5z98t6biE7OqW YRkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256374; x=1781861174; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=fGMRe9Q9Hy9J04p9JzSuFbN7mDJTpbypQJ8HaqAzsFE=; b=NUDkdTUL4MSJaI6mI4kjbZW/pG7WLlB2AjSFH5WDNN72Xdj6m0607vtfyQhcMhH1fp o/3ESxCKufTjoRH2C1KhjX1Xc6KWC7TqJpvAFzuzY8+VgyeX1HUM85Spxiyh1YEv4Cx0 cKrq+t7UNz7RIKm8ZTE2QbKf0FBcb9D4lxNHzmDBACQLFpmwwLYrstHDQTtywGa7Zjmm 1E8s8AacPNZ34JlTpEb9bD6jeaqv9XM+3T5Litstgl+C2DHNQ4qO7C6N88mVTuyDfDSv ZZY67cyRZ9UVMhgJcZJKU88ykghwKL10/5gQHD0e10dl2CZY+U7eQPUYRQwEQdFOo9Z9 CesA== X-Forwarded-Encrypted: i=1; AFNElJ+Z25DiF4O+GQzV/IizOBB0pg07k1J09D8AyaMPY+JtQOfnAogvhk+PO89hu6AVqkYlGenl+c+2svjo6z0=@vger.kernel.org X-Gm-Message-State: AOJu0Yx26Raii0oqtrNtzSD6dzmRC8yF+f+Fh7yEA88dGxcXLISIXZ5m uUzd+4VGmqpFmUZmBv7nIegbXZXH9IX7AXswcQUArj6XeHFP8l3IeQb9p8b8Yd5htylYpqlBb+f H64hzwR70+mLfr9iava2a3wFTKRQalgNVlj/RAB+yXQIP6tQeCUTHcFxCGNB+rg9gJswyxbn2k7 k= X-Gm-Gg: Acq92OENE8so51Cxuxa/i7Jd7V0GObGskXFF/rS+FIJgKE9aoWDB70G28+Bl6vjGc39 POyKfLMo45e9IKDtrrpZgLRf3Ez5XovInoXHchyEVTfxvab6IfNhbzUQRHyQ4iG/Y06zl9O1aEh JjUHxnXkwmwgUApJ2WEHFlzNL/lOxu+aOTxR1H5jlvMZr7xyhzXYOY2g0lgW/VPNW3aE5SPpgq/ 2HUPtM1TmDCO1MdrufXbqKRWuSVRV/diPKJZPlkw5EGzUO5kv72Qijmlsa3W7/dA7ZNzFSAzjIl hbxQRNo9K6kiYSIqf93PtDz/wvUm/CJBuCl1dXklEIiDs249mm5lso0K9TC6ZfPto3b40+VwVMq 1tQHQf/6xnpEUmHizCzSeaRWFDGRS3Er+2kcp/3yElef2O8SJ80RrrLmHLguRJlQIcSLzjAQgUW BqskA4JNdtlZJe1tS5vUH/zis4XXOPOouLk18= X-Received: by 2002:a05:6102:3f06:b0:608:94e3:bd89 with SMTP id ada2fe7eead31-71e88ad679bmr714258137.1.1781256373501; Fri, 12 Jun 2026 02:26:13 -0700 (PDT) X-Received: by 2002:a05:6102:3f06:b0:608:94e3:bd89 with SMTP id ada2fe7eead31-71e88ad679bmr714241137.1.1781256372863; Fri, 12 Jun 2026 02:26:12 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.26.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:26:11 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:45 +0300 Subject: [PATCH v4 13/16] media: iris: Introduce buffer size calculations for AR50LT Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-13-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=27281; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=Nt5SKbENSmSVpgARrFtz6PX8so/LVahjAEGqJynf66I=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CRhr4IpswAl5LrXEgXmyseGw/AjDxWXXM0Q o81DH4zDm+JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQkQAKCRCLPIo+Aiko 1R02B/4lm971sP3s1Y6aQoAcR8UBd0MWs2jsM+AaDkO39C/FEvRyGlEeWjVrRH3hDn76ZDWpGXS NDHLQz8mGY2rdj6aggrxocQVswKxDlunkPuoqpFS376T0hcu1ThAxPsEKRcLgfF48v8bfodY9gj QhssJHQs8uqdfjEyPE+pWUxKrNNbBGv5a/CCO0X1LW7TZVAjXgH8Dswg/tX2S88BxkvAgvZj0Ge JG0lj69sPaiE1h2Ynr78wJWj4fmU8dAgJ9hMncb0tOX3xMNC++ngd5gdypZUd2KVWOm34+rGK1o 62LOuiCQqvUGBJ7/33/iFTAm4AgXKDFRvi6U+LglsM7mZfHO X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: gIAsQnLXeyS8u7f2t88QmMvGr9CI-vMJ X-Proofpoint-GUID: gIAsQnLXeyS8u7f2t88QmMvGr9CI-vMJ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX9TFqw5XmofDr w1Ede5gZMizpYetIglaJhVqdM6pQplyJhGCAKpF9icWhkUjEzpZnYAInsFj4KLV+0omo65+8f+2 AIm2qEH05/ObYe2BKjjvPlrZji8AuXJBJ7urM17krXLDgJI9FDfbWcWdCC9gtoIFzho1nJDuMYT L+4Y7DlEq2RTNRqGK2Eb+waVbOCxGHDIqa75X+84GeEq4UgmvL0JqtHrr/gKfbhtZgXWMZpybv0 reiN25r9j2E5XkXPBVTLK+z9yOSNGpwGOCeflQSaiHy1A9VmAWiq+vD62r3Ijh9iKQLdLredGIU xo7X+7WyF5shgeLCIsm3oPpXyhHyp1GemlbFg6wqmhiGDxeKbLkzrBOyr180OxM1wn7SMUb5+JT 43Cziqxf0f3ksSpuajn326sJvWyN/4VgugcYtFnV7cENw6PxL6sTZTFPMl5TrrXyAsV7qAbZdsU aZ4UWnX4JhT0Vl4xE7A== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX7b/1oYoKMvBn NGEiDQfZ/+ch50QDaWTAZdSwqDqBdymV17+SG6VEIQGVObIcWFoqv54maTKplN5mG4OY44R0ak0 ukOv7k+TIgmlY8kdNhU4/dDaJj1WdOQ= X-Authority-Analysis: v=2.4 cv=O6UJeh9W c=1 sm=1 tr=0 ts=6a2bd0b6 cx=c_pps a=ULNsgckmlI/WJG3HAyAuOQ==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=iravrUNok-SDL5gDNRIA:9 a=QEXdDO2ut3YA:10 a=1WsBpfsz9X-RYQiigVTh:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 phishscore=0 priorityscore=1501 spamscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 From: Dikshita Agarwal Introduces AR50LT buffer size calculation for both encoder and decoder. Reuse the buffer size calculation which are common, while adding the AR50LT specific ones separately. Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_vpu_buffer.c | 401 +++++++++++++++++= ++++ drivers/media/platform/qcom/iris/iris_vpu_buffer.h | 37 ++ 2 files changed, 438 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.c index 4a39b8fef52b..ca03d6570513 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.c @@ -50,6 +50,32 @@ static u32 hfi_buffer_bin_h264d(u32 frame_width, u32 fra= me_height, u32 num_vpp_p return size_h264d_hw_bin_buffer(n_aligned_w, n_aligned_h, num_vpp_pipes); } =20 +static u32 size_h264d_hw_bin_buffer_ar50lt(u32 frame_width, u32 frame_heig= ht, u32 num_vpp_pipes) +{ + u32 size_yuv, size_bin_hdr, size_bin_res; + + size_yuv =3D ((frame_width * frame_height * 3) >> 1); + if (size_yuv <=3D 1920 * 1088 * 3 / 2) { + size_bin_hdr =3D size_yuv * H264_CABAC_HDR_RATIO_SM_TOT; + size_bin_res =3D size_yuv * H264_CABAC_RES_RATIO_SM_TOT; + } else { + size_bin_hdr =3D (size_yuv * 3) / 5; + size_bin_res =3D (size_yuv * 3) / 2; + } + size_bin_hdr =3D ALIGN(size_bin_hdr, DMA_ALIGNMENT); + size_bin_res =3D ALIGN(size_bin_res, DMA_ALIGNMENT); + + return size_bin_hdr + size_bin_res; +} + +static u32 hfi_buffer_bin_h264d_ar50lt(u32 frame_width, u32 frame_height, = u32 num_vpp_pipes) +{ + u32 n_aligned_h =3D ALIGN(frame_height, 16); + u32 n_aligned_w =3D ALIGN(frame_width, 16); + + return size_h264d_hw_bin_buffer_ar50lt(n_aligned_w, n_aligned_h, num_vpp_= pipes); +} + static u32 size_av1d_hw_bin_buffer(u32 frame_width, u32 frame_height, u32 = num_vpp_pipes) { u32 size_yuv, size_bin_hdr, size_bin_res; @@ -103,6 +129,21 @@ static u32 hfi_buffer_bin_vp9d(u32 frame_width, u32 fr= ame_height, u32 num_vpp_pi return _size * num_vpp_pipes; } =20 +static u32 hfi_buffer_bin_vp9d_ar50lt(u32 frame_width, u32 frame_height, u= 32 num_vpp_pipes) +{ + u32 size_yuv, size; + + size_yuv =3D ALIGN(frame_width, 16) * ALIGN(frame_height, 16) * 3 / 2; + size_yuv =3D ALIGN(size_yuv, DMA_ALIGNMENT); + + size =3D ALIGN(((((MAX(size_yuv, VPX_DECODER_FRAME_BIN_BUFFER_SIZE)) * 6)= / 5) / + num_vpp_pipes), DMA_ALIGNMENT) + + ALIGN((((MAX(size_yuv, VPX_DECODER_FRAME_BIN_BUFFER_SIZE)) * 4) / num_vp= p_pipes), + DMA_ALIGNMENT); + + return size * num_vpp_pipes; +} + static u32 hfi_buffer_bin_h265d(u32 frame_width, u32 frame_height, u32 num= _vpp_pipes) { u32 n_aligned_w =3D ALIGN(frame_width, 16); @@ -111,6 +152,32 @@ static u32 hfi_buffer_bin_h265d(u32 frame_width, u32 f= rame_height, u32 num_vpp_p return size_h265d_hw_bin_buffer(n_aligned_w, n_aligned_h, num_vpp_pipes); } =20 +static u32 size_h265d_hw_bin_buffer_ar50lt(u32 frame_width, u32 frame_heig= ht, u32 num_vpp_pipes) +{ + u32 size_yuv, size_bin_hdr, size_bin_res; + + size_yuv =3D ((frame_width * frame_height * 3) >> 1); + if (size_yuv <=3D ((BIN_BUFFER_THRESHOLD * 3) >> 1)) { + size_bin_hdr =3D size_yuv * H265_CABAC_HDR_RATIO_SM_TOT; + size_bin_res =3D size_yuv * H265_CABAC_RES_RATIO_SM_TOT; + } else { + size_bin_hdr =3D (size_yuv * 41) / 50; + size_bin_res =3D (size_yuv * 59) / 50; + } + size_bin_hdr =3D ALIGN(size_bin_hdr, DMA_ALIGNMENT); + size_bin_res =3D ALIGN(size_bin_res, DMA_ALIGNMENT); + + return size_bin_hdr + size_bin_res; +} + +static u32 hfi_buffer_bin_h265d_ar50lt(u32 frame_width, u32 frame_height, = u32 num_vpp_pipes) +{ + u32 n_aligned_w =3D ALIGN(frame_width, 16); + u32 n_aligned_h =3D ALIGN(frame_height, 16); + + return size_h265d_hw_bin_buffer_ar50lt(n_aligned_w, n_aligned_h, num_vpp_= pipes); +} + static u32 hfi_buffer_comv_h264d(u32 frame_width, u32 frame_height, u32 _c= omv_bufcount) { u32 frame_height_in_mbs =3D DIV_ROUND_UP(frame_height, 16); @@ -174,6 +241,14 @@ static u32 size_h264d_bse_cmd_buf(u32 frame_height) SIZE_H264D_BSE_CMD_PER_BUF; } =20 +static u32 size_h264d_bse_cmd_buf_ar50lt(u32 frame_height) +{ + u32 height =3D ALIGN(frame_height, 32); + + return min_t(u32, (DIV_ROUND_UP(height, 16) * 12), H264D_MAX_SLICE) * + SIZE_H264D_BSE_CMD_PER_BUF; +} + static u32 size_h265d_bse_cmd_buf(u32 frame_width, u32 frame_height) { u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * @@ -185,6 +260,18 @@ static u32 size_h265d_bse_cmd_buf(u32 frame_width, u32= frame_height) return _size; } =20 +static u32 size_h265d_bse_cmd_buf_ar50lt(u32 frame_width, u32 frame_height) +{ + u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * + (ALIGN(frame_height, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS)) * + NUM_HW_PIC_BUF, DMA_ALIGNMENT); + + _size =3D min_t(u32, _size, H265D_MAX_SLICE_AR50LT + 1); + _size =3D 2 * _size * SIZE_H265D_BSE_CMD_PER_BUF; + + return _size; +} + static u32 hfi_buffer_persist_h265d(u32 rpu_enabled) { return ALIGN((SIZE_SLIST_BUF_H265 * NUM_SLIST_BUF_H265 + @@ -195,6 +282,13 @@ static u32 hfi_buffer_persist_h265d(u32 rpu_enabled) DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_persist_h265d_ar50lt(void) +{ + return ALIGN((SIZE_SLIST_BUF_H265 * NUM_SLIST_BUF_H265 + + H265_NUM_TILE * sizeof(u32) + NUM_HW_PIC_BUF * SIZE_SEI_USERDATA), + DMA_ALIGNMENT); +} + static inline u32 hfi_iris3_vp9d_comv_size(void) { @@ -212,6 +306,13 @@ static u32 hfi_buffer_persist_vp9d(void) HDR10_HIST_EXTRADATA_SIZE; } =20 +static u32 hfi_buffer_persist_vp9d_ar50lt(void) +{ + return ALIGN(VP9_NUM_PROBABILITY_TABLE_BUF * VP9_PROB_TABLE_SIZE, DMA_ALI= GNMENT) + + ALIGN(hfi_iris3_vp9d_comv_size(), DMA_ALIGNMENT) + + ALIGN(MAX_SUPERFRAME_HEADER_LEN, DMA_ALIGNMENT); +} + static u32 size_h264d_vpp_cmd_buf(u32 frame_height) { u32 size, height =3D ALIGN(frame_height, 32); @@ -222,6 +323,16 @@ static u32 size_h264d_vpp_cmd_buf(u32 frame_height) return size > VPP_CMD_MAX_SIZE ? VPP_CMD_MAX_SIZE : size; } =20 +static u32 size_h264d_vpp_cmd_buf_ar50lt(u32 frame_height) +{ + u32 size, height =3D ALIGN(frame_height, 32); + + size =3D min_t(u32, (DIV_ROUND_UP(height, 16) * 12), H264D_MAX_SLICE) * + SIZE_H264D_VPP_CMD_PER_BUF; + + return size > VPP_CMD_MAX_SIZE ? VPP_CMD_MAX_SIZE : size; +} + static u32 hfi_buffer_persist_h264d(void) { return ALIGN(SIZE_SLIST_BUF_H264 * NUM_SLIST_BUF_H264 + @@ -230,6 +341,11 @@ static u32 hfi_buffer_persist_h264d(void) DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_persist_h264d_ar50lt(void) +{ + return ALIGN((SIZE_SLIST_BUF_H264 * NUM_SLIST_BUF_H264), DMA_ALIGNMENT); +} + static u32 hfi_buffer_persist_av1d(u32 max_width, u32 max_height, u32 tota= l_ref_count) { u32 comv_size, size; @@ -255,6 +371,17 @@ static u32 hfi_buffer_non_comv_h264d(u32 frame_width, = u32 frame_height, u32 num_ return ALIGN(size, DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_non_comv_h264d_ar50lt(u32 frame_width, u32 frame_hei= ght, u32 num_vpp_pipes) +{ + u32 size_bse =3D size_h264d_bse_cmd_buf_ar50lt(frame_height); + u32 size_vpp =3D size_h264d_vpp_cmd_buf_ar50lt(frame_height); + u32 size =3D ALIGN(size_bse, DMA_ALIGNMENT) + + ALIGN(size_vpp, DMA_ALIGNMENT) + + ALIGN(SIZE_HW_PIC(SIZE_H264D_HW_PIC_T), DMA_ALIGNMENT); + + return ALIGN(size, DMA_ALIGNMENT); +} + static u32 size_h265d_vpp_cmd_buf(u32 frame_width, u32 frame_height) { u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * @@ -269,6 +396,20 @@ static u32 size_h265d_vpp_cmd_buf(u32 frame_width, u32= frame_height) return _size; } =20 +static u32 size_h265d_vpp_cmd_buf_ar50lt(u32 frame_width, u32 frame_height) +{ + u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * + (ALIGN(frame_height, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS)) * + NUM_HW_PIC_BUF, DMA_ALIGNMENT); + _size =3D min_t(u32, _size, H265D_MAX_SLICE_AR50LT + 1); + _size =3D ALIGN(_size, 4); + _size =3D 2 * _size * SIZE_H265D_VPP_CMD_PER_BUF_AR50LT; + if (_size > VPP_CMD_MAX_SIZE) + _size =3D VPP_CMD_MAX_SIZE; + + return _size; +} + static u32 hfi_buffer_non_comv_h265d(u32 frame_width, u32 frame_height, u3= 2 num_vpp_pipes) { u32 _size_bse =3D size_h265d_bse_cmd_buf(frame_width, frame_height); @@ -285,6 +426,20 @@ static u32 hfi_buffer_non_comv_h265d(u32 frame_width, = u32 frame_height, u32 num_ return ALIGN(_size, DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_non_comv_h265d_ar50lt(u32 frame_width, u32 frame_hei= ght, u32 num_vpp_pipes) +{ + u32 _size_bse =3D size_h265d_bse_cmd_buf_ar50lt(frame_width, frame_height= ); + u32 _size_vpp =3D size_h265d_vpp_cmd_buf_ar50lt(frame_width, frame_height= ); + u32 _size =3D ALIGN(_size_bse, DMA_ALIGNMENT) + + ALIGN(_size_vpp, DMA_ALIGNMENT) + + ALIGN(2 * sizeof(u16) * + (ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS) * + (ALIGN(frame_height, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS), DMA_ALIGNM= ENT) + + ALIGN(SIZE_HW_PIC(SIZE_H265D_HW_PIC_T), DMA_ALIGNMENT); + + return ALIGN(_size, DMA_ALIGNMENT); +} + static u32 size_vpss_lb(u32 frame_width, u32 frame_height) { u32 opb_lb_wr_llb_y_buffer_size, opb_lb_wr_llb_uv_buffer_size; @@ -317,6 +472,13 @@ u32 size_h265d_lb_fe_top_data(u32 frame_width, u32 fra= me_height) (ALIGN(frame_width, 64) + 8) * 2; } =20 +static inline +u32 size_h265d_lb_fe_top_data_ar50lt(u32 frame_width, u32 frame_height) +{ + return ALIGN(MAX_FE_NBR_DATA_LUMA_LINE_BUFFER_SIZE * + (ALIGN(frame_width, 64) + 8), DMA_ALIGNMENT) * 2; +} + static inline u32 size_h265d_lb_fe_top_ctrl(u32 frame_width, u32 frame_height) { @@ -348,6 +510,17 @@ u32 size_h265d_lb_se_left_ctrl(u32 frame_width, u32 fr= ame_height) MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE)); } =20 +static inline +u32 size_h265d_lb_se_left_ctrl_ar50lt(u32 frame_width, u32 frame_height) +{ + return max_t(u32, ((frame_height + 16 - 1) / 8) * + MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE_AR50LT, + max_t(u32, ((frame_height + 32 - 1) / 8) * + MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE_AR50LT, + ((frame_height + 64 - 1) / 8) * + MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT)); +} + static inline u32 size_h265d_lb_pe_top_data(u32 frame_width, u32 frame_height) { @@ -355,6 +528,13 @@ u32 size_h265d_lb_pe_top_data(u32 frame_width, u32 fra= me_height) (ALIGN(frame_width, LCU_MIN_SIZE_PELS) / LCU_MIN_SIZE_PELS); } =20 +static inline +u32 size_h265d_lb_pe_top_data_ar50lt(u32 frame_width, u32 frame_height) +{ + return MAX_PE_NBR_DATA_LCU64_LINE_BUFFER_SIZE_AR50LT * + (ALIGN(frame_width, LCU_MIN_SIZE_PELS) / LCU_MIN_SIZE_PELS); +} + static inline u32 size_h265d_lb_vsp_top(u32 frame_width, u32 frame_height) { @@ -404,6 +584,29 @@ u32 hfi_buffer_line_h265d(u32 frame_width, u32 frame_h= eight, bool is_opb, u32 nu return ALIGN((_size + vpss_lb_size), DMA_ALIGNMENT); } =20 +static inline +u32 hfi_buffer_line_h265d_ar50lt(u32 frame_width, u32 frame_height, bool i= s_opb, u32 num_vpp_pipes) +{ + u32 size; + + size =3D ALIGN(size_h265d_lb_fe_top_data_ar50lt(frame_width, frame_height= ), DMA_ALIGNMENT) + + ALIGN(size_h265d_lb_fe_top_ctrl(frame_width, frame_height), DMA_ALIGNMEN= T) + + ALIGN(size_h265d_lb_fe_left_ctrl(frame_width, frame_height), + DMA_ALIGNMENT) * num_vpp_pipes + + ALIGN(size_h265d_lb_se_left_ctrl_ar50lt(frame_width, frame_height), + DMA_ALIGNMENT) * num_vpp_pipes + + ALIGN(size_h265d_lb_se_top_ctrl(frame_width, frame_height), DMA_ALIGNMEN= T) + + ALIGN(size_h265d_lb_pe_top_data_ar50lt(frame_width, frame_height), DMA_A= LIGNMENT) + + ALIGN(size_h265d_lb_vsp_top(frame_width, frame_height), DMA_ALIGNMENT) + + ALIGN(size_h265d_lb_vsp_left(frame_width, frame_height), + DMA_ALIGNMENT) * num_vpp_pipes + + ALIGN(size_h265d_lb_recon_dma_metadata_wr(frame_width, frame_height), + DMA_ALIGNMENT) * 4 + + ALIGN(size_h265d_qp(frame_width, frame_height), DMA_ALIGNMENT); + + return ALIGN(size, DMA_ALIGNMENT); +} + static inline u32 size_vpxd_lb_fe_left_ctrl(u32 frame_width, u32 frame_height) { @@ -438,6 +641,17 @@ u32 size_vpxd_lb_se_left_ctrl(u32 frame_width, u32 fra= me_height) MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE)); } =20 +static inline +u32 size_vpxd_lb_se_left_ctrl_ar50lt(u32 frame_width, u32 frame_height) +{ + return max_t(u32, ((frame_height + 15) >> 4) * + MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE_AR50LT, + max_t(u32, ((frame_height + 31) >> 5) * + MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE_AR50LT, + ((frame_height + 63) >> 6) * + MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT)); +} + static inline u32 size_vpxd_lb_recon_dma_metadata_wr(u32 frame_width, u32 frame_height) { @@ -492,6 +706,19 @@ u32 hfi_iris3_vp9d_lb_size(u32 frame_width, u32 frame_= height, u32 num_vpp_pipes) ALIGN(size_vp9d_qp(frame_width, frame_height), DMA_ALIGNMENT); } =20 +static inline +u32 hfi_ar50lt_vp9d_lb_size(u32 frame_width, u32 frame_height, u32 num_vpp= _pipes) +{ + return ALIGN(size_vpxd_lb_fe_left_ctrl(frame_width, frame_height), DMA_AL= IGNMENT) * + num_vpp_pipes + + ALIGN(size_vpxd_lb_se_left_ctrl_ar50lt(frame_width, frame_height), DMA_A= LIGNMENT) * + num_vpp_pipes + + ALIGN(size_vp9d_lb_vsp_top(frame_width, frame_height), DMA_ALIGNMENT) + + ALIGN(size_vpxd_lb_se_top_ctrl(frame_width, frame_height), DMA_ALIGNMENT= ) + + ALIGN(size_vp9d_lb_pe_top_data(frame_width, frame_height), DMA_ALIGNMENT= ) + + ALIGN(size_vp9d_lb_fe_top_data(frame_width, frame_height), DMA_ALIGNMENT= ); +} + static inline u32 hfi_buffer_line_vp9d(u32 frame_width, u32 frame_height, u32 _yuv_bufco= unt_min, bool is_opb, u32 num_vpp_pipes) @@ -507,6 +734,13 @@ u32 hfi_buffer_line_vp9d(u32 frame_width, u32 frame_he= ight, u32 _yuv_bufcount_mi return _lb_size + vpss_lb_size + 4096; } =20 +static inline +u32 hfi_buffer_line_vp9d_ar50lt(u32 frame_width, u32 frame_height, u32 _yu= v_bufcount_min, + bool is_opb, u32 num_vpp_pipes) +{ + return hfi_ar50lt_vp9d_lb_size(frame_width, frame_height, num_vpp_pipes); +} + static u32 hfi_buffer_line_h264d(u32 frame_width, u32 frame_height, bool is_opb, u32 num_vpp_pipes) { @@ -529,6 +763,25 @@ static u32 hfi_buffer_line_h264d(u32 frame_width, u32 = frame_height, return ALIGN((size + vpss_lb_size), DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_line_h264d_ar50lt(u32 frame_width, u32 frame_height, + bool is_opb, u32 num_vpp_pipes) +{ + u32 size; + + size =3D ALIGN(size_h264d_lb_fe_top_data_ar50lt(frame_width), DMA_ALIGNME= NT) + + ALIGN(size_h264d_lb_fe_top_ctrl_ar50lt(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_fe_left_ctrl(frame_height), DMA_ALIGNMENT) * num_vpp= _pipes + + ALIGN(size_h264d_lb_se_top_ctrl_ar50lt(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_se_left_ctrl_ar50lt(frame_height), DMA_ALIGNMENT) * + num_vpp_pipes + + ALIGN(size_h264d_lb_pe_top_data_ar50lt(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_vsp_top(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_recon_dma_metadata_wr(frame_height), DMA_ALIGNMENT) = * 2 + + ALIGN(size_h264d_qp(frame_width, frame_height), DMA_ALIGNMENT); + + return ALIGN(size, DMA_ALIGNMENT); +} + static u32 size_av1d_lb_opb_wr1_nv12_ubwc(u32 frame_width, u32 frame_heigh= t) { u32 size, y_width, y_width_a =3D 128; @@ -724,6 +977,23 @@ static u32 iris_vpu_dec_bin_size(struct iris_inst *ins= t) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_bin_size(struct iris_inst *inst) +{ + u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; + struct v4l2_format *f =3D inst->fmt_src; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_bin_h264d_ar50lt(width, height, num_vpp_pipes); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_bin_h265d_ar50lt(width, height, num_vpp_pipes); + else if (inst->codec =3D=3D V4L2_PIX_FMT_VP9) + return hfi_buffer_bin_vp9d_ar50lt(width, height, num_vpp_pipes); + + return 0; +} + static u32 iris_vpu_dec_comv_size(struct iris_inst *inst) { u32 num_comv =3D VIDEO_MAX_FRAME; @@ -785,6 +1055,18 @@ static u32 iris_vpu_dec_persist_size(struct iris_inst= *inst) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_persist_size(struct iris_inst *inst) +{ + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_persist_h264d_ar50lt(); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_persist_h265d_ar50lt(); + else if (inst->codec =3D=3D V4L2_PIX_FMT_VP9) + return hfi_buffer_persist_vp9d_ar50lt(); + + return 0; +} + static u32 iris_vpu_dec_dpb_size(struct iris_inst *inst) { if (iris_split_mode_enabled(inst)) @@ -808,6 +1090,21 @@ static u32 iris_vpu_dec_non_comv_size(struct iris_ins= t *inst) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_non_comv_size(struct iris_inst *inst) +{ + u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; + struct v4l2_format *f =3D inst->fmt_src; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_non_comv_h264d_ar50lt(width, height, num_vpp_pipes); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_non_comv_h265d_ar50lt(width, height, num_vpp_pipes); + + return 0; +} + static u32 iris_vpu_dec_line_size(struct iris_inst *inst) { u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; @@ -833,6 +1130,29 @@ static u32 iris_vpu_dec_line_size(struct iris_inst *i= nst) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_line_size(struct iris_inst *inst) +{ + u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; + struct v4l2_format *f =3D inst->fmt_src; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + bool is_opb =3D false; + u32 out_min_count =3D inst->buffers[BUF_OUTPUT].min_count; + + if (iris_split_mode_enabled(inst)) + is_opb =3D true; + + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_line_h264d_ar50lt(width, height, is_opb, num_vpp_pipes= ); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_line_h265d_ar50lt(width, height, is_opb, num_vpp_pipes= ); + else if (inst->codec =3D=3D V4L2_PIX_FMT_VP9) + return hfi_buffer_line_vp9d_ar50lt(width, height, out_min_count, is_opb, + num_vpp_pipes); + + return 0; +} + static u32 iris_vpu_dec_scratch1_size(struct iris_inst *inst) { return iris_vpu_dec_comv_size(inst) + @@ -840,6 +1160,13 @@ static u32 iris_vpu_dec_scratch1_size(struct iris_ins= t *inst) iris_vpu_dec_line_size(inst); } =20 +static u32 iris_vpu_ar50lt_dec_scratch1_size(struct iris_inst *inst) +{ + return iris_vpu_dec_comv_size(inst) + + iris_vpu_ar50lt_dec_non_comv_size(inst) + + iris_vpu_ar50lt_dec_line_size(inst); +} + static inline u32 iris_vpu_enc_get_bitstream_width(struct iris_inst *inst) { if (is_rotation_90_or_270(inst)) @@ -1470,6 +1797,15 @@ u32 hfi_buffer_dpb_enc(u32 frame_width, u32 frame_he= ight, bool is_ten_bit) return size; } =20 +static inline +u32 hfi_buffer_dpb_enc_ar50lt(u32 frame_width, u32 frame_height, bool is_t= en_bit) +{ + if (!is_ten_bit) + return size_enc_ref_buffer(frame_width, frame_height); + else + return size_enc_ten_bit_ref_buffer(frame_width, frame_height); +} + static u32 iris_vpu_enc_arp_size(struct iris_inst *inst) { return HFI_BUFFER_ARP_ENC; @@ -1494,6 +1830,16 @@ u32 hfi_buffer_vpss_enc(u32 dswidth, u32 dsheight, b= ool ds_enable, return 0; } =20 +static inline +u32 hfi_buffer_vpss_enc_ar50lt(u32 dswidth, u32 dsheight, bool ds_enable, + u32 blur, bool is_ten_bit) +{ + if (ds_enable || blur) + return hfi_buffer_dpb_enc_ar50lt(dswidth, dsheight, is_ten_bit); + + return 0; +} + static inline u32 hfi_buffer_scratch1_enc(u32 frame_width, u32 frame_heigh= t, u32 lcu_size, u32 num_ref, bool ten_bit, u32 num_vpp_pipes, @@ -1752,6 +2098,16 @@ static u32 iris_vpu_enc_vpss_size(struct iris_inst *= inst) return hfi_buffer_vpss_enc(width, height, ds_enable, 0, 0); } =20 +static u32 iris_vpu_ar50lt_enc_vpss_size(struct iris_inst *inst) +{ + u32 ds_enable =3D is_scaling_enabled(inst); + struct v4l2_format *f =3D inst->fmt_dst; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + + return hfi_buffer_vpss_enc_ar50lt(width, height, ds_enable, 0, 0); +} + static inline u32 size_dpb_opb(u32 height, u32 lcu_size) { u32 max_tile_height =3D ((height + lcu_size - 1) / lcu_size) * lcu_size += 8; @@ -2207,6 +2563,51 @@ u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *= inst, enum iris_buffer_type return inst->buffers[buffer_type].size; } =20 +u32 iris_vpu_ar50lt_gen2_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type) +{ + const struct iris_vpu_buf_type_handle *buf_type_handle_arr =3D NULL; + u32 size =3D 0, buf_type_handle_size =3D 0, i; + + static const struct iris_vpu_buf_type_handle dec_internal_buf_type_handle= [] =3D { + {BUF_BIN, iris_vpu_ar50lt_dec_bin_size }, + {BUF_COMV, iris_vpu_dec_comv_size }, + {BUF_NON_COMV, iris_vpu_ar50lt_dec_non_comv_size }, + {BUF_LINE, iris_vpu_ar50lt_dec_line_size }, + {BUF_PERSIST, iris_vpu_ar50lt_dec_persist_size }, + {BUF_DPB, iris_vpu_dec_dpb_size }, + {BUF_SCRATCH_1, iris_vpu_ar50lt_dec_scratch1_size }, + {BUF_PARTIAL, iris_vpu_dec_partial_size }, + }; + + static const struct iris_vpu_buf_type_handle enc_internal_buf_type_handle= [] =3D { + {BUF_BIN, iris_vpu_enc_bin_size }, + {BUF_COMV, iris_vpu_enc_comv_size }, + {BUF_NON_COMV, iris_vpu_enc_non_comv_size }, + {BUF_LINE, iris_vpu_enc_line_size }, + {BUF_ARP, iris_vpu_enc_arp_size }, + {BUF_VPSS, iris_vpu_ar50lt_enc_vpss_size }, + {BUF_SCRATCH_1, iris_vpu_enc_scratch1_size }, + {BUF_SCRATCH_2, iris_vpu_enc_scratch2_size }, + }; + + if (inst->domain =3D=3D DECODER) { + buf_type_handle_size =3D ARRAY_SIZE(dec_internal_buf_type_handle); + buf_type_handle_arr =3D dec_internal_buf_type_handle; + } else if (inst->domain =3D=3D ENCODER) { + buf_type_handle_size =3D ARRAY_SIZE(enc_internal_buf_type_handle); + buf_type_handle_arr =3D enc_internal_buf_type_handle; + } + + for (i =3D 0; i < buf_type_handle_size; i++) { + if (buf_type_handle_arr[i].type =3D=3D buffer_type) { + size =3D buf_type_handle_arr[i].handle(inst); + break; + } + } + + return size; +} + static u32 internal_buffer_count(struct iris_inst *inst, enum iris_buffer_type buffer_type) { diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.h index 1d07137c70cd..2085e316a6bd 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.h @@ -61,17 +61,26 @@ struct iris_inst; #define MAX_FE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE 64 #define MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE (128 / 8) #define MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE (128 / 8) +#define MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE_AR50LT (8 / 8) +#define MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE_AR50LT (16 / 8) +#define MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT (32 / 8) #define VP9_UDC_HEADER_BUF_SIZE (3 * 128) =20 #define SIZE_SEI_USERDATA 4096 #define SIZE_DOLBY_RPU_METADATA (41 * 1024) #define H264_CABAC_HDR_RATIO_HD_TOT 1 #define H264_CABAC_RES_RATIO_HD_TOT 3 +#define H264_CABAC_HDR_RATIO_SM_TOT 1 +#define H264_CABAC_RES_RATIO_SM_TOT 2 #define H265D_MAX_SLICE 3600 +#define H265D_MAX_SLICE_AR50LT 600 #define SIZE_H265D_HW_PIC_T SIZE_H264D_HW_PIC_T #define H265_CABAC_HDR_RATIO_HD_TOT 2 #define H265_CABAC_RES_RATIO_HD_TOT 2 +#define H265_CABAC_HDR_RATIO_SM_TOT 1 +#define H265_CABAC_RES_RATIO_SM_TOT 6 #define SIZE_H265D_VPP_CMD_PER_BUF (256) +#define SIZE_H265D_VPP_CMD_PER_BUF_AR50LT (192) #define SIZE_THREE_DIMENSION_USERDATA 768 #define SIZE_H265D_ARP 9728 =20 @@ -81,6 +90,7 @@ struct iris_inst; #define VPX_DECODER_FRAME_BIN_DENOMINATOR 2 =20 #define VPX_DECODER_FRAME_BIN_RES_BUDGET_RATIO (3 / 2) +#define VPX_DECODER_FRAME_BIN_BUFFER_SIZE (1024 * 1024) =20 #define SIZE_H264D_HW_PIC_T (BIT(11)) =20 @@ -99,6 +109,7 @@ struct iris_inst; #define MAX_FE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE 64 #define MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE 16 #define MAX_PE_NBR_DATA_LCU64_LINE_BUFFER_SIZE 384 +#define MAX_PE_NBR_DATA_LCU64_LINE_BUFFER_SIZE_AR50LT 176 #define MAX_FE_NBR_DATA_LUMA_LINE_BUFFER_SIZE 640 =20 #define AV1_CABAC_HDR_RATIO_HD_TOT 2 @@ -155,11 +166,21 @@ static inline u32 size_h264d_lb_fe_top_data(u32 frame= _width) return MAX_FE_NBR_DATA_LUMA_LINE_BUFFER_SIZE * ALIGN(frame_width, 16) * 3; } =20 +static inline u32 size_h264d_lb_fe_top_data_ar50lt(u32 frame_width) +{ + return 16 * ALIGN(frame_width, 16) * 2; +} + static inline u32 size_h264d_lb_fe_top_ctrl(u32 frame_width) { return MAX_FE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE * DIV_ROUND_UP(frame_width,= 16); } =20 +static inline u32 size_h264d_lb_fe_top_ctrl_ar50lt(u32 frame_width) +{ + return 16 * DIV_ROUND_UP(frame_width, 16); +} + static inline u32 size_h264d_lb_fe_left_ctrl(u32 frame_height) { return MAX_FE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE * DIV_ROUND_UP(frame_height= , 16); @@ -170,16 +191,31 @@ static inline u32 size_h264d_lb_se_top_ctrl(u32 frame= _width) return MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE * DIV_ROUND_UP(frame_width,= 16); } =20 +static inline u32 size_h264d_lb_se_top_ctrl_ar50lt(u32 frame_width) +{ + return MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT * DIV_ROUND_UP(frame= _width, 16); +} + static inline u32 size_h264d_lb_se_left_ctrl(u32 frame_height) { return MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE * DIV_ROUND_UP(frame_height= , 16); } =20 +static inline u32 size_h264d_lb_se_left_ctrl_ar50lt(u32 frame_height) +{ + return MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT * DIV_ROUND_UP(frame= _height, 16); +} + static inline u32 size_h264d_lb_pe_top_data(u32 frame_width) { return MAX_PE_NBR_DATA_LCU64_LINE_BUFFER_SIZE * DIV_ROUND_UP(frame_width,= 16); } =20 +static inline u32 size_h264d_lb_pe_top_data_ar50lt(u32 frame_width) +{ + return 64 * DIV_ROUND_UP(frame_width, 16); +} + static inline u32 size_h264d_lb_vsp_top(u32 frame_width) { return (DIV_ROUND_UP(frame_width, 16) << 7); @@ -289,6 +325,7 @@ u32 iris_vpu_buf_size(struct iris_inst *inst, enum iris= _buffer_type buffer_type) u32 iris_vpu33_buf_size(struct iris_inst *inst, enum iris_buffer_type buff= er_type); u32 iris_vpu4x_buf_size(struct iris_inst *inst, enum iris_buffer_type buff= er_type); u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type); +u32 iris_vpu_ar50lt_gen2_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type); int iris_vpu_buf_count(struct iris_inst *inst, enum iris_buffer_type buffe= r_type); =20 #endif --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 995103A6EE5 for ; Fri, 12 Jun 2026 09:26:18 +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=1781256380; cv=none; b=py/Qv5/SYrR9IFYrHyebUI+C7sb4C2OVq0tXdS6XcIZZECYrt2fz+lJ9tSC8YmSiyHNjH/LU0Xf4810XKXcsoadVt4q0dX03SWrUKR5tjMtQQAF0x9Go3uEA9Zyh6HZTABPjWQ1TSJ424W77hmQWCvrmGxXrgSvm6o8hWjmJYa4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256380; c=relaxed/simple; bh=7e9Z74Q1L0nekJViAOnYD+dOHRBzFO189DFrri+T0ok=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CmfA5OKE7nNSUf6I+HxRmGhvoHVc3xoBDDjOuSwu3sKu6irEGYjO3H1ppwDuktp1xW6nR7XKrHuEbnUV5tpH5SCQTLxikGhaecSYhyemTiEpnS658HCnSNXtBQ/1ZJXzizd9N2Cas2ebmKLDXabEDjLqYaDeHa+qu3Vzjt6APyU= 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=LyUBAIGh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XFv13Az6; 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="LyUBAIGh"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XFv13Az6" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C3BnWA2451184 for ; Fri, 12 Jun 2026 09:26:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= NSZIeR/PALw0s5YexEl8YedZMsbjMIImpBw2uZ0uvz8=; b=LyUBAIGhvRMOcwHM Sj9lo0phgy7tmMhGveWSgaRsL9CCe9OAU139QKjKxk1I1jawSt2hstqaD/C2Qp2b WW5+ZFUd2OIG4/l3+mwn2Nu9BaX+G5FS1AP96tl+kYd86im1j8vS15oPBUt6xdym PIrmkaWHkxSnYCeXwqaGIq9seOzF2KvXEFBFgMhRcyhKbLU2sWwcE4L2sBDRRI/Q RzqVIH9YgG+RQHsESt25+bzd08Q+IIKnZj6g8X1pCKW4sJLLDt3sBqyZsUupcCTP SEI/TUXeQX2+ZpG9r4dRExzOnOlI3ry47XLgC3vrWPGEE+ykVL761BuZaREQK3C6 xQo49g== Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er1xcjnaw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:26:17 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-6c77c80d967so705747137.1 for ; Fri, 12 Jun 2026 02:26:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256377; x=1781861177; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=NSZIeR/PALw0s5YexEl8YedZMsbjMIImpBw2uZ0uvz8=; b=XFv13Az6mwOoS5n4b53mBd9gjnqnQbXZCnXHscn8gzyIRyqrzVNV8whBryLcIkGKVn Awu3csg5asPcR83Jj3NVW6QLvBhFqNCCcqBO20Ewi6BuqeJYyOskYvetzQSmg7msLpL6 D0Vrw8YQCPPT7C8lo0N9o3NoPboRI6yGP8z0oJLK4nL1DdFOVd2iVNINSycrJ+QvLCUX PNz8ixTshCZjW6f0S+dPF0nhEIZ8EuSDq4h5IarpVKNUcUWotufUnYSO8e3Lvt1wED92 Mndvxoz9rpLoGVWcv78JVAHHZ6xILWtm89mbETEDIJyxUer1nSGQgw/BMkz6Zx1/GEml +Eeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256377; x=1781861177; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=NSZIeR/PALw0s5YexEl8YedZMsbjMIImpBw2uZ0uvz8=; b=ZLdZkI/XeiMl6qgun+u5qREuyBSFmipWs6Ye14E+peYZgbquhZy4s24ftckirvsrsu xWsCmGx0HUC6lrUIwQSIJzHU8ole61Sibq2b8UNs07NDY0ciB27kfVenWuw1V+VPgKGB rzzqIjBypqKqqRTKvQ7NNTNCx4zYUqFyUFWB7wEntSmkiBpWZW3MU6HkD/hrCd9lH5f7 9zhiWzlEcneu0og/ChXDm29/bv2nPN6jHdCkZ4zEMKfhXHu6WVXQQ5d0NEGGKNTRzqen COMQcYZ2uqh815jh+hWxMESHAfrIO1vllMc0T8QRdSvlmDrAuSv1nBlRsAaXY6GiYxDW 9X/w== X-Forwarded-Encrypted: i=1; AFNElJ/tMnbLEqJ3KbJIFBIY7fWLM4lGHm9/Uy63EAGn6Q4ws6hKh5CcdHd81TujDGQDacnHXOWtcQK+Q5/52Ns=@vger.kernel.org X-Gm-Message-State: AOJu0Yyx114MDmmEuLlSXOmGtty7eXhGS/YG8/zjUsdetl06YqMBpBif WorBfB5jwhKWzYthB17NEkr2RmlmgcKawcniWvXX3OzuX0pfg8TSsSujY20najVyvkurlc80JtM YHLtSxVRapDx+3bYdyV5uWs+Tq3qkof82Nz+aDjjNcZyKa1mIDn1Yc85Ce+56DR3w8uo= X-Gm-Gg: Acq92OGZTNBdQlFg0Ve9/1VVAjcid1DzjDFLXzGR+GLXEWsvAhk7LvDhZcnXoTnYUt1 T9n4kDwkgnWUZjF7fRA4xZK997zDUPg3E3EJzCE3XCI6r+GtXOwDI15pOYS5tuzx32pxH6yocxf 96V/YjnF0B+v0CIbi6gmNAhcPP2ncWEYxzv1JqdO+50as9FW9E464ZLqPxUSzNhQcm0EXsRY/mZ JfaHWDGszETYZrSmaP8qY6hdf3BJxCusg4cQa2esasOKGP/bwDFagrB61/48eThLWDBSnivPxOL c7o63Yfd+ELqf3MdC0XKurd2VSS0lfbCNd1tZ3LNhEg1va4PxT7Xlr0nCJEcjZmkUuOq41my0ew WhYdvAgYX+AF6r+UQ7qjcy6gnw0h6o2qAYfiuz2pjf3ZtaTzsVMa6Kqtb8RY0KT8XZhNzDC4q80 kb3FF9klek7ltJIIyb43LYkJzvoX/r+rQf5yM= X-Received: by 2002:a05:6102:5815:b0:632:3bd5:d572 with SMTP id ada2fe7eead31-71e88dfef60mr826741137.27.1781256376798; Fri, 12 Jun 2026 02:26:16 -0700 (PDT) X-Received: by 2002:a05:6102:5815:b0:632:3bd5:d572 with SMTP id ada2fe7eead31-71e88dfef60mr826727137.27.1781256376284; Fri, 12 Jun 2026 02:26:16 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.26.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:26:13 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:46 +0300 Subject: [PATCH v4 14/16] media: iris: add Gen2 firmware support on the Agatti platform Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-14-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=22525; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=LPduOF4U48dDdNMZXEau7vak3Qu2qM+bqRiM2DzBGS4=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CRTWgJ0LUMxjgOM1sclxAXsPdcg4lH1vWw6 +Hpb+u7htmJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQkQAKCRCLPIo+Aiko 1cueB/oCmkZpuzHNNEobLFXwGpEwWYFte7Ly6eBS/U8QZ73JgAN3CTq1Cy7K33TjLF3gP8hAnNG gUyLcKRT1U58O+5scjYPnt+zt0iVUAC2qbYirIaxEZWzl4lj63W9Y15laujW1vQYKEEvY6JUg+E nHZaY4vHpyGX8E6CIs7KlELE3rsSD/GyuSnowKrhgl8qP2fjVLPtEu1ttQl2SHI2aOWUecbY0sE SMS+F2RJjrvDi7MIa4APMXyj0Rn9W/RiYwch17Qc+uEuyEBnaBa23T3d/rwAaHCBuwkabU70ZIa PA5bCdIOKjvXpCHzd7x5o1XqNwxM61S8gHcC3y/VZH3HjZBp X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfXw9ezoisfQRyR sSn8ZTA6CJUwsMqyffVheiAjRkSurGzlLmGT2MQep9sYJD1cnCywmiI0tC7xSA+zwEP3Sz9WrlX AQj18pkt+inn1Ey0KjFzC4W/52uOvbjr4tXONuRorH/rwi5lETOZseTa5S0OU44J1+lOmc0rwhz rqzVRmXocsyH38nBEQLk/3Zfhgr0ynBVf6qUNqXXNG7fsIaI9ZfjqeM4W3YLW4pAdhHUmZOAgGb beOxzE3qi9r/WQqeYpsS8FI2ANThzsy9pzwZNy+SGkhfZMP+yuml7retrTzEveISbLcWKmYp/oM s8iFv1l8XfO9XXGoyJ3v0jdCDVD7OzzaAlRpb2w/PCdqnhzM3hVN8yR9fdU+zJmiRm97hF9Dq3A WNA4AV1LmCKojCmJOu0Lu9BfSF6NiUrmqSqHumxqQuUjSfU8nFvzT5FxMdzrODaD9NU5agXrsg1 3RDoYC1uz10m1JHossA== X-Proofpoint-GUID: kHH_w8O76IZlpWD_R8ZJBDa-_B7tTA4C X-Proofpoint-ORIG-GUID: kHH_w8O76IZlpWD_R8ZJBDa-_B7tTA4C X-Authority-Analysis: v=2.4 cv=NZPWEWD4 c=1 sm=1 tr=0 ts=6a2bd0b9 cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=GUEZgOuAT4xZVSXxJacA:9 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX2cYp1EnuSlfX d1+FNWgr6/z1frXvpySLlfv8W5CoSA7164GxES85xtmP6YlWueZs/fyJI3+OyV1uk25yd79tkD1 2sNNL95c3eHs1CVyoQW03pJ6XH/uSWw= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 bulkscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 From: Dikshita Agarwal Agatti platform is using HFI Gen1 firmware, which is considered to be legacy firmware branch. Follow the example of the SC7280 platform and extend the driver with supporting both HFI Gen1 and Gen2 firmwares for this platform. Like HFI Gen1 this firmware doesn't have PIPE property (but unlike Gen1 buffer sizes are calculated on the driver side). Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_hfi_gen2.c | 613 +++++++++++++++++= ++++ .../platform/qcom/iris/iris_platform_common.h | 1 + .../platform/qcom/iris/iris_platform_vpu_ar50lt.c | 11 +- 3 files changed, 623 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c b/drivers/med= ia/platform/qcom/iris/iris_hfi_gen2.c index acc0ed8adda1..f89245269e8c 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2.c @@ -1118,3 +1118,616 @@ const struct iris_firmware_data iris_hfi_gen2_data = =3D { .enc_op_int_buf_tbl =3D sm8550_enc_op_int_buf_tbl, .enc_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_enc_op_int_buf_tbl), }; + +static const struct platform_inst_fw_cap inst_fw_cap_gen2_ar50lt_dec[] =3D= { + { + .cap_id =3D PROFILE_H264, + .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH), + .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D PROFILE_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE), + .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D PROFILE_VP9, + .min =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, + .max =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_0), + .value =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D LEVEL_H264, + .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2), + .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D LEVEL_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D LEVEL_VP9, + .min =3D V4L2_MPEG_VIDEO_VP9_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_VP9_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_VP9_LEVEL_4_1, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D TIER, + .min =3D V4L2_MPEG_VIDEO_HEVC_TIER_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_TIER_HIGH), + .value =3D V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, + .hfi_id =3D HFI_PROP_TIER, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D INPUT_BUF_HOST_MAX_COUNT, + .min =3D DEFAULT_MAX_HOST_BUF_COUNT, + .max =3D DEFAULT_MAX_HOST_BURST_BUF_COUNT, + .step_or_mask =3D 1, + .value =3D DEFAULT_MAX_HOST_BUF_COUNT, + .hfi_id =3D HFI_PROP_BUFFER_HOST_MAX_COUNT, + .flags =3D CAP_FLAG_INPUT_PORT, + .set =3D iris_set_u32, + }, + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROP_STAGE, + .set =3D iris_set_stage, + }, + { + .cap_id =3D POC, + .min =3D 0, + .max =3D 2, + .step_or_mask =3D 1, + .value =3D 1, + .hfi_id =3D HFI_PROP_PIC_ORDER_CNT_TYPE, + }, + { + .cap_id =3D CODED_FRAMES, + .min =3D CODED_FRAMES_PROGRESSIVE, + .max =3D CODED_FRAMES_PROGRESSIVE, + .step_or_mask =3D 0, + .value =3D CODED_FRAMES_PROGRESSIVE, + .hfi_id =3D HFI_PROP_CODED_FRAMES, + }, + { + .cap_id =3D BIT_DEPTH, + .min =3D BIT_DEPTH_8, + .max =3D BIT_DEPTH_8, + .step_or_mask =3D 1, + .value =3D BIT_DEPTH_8, + .hfi_id =3D HFI_PROP_LUMA_CHROMA_BIT_DEPTH, + }, + { + .cap_id =3D RAP_FRAME, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 1, + .hfi_id =3D HFI_PROP_DEC_START_FROM_RAP_FRAME, + .flags =3D CAP_FLAG_INPUT_PORT, + .set =3D iris_set_u32, + }, +}; + +static const struct platform_inst_fw_cap inst_fw_cap_gen2_ar50lt_enc[] =3D= { + { + .cap_id =3D PROFILE_H264, + .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH), + .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile, + }, + { + .cap_id =3D PROFILE_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE), + .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile, + }, + { + .cap_id =3D LEVEL_H264, + .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2), + .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_level, + }, + { + .cap_id =3D LEVEL_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_level, + }, + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROP_STAGE, + .set =3D iris_set_stage, + }, + { + .cap_id =3D HEADER_MODE, + .min =3D V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, + .max =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) | + BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME), + .value =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .hfi_id =3D HFI_PROP_SEQ_HEADER_MODE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_header_mode_gen2, + }, + { + .cap_id =3D PREPEND_SPSPPS_TO_IDR, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 0, + }, + { + .cap_id =3D BITRATE, + .min =3D 1, + .max =3D BITRATE_MAX_AR50LT, + .step_or_mask =3D 1, + .value =3D BITRATE_DEFAULT_AR50LT, + .hfi_id =3D HFI_PROP_TOTAL_BITRATE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_bitrate_gen2, + }, + { + .cap_id =3D BITRATE_PEAK, + .min =3D 1, + .max =3D BITRATE_MAX_AR50LT, + .step_or_mask =3D 1, + .value =3D BITRATE_DEFAULT_AR50LT, + .hfi_id =3D HFI_PROP_TOTAL_PEAK_BITRATE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_peak_bitrate, + }, + { + .cap_id =3D BITRATE_MODE, + .min =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .max =3D V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) | + BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR), + .value =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .hfi_id =3D HFI_PROP_RATE_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_bitrate_mode_gen2, + }, + { + .cap_id =3D FRAME_SKIP_MODE, + .min =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .max =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) | + BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT) | + BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT), + .value =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + }, + { + .cap_id =3D FRAME_RC_ENABLE, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 1, + }, + { + .cap_id =3D GOP_SIZE, + .min =3D 0, + .max =3D INT_MAX, + .step_or_mask =3D 1, + .value =3D 2 * DEFAULT_FPS - 1, + .hfi_id =3D HFI_PROP_MAX_GOP_FRAMES, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_u32, + }, + { + .cap_id =3D ENTROPY_MODE, + .min =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .max =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) | + BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC), + .value =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, + .hfi_id =3D HFI_PROP_CABAC_SESSION, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_entropy_mode_gen2, + }, + { + .cap_id =3D MIN_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROP_MIN_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_min_qp, + }, + { + .cap_id =3D MIN_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROP_MIN_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_min_qp, + }, + { + .cap_id =3D MAX_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + .hfi_id =3D HFI_PROP_MAX_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_max_qp, + }, + { + .cap_id =3D MAX_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + .hfi_id =3D HFI_PROP_MAX_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_max_qp, + }, + { + .cap_id =3D I_FRAME_MIN_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D I_FRAME_MIN_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D P_FRAME_MIN_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D P_FRAME_MIN_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D B_FRAME_MIN_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D B_FRAME_MIN_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D I_FRAME_MAX_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D I_FRAME_MAX_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D P_FRAME_MAX_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D P_FRAME_MAX_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D B_FRAME_MAX_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D B_FRAME_MAX_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D I_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D I_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D P_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D P_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D B_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D B_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D INPUT_BUF_HOST_MAX_COUNT, + .min =3D DEFAULT_MAX_HOST_BUF_COUNT, + .max =3D DEFAULT_MAX_HOST_BURST_BUF_COUNT, + .step_or_mask =3D 1, + .value =3D DEFAULT_MAX_HOST_BUF_COUNT, + .hfi_id =3D HFI_PROP_BUFFER_HOST_MAX_COUNT, + .flags =3D CAP_FLAG_INPUT_PORT, + .set =3D iris_set_u32, + }, + { + .cap_id =3D OUTPUT_BUF_HOST_MAX_COUNT, + .min =3D DEFAULT_MAX_HOST_BUF_COUNT, + .max =3D DEFAULT_MAX_HOST_BURST_BUF_COUNT, + .step_or_mask =3D 1, + .value =3D DEFAULT_MAX_HOST_BUF_COUNT, + .hfi_id =3D HFI_PROP_BUFFER_HOST_MAX_COUNT, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_u32, + }, + { + .cap_id =3D IR_TYPE, + .min =3D V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM, + .max =3D V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM, + .step_or_mask =3D BIT(V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RAND= OM), + .value =3D V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + }, + { + .cap_id =3D IR_PERIOD, + .min =3D 0, + .max =3D INT_MAX, + .step_or_mask =3D 1, + .value =3D 0, + .flags =3D CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_ir_period_gen2, + }, +}; + +static const u32 iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl[] =3D { + BUF_BIN, + BUF_COMV, + BUF_NON_COMV, + BUF_LINE, +}; + +const struct iris_firmware_data iris_hfi_gen2_ar50lt_data =3D { + .init_hfi_ops =3D iris_hfi_gen2_sys_ops_init, + + .core_arch =3D VIDEO_ARCH_LX, + + .inst_fw_caps_dec =3D inst_fw_cap_gen2_ar50lt_dec, + .inst_fw_caps_dec_size =3D ARRAY_SIZE(inst_fw_cap_gen2_ar50lt_dec), + .inst_fw_caps_enc =3D inst_fw_cap_gen2_ar50lt_enc, + .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_gen2_ar50lt_enc), + .dec_input_config_params_default =3D + sm8550_vdec_input_config_params_default, + .dec_input_config_params_default_size =3D + ARRAY_SIZE(sm8550_vdec_input_config_params_default), + .dec_input_config_params_hevc =3D + sm8550_vdec_input_config_param_hevc, + .dec_input_config_params_hevc_size =3D + ARRAY_SIZE(sm8550_vdec_input_config_param_hevc), + .dec_input_config_params_vp9 =3D + sm8550_vdec_input_config_param_vp9, + .dec_input_config_params_vp9_size =3D + ARRAY_SIZE(sm8550_vdec_input_config_param_vp9), + .dec_output_config_params =3D + sm8550_vdec_output_config_params, + .dec_output_config_params_size =3D + ARRAY_SIZE(sm8550_vdec_output_config_params), + .enc_input_config_params =3D + sm8550_venc_input_config_params, + .enc_input_config_params_size =3D + ARRAY_SIZE(sm8550_venc_input_config_params), + .enc_output_config_params =3D + sm8550_venc_output_config_params, + .enc_output_config_params_size =3D + ARRAY_SIZE(sm8550_venc_output_config_params), + .dec_input_prop =3D sm8550_vdec_subscribe_input_properties, + .dec_input_prop_size =3D ARRAY_SIZE(sm8550_vdec_subscribe_input_propertie= s), + .dec_output_prop_avc =3D sm8550_vdec_subscribe_output_properties_avc, + .dec_output_prop_avc_size =3D + ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_avc), + .dec_output_prop_hevc =3D sm8550_vdec_subscribe_output_properties_hevc, + .dec_output_prop_hevc_size =3D + ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_hevc), + .dec_output_prop_vp9 =3D sm8550_vdec_subscribe_output_properties_vp9, + .dec_output_prop_vp9_size =3D + ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_vp9), + .dec_ip_int_buf_tbl =3D iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl, + .dec_ip_int_buf_tbl_size =3D ARRAY_SIZE(iris_hfi_gen2_ar50lt_dec_ip_int_b= uf_tbl), + .dec_op_int_buf_tbl =3D sm8550_dec_op_int_buf_tbl, + .dec_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_dec_op_int_buf_tbl), + .enc_ip_int_buf_tbl =3D sm8550_enc_ip_int_buf_tbl, + .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_enc_ip_int_buf_tbl), + .enc_op_int_buf_tbl =3D sm8550_enc_op_int_buf_tbl, + .enc_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_enc_op_int_buf_tbl), +}; diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index bc04831ae7fc..5afe395cc4a0 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -57,6 +57,7 @@ enum pipe_type { extern const struct iris_firmware_data iris_hfi_gen1_data; extern const struct iris_firmware_data iris_hfi_gen1_ar50lt_data; extern const struct iris_firmware_data iris_hfi_gen2_data; +extern const struct iris_firmware_data iris_hfi_gen2_ar50lt_data; =20 extern const struct iris_platform_data qcm2290_data; extern const struct iris_platform_data qcs8300_data; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c b/= drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c index 393256f39112..d9de7dcb59e3 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c @@ -13,12 +13,18 @@ =20 #define WRAPPER_INTR_STATUS_A2HWD_BMSK 0x10 =20 -const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen1_s6_desc =3D { +const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen1_desc =3D { .firmware_data =3D &iris_hfi_gen1_ar50lt_data, .get_vpu_buffer_size =3D iris_vpu_ar50lt_gen1_buf_size, .fwname =3D "qcom/venus-6.0/venus.mbn", }; =20 +const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen2_s6_desc =3D { + .firmware_data =3D &iris_hfi_gen2_ar50lt_data, + .get_vpu_buffer_size =3D iris_vpu_ar50lt_gen2_buf_size, + .fwname =3D "qcom/vpu/ar50lt_p1_gen2_s6.mbn", +}; + static const u32 iris_fmts_ar50lt_dec[] =3D { [IRIS_FMT_H264] =3D V4L2_PIX_FMT_H264, [IRIS_FMT_HEVC] =3D V4L2_PIX_FMT_HEVC, @@ -78,7 +84,8 @@ static struct platform_inst_caps platform_inst_cap_ar50lt= =3D { }; =20 const struct iris_platform_data qcm2290_data =3D { - .firmware_desc_gen1 =3D &iris_vpu_ar50lt_p1_gen1_s6_desc, + .firmware_desc_gen1 =3D &iris_vpu_ar50lt_p1_gen1_desc, + .firmware_desc_gen2 =3D &iris_vpu_ar50lt_p1_gen2_s6_desc, .vpu_ops =3D &iris_vpu_ar50lt_ops, .icc_tbl =3D iris_icc_info_ar50lt, .icc_tbl_size =3D ARRAY_SIZE(iris_icc_info_ar50lt), --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 4C6F43B776A for ; Fri, 12 Jun 2026 09:26:21 +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=1781256382; cv=none; b=GWJGlhKsDLRrbqNw1OBbcOeIbT4u3+V+u0wt8R0hnCz5UTvGcEodUcl808ydAzbi/P1U7C1zSih5Jv9V1rg/LkmcqnuqB3/R92ufHSNK5LuaO5JmwlVNbjJdumaUWAVUd1U+2AEplv6nQ5FDv2Fa00N34qPndA2yOsTiDst0Y1I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256382; c=relaxed/simple; bh=bBMr05z3+hZKyiKnqtJur9lg4bNIQFaGUAfGEfPWSb0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gkbCaIq/3KjXoFKsLRKW4T63A/N/oPZYyYCh2VN36qsBQHH8lQA7lYSujOnQKPMOR6oeSy0CAP9fQO0Jt8JDucmxWy0SfdZkrzmIBCQONz8WRL4w1CHUBrexqzAj4/BBFpiZexMzn5esuHsZ7pwFTuUZdERnRmmxynzRcYpDFOA= 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=jEoyOJDH; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IP+8aaos; 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="jEoyOJDH"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IP+8aaos" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C39bHD2411602 for ; Fri, 12 Jun 2026 09:26:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= AWJObvt7y+kbPGRMk8Pkpq/KWzg0qp4Ve45uTUJVorU=; b=jEoyOJDHN0EO8/hx w6E148r0dqO6Bb+rCiSxsZsaepidMz/us/AekapUeyX1i7jGbxLU0/yuheZeZxnR R2ALixxmBiw0mMbnf+jaDKLbsm/FI1Jti+LEKhA8TssZmVYAcsAEtCRLpGcFilxT Un5S3IbptSUny83tWmI9e+NHmlk67Fhw9PksB3IbBd6lOmuF5Gjq9D5UHDEyfK5A VgKnOd49wgLIo9cNA1LpqpP7IICVvZ+msGBOujwuTIB8ReQK3vim0yUST0c/HvPr JKcg5TzyyBM0K09MijSqfL23tFd7XMYjjkpjWg/68n+QgqkM4kXIQL0ttDWuA+fc aEYJcA== Received: from mail-ua1-f72.google.com (mail-ua1-f72.google.com [209.85.222.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er165awf8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:26:20 +0000 (GMT) Received: by mail-ua1-f72.google.com with SMTP id a1e0cc1a2514c-963a02dca36so754448241.1 for ; Fri, 12 Jun 2026 02:26:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256380; x=1781861180; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=AWJObvt7y+kbPGRMk8Pkpq/KWzg0qp4Ve45uTUJVorU=; b=IP+8aaosM8B+F9+Suk4xKRNUuIMEgyMOy059CmyMota4jMVXNTmSZQq/cQXN1+WK/5 quMtQAtAWtF0wNsu61ZDZQxpZ1X86xySlAdNR6Ta9d5wee4I2vult2oy65YSautlMqzu YL3FNsVnXlgKct8FOLtKNFNg2GpvvQ7ILg7QaAud4H7T+8tED5auuW59XPgTMzoGJsa/ 3fOU3PWSJ3zaCd3yb+xKQLsZKSgojbHjlWZbHGkBLDSOKSDIdoNqs0c7DbckVDw3pU3c l20yMd0WqlpOv+0JFrPRp00rnjeJY9dHl6fWKBz0VW9tuFMbJ5nAFoErTpcgu1Hj9VX+ ydhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256380; x=1781861180; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=AWJObvt7y+kbPGRMk8Pkpq/KWzg0qp4Ve45uTUJVorU=; b=q1gkg3L9GROTdZyvFShXXAl9nqUSGcpO700Ob4wgxrNbYGkERsMYOM5Bjody7k66nU i2u4z4MjTNRbFX3cILlyvsVv2Q14q8MBu6Ebf8Yy+09JJJAyiDef0E5a/2qGTj0bTto6 4YRA4Ajw8G3kQs+9S826foa6iN6RTsoukMv/6wiF3cPlr0KT2biBftQkjXRxgwhCJQq0 FspkLztVCKOq7oBRUHcTkh7MFo6V1mk6yLspnSa+BKVfYsncz5q5F1NsYM4Z2CUuvjHt gY6KKtwFRAqWEQQ4zqn85xFOI+ZIcDSMd68WBCpwHMNNHadrjL7fxxH0wST1BifmtDB8 fwCg== X-Forwarded-Encrypted: i=1; AFNElJ9sq2N8W5cUq4ijuF1GJfbGmusNBiFsRYc1Ecm/75+huDtBrx/Bx0RR7yyi59Y0EUZXC32Kw0A7OME9RNg=@vger.kernel.org X-Gm-Message-State: AOJu0Yy4WUutJxXhEBNce4HuJ5eXJ9b5BJgvoUGRioV+DbDgNcsXQe5t kFsOLlomFoHYTu0wWc6K2pKNcWRBUW5sIMNKUFybRWgPKccaPADJ1+c+8LCF1VoRFxxoTNrGwWs T1iNHCRpBIxENA8NkWK4ar0PCInpn4OeLLjYebwxLnSPV7z9JQYdp51GzmZz8OLXYSzo= X-Gm-Gg: Acq92OG6v8eq2hSnSblSLwaV5Y4ICr4HrtoBnAD8TtzX/LOoKg9eApp3xpdtAWS9Y3x YobbKmFUEnclpkI2bQp93I2dUhtrFUraeZDUxBpZ17QTk8vUFsSYU0c8OUdSJ/1uPmecrOElF4L 8fRFlXFkwqdUGePiFza0kIAYYOUtirw+C6wMF0OYaSmYJueHtB5avn7G+hRERJxD14SRwIEE78R h0WwWayNQB4HXrKhqYR2nFJbfuc0tqwRzFXeawRJbEsBlUXOs1UZNrdvouP4Vuo5SDZ986geM1b POb6gntSLH9NhIbbYbJNlw1oiuBrP993o4PI5pkLtplN9EQJfnydLatsb9rxxtJoMbWLT8t8oyh qh4Le0acJfZPYT7DvZEnYyN/0paQ/CIKjbutXpxOYBS3vAmNotXpyyaPRKm3iQKPrP38vCFN/np szc3Oz0tnkXGWB/VxpWT6UOCD8MXig3nUFPxc= X-Received: by 2002:a05:6102:4411:b0:606:49d:1861 with SMTP id ada2fe7eead31-71e88defa04mr800935137.27.1781256379454; Fri, 12 Jun 2026 02:26:19 -0700 (PDT) X-Received: by 2002:a05:6102:4411:b0:606:49d:1861 with SMTP id ada2fe7eead31-71e88defa04mr800914137.27.1781256379062; Fri, 12 Jun 2026 02:26:19 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.26.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:26:17 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:47 +0300 Subject: [PATCH v4 15/16] media: venus: skip QCM2290 if Iris driver is enabled Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-15-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1810; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=bBMr05z3+hZKyiKnqtJur9lg4bNIQFaGUAfGEfPWSb0=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CRp+CyWaKMZ8ieN+tWwPl8UwjQQ+oM9UB8J Nfn9Mlty3eJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQkQAKCRCLPIo+Aiko 1Zk3CACEsFPEBtMKsMHfoihEHxXN+8cDUYdN16iK/PcAiGmnYum0B3GhT3MpQDTzelkDKmRgVgZ bdqp4UedegHV3yyPAaq3QrrACfs4uS1rMYJjjIYhixDk4K1HkzSvew0Fl0OB4UfLhcASYuFvMVv yw3LXf3TOyLoraaCk6Qa3fZ/SNds7/c6AsnQevKeAD8Uo3/n0RZt+owytCMj1gZ0NDFePzYw6c/ X22mMSebEAvnYzKfAbMK8VkpCr+MJYmU0Q/YD8dxl8/CD1ufWPNY323VzBTLpuYkBL3+V1Lkf0u tSOcv9uv+RmP8A6hAHSs4WP+rb61qfJq7zs+ex3MIcmBawYg X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX78WYKGONJQuI hPx2nX9W47X/oJ2xwowW9QJeqTATBJFAuqOm/EE1wDowOY7aiFwYnD2Q407ieZpArP1LdniehBo Bb/lhBZRaU6C0IxjrZBd+9bmVX8mo5utqBIstlEpXKdAN2Vx0Sigd6F3VkHkDwTOakjmSDTNh7v AE6J59H7gednVGJCymz27Da2pp8k7C12+Ca6blBmNsYOw/wXcKa4I7r1V0qQTQk6JiL5biRmq41 kO75VEujukFuHJs8ap/wlYe2eb/w0dOVK3xiYFLOU9SAoeoRqE3XOaoxlVKiUaupHIUGShBzRok sCFELkwk2kxkLkpOJtNg1g6SwygSieyf/odpdfum4nahnYcS2CsH0ceZbzzNRvT7VcJYTxSjRov 77C/jLfCiTnNDoHPKpScPf3ZcnlMcFNlGqc7ZgFpEWCuVuIFu90IVRlyP2baiH3jYFk3jMD3IZ0 ub1L8AWlncxL/bBxZmA== X-Authority-Analysis: v=2.4 cv=LNpWhpW9 c=1 sm=1 tr=0 ts=6a2bd0bc cx=c_pps a=ULNsgckmlI/WJG3HAyAuOQ==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=TAcc6fXARiqENDJ69lsA:9 a=QEXdDO2ut3YA:10 a=1WsBpfsz9X-RYQiigVTh:22 X-Proofpoint-ORIG-GUID: tCuVPp5cCBZKyTwIGPtjK6sv07gTBOf2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX1JUcMO2u1plF +MxWjZ51JmR/ZGasGLfvv6ql/AvNX363C0yLRTL7Sc0A5o+CUR+zOAr5+k1l8rMDzdJiyt66oRm vbl9srVWEPdEG5SK1sN6B/AVjjHrsvE= X-Proofpoint-GUID: tCuVPp5cCBZKyTwIGPtjK6sv07gTBOf2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 clxscore=1015 spamscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 As the Iris driver now supports the QCM2290 hardware too, there is a race between Venus and Iris drivers on binding to the corresponding device. Follow the approach used by other platforms and skip QCM2290 in the Venus driver if Iris is enabled. Signed-off-by: Dmitry Baryshkov Reviewed-by: Dikshita Agarwal --- drivers/media/platform/qcom/venus/core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 243e342b0ae7..3c88594eb1d0 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -1118,7 +1118,6 @@ static const struct venus_resources sc7280_res =3D { .dec_nodename =3D "video-decoder", .enc_nodename =3D "video-encoder", }; -#endif =20 static const struct bw_tbl qcm2290_bw_table_dec[] =3D { { 352800, 597000, 0, 746000, 0 }, /* 1080p@30 + 720p@30 */ @@ -1169,13 +1168,16 @@ static const struct venus_resources qcm2290_res =3D= { .enc_nodename =3D "video-encoder", .min_fw =3D &min_fw, }; +#endif =20 static const struct of_device_id venus_dt_match[] =3D { { .compatible =3D "qcom,msm8916-venus", .data =3D &msm8916_res, }, { .compatible =3D "qcom,msm8939-venus", .data =3D &msm8939_res, }, { .compatible =3D "qcom,msm8996-venus", .data =3D &msm8996_res, }, { .compatible =3D "qcom,msm8998-venus", .data =3D &msm8998_res, }, +#if (!IS_ENABLED(CONFIG_VIDEO_QCOM_IRIS)) { .compatible =3D "qcom,qcm2290-venus", .data =3D &qcm2290_res, }, +#endif { .compatible =3D "qcom,sc7180-venus", .data =3D &sc7180_res, }, { .compatible =3D "qcom,sdm660-venus", .data =3D &sdm660_res, }, { .compatible =3D "qcom,sdm845-venus", .data =3D &sdm845_res, }, --=20 2.47.3 From nobody Fri Jun 12 12:29:12 2026 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 9F67D3AA1AE for ; Fri, 12 Jun 2026 09:26:28 +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=1781256389; cv=none; b=EmbaoGW8sEfHrtfWX1ieiQtrShyGZB9yNKiYAEJMlnaej4kcrL7JH8zDrCKbSeFwgQYVP+tIAVgpChQvW+i+A+McoR4Rb1m3uud3lRZuYdUpW99hp9RX2TkEhWrLUNbJc/T/cw9tbw+X+rFF94MGmN75hWHG76cKHXOq46MMXIw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781256389; c=relaxed/simple; bh=RfGmISJ4Tg+rlJIDtM2rxs9yeQZR7HuRyIw8EI1Vrgc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pIohADeZMKbC/+P6pnG8AgDJ0nKoMULUuL6mvSKFYY3WYyMFeOlQMUc4EK+zJgxJC7xUoMqtEa2fsTC60+1/KJwTeorgFo/RRpYNMrm727EmjbZrC0+sX7k9xe/x4+HXmoHym/3rZw6SkvDl3pWNlwK/R5ZuUfnAtN1zkB22Kv0= 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=GpWJqQWX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=admWCVXK; 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="GpWJqQWX"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="admWCVXK" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65C3AScN2477796 for ; Fri, 12 Jun 2026 09:26:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +lsgrKk9p/S2kXHtUz8qoicwfhLPPm3xQs1fSPkm5/g=; b=GpWJqQWXfweDwNmj 6xqtwlX9roDmCLyyowmW242yENQ/um8sW0UEfooqoTFZdcpLnPZszyJjh/7ae/sd pQfcpTgowSTpGTJvWMdNk64VJhZU3K5gICyfdculiAHN/a4qrf+9O9M/1scIjFyn v9pRU+6BgOvmpHDCNvtbakyXVmO6MyLwJ3nlaPxtvsRdgpIzIuD2cPMQe9Y2E2Xo jsHugN1yRivPXZFa6yExAR9v57zNWoL39JOss8YpEKHR+3RYHWy+65Vx429dd+la Nc2lrDRjp4ZA6F+GEXZapVKM1wYlAn2onFfLm6mEZjI752G1HT1xFFtCPqO65aaC nNmJ9w== Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er2r5tck9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 09:26:27 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-6c40601e2b2so741894137.3 for ; Fri, 12 Jun 2026 02:26:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781256387; x=1781861187; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+lsgrKk9p/S2kXHtUz8qoicwfhLPPm3xQs1fSPkm5/g=; b=admWCVXK2GOOVy33SMGg1rOi8wI6YHLxt6OIbsBuSOjZG+X0EEdQlYgEvi+mkKvSoH +eXScHqIkjnvvMScKQaVwx6y/dHg0qXsVX90FH85LN84IcaIBJtCZa0TZ86NdScNdE7N jJTxoDVTBxMCha6sRpRlKaygpTqxazP6X6nT+ZZSRNoPauVtWKSPThah64yyoGK5Ui4d E0gSWK7WSPdCXrXiw87YaJSpn+keCTAgzLv4QdrqxG4gmBhg84vAOPG+j4UebsWHti91 fnqxduOiYYBJgwt9vdRFCDIVAlMvDPcgvkNnx3e1G+8KX14Q9r6NIoQ6J5CKIFLZ4BX8 GSHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781256387; x=1781861187; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+lsgrKk9p/S2kXHtUz8qoicwfhLPPm3xQs1fSPkm5/g=; b=WjPByGDo+SReWrmGuyUE42dIOSdu78dpHHReJXlKEwUPfL88mhCs1OWwaXbcbWhGjY zigLCHAMUuZA41cDEAc9fOHQEDnsfbWgmD9jJQ4O9O6uAvPfDyvifEEbc6a93vxMX9KG s+SzzJi+8/ix9JO0NeYmnuco9M5AUxXkU74iOtW5Lyq4NGHVt+oPueC8WhgPso/eCKwe AsXjFszZIYW2Zz2v1psiAmqFCEBkSgyBZ8XrGAqrLFGgeh4+eZalPOzyIFi9oD1+p6eO uLklhxj3XhkE6/ilv9Etyy0Cud3SUhKDVfiCyfn3CdLIAhT0TA310u43Es+ppACR/NZq +9lg== X-Forwarded-Encrypted: i=1; AFNElJ8XXgDRp/nTyPgKcweIAkLpostVbQaFJjvzy6YFZShH0LuNYgNNJJgmn2kMs6mrjsNi3iwdzKbDXEGwyb0=@vger.kernel.org X-Gm-Message-State: AOJu0Ywz8PbrdFt6Zv7rdf2Uppy4HYKbyRFujPZtUhEiGFJhVQYdB16q EGX4r0xPh+JgeZXhv+hy910s1JXafIXp8dm6IiuP8g2TCzMYgnV0Jg7summ2yGeVw+B4IXGVYnj nq1H8ESpBxrhi9apBb9vCx9S6Pwa9K03w9suf8M02PLfunMhSuJU24dsPl8b1gMId3aU= X-Gm-Gg: Acq92OEgaHIoaDnvzho1H7+ZDhFwACCS5WRCv/Xu+s0pSzGfpIO5kn87PnbFyIKVX1x 2xsVs4E9Rw5O6WTm50cgTQwH5o7gqUUCQMbFUnU8yWVIn+dT0tmXyxGQMObE7+UlXcAepKS/a6E IkJ7Fve5c9DZ2ILuW/J0/NOFGcuW6ue8arTscgvhPsfy/zYlfXojjY00KxtbnWo/7GcKFeJQEKO cDWNSCmwIZ+NKfw8GHPv26IzTD7fxko3S+OLbIvQtBh9+TJPlsJgG1rtNg5Xsg7JCzGrIbwvSHO jrGx7EgIm7mUk9mGOm7m13p9jlQwvtZpI/65dqgBRFEj2MVZaKf+z2GQugr5Jdt//uWkexBl+o6 /06q3xK2KBc6r5fGWgaFHyd4ZyaHaCNJ9jJCIFgCiPiVaXkLvlM7xGNm/+uKujYuSD4+XC9czLf 4sjOo+GjjlzD7IRG54nUtAIM7vaqlDJi+kvKM= X-Received: by 2002:a05:6102:5e8b:b0:631:2624:e5e7 with SMTP id ada2fe7eead31-71e88c3d34cmr796748137.14.1781256386602; Fri, 12 Jun 2026 02:26:26 -0700 (PDT) X-Received: by 2002:a05:6102:5e8b:b0:631:2624:e5e7 with SMTP id ada2fe7eead31-71e88c3d34cmr796737137.14.1781256386209; Fri, 12 Jun 2026 02:26:26 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39929f190ddsm4560191fa.19.2026.06.12.02.26.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 02:26:19 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 12 Jun 2026 12:25:48 +0300 Subject: [PATCH v4 16/16] media: iris: constify inst_fw_cap_sm8250_dec Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-iris-ar50lt-v4-16-0abfb74d5b3c@oss.qualcomm.com> References: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> In-Reply-To: <20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=901; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=RfGmISJ4Tg+rlJIDtM2rxs9yeQZR7HuRyIw8EI1Vrgc=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqK9CRDFsqLGDWYoOyOaCpvBHq/7rzgZWJ/wHIO WZ50XFUH+mJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaivQkQAKCRCLPIo+Aiko 1VpRB/96OpmATW+x0xCVpCVxqXtI4/D7EodX72lSX7Tlb2+zEjDX/V7TNre3/9TSkWmegtuL9Mp m/4HCTfCQ+btfddAnZDgBztbUhjIarIQzWH6wHnC5FsUHNCPeoUEP1Qdsoup6YMeYgVuZH8q33c 8jiqc66tOSghzn+S7jXRMSVFwqJW5v1E30FSzZyI6MH4GK8gQhZoypj/gn9wRW3MenPl58UX+w3 F31p8sHvLEvhh8376Fxd0z/Q2WFPwrdnGWsgKnACt6RrKuMH6bAJ+ZALiiuq0hJukNKZsYyz0lH 1MbHGMLuKu6uq1Y5f35BUQ03pE5kk0ndlIrZpIKJ/asjsLUu X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: F1i2Gg5FlzCEK5a2A4B0OoYc5BUPRire X-Proofpoint-GUID: F1i2Gg5FlzCEK5a2A4B0OoYc5BUPRire X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfX+kN+6FMNhAHZ JjT9CCmhN/741WLfV6+NUiZe2WIrQZx/Z+ksk3vUqVppxkY7xuPZORuYHFGiKs6zovc1xy8JetH Op/pJGUNzMu9kPkmY7XLYHa+A9Flltk= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDA4NCBTYWx0ZWRfXy1p8LfGuMSRU FT9iH6DjCZX8mp4IiX+ncnozun1wrPm/wlHyPYmWP8Bii0fZ61TwhlWDpWEqtqYwiPczNNCYtuC Z6HNSelHm+w0krKaLwGqzNi4/3tlrjc++iGgxyNku8oH2DpT9WuOfwIIouW9OvrgjdqdsVMNiQG SrjmwRGhp2+nhkIiho6cIeJDxEdFlcHAEp7tN9JTfTb75bEweX67w9/eEOv3CKqSoDC2EBr18BR DXnWfvLvFYU2Foqs/uBr61qMFBwXRD1Hbxy9fLgQS/L+XNamXmaCQ5kYV/QfV9fJdO/1BJk0tbz EZL17XLV37S0sa77/feOarmMcuGobl7/kFoWFW07osa4nFn57WanRQlwzJ6k4Uf4PzZluQzy6t4 LddjL6T4fQ7CtfZjJbmlm4ge079JTB8TMPiglm2Lb8PUG684e+tUv/4lL7THHLDhMEbJFR/cF7Q ciqCnlTjB2GFN7QDpWA== X-Authority-Analysis: v=2.4 cv=M6p97Sws c=1 sm=1 tr=0 ts=6a2bd0c3 cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=aSZcYj2XgHFsS6ESuJkA:9 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 suspectscore=0 bulkscore=0 phishscore=0 clxscore=1015 malwarescore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120084 Mark inst_fw_cap_sm8250_dec as a const array, the data is read-only. Suggested-by: Vishnu Reddy Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_hfi_gen1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c b/drivers/med= ia/platform/qcom/iris/iris_hfi_gen1.c index f57af31dbd9f..a8819470f703 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1.c @@ -13,7 +13,7 @@ #define BITRATE_MAX 160000000 #define BITRATE_STEP 100 =20 -static struct platform_inst_fw_cap inst_fw_cap_sm8250_dec[] =3D { +static const struct platform_inst_fw_cap inst_fw_cap_sm8250_dec[] =3D { { .cap_id =3D PIPE, /* .max, .min and .value are set via platform data */ --=20 2.47.3