From nobody Fri Jun 12 11:18:44 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 DCC1447DD4E for ; Fri, 15 May 2026 11:48:12 +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=1778845696; cv=none; b=n5Ea4WzXsJ/gpa9PnqRDemjakc+b6dV19VgKTTbAAeBbtdjnxlX20GLTNDaUgH963e4yICeXr2B2d0j+yJHNoymSpHw4yZlMzyF3fjT97e7BcbHHqYKZu4W3RiGdUy5p+DwTr3RwfmIPhCFQNc9G64kqBdUaCnqESoooqJm3vdo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845696; c=relaxed/simple; bh=aFCxwN+s0nObB9dYmcqshZUCs9EjeMcuhwbHJaldKhc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RWstgp/SHaggPRtH+aL+dYWLqUzxBr8xZ6197KI++wm6BE27NogNVRn0LzyeEAd3Ut+jTO1qt19/OIdXyLSn/E/Pj8/G/Z99oliZa3pOjszSY6q6qqvJ3p12y+J1ydDy3VE0AIm3EMr6MdlDxEKRsat0If5H2fE03N390/y6m7w= 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=Km2GzmLu; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=B/rLlpkf; 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="Km2GzmLu"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="B/rLlpkf" 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 64FBGKFW3512832 for ; Fri, 15 May 2026 11:48:11 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=Km2GzmLupUZxciT/ 3uy+vsBxHJpfUa8Txvx2jz1eZkOZSfu6ff6mIAX2Ljn6Rkg5jlE5JCaNkj9HNRxp vJ4tKIbmbmmZIiZsjEvMiqe/xp7NPFVOGj7upo2IxtKnwXsgwEVicg1VFcJ8pnOu a8WGCPsLeNOz29+NGPFRZJjZTWqJ1wOO+mcGlntWbD30bZM4P/AMHFDZYZcyliay rFlThivkXDCkSBogBSy7c0gGrsr6OtJ0zC9d5sAWibio2GV6uuBQf5VPiwTwBjcC pS8S0xWZUq4KnNtpA9Pg9Nr1Uk7idta9dn3BD54xQiF0AWAqP6OMI7+qItLRumYL sNWQzQ== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1vb3nu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:10 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-514ae0e3ad6so21351191cf.0 for ; Fri, 15 May 2026 04:48:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845690; x=1779450490; 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=B/rLlpkf22XCrT/mTKnzPFB7uk48sJBp1vn500i3iMhdGBfuZxBcUi7asmDu7ksRn7 tVZPdj8IFeal0cComOQS8ZrytO3s9/MSXqHe9IffSYSezb+GXe4sk8UL4EwpPJ7/t0MX lhoOAyEyWS5wdf6uE3x4ZyrSVFvx9JbnQ5qCJUMcGSsbqZikSpk8S7MSpU8RpvisEUdy JPpQnrLG97bZvxDF5kZS/xMdg27nJeMGlu3YokzA93Z/y42djsuVC8sDJ2iPUf+9MxYO Qnkq1wsUdliBRaNUa/mwjl5UVb0T9o7wAan9TdggKk81qMO0MSz4eXOc+c/3Kb1B7zzq htNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845690; x=1779450490; 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=lZ7cjZlRfqRvYsEOJnuH92Adl/brzAVMwpcd9+j2Kqo87jCblDfcgBRZRxntQ5mWZ6 ntHuur4n8TdaHnxEsgDCKnNsX1k5lRYS0kKb5uQgrCMw3EId/ENcVZPWHrH6svctV2cf 3ojI2owuu3fFN5axnUedsFpFmFRPpf4kxTWDQn7Ld3m6aPm1OGVKjMx3FTvcNJi1I98+ BHrRehTQwzvjARqI0YJIHHJlMGRwG8Zepx0LsJYl47X5okv8At/41p/BeXax3IZpoIrU qebuyIu+w8ibEe1HqYVWvCHQIlyOiWOT78YMn3f9XzX24L07q2UJ8tb9mlQziha9upQe x5bw== X-Forwarded-Encrypted: i=1; AFNElJ9AJdEeDKfF+5R3Q0qPYkj5nJ6kyYgwrxot5HBsOJQiOcdzWTd1grL0hSG+4/UbGFpB2Q+CO98z3mwuD5M=@vger.kernel.org X-Gm-Message-State: AOJu0YyfF0iY64taFBisIA6u4CCTNfGrinZqXnx41siqnWmod81OBBOz j6jjSanXqNawG8doGhYMQYRjbpe3PkzED/tk+IYpOJj82FR4Bz6VexFnRf4muREXMhtEq2Dab2G kqvPQXpshljYvUrjRxxeyvw09b4VJMjZUnQ4IihNfxeEpUe6PM9PlQkFhv9vr70La2so= X-Gm-Gg: Acq92OGTrWa/KqwrsvywZU3gjJhxLsPJ6+Xki+ikZGSHY2sqz3zjEQfUS0pzjiDdcLo qeotFP25j5G1hcsibd7itO9IjJOg53E/Bx160xbmDPZTo47IFvEf3CmdYW81mKyhCip5WY+V15q 8Zaaa0ncBOFvTWK9oQwaUOy7xrTL6NTBINYrwA5e+3oz8vBXf/BQY+HiC2CFMU1/0fKIFXEmsyz 0OrwrGVwLuVn5XCrokVJx6IQXmR5z19HBmQoiaD6LzhloargXOx2hxiMJ2syN2dq8hCfWII6Kil gNywkMReRlvm81PkwZKiJn+VH5H7jn9XpUEe8z66OjfjB16jd76HrQKALKwG8J6a3KFtIfb44WV BMTVRS4/q5YO4vYXigRClv/4uwimohRYW0jOe3j4/8Irs3lpTtCVkI52iVxqwBG8hfB9g/AHiFW 3QUDbEKnyfnYgdHW4ve/xQMvLGHelGzDz0glnvmOF5cBQDFw== X-Received: by 2002:a05:622a:a950:b0:50e:18f9:b5e2 with SMTP id d75a77b69052e-5164155c029mr78223501cf.6.1778845690282; Fri, 15 May 2026 04:48:10 -0700 (PDT) X-Received: by 2002:a05:622a:a950:b0:50e:18f9:b5e2 with SMTP id d75a77b69052e-5164155c029mr78223021cf.6.1778845689662; Fri, 15 May 2026 04:48: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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:08 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:00 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-1-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 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/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf0ddAvQKZ7Qmp9e16WDcQP93Q3AoxnF/5Qu cuYRexvWlGJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9AAKCRCLPIo+Aiko 1ULQB/9YTt9SYYmINJ8B/XA+CM6rSmr1pxaqAU5Xm42zA4d5raA1RO7Jantz7vGgmpmRZtJqr06 dbUdc5FvmqgkHNtbiS9l2S0COcqo6HMwHp9z0pD25acKlpIOyrimjuVyyNMD4tsLBAurhW7vkJF Atjt1uCqfqWokwRtoh32FSV+NSkCZ559XL/ng6RlfttzkfM3OGqvBGx/CQbZ3D5xMYwoTPqjlkm u3vmsdZH6tCUf4DOACVCy/rUAqH392NndlgyWYHV1EDLdc6tko8X8uftYzGbZ9Ty8IX5WKizxNx KvAcN6zJJ5OwSTTKakHFnBK1kOPm8hoQ/lp5rqgvResEWXTF X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfXwVSM6jSEC/GD 4t7+b0uWjhe+ekBOmNY/fpwQr60UHtJz1aSSz40/fmIYkKCUXvHK10owdvQW53EXOBZmU7L7bA/ z4z8P9swtZU3alKjqIKzkVITrERW0OkfMCDtjcBgWrZiLzcxtpmsfAgi15Md4cGpQhvPZ/QZcs+ Mn9fBirzx6t4OT2I77dmfRR9+WZTdq70GA+JS+cAspTUHIj5pG82OFvzee3s6NDCu6mF9lSGXPh PDXMudDuZMpFumOZgMvokwlP4bofq3kdqzIIdnHs6GZqz3nptiIR3ONtMMEgm8bEkeHWcguHqih /w6JRjXaHDZiALgmX+7LnoaKyWx3g6BUvgMczMsCD76kpVBtffhI8Kw0dUKITumlmRrlj/AZVzx WbGtpva4jBpui+Dv27g1aI2cV3Itc0BZOio3Gkn/Com2DcHV9OYB68Ib26PybDE0geQ4r9MkAYR FHUPPFtZYTwySkt5mMA== X-Proofpoint-GUID: 1ecq5koS0ciUyH42z1uYXtuxEhxagyk9 X-Proofpoint-ORIG-GUID: 1ecq5koS0ciUyH42z1uYXtuxEhxagyk9 X-Authority-Analysis: v=2.4 cv=BvqtB4X5 c=1 sm=1 tr=0 ts=6a0707fa cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=wrkyJH6U6m0Jdbs6q_kA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 11:18:44 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 42086480333 for ; Fri, 15 May 2026 11:48:16 +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=1778845701; cv=none; b=l4YaTWrvAVVSGeHzVqt/inAczx2o1GmrkuKiV8apF+zdyHL72BGy+cY+HSyZllqTVR+nXi2HfsrKgg0sAIGMIkbwJPekVs/fAerTuffStTNRbPxdC9RA9JVposUOA581U5oY43I46o1HMQJSGcrRxGKlUYCaWL8SCP/VVGaIohw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845701; c=relaxed/simple; bh=U1WEKcOZrCsXwGbYO3VwEdQBYlx1VxXoS7cDYZcOMmw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l/g0vMTSQ/5XEKXSWfZG5ixzjI5w1d2jbdNWvWbVr/Ia3cOrEnCcrkC/soAPrKI1NzORQakRAmAdTJ1+zPSJeYu/CVle3xHhvBVF+8zNv0FX8D2OETfGNj7/jQbmyYgFi/iAS3xOgpBvP0bAhoZiB7z5/55SQi/Ke9hy48ZE63M= 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=Fuaoj0Vj; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WFScml7/; 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="Fuaoj0Vj"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WFScml7/" 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 64FBU6u81848101 for ; Fri, 15 May 2026 11:48:14 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= 1UnaLeEw8V9nK1L0PWkD7aEDJHTMmpFjiinW5YLXPuY=; b=Fuaoj0VjJsLnCtKI uEVz5BrMPbM66W/D+Qc3/EtBTnRmzH6J8FiLJH0r2G3azUl4lC94a9sLJtHtbogy r6COYRNKHr/7d7IquKp0cw6EBo/Thl1/d8ygpnVptXUEGn8D+gK8sIYygkC7fjgJ EPnHW5620N9L9fTl7js9puRSxvUk7YW0Wz4w/lpBDcQ9rhc2q4CVpa9p68N4VOEi faakD5pYHC0GoO999im5vSJE0rVj5fBoes/rzdt4mdtb9WXlHdHIivvCTbzhJnfU YfDhXaYga0Xgilkp2DTula3q6VYbDdI1tfpYQMGKx03+v/thNifMOUwTBza+5zeA EGVvAQ== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1t32db-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:14 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-5104b861649so273092201cf.1 for ; Fri, 15 May 2026 04:48:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845694; x=1779450494; 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=1UnaLeEw8V9nK1L0PWkD7aEDJHTMmpFjiinW5YLXPuY=; b=WFScml7/LNs/YWivu1pkWihQmR8+12jv1boa7ONkm07apGYOaxPkWMOIQ5uKo1HFkc GCnNJ6JPTqx7+vC2CvBwpjtwAuW95MrHrPClLwFG1pe3u8aipNOmO/tkDTIVoxSMxQjG zkWxXQKJXcvvfFKas+hN31CEk9kIuhFSW4PKBLXUTa5c41fri9hKSktG/pIb4IHKv+rN lk+9yzrNJtN+Dz0WEJMqzIKjcSI7bhLZQMjNU/VUbFwpp0n++GlZ4AeTqm2obgP0Szdw U9SO/u01ix5DtT7Dl4PU2UZYqxxCH6h9Jt+73gK/FR+LPHufZb3RE51YGsZQlgWHMHLe 0XIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845694; x=1779450494; 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=1UnaLeEw8V9nK1L0PWkD7aEDJHTMmpFjiinW5YLXPuY=; b=MJXG1LBuWRxniagO82e14FlD1R9XmpF2iDyHz/nY3E7F8G4x6XHlo7MWQnfss9nYXf PE0it6bkd376j4ZtJlZ8xSSRlsBSrDb+/HugC3fZsB+9GPC6FwfTvGzQGQAWnAofDFwn FT6TnK/GK/sRsrjesdV6EcPPIjnnTaXJ9KAFYrfHrHT7im2PDeUwLFMfeggC61knRvng WjAL0PpQWQRv6H3MtzA+FbZR4tllLb8nG4I2+qV/fc4Y1jd20pEQcAUIkuQ1JX8Cr4V4 Dw88ZdzLzWJrWI4V39APo3vhtpWPPtC2pZk+p8AF1CNe6o9hmOpmmR1PYCf3BQi/MWgy smLQ== X-Forwarded-Encrypted: i=1; AFNElJ9ScWAZg2mdLFDplRs3sX6QqEuVnqNBz6OxQfbbg0D/wIKlf/oS+lGdbfyj/KdKPVhhAS7yfaIgAJzvN/w=@vger.kernel.org X-Gm-Message-State: AOJu0YwkjkW0mFrr+WUOAuTeOu75ZUy6reW8/CgLQE5D4Yx/IOPle5kQ +wnOWiQHtXTx0yoXIAqHWT9N/+WFwkWGPETSXrvBuiGFWlQSgm2pE76fk3GeLZjNLfRvEvxd35x 8yKhqyUUl8kkrsAz0MAy0rAzY1AZKBj8j2s01N8u+i8WCxg5DGIbk+WL8K6ByY+Rx330= X-Gm-Gg: Acq92OGKX4Smb+nZQEulnzvA98ASjIy7FPcalqiasqNuAGwcWw639UekRBkPq/cnxqL hABF2XqYsA3j8o+bDl56EoyBq0rL/3D6ZIFeE/9rzE8DAmmP5oU3bZHN8dkIhxk0IteHaKExN2/ 1XnhjTTpnDDJlAy7+d/e6G3Rg7H5mPYUGMfRSgrUe9JmadH5HoQw/jjIVYcGdpNBvIzMCFglonz h0wXEKDwn3FN52DkTTnSAiWvfeTwSu4+co/sHLVe0wGvzb2isXftJ2NaFPTwKVb/6cUJXq/w9zm y7BtGZim4xO8hVrhEy4+kh5iDaSnLQ1jQrg3ybvw+rPnrbmBdk2Newqp8N6ks9wZnyy8Yrh6gXj mbfgeaRZzDz6geU30lBOUl/WuEvensiI8+qj/J5VFBZ/+1GDNRlXfjQI2RBtnvAaqI+ZuX+Cc7a nXq8ir905hdFYKricwGkvZccAnIybpW3OdrNd5rcP6XYwDkg== X-Received: by 2002:a05:622a:6201:b0:516:4fc0:27ac with SMTP id d75a77b69052e-5165a1f4f2emr48630451cf.50.1778845693965; Fri, 15 May 2026 04:48:13 -0700 (PDT) X-Received: by 2002:a05:622a:6201:b0:516:4fc0:27ac with SMTP id d75a77b69052e-5165a1f4f2emr48629731cf.50.1778845693441; Fri, 15 May 2026 04:48:13 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:10 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:01 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-2-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4536; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=X3Z4HL3UZoUysuTz1/xwzlwJPOeZfHAr2V3R4DT1iDI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf04u5V7a0CdPnHXhbzU/0YX52imldiIFn1O kYXoLv07n6JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9AAKCRCLPIo+Aiko 1cDnB/oCbahHR8DTH5mvvr0QxrSYVV7jmC0bmzbKIciGzaTBCM/aEWD6NYHsk68PQWPwQwsMg5z cpMDawc2ggvLXXAt75KifTOgQHa5Pr8i4O9QNNy+4xwKlFNd/59PUHfZIXCmehjIb/pLsXgHu4e zdZc+AmihXWrx8vrUSSzTVb8cwdQqSNOua3MnJ7pW1JDdEqrw0SeBWk7+CWRG18Px3q8wcFcitJ s0uPFKYMBuDaFRYvLXnFwrNNWlpILB/TogopKSnH8/hYGQu3eOrUpB8SX/EnnAwrQ/UICtY16K/ RmdtrlscllzooaTtkUK+SfuSf7KxkQEDgvYFKIifKpsKUpVA X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=D7Z37PRj c=1 sm=1 tr=0 ts=6a0707fe cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=HWmRtQhKy1KQUjwlQEkA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX5pHSxOeVgOch wDAwX2JYJTORqA1e3usZ5ZOr8Wu6iXdU7PS8biiST0f58uPkzb5sc77O3/UDXyeOKzjjAbk/puW QMma1Yj85YU4eVFCY/0xBRO18Yv2AACcJCw9EYMzk/RGM/9x6YRAy4UvBR+heXEbFNs+MYGR4aX 6+ZZ6f1zSNYwVvuVCzWthU59gTzZiP5/lI/YzBtaEK3v/upeQbKrMb4qHfpK3Yhva5961uhQUdB WA2rWkBWb6CFTgjqYaw87UFnybGQX53BEnhkh62O1qWiWSQ6Bi1TQqC/v925f6T8KJNEQefLRzN BI9Yg3CdmchmBHNcisPWgxdOC0iRyYzxVe6UALzLVcY1ns+S6/3pc1U4KoZuOX1LQQWmqqvLVlF BcgQ+igMqHCeJe2kkXkxR2AV4qfoWWZmXbgz9DzwobJfLsgWCLMxBN5s/bOQTLQBrW46lvJ7xu6 12M+bYs4pAcLbCvtKPA== X-Proofpoint-ORIG-GUID: oD9KQIRVcdvyLlAHvU8mA5xrjF2JV0ca X-Proofpoint-GUID: oD9KQIRVcdvyLlAHvU8mA5xrjF2JV0ca X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 adultscore=0 phishscore=0 clxscore=1015 bulkscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 ff8d664558af..bd44e6437480 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 @@ -74,6 +75,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 @@ -85,6 +87,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; @@ -100,6 +105,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 @@ -111,6 +117,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 2398992d0596..c41f4103ccc3 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 @@ -97,6 +98,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 @@ -104,6 +106,9 @@ static bool check_format(struct iris_inst *inst, u32 pi= xfmt, 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; @@ -123,6 +128,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 @@ -130,6 +136,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 11:18:44 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 C02D7481ABF for ; Fri, 15 May 2026 11:48:18 +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=1778845703; cv=none; b=pHrcuThxcc7mTYVVriAsMFVly2xYrTd1g+BbAxcz/dV90f3AU55Xk+8bmL6m4gexnwrfKg3heqRamLkaLTSZ4eVyZ6XxrqX9yYZD752of29vOuhznQ68mmRJy1VT/lxe1is+bjHfrB7uJxiknvQ6sDbHl3wWOvZQ8jswVNacETs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845703; c=relaxed/simple; bh=NIeHu4ozqMa2+nVCwY8xC2WGYPW1YAI9tEryx993GPY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZVwzjOXa/7/3dPi2M88X4K+TI52lbxpJydqFIE6fa3eDJ/UcdGBO2gF5GLEXwi7hkrfhey0nRL/zliawaRl7K6f+8Yi3x4ajVLvWSXxdu1w8Z2DE1ZiyIuM3SPOV0z225s1PJ+cQv6gCY0y+m8WtVKE7BynQtM43NiB3TcfVkDI= 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=fn1iwfn8; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HAwX6BC4; 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="fn1iwfn8"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HAwX6BC4" 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 64FAjAoH654886 for ; Fri, 15 May 2026 11:48:16 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= wfN475NsGtu/BUcLBIKhNHYgRJygyzuWHLtCmiPiGNs=; b=fn1iwfn817mkcyyF OyIvxwfSxErPuUBQn/iGAhBvT+DoGrh2RixQSD8krZHCV+x6Q2Eqy0OJ/hsiCBkV zho8Zq1Gs5x8H5SnaSLmA5KS7ro/WJdWta9ZPKJgJZFfjQaUceqpjIsutbXM38Dw 8lKWVvfI+MynyhJ4kKwlXg/mNG+kkaMnUbQJQi2JfbflpAkmwHwHnsBgITqiDjk2 v6NK1Clw+dCxo2pkhWrfuySqaZsd+OvqGpRuEHnI8bq2iTvnKbWntRHb5U892NFA lGv5Jm3Pe2mMtcAk/IAnzr5g5S56DfrE1p2CWycJvypxVS9H06jbWqDYrajcKZfQ uSdi1Q== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1pu5g5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:16 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50ea1a7a5d0so113705941cf.3 for ; Fri, 15 May 2026 04:48:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845695; x=1779450495; 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=wfN475NsGtu/BUcLBIKhNHYgRJygyzuWHLtCmiPiGNs=; b=HAwX6BC4r3cZazlr1uZ+oFMQbjEC04NSjEvZl6Sk1gT6B0GO4lFa8JyxEu9415fjvE ZdEZ8H6DrHM0+QY6rLmFopFnmW73pGXOxIvnDsR4jYt9iGVydqQbnpOi848/aE2GeSZp K1cjG6zXsfJxVD+wZGGvZ1Lzff3El1oWk+PmIdm+gKuS/03EPq4BlA+uU7PuAAuU49dO G37vXs6RTqX5C8ybZgNQiCvRjF9Ads15s/KwNot8KYmL8BHDVlwIp6Vq/x8MqKLuKS03 Hfhic6iYqXwMGWACZXM6StmWbR0s9dGXruyi+rxo9wPhI3PRzfmaziSgEPh623zkFV8x QjGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845695; x=1779450495; 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=wfN475NsGtu/BUcLBIKhNHYgRJygyzuWHLtCmiPiGNs=; b=a2PiQov2sdko/vuXaxeUkpAfzh6GrePB3WiNc0uD2PbwHjopdhfqlSmeUbu7LbOJvh 9+srNhnIwyfD8c/ZEd0iyeNetx02CVYty4Np/Bg1R3Z1pWaq4HeW1NJssftBmLpDeK2G 6Smx06qAOzBxeemRvS89+Uj7KrPgtpcHroUL0nEW7FyvZ4zvDtkqHzk1nspY9D+00fSJ dSCGxRjjVKVaLuHK3kj9hx2xN/reZp0mvhJitzx8Qbp9i13hkQJxvUqnfiMBAUki+RPv aE9nfhFUGxzMQ2JukpSqoS13D6yTacCyQLpEaKiaktRdBhhSlpF7/XTqeDNgaoUc+i/d weMQ== X-Forwarded-Encrypted: i=1; AFNElJ/GY9Ao/bHinJ1NWlB5/xAig97Yk4l1tEXdV3rrXX9NWm2RUpGiCR3dslSXeMA/ToL/FmdSfnUDUYamY5U=@vger.kernel.org X-Gm-Message-State: AOJu0YzJtoJETWNed+e4LTuQeZs2CWo7ZY9W82CNDevmXXWBsTPShsc7 E9v1qgJito1T1d59QUelq8IHfi3M86THKt1zZFa6g8QlC6cqEu4wWGxWs9tU8nq4zFMsLEv1b+y B0S5qI1H+Mh26dqmXilj1WEwW4FY6yGbWDLaE98TJvovUUS4k6Mksuc7vb9pkRiGjwDw= X-Gm-Gg: Acq92OGr1O2E8+PaQllXrAsGI/KQezRz1oED/j7GsNOSHErdws56967aKCglnyqA4Vs UCY+x/7iOYfgKXVhx8bFr1oCIKtdbsS+305ZqUJhIBW2lhL1p/W5YAZ6VkVyuSIPsya7OHLoXMu eZ+KpjCFrjnnXnnYRZX1lZ5q/3g0RmgUdCIK6P+GI4F3viZjqd+thCg4FUQwsT0lQQTEQyX9z6V g9uJ7r0Ypn4dSFSTyLNhXKWJUGrsw9MhCzkE77JPhTyfoxeJaYKVAgcCF33OO7UEW9o5EnsICPL XRpq0rvpJkTJDhTzmVW5+e5p2JDbiwxaIA7XHHu43dYWzLluoOgxiooIl16D4e6okkrOG7Kw82H IH9DLy+uN+1GqyRjFe/e5m+6vXflC3eszbzDn2zBKeoNYEBPR15sfexObm/buEnb26FHd0QMp8U 528jzCVtc89rQEVbGfvSZFABmeuNOcS+/Ma9M= X-Received: by 2002:ac8:7c4b:0:b0:50f:b978:82e9 with SMTP id d75a77b69052e-5165a022a0emr48351631cf.14.1778845695430; Fri, 15 May 2026 04:48:15 -0700 (PDT) X-Received: by 2002:ac8:7c4b:0:b0:50f:b978:82e9 with SMTP id d75a77b69052e-5165a022a0emr48351271cf.14.1778845694953; Fri, 15 May 2026 04:48:14 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:13 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:02 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-3-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4447; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=yjv3YSjey6H8VPHigK1PHGPXENr2QgLaW8YDZ/WLE3w=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf0grR79YTEqtux1xHVvJisDhvDATyliQ8BX e93M8/CNXOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9AAKCRCLPIo+Aiko 1ULSB/41CiUjd7G1MgpWsJcX+OdLldopRQ5Rh+PTUoHjmFyuqnK/BmFC9JIH+yEBGPamigEzZgN 0Pt/qD0PYq0GK3spYRduyeZAzTTEUGmhWrfY69mdLoFGgQDUCPRr4pSuJYwGTltu30TEzspmqQP aXRoWQf8oAzH1165C3M/dr2Eg/01ZbDYc8HvQhZQMzVytpDGfi0PwwOc4tRNE2dWeA93a0z/56f 7LeFpCqexk6RzqnWPYU7+ODQ8Pdzv8ofPxy9BXtzoIyfy3fnkJYVnt7q2N1wU6TgK9VGx+7RpNO pw5VDy+j8IqVIeW2QG5yEYqdPcAntfGy/aHcrtJXMybLYP+D X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: 9gaZfdRCdQDnAsA7zGw1jfgJzRjkzdJ9 X-Proofpoint-ORIG-GUID: 9gaZfdRCdQDnAsA7zGw1jfgJzRjkzdJ9 X-Authority-Analysis: v=2.4 cv=GrhyPE1C c=1 sm=1 tr=0 ts=6a070800 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=4Uh0hlRDs2lXuULb_e4A:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX5p8EIlx6oO/M 5d3tKHdZq2sTG4GnNwDSDZ+V+yO/e/WmkOJmJKHDhu6dG9pxO8g7APO2UwggBzNmr8CQzQ2+tMg QBsnBNc3GUG7dpQtd/RKlkeCIDwEfOAlsnAtZsVU3lykUyNBjFFqJLO0HMecZ0EjrSIFYhcubzp 2IdaxvhGX08TZ+7I69n0A89KMQ2junBXqTIlyH1wJlGL6keP3ITDiUHq/rfhXZE1Ysp24XOa9IO uKJSaVGUUBelUkPtxAK1Kz6zdYjRObIJ5cOXA9cIWKZszgcZ3uOZQ3TSCf9U/2jFj2Z1hLgOEJf zK7rW8BZ8UDD+kLTnI2XSZgmjM6sXBQqM2VxmSlw26YmNz/gW4rQb6W5j0cgEA3hRu7HRkeHMcq ud3WKb2uxc+Z589uYrXobOvqHtU59bdIxiqc1EbFnSlX6239n+5yVTHnqJlITKd4GOc/bzYvG14 AHotwk0w9aQ11Dggeeg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 lowpriorityscore=0 adultscore=0 bulkscore=0 spamscore=0 suspectscore=0 impostorscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 01ef40f38957..d61902c9a213 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 7bba3b6209c2..ff0070c85ccf 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -472,7 +472,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 11:18:44 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 85A3747DF9B for ; Fri, 15 May 2026 11:48: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=1778845703; cv=none; b=IDo6jG46vxptusF0NsT7CnWAsV3t5my8SOoI9DT7mcjB+aSj1JqNepmCzWh61KU/z3C1Y9LCJpKF/SMUSTAKBU++FVXE8zU8u9QNG4oUqGWllJx2bHXItLZflRorPItu6d6KZL67/kWxu/N6ZImR/Tu2Sog93TCU/9GJ3KLJ06E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845703; c=relaxed/simple; bh=9MMSW5/Ed7QpArLAviQFc6KStndAKsio49V65Hx+FaA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sRzu/ig8k8e/WzkpsrBJoaN4NGgKpJRwq+jtJMSPfKcFHJ1RWMugJcwIFJ7s3mWfsbZbsXeNE6UP5YIHRqak4ulUwcM1hOMrEIJAioyGOyRq5Bf4GCqLYrooFuwuHiVHpfOyWWnGk1z3j53ktTcbQXctRsXKMEZaMUlqjDkGlBU= 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=ly3Lwsf6; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=VbJS8b1C; 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="ly3Lwsf6"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="VbJS8b1C" 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 64FBUdRS3797373 for ; Fri, 15 May 2026 11:48: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= RNMcPvu0+FyJ/bhqguS0n95+1Sk/5HnVopj7l6K+ut8=; b=ly3Lwsf60lBvnX+t 4dkhoiECNXmi2dNMkdOXlmVIhIIMA/SW6w/XxJTDFYwhn89nZyFsSVYVUG5PxzSY fyBFODNWrsg5PfPXeMP0o4kXik9yscWH1fmIjwMc4ZfjXPlFHNUzn7oyR1ptLwla fYwCJv3NF5Ffim6HEF4sESnDKbbh5pyzxS6auep2bjZIw3jr49gmt+SqpBSUtNn1 KxWfqmwa1EnzSpkIjd1y0Q0Apu+MBEpS/nRlFL9lBdVGFhrVEEd6XPjPpXEIMRuO BvMQeDtavAjsSuEj56xgWmHpmxzuYwHGufU95FMc4oeunZPU25MWXXqQixI/ecr+ Iv8WhQ== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1su1sp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:17 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-514b5d6bb45so15219281cf.2 for ; Fri, 15 May 2026 04:48:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845697; x=1779450497; 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=RNMcPvu0+FyJ/bhqguS0n95+1Sk/5HnVopj7l6K+ut8=; b=VbJS8b1CcoX4zSNezZGCN1cCMvhOkRSeSBgt1dN/Wujt4UQNAr+26+bZYGbIQnFgRG LBwncYMehetGvR/sPAec4zrIRtHnqpAUzYIv0GqgHn6nBBAgxCgtNqhpJhykQr+vS1G2 Kpzs7BG98r/jZ6bw/DMHSzN8p5fBndGI9nA9LAGUH0Xk8OufDo4x+A8Kwr6OQfuLFGNN rW+j2F25k2HqP4+QH1s5he6doCiv0dPT48nPs+yf+uT23DZ20fUmAfEhGfSA9NdfhTM6 t3Byd/fMr8JPGqpqK9WMX0AWBldFKAFA0K/gtlfM3Ahjao6IfR/mwTWDAAbYj01B6PPr P8iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845697; x=1779450497; 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=RNMcPvu0+FyJ/bhqguS0n95+1Sk/5HnVopj7l6K+ut8=; b=TI0muC/4K4w8eNHk8nyVzeOZjIKCv2+w/usZ34MNX7PnbsZzgtPLPDefMkG0J6D1TH 6Xphym3toCRlY7pqzY/mbihMltKW7jBurNPG2XNvoAhzAvg2yRqlpMBRQ0Xfu4muVaJ+ aC474Ht59AgndNbuwDjMSWqYp7vhovADRPXjuosivIJVblvZSo9LYO+HpSn+6t/hu1v3 VTOt9np3lwd9w9o92BjRXHSISb7nw2Q7Hk9Xo5qdPMTaG9OH6CZ5c6Af6JX8LnDNN6Sy E3I+81Hx4qEsZ2bEWC4KV+VVALkszkQ4J6Aguys5rE4L4ayl4wYEdHD/fdXeD7iKJPtg ilOw== X-Forwarded-Encrypted: i=1; AFNElJ+XBCMopkvJckVF4AyNznEsytxGm1N2czaklsBxjnZJY/LzCTNbE0PDLx1FaNCKQWFt2XQCSvTrKV0IHBE=@vger.kernel.org X-Gm-Message-State: AOJu0YzebHJN9FIOFKtfjxp9dkv/xqn5uIC5OITYFPJSemVDdC2EW/m5 9U2LfPywitOXuBpBNby4eoZCO8dhpxX2z+4feZr2TDEviyfX3fA+yzMblHM6VyE1sS0wQK45gOU aItw4FAn4y7x3zEE9uFs+wKHXwe37qC3I7B3BXQHlRFufvIiWiIEQ4pFXAq5eHgm+ghE= X-Gm-Gg: Acq92OF42fvNP7j+TqABYPMTdNa1XegFC2/zAeHvExrxZIsxM0V/SqRcgoJkEb9T29O jydLtz1BtkUHtT6vpHT33vecPWM9vHDHGQJxhV1qRNgLLvzRBG3aD42A3yVUulMHl3UnRQ8Nzao Y+L+BVdBq1JqZXtXjDtXO9c2CBfFp1Z4wG4GBd1LShePPTCQwd3KXqYYIzrXIEVg7BT1SgLgD9+ asF8mcVtSL9YNtN7hkCsfWMhDf/omEaVmc8ZXn3GWLIF6cKxPLZMJQlOd4VRotge2+cImcel5Vz m4DBAawYCNY6t7g94bBY2MVL1SJ9D9uleWPDdCq6fAg3bbU18z5MFJfEpN2vqWuZxO6voJoYUp2 DCaBpqc+9TqNyG6AAz7YeqTqxLldgV3X51J2m1JlRiqeBQGNvbUDZRK6yEDg8XrqM1pSxCZMXnL ojrH1kIf9gX7NQmY7ZqQvX4JOAZv7qF6jz+K0= X-Received: by 2002:a05:622a:43:b0:50e:89e9:2728 with SMTP id d75a77b69052e-5165a0b79d5mr51680931cf.19.1778845696966; Fri, 15 May 2026 04:48:16 -0700 (PDT) X-Received: by 2002:a05:622a:43:b0:50e:89e9:2728 with SMTP id d75a77b69052e-5165a0b79d5mr51680271cf.19.1778845696420; Fri, 15 May 2026 04:48: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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:15 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:03 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-4-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4871; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=BLAFo17mDNzRt3RGOIKqa5vQlLgViburqFmg/i4bsbc=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf0QzU3MVfks8OsTbC2IhM8ei33P5M/PmWYW Rl+oP67KXeJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9AAKCRCLPIo+Aiko 1dL0B/sHSrstDg3QTGBRHgoPwSgJY6F+4dRzOZGXaBhTweRyTdrsdqU/xScZw5WATkH2iqlh0X4 QAvacUB2Q68BA6Kblsk/BADFs9KwgNeSYduDNRbzlgFOBeRWDIqdGAF57Qwsf1mtdbaLW1ug3ln NcxXgPEmayAebeVFUVp2XTb8RZdYTcR2pqqUTkwAN0o7NqDhzJuG7Bmxo+2AS/x3F1Q6uE3a1XT nDUI1BtyrpwT6mLCFiuXuFYiALAyivIRuOApVOiODzX2J822h/w7b9NpF2N6y48fc6wttk0LJ1v yNObRX0UQw+8vP7gk1jtYxxsgbykYIpTkHQ/pFlv6bUMj7ZK X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX7eb/blvo2DDR 5r82+P8ZxDsqsukqNDcexbUE77Yox4zNavS9IF0eHvZUYtdmYlNtFlzv7tDWr904jcWBQbPCeIs CXm9B4CoDoQfvUJNaP7r1TlkBQOT9hoRHmAC8tt/siW3rJlTeqpDGza1owSpBERKMvSpfrTBAka Ky3QZH4nSXCKIyR8cfuWznOpvlQyIYAn0Pi2Sv7gSLXxA20/VioYX5PhltuMBZDr6BhYqI1RL+A Y/Z1qxQ/FWPwzGM5aCGcrVWZcw2pBgVeCdnAILHLUGheZgQzXbSpz5e5ArgGMl3F3Uk1q/HsS+2 m3kAWAEXHb6BZHHnDclyqqmhY+I5BTyKTGIoRiLGgVtakK4OTbOrlI5RJbpXgTbI2l7TYbGNbV5 zJx4MXswmEr0AJG6Hvh+OLlqoWfOEtGLrM2+vHyEhsTOJH3rxauv0HNHR96yXn/IJU4B25ziIiB M9egAPdHUrlcMqPqNTw== X-Authority-Analysis: v=2.4 cv=cZXiaHDM c=1 sm=1 tr=0 ts=6a070801 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=2EYiHOum3YQmkHKk0wkA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: 9U_suuUFqCm4sVGU3WJamPTeJLT5k3mJ X-Proofpoint-ORIG-GUID: 9U_suuUFqCm4sVGU3WJamPTeJLT5k3mJ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 phishscore=0 suspectscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 d61902c9a213..d49d22b14753 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 ff0070c85ccf..59e4d68d042f 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 @@ -474,7 +474,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 11:18:44 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 28235481FBB for ; Fri, 15 May 2026 11:48:22 +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=1778845705; cv=none; b=mN35INCz+1BSKD5mKgudB9n2WlYX13Oup6I0eAe0mez1qAQG76WRpzInZiFKvf0cCtH/G9cf33vFzitKnJqmrh12ot5k2MpiRZFXsHNTAVs/uy5OS85tyhK+BiNgkOCK/o1ht/N/9pnTtob+CuD+CtnpZbMQl3mXSAM/jCq0U2A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845705; c=relaxed/simple; bh=H5gjTCkahlz2x03Clh/PysKqV1bvgbU9MHDzqSGjKm0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Q7JSxEwYE3wChoRHARZDO8N6t2RfnCGxg2edFPO7OZClWlNCQ5zyqiG4dwhVEovhNl/rCuBb2M4zKVHtTzPeVSCeNe2f8zvGBaekXrVPt405mJNTqROClelnj0bbSTTGQU1lZIFTPeO27kkQ8ljEwqNJZEx7im/j4/HNimWbP60= 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=kfHhh1Jj; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QRwv7811; 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="kfHhh1Jj"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QRwv7811" 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 64F5jain3512838 for ; Fri, 15 May 2026 11:48:19 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=kfHhh1JjbyhqqyxE J3y8s8hxF/o3wnr1p++SDbYzh+/yaK5OOpOXjxzjKXuuanffTPNAl1NUvlErNyx5 z4SBZodGXgR/CoV+GxSWn7A2R1rVdBk8Oq/f8Q0cw9LWRVONx2KjSr6AkM9kaqP9 KVxtkWIkHqGUCdEmtsWTdF2mIlyUQauD9VbS7apr/NdlvLQM3eijgpTAUaNUytSw fZoA4bYd6/2dKzlopkD+hUqfzFhxwHw4Xcx4k7jffefhtpOJAOTRMlQTs1h5NQz6 5C6I9bv8UGCW3ULrx9YK61OodJ+c0hEnDQBoe1CgQRX1vDclRaM8I12SxJ9Kt/ua zFLQdw== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1vb3pc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:19 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50d812c898cso217217661cf.1 for ; Fri, 15 May 2026 04:48:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845698; x=1779450498; 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=QRwv7811J5Ce2gWxqwj++K8tNKVFm0J+CB+zYeLR4kajSsXtmIkaTt8fV8Dc0eZtMB tCP84k+24Y51N72L/y3HR3X0dWUgCS8SOkm21G0kK3BlEnZ/BJWIywyIOrnd1h82MEGd Ucnyc+Me54xHcGmrmVncGkYCtwy41hYIwbzgozcFbI7rdJ0Kmg+NkohnCnRYWWwpFjCa HwDZ64v4TU/goLpTG1SqY/vevKDZDcaxn4I5uvmClOSwNFL/HlmovljJR00TgLGJPsTI K9hCwXWN9vSJRMEjKXYXHhcTi42c1OMUpNDkOw6uWANO8Zn1j1VlDZN7QTAHAh83TvcL WTzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845698; x=1779450498; 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=BOyxmP/pJvst0L7ZX4R6yhylEX4x66ooCodTcvLRy99FPD4NTM1do0wPPYNxAIDRIT BIS/ExtCkwhSpSa0tVS55Pd6DIlQGGFiN9SF58xuH1ZyhA7W90MVT449Dxu7jJsUGdDw U/ykWcPuPUkik7JtkRJBsEFEX9CsvC2AiwoxdFof3jlLV3BPqaBccwLWk+JTMAxoeRwJ I1iZzCj3cSASJfaZI389XKgvIwdWg48aF3DCRiVFFpasgTjlOTL3/QNLWMF6S6RCE4s3 lPMIiIlWRfeRKIk7UN8OMctuDhcaR7yDvZMZGMSaTTWPCJouVBNW0ZF5NwyzbGFE9YFe Cp7Q== X-Forwarded-Encrypted: i=1; AFNElJ90StYKCp6m/yvxo5/9tv4w4dBQRURw18KEHSyvoq0J2jSJIi4TFmhuzguxfxFwQkuha1oXPybkK5a29Gc=@vger.kernel.org X-Gm-Message-State: AOJu0YwINaHN10QeWVGfHdmRA/KOiLldqGhYycKnBtISUxEkXmoDGkUt ZTgj0iZtHDKkVn8yhWuILhiCq6n5i5k/cf9ELWcXh9zz/Q/fo2rAezAhpxcat6cBqLRgndsxiIn ivhwNXRAAiFgjotlHY9h2WRq8wgxzBaNnd+5agi5P1To4Ztdcq3pOboGvVnnxsgsZf1A= X-Gm-Gg: Acq92OG2lYGlvupO2hkm91KFQNm1DdvjK/wzTPpqryLjju6qva8XmuqEeuOqkiL5c9l qb3uScFqjOMvnuVC/ctPlh7ig6+ksLsWuAQH21VykHhwcqqGZcFH6X4KFyGGDMFAOkJe2Ur/a/Y HZScB8Wz25k5oYCzH/plls6UUPrMr/qH5Inugh+hyvlCh9OkcYn5jATThKh7V9fsXpy5Sg1k9tT 0P3kYjVCPJeQ7gO8dZExI4eSrt+SLYa6aNjGc03oKZeTtdRgoQaj69gfHKsdz0LDFEoIhns7bk3 T+bBYl5gF0igCZBHWxl+oMyLIw89E/0UH8kwNYddcpV8zvnpDpQA0zWI7wsKuy0Z+JsSck8YKm5 f7ReSAofG45R4yWGYVQlfpfl4f9hnoOOhZIcE1jFy/d3y23gWLMpjgKlCUG6UQeaUBgtBaPSFjK hIc+CTinFfMvJqX7pvPq9ieEr/ePs6yiB6nbQ= X-Received: by 2002:ac8:7d0c:0:b0:50d:7cd4:4a6d with SMTP id d75a77b69052e-5165a22c1aemr44326361cf.49.1778845698418; Fri, 15 May 2026 04:48:18 -0700 (PDT) X-Received: by 2002:ac8:7d0c:0:b0:50d:7cd4:4a6d with SMTP id d75a77b69052e-5165a22c1aemr44325911cf.49.1778845697887; Fri, 15 May 2026 04:48:17 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:16 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:04 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-5-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 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/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf0vjk6YO4TwvjY68+1/w5EBPeAI2SLFzuAc iDZmqPYb+eJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9AAKCRCLPIo+Aiko 1TyWCAClFlyaXfpWYPebKJ+saiHVwdfm+m5VggAzFLAPMm9f2svECaINvdl2p514KGKrBkuQnAW LNLdwZc4BVzdvYZMfKpq5HWfFlkZfI9okrDokyxpCHq0tRr9NrkZFxRu+xkD3jdKcTQs+NvmH1n CPilCxTqj0ABQcRLFxnwq5JdArGQIhyzN6vU3gNhQA/+xX6XbGCJunZAG+VO12KiO8uIBBj63EW SArvuTdKokFU/Q3cJEz/hDhu5omwmw28qOmlSOoNZMXREUTqQ1GrWNgXMKaMHH5+LEG1GQOjwyG 4yWcYOSr082e/sCycyMEEJ0MR5+anHuTZLKnzFa1VKpE6nZz X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX+19Z0V1NnGob ZiEqt2bmTE+p/5RJFwnzkxAB+2Bx0hamdoGyVpsK5nkOGdsunB0r8pURDBLXqLIhoCO9pS+AU6h lPHTJq6TUZvtfCrnjxeMQFZpP7dyRoYickyTtu+fwH49kVryaU8OT81JvTDHhuu5wU5neKWDmol q5Zr3K/w+JU51Sr0SORaM7BPUohkmgGISWSCTi81/GwzmKYXn2JFxNfDSgHXnIgimds/1QUdRbz KElqRnFgf0ViMptG4rOoN6vxXKoJ3jx16sAq3Y6Sm5Ik817RI15ZKe4IYlZFB4XmH8jZe6FFs87 wUD1vOvObO6oqBDWv1qlG0GrU1V5aXHRwmzyOGH1c8kcbWCQHXQKuVEDU/u1+RVtmsa/+ALiDOg xCEyPl5R7a7rc0OfXp0jBlnTIn7fEfts3l09iXQNbJY71pYu3iovNsi4NZ0kS8MWalw/FRgmCB0 z8WZ+BlCqKzvSz9zQhA== X-Proofpoint-GUID: SO6k-wdiXriPtm_bttICIm0O_vguKgD1 X-Proofpoint-ORIG-GUID: SO6k-wdiXriPtm_bttICIm0O_vguKgD1 X-Authority-Analysis: v=2.4 cv=BvqtB4X5 c=1 sm=1 tr=0 ts=6a070803 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=vdBeo_PM3xCM7oyOFJQA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 11:18:44 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 E2CA0480335 for ; Fri, 15 May 2026 11:48:23 +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=1778845707; cv=none; b=XYrBsRt+LGb/RvdNHrqxBiOWVBuSnUBGtU6AIVztMWj2HBpoqYAqes1p7Hu2UXTM+ggvBf6l72QMgfGoGgQT4mqGDY5HP9nadrJ8md4yIuIZuPNnffYd7AOWNDRTLHcC01cEHDKqCnIMAbiMq+baZJCtAp4orNA6Bo7PAap1/40= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845707; c=relaxed/simple; bh=sv4VJqZ7JjuYZ9AdNyjmibmQwBvNg6eatU4XxzWlZyM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VBueeHffEqqrZB8tq0ugDXz1PJANI4Rsxm71EDy2WQFBqwxHGjRU0MbeUSrMYGpSQXFqpPXcMtqQuI4cTm5WaynHhZZw1w8vryIzjQOuvjfRVsmJupylvfgzsr7kt29X7gJtW+X23wMK0MJO4Kt6+fDMEObqfyDv0ciWdvy1H3Q= 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=PZvA+ula; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=aCJ041v4; 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="PZvA+ula"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="aCJ041v4" 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 64FBH9Zr3200291 for ; Fri, 15 May 2026 11:48:21 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= xwtKzRUpPu3qGqMPfV8u/ItsjOc0+QrJiGVMQ1OuoBA=; b=PZvA+ulaKHzmEhEe anvLPWWhs9oZhOu3MeynYkEvJDfDa1IPTxzcAPjOKnaXKvAPInpo7bFNPmB/o+l6 aR1rkZu22hA+fDlqXhDPfGYqh1hPTSfdnHei9oYfUokdrBHxtXyzRKesl19mRcPo /Gh5ZlRwkwXUCPCxH+BjMMnXBeyGCnEo6675h/1G/b/JiARJCsbV+8NHsmXm7j/I udCPHadeC6vtsKNCgSYeYMMw2ASYLDGfdeO5RC1Lx9T3Jx8a2Q3UN84x8qO7H3m9 400/QXfY8xMXxYnYaFgFR8vJuzAzlfnFelvvSXPDCQeEYM+Ojm3bhCzefcKUnjl5 8W1+mw== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1qu26d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:21 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5163ade1583so44247741cf.1 for ; Fri, 15 May 2026 04:48:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845700; x=1779450500; 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=xwtKzRUpPu3qGqMPfV8u/ItsjOc0+QrJiGVMQ1OuoBA=; b=aCJ041v4ZlRcMnydXeqA/0/4K2O/lbHNqQyeO1E0E1faqB5ayQdCYbrwwQwjMBarzi mc6yYMMBNLDpZxGlgyjGxhF7zSVcwevGgfM0gAKwvVyTM+NSSfzPq7MGPbeouwJnStEL ANkvmIEokWfnWW5kRhySXUwMYQAnvHpufWvMzJhSR5C/LmkNtU7+ajplvZ66W35tG6gS hZwE9hghK858ZZ0MztWCiiluRTSaJnzrdc1850b8Nu68Tr1+dbSX1kkyWx6WqtY6DYl5 6I3NSbnr59qqr4lhCppUEGfrJRtCnET+Jqgr5ngU+p1SZnKzmqBVJ+pe6G6efFCMd3w8 nFQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845700; x=1779450500; 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=xwtKzRUpPu3qGqMPfV8u/ItsjOc0+QrJiGVMQ1OuoBA=; b=sgef+jXw09bO5OIoGXDCC/lPptyWstguqYCvKnmSkRGua6uAF9VSh5lQKFyZsREIaN Cmeo0zxWsUy/ZlsAg5wZagLMY8dvg0O5An7DGRECd2SlLfGIfa00lqGOpD1dP4sQeG46 7tM64FcuLLBKJqH+Ao4qXYdzkA2KNuCkW0ftxN15SEk4uyRidh9Deb2xk7XyKiSs2o57 fmjEB+unpP9J/JvSds9Hoc5CzhKojQPUIA2HiC61L8b/3DymziLCXobx65zi1odE1xP9 1qOuBgs6ovdlcIy3g7oAwlI26CU1/2UHfUxykKvmevjXFShZUr2d3cduFvr1v/jMtVd+ 6RuQ== X-Forwarded-Encrypted: i=1; AFNElJ972cWn+zF3v0rydbTOZcASt1Euo/5kku5HI1X4djGG+h4AKm3uFyZBvPNkchXe3rBg23cuGkr6RLd8Pag=@vger.kernel.org X-Gm-Message-State: AOJu0YzAy5g994giqQsey6B0rVFtlADacSS2Rvv9F5y7kea6Oi9ufv+1 JPhm1qEf/aXMSmewCIMDfYQ6Pr5PVNcBsV5PuPmqEd5D4pvKpcgLEpJJet9iv0qGXNqjg/cnPDo Funh4qQrr8p5xWePmllPa0GOks1E6xY3CVKIshzhiSu5SzAaB9dIKj1NXnvda//5Fl0Q= X-Gm-Gg: Acq92OGL0T7TGds/ZNOA1cOT4RCrjiuu7BVk9dfkojP2TrfBUT4Xef8ufDJAKq1HV4x 3pUctN6iwzEOZ0YVUzQbIhDS9IwhiYZXUQOaTF27iNmTnisiYUmq4nkEXR/RwgYQk5+CiRW/5kT ro8BQn3Y2yn9+SPT/C1mYl77PBvMsFCs2m8mNo0K2EsL82XGKv9zujtBV0TKWRWNKcdf8h+0Csu 8aiTHJgvCPkPY+nlWlUuZrc3LSvSLR8216JnmQg8pkhEhxGwKuphC6icUrGeFfTjWjg1CcxV0Nu YZwxF+1gnXkYk0oS1osbZ189zh7Bj3UP7/+wp4wL8K+r0K2uWll3ZI/8PSpy5Apk/Yso1E+hiZJ mC0X2dD/FhS2sGhCTfkHXTpme3Ug5JXROuqfaydS6/tLE0ECIRzGLvdYYUz+bpT5wl2GFaRm/TT 8oPkHwYaIMjpqf5V3tWoy0yR6NxekdX/CalaM= X-Received: by 2002:a05:622a:4a:b0:50f:c920:a907 with SMTP id d75a77b69052e-51659fd7ec9mr49238721cf.9.1778845700070; Fri, 15 May 2026 04:48:20 -0700 (PDT) X-Received: by 2002:a05:622a:4a:b0:50f:c920:a907 with SMTP id d75a77b69052e-51659fd7ec9mr49238281cf.9.1778845699559; Fri, 15 May 2026 04:48: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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:18 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:05 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-6-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=6461; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=UQqP5tD2UNNP8smTrGrxEDFFzhpcWSGstXQh9hbGrL4=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQxY7+xeh2G37uEwzDmXfeb3n+JHM1SdTou+cPXLpwDK/a bZT+d4ldjIaszAwcjHIiimy+BS0TI3ZlBz2YcfUephBrEwgUxi4OAVgIo6JHAwzj0plvCrOVVoT 0XyBO7B9mmDjhvU8xxt//GfoPvFKV7IuNC/hrFS39OmT2kFP19e3VlxfxRc8YZLibKN7s+yexv6 +8Vx1MWf4rJWMb2wPZYgvPhBlk3TXIWVDuU6Of8sun7h467gwJQEPUxvHC4dnzOl3yN16PzzuVZ HX+hUdF3irZC484/D2mrWISyAprFNizdEGy7vXXkpmxcu21qcy87ROSUzbnHT6vVb1eoYC290/3 q5y1P4px99y9Znc5PRMhj3CyYm67QLPt2Tdi8zWVrPT7FCaz/zSxbZMVWaZyDkXba+OtP2Pwta4 Wl7Vcl4V8SXEale1XTjPq7e32RcJLt9h7H7hYL0VQyY3AA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=HbkkiCE8 c=1 sm=1 tr=0 ts=6a070805 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=6vpm4igQ2ooD_hm6sYAA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: Ii2EaZw1aKlbpzkPmRSkg45cQZj9UjLf X-Proofpoint-ORIG-GUID: Ii2EaZw1aKlbpzkPmRSkg45cQZj9UjLf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfXyWMcpnkw/k1/ vv8w7q8UA1gFQ2HOmnbdKBzU8IOi3r6x7uPFIPu6LAfxZ0eH5f7h4t+GShvWpvtGbNaLHys7t99 9eV4pm5mGrFUirjICw/KX9Q4KrdTk8ZbE1XNLiObdz33v4YegA8m0SMaAMKIqIxzZu+BdNFSgP/ FQfzPz/FQdPcaBU+XQdAp4icGN9CJgVs14E4tAujT3Y+y+2bd4LC8SPDaN8FlZRLWvODSPtT/H8 cViUVufY0rXEgekksbbcZYtrQN/vExNO+G0gEAUc2UZ1zp3KWikiHeVANdJduETWIexX+0/R9K6 YQaEJTK3WQtV+UitmO3gV8oOiopw0H+aboI2+MGPlMnPAq6f/+dIQtUKYZ9D076ET5K0u957LNI Z/D6XJwXM2/CtnZdemiKnm6kmmRl/4+9dvmkffRDyhQNC5IdFzqkuSNQzmwRkAwmPJK8Md0ytPu 8N4af3pdqK+idP+RM8g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 clxscore=1015 impostorscore=0 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 7acb073f7197..51d8faf6fd1a 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -283,6 +283,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 9a76149f37b7..5fbaff5c01ca 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c @@ -17,6 +17,8 @@ #include "iris_platform_sm8650.h" #include "iris_platform_sm8750.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, @@ -106,6 +108,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), @@ -135,6 +138,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, @@ -172,6 +176,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, @@ -201,6 +206,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 59e4d68d042f..b8300195a43b 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 11:18:44 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 7970F48034B for ; Fri, 15 May 2026 11:48:24 +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=1778845709; cv=none; b=jcE0fdWVhITJEdQhNrYT0d/Lg9rc7/1U8hcU6w/pegLlLlyGxkWXudjKUsagE2tQkXSC0ugrj/2ftRX1vS1O68sMK4hjbw99HABqJ9x20fo2JOM/43dhOXW7ke3w6tJK++i6D/LUXX1mxohV41pI+iqmcvsOse129YLQFpP4CaI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845709; c=relaxed/simple; bh=PZMTLxLwbvZOwA8LX8WRjQ2jAtxisx1shd7n6n36z4Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kx1Xo4ZUnzk56/3MPQFaHndW6TSR5WWVENGQAoFgeggIpazUd56an+Fk07S69zAz+YvYaEhoeCcuw72tjL5/GBBeM/66BZACtbwIshk0jBzMMmmUo7B0hfCNwHsfD6yY5ZEvi0Fr6WZmMF++USwoG30J6c1fOP2rmzXNfDD5Ins= 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=G4jVhYSf; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SLCuMNHm; 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="G4jVhYSf"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SLCuMNHm" 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 64FBej5O3795744 for ; Fri, 15 May 2026 11:48:22 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= cruwuhjqGa0rMbt22zZ45ZYZ3826Tz+/AC4t/AIJui4=; b=G4jVhYSfQ84ZVdW2 tx/VeMsX6Ad/DFD+4cCp4rwjNY2QbotmXxorBSrjJ7FB/KjmPBwUYfCdxla1bpYZ VqlhHZosF478JDOQV3hlLS91fjl+I1zxFc4aiiFkpQY2S6lmcEzCtEO4K6G4rLC2 E0W/YCo/SOhcxKOhtKyUBFt3P5DrS+wU+lT52o5ReH3a4LieHPmuiaExSqqY75br tHh52PSVX2pkoHbOF0rJbVoYqZPzZmCf++drg0XKANUmLVgoKyYE2jCMezsIDITs heJmaROE7nQVMWUj0Rpk1uv8GHUpuzgDbeYH59+KpCTvCtRANk5JXUwo7EBz/E92 D2BX1g== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1su1t0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:22 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50d5d1c2289so115911551cf.2 for ; Fri, 15 May 2026 04:48:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845702; x=1779450502; 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=cruwuhjqGa0rMbt22zZ45ZYZ3826Tz+/AC4t/AIJui4=; b=SLCuMNHmH4Q+TZPUpIJsVJ2vVikDK9rUglRiuiREH6PrrczDZYygJ31NgXPFxG3xFa BA1iQaiEnQZoJVFmFTGkYqSbBW5QJT6yQeqpB3LU/VLaabhVbQemc2hAFXNGzkrIGemH W/4QtZOExrz35SeNlwd2h2vpB37a44fqcl3yRsdKjGBDhDR4uFKh6Sk5jtn8xR8HvU/g XWxvL7rF5oZkmrvI9p50z1N9/G4JzR4u2UVIJQForhNWpISIZQO5z8e8lAYK/8cgsSSg 6/z8DhUMgdf4hiPV8HBdr4UIriVkF/krNdwuCgESgNFsHoO9P0zKyzRM9rEhkSWGIzeI 0kWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845702; x=1779450502; 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=cruwuhjqGa0rMbt22zZ45ZYZ3826Tz+/AC4t/AIJui4=; b=DrhB1Re4n/v4MYDuF+/59ncVB+aN0lVe4IL3U5TuiIIx/gIb2WDE26TSvt7y0/xU4l 0dBFzuhf/7xIX2VL+SGqERm3cnAl8Pod4fJXSvdL+n7joGEzhsgNPIp5RX4OnF2CUj2Q 1bCgFHMHfhAfhf2BL3szDO0YQ2IIBskPZmSAJUeEbqGRSkJQuMfSH8D1a3oNIHLgKScP HjPJ4jc08cBt7QoRQ6Bo6FYd5VVF/CWiDp3H3aGwsnClF19QRYykL/Lm8g43WD4KEa3P e6LKOVSjaB3oU18AsYPyZME5pTCNeQrZY8/1vfiL7K5Gcwytqxqz3C2dcdkUN3sJySkF B/7w== X-Forwarded-Encrypted: i=1; AFNElJ/oyvTarT2wBh5EAxI+WRZBB5hoARt+qQkRIabzoIkW1i/0zDSH5BCt917H8zGF2xOknnmxWrfiZgGRHPM=@vger.kernel.org X-Gm-Message-State: AOJu0YxeYDl+1Ns1Ewls3YnGf+471zZUftBZQ/2x1ycpOporD7g9yycV U5ytFZ8RvKXUmE0TC8ZH6AWzRLJ+TV8+gqhPsZLIRfUz+RzXlz01NC8Tpm0H3ZwNinuXmG62U/o SJI3dG8wn1HvCszyuzNSxim9hbRb/1KqHJ0/wDwubi2wqW5eU8y2s+htfd5PmrIMzH94= X-Gm-Gg: Acq92OFqpoDBgaMEBRfbw7AhosoQ6+vI5fLJ2NM4Mq5fnn6J6JK4O2FypVcbqMrC1Wx UB9GA6WoC+FrqUqYPqHLUN1lCQgp64nQxJQxAhpgJLzK4ZtNcUZ23fF5GZBdRpDL4f6eUnqzNnB u+WhGi6E7a4Z7Npv8oYEM3iISMZxf4bjVuqrUPG2/goT6+KiCQAvhUi6Nddk1kG9DJNqtqCdDOE yvYeY3qCkzSMxigiVaMNFb+rN0JQHyUM2iQKbSKKuqs05/keQXoybI4CL8qLpuNSTJEQjsyYmGF EjDwmqOxAYONomrQJSAl7g7UbQ6TTVoBUUYy6wHfyDTwJsdebwo/EM8NS6ivkp7ztylmZyTAvVc Cm/R4JFsWRqEiBhXavcOzDheitgsxNJDcAtexcNdho46AEZJboXTNEFlzYOsOMiU/j7SyI8UZiF jSVx5euVYvOQAwq+zEWuKVWpJvqYQOcc4Rva8= X-Received: by 2002:a05:622a:1b05:b0:50e:42ec:ca7f with SMTP id d75a77b69052e-5165a03f084mr50859831cf.18.1778845701531; Fri, 15 May 2026 04:48:21 -0700 (PDT) X-Received: by 2002:a05:622a:1b05:b0:50e:42ec:ca7f with SMTP id d75a77b69052e-5165a03f084mr50859291cf.18.1778845701067; Fri, 15 May 2026 04:48:21 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:20 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:06 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-7-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4991; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=2AZDVaVeHjBN9ieMkt6OZ54VG8WgR2+oqvqtNSNqUsY=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf1F9avgrZWq+v0I1pdodAUt/N3MADwO/BeF YPULYqOuAeJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9QAKCRCLPIo+Aiko 1RavB/kBUB7psisjYBhnxLnD65L34JyEGjWu0//xRyJf6bEggrC5MYMJyqMMS5SD88Eh2lqB90R 0vmtqmO+8nRwjTRwkR9InqVGyT3eFDNbbakJhttOL1+3NH2CICvrWLR33qvmXRRgq5q/bvCLZrF PlH845qsyQsn7vhyCH3WBKX0UKmXzbJEn+drUbaus1AylXbIQ81Bemuw1t9ID4bFGYLBP1QhXMs jWgiIVkea93/CTSHlih/9qn407lADicGzS6rP7ZCFsgJeQLWd2lvDka9dUlpaykzuL64oBghucz QRIuea9bzmEmzk2xgFyLyIJ9ERuBMhTuXWe/kN+8NQ+SfeF4 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX/VAKDIuQaqQE WXataMaYGuWBjnKKlzpWRWTk8Y2sC/VIh+SMvlGnjBqnadqL7ZnG77TB5HMfvCwwDilhpKKbB56 kvfnKVMcxyJFpGYrMpq/iWeuzvGp5zGAtR+MvMCye9fTXsvagC180b4ASqE7BZeo8icseHBthRS btZET+3B8A/xMbQ6hYkpeeCv+vE8VoBbfVKFNlvCv/Eja8XTJtoGCNbQ6J2pso9R1zUMmact7Qr uDyBpyg0/kldTRs1+jZHu6CsHM73AMtGDs0YsyGsDlbFHIT9wdDr6kJ1lHCSPQalCm9R8kpbDNJ XjxQ6YxEumEcPEjlLPXAZHwr2gm8I4ClP2vNZXgqJnKqWQhdFh42sncITZxdOcryVDBj1m3pmYB QSyfHLOxcdAI49rd86Tm38SpQvVYdjUS2+WVg+lpCQT7P+yROxLj16dNnN/YlluSPCeMvIKh4I8 XqErAFFM9oF+U64uVTg== X-Authority-Analysis: v=2.4 cv=cZXiaHDM c=1 sm=1 tr=0 ts=6a070806 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=hZPXDZ8rEFHKWOVG6IQA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: lc_XmmMkZyQl4tEmd-Bop-3Dr-OotdLG X-Proofpoint-ORIG-GUID: lc_XmmMkZyQl4tEmd-Bop-3Dr-OotdLG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 phishscore=0 suspectscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 51d8faf6fd1a..e1dc226066c1 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -284,6 +284,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 5fbaff5c01ca..8c1c8b19fa99 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c @@ -109,6 +109,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), @@ -139,6 +140,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, @@ -177,6 +179,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, @@ -207,6 +210,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 11:18:44 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 6B52547ECC4 for ; Fri, 15 May 2026 11:48:26 +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=1778845711; cv=none; b=nclVymyCWqJ/0YlcQmVZzkj6CM/h+WDVGbKVhmZ3rxgN2FeqjspJNayspXkTDRnPSzUF6ObxM128lMYoFRP1kYX5VTymqPQJ2vPKZJJfqVJEA2D+0wwOEKliSlvHsQDyRwKB4HbJ3DFNqklER9XgMQ93Fho6cGoJXonhqwzROio= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845711; c=relaxed/simple; bh=kRKs4Ld/R5wPud9lDZEt6GV0QZ16SIkZn9USZSX7X/s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Wcgt+fkJF9ipjX2v292pSM/TOe6CuQ96SxpebV1gEYyEeHXi+9eCG78Bmjv/xvtydsExxecNEHww1r4fvHphMdq3z5O4XMymGFT+F+wIb4Cf/i2b1spbDnAQikwqssHHS/HMU7NQl+a9JQQhNksK0GCdViu/F2Ckse6dC7pLzHo= 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=crxSJPnk; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=OJbznKVS; 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="crxSJPnk"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="OJbznKVS" 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 64FAhYms2676446 for ; Fri, 15 May 2026 11:48:24 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= ereORPv71dmyzxkJLNhe5MuVEc7N5EYW40Eup96NbL4=; b=crxSJPnkYP5J1fkO h9m6GS2KOcWJXNrGoQiNpZ9imPjlY/r3cAMV7jn/nLUZUVeCZOVzuXDED2vwEV1h 6LH0iIFkgqNs4C6UYDOtBQFFedAyLg7W4rAU9e0ItBhi2WC3Q1dJxE+cibHP7dMp UD9YWv0NU8WjghJj56UjCEIfeU5oVdfGqrKPmcmwXW2Aq8O72b5ZgZfcN9uMOiOU bGTBK4LA8c30GpX+JAX2JPQqjaKbLyCx8DEcNpbS6kUNgDjMhNs2tW50QQ8gNzda atNGEZ9K/6cYS217tEqPYjgqICgNJs3v3VS8FyjPMaB4StqzhhrSh/LUjDAW7SNk nzCCgw== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1vu44j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:24 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50fbc49bef6so137394071cf.0 for ; Fri, 15 May 2026 04:48:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845703; x=1779450503; 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=ereORPv71dmyzxkJLNhe5MuVEc7N5EYW40Eup96NbL4=; b=OJbznKVSN2/jSk/N9Dmj8FHpjCpygXwwgcP8cMyhtFf/baOeRcpZK1SBaN2TWW+DJu xEbg82cLOAmotqnSok24nCxd59VVWDIIPndUQTsPOsS4TliL/L5xJOZcEZLb8oeAEs5Z j/Lr3dKNDPM1/wiRwn5CTBBFD4K8RE3+VtENIpIjOpZT0JRBSWtlAC2WHL/Kp9LJtW/S 0KQ3Hux3AvZZh+7M7j6RrYSNPTduSIS8hcHV1/hkhAA91nMsnCnY2uwLlac5FUB0+IU4 Jy+P53zGwa5DZ4JWw73KyXXWyzo4rtlibC85JzNeR03fw1BnqOnqURAbnkNOOG5u2RuP USqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845703; x=1779450503; 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=ereORPv71dmyzxkJLNhe5MuVEc7N5EYW40Eup96NbL4=; b=Qq36oqE62P5+wv3l9XdBUDw6U9Vote+cFsgXhz6gKx8eK601lFL+Dt5MygKe44za7p I+Imfu1b9kb17kpKLZwLtnpVz+VhQmJaN6nOd33k3LqW2W7Ji1G4qPniD0sueoa+bj8S rnPEuvK66djJhVDZ1CJppHQepTyeHDP2dmkHV+gPydDzMvVtehoH+FO4WWTHJTazh+ht TvkD3vEiKsqdzTOjHGLUF0eML9xE8HqJ1LL8uqHAnjN0Y4tbs9iqWw4irM9LOdtPkk0t HNYFDCihjBbrCYUcUuo+yGAWC/gw6U5TIFYKCFnoLhHMaAbNehai3X+J+uXr0rmgI1a4 FuYQ== X-Forwarded-Encrypted: i=1; AFNElJ/Yovkr2wiZYJ5M7JAyAWzJmoyGalZxqUIdEFV0v4gwxAyzHudAThIFOBk0dbOiwJwTviiDxts1ZjlyR9s=@vger.kernel.org X-Gm-Message-State: AOJu0Yy3zMrKMWCeX6mgi1g8CjzQ8Su8xrOUgGFkJAi9Ev0p4hDc+zRj IEzR2q3fpbNKIV4VVvsg5I8XgYbbfmhMVTiWrvTiZYa+62thAJuYiUtFiVNdSp8aR0Q5yR76Oph dl8XaHtX9XlfrklnwJ+W0vNKJ9dIVvW4A6pagmCLda0sHydIbP1iRcKvixgceI2WdM24= X-Gm-Gg: Acq92OHVOw6aIDdMxQ1LkcaxH7z8C04jUbGswM1GDBWi3zQFpOiJ+vw2MNxzV8DUukn EPFLco8S+z6Fl0686E0uaXiDJAWBlpKbshjRdO1qZ6OEu2TNekNAwWa7CRoxXpwZonwZUScACk2 KIWrrxqJ8YGvFeZ7dI1EQBCd7UCO/IMzgX6lHlVZunbpmrIC5lOAwpRk2B8+1Vct9kXPeXWy16K 1GXTNYSpER/dm9bdC+lMGEgegwOww328b+QLomkz7vLNb8TtoJVe64JlKaGE7XGq2ZrwVf3VkId qIfGoQUUkg4UvhsbrHCKeIX7zyMFjCcHuEmSNUTMULY081XM+j2SGvSFTM4YMn/125t0TLulZru /rTea+IJFNypWLUOa5XbbcHgaAbtqrHsjrAIUiun9YJlStqpSf2D9GAXEkuY6eNQd/dbD6nhbw0 SM9APvpH+X7iqhlK+elkDWJUnn8wh4+DAWWAw= X-Received: by 2002:a05:622a:8596:b0:50f:b9e6:e056 with SMTP id d75a77b69052e-5165a1e6733mr38964921cf.29.1778845702979; Fri, 15 May 2026 04:48:22 -0700 (PDT) X-Received: by 2002:a05:622a:8596:b0:50f:b9e6:e056 with SMTP id d75a77b69052e-5165a1e6733mr38964481cf.29.1778845702533; Fri, 15 May 2026 04:48:22 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:21 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:07 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-8-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1159; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=kRKs4Ld/R5wPud9lDZEt6GV0QZ16SIkZn9USZSX7X/s=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf1dzSPYUNXXCAOdUKHIEe8uETw5V1d4cuvO zeJEq4oI2+JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9QAKCRCLPIo+Aiko 1eyRCACZTIolvT1g8ucoISptBMFImSKXBpdskGTfE4rzNWnqgntrg6+BxvpmbbqoIADGWgXpIet ijO+qYJhtajgbZlHVVQZLmhMAf0zvPOguTa6FWPqKszuIDjZ5t/4DusDiJrE+nani/K3D7iJLr7 slPBOJ8yS+ePRHsVD2LYkfkU8SU5NrYHo2wN+Q4eZMwS/Wo6apOT+1H/WJJeZdZplSRY8MaPj0y yudpDutg0N+UeXPWMaftEhDbteGwKfK2DTc+K1tAf7GKPIZSQCjo551ek6V0tJzWNcgIuDXGRMq ji2DtGnoK1q8t7dN0I58ZewzaetTkVEghD94y7R+2KGDj8pG X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=PKE/P/qC c=1 sm=1 tr=0 ts=6a070808 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=9TuWGWrZIemhly9L:21 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=DRvvl89rPFtLv9ObwM0A:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX+7yDOfi6XWeu ollCBYnujOgMgsZ2lELGlFXwC3ICS346AAt3FBpj/LhVVLF50qpOy2Fm1JxX19s/lrq6oQEIW5y 3/R9Tsi522qqhWckwB8C1TXAIuJpYccQMt/3263zg49pxa0oU6m7yb9vl2OAFzVqPeQC1Q0YE4g v9M7jbHrCxda0kCz2DAwhqec/DLFvhVbeS4Rc6/aw42lRQx7gI/iUVKL8ijXeyqaJNhx48hp1vm aFiBRtETtzJZ6Efl/4hLO4FHdvONhk66BGDz5QkAz1GuyAU4vXra9pfXoELqzAHmiWOd3A8iMY/ tGR5WcYdAr4rhnj0ULYxzU7h4Y0469+5bqO+SvGiKLNAH02A6Ttg0V4LRv/G6vOyH7HU1HYdOoX uiHAysOYl479I3RuXoWU+gM3jqmY/iMAMmN6l8L9xABWc1STZzHMLANe/oQoEiedrtkeaqoOWPk kF1FnRdyFun4+IeXsmw== X-Proofpoint-ORIG-GUID: SxwoSw-gT9uS0NR3BvtR-1R43vCI_EXL X-Proofpoint-GUID: SxwoSw-gT9uS0NR3BvtR-1R43vCI_EXL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 phishscore=0 clxscore=1015 impostorscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 ef7adac3764d..f438dddc19ba 100644 --- a/drivers/media/platform/qcom/iris/iris_ctrls.c +++ b/drivers/media/platform/qcom/iris/iris_ctrls.c @@ -450,6 +450,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 11:18:44 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 6D79148A2D0 for ; Fri, 15 May 2026 11:48:28 +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=1778845713; cv=none; b=DugenxmJwIA1o2UKvMq//S0TLkWmLolgW7i4bXHbaGpkAVC39NDFuZMAtbpgJeuXPdfzLCY4vUOMU73V6PYm2SPUNuN6blF2wOmj2pb6ovPlM/R+MT1oAP3RrUJuh8p6k+S46K/WA3jO2Wp9mcbL/l0axh2n50Xcle5uo315NaE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845713; c=relaxed/simple; bh=1zDPOP1SavZgDiQyi4AT03ZJTGCF0M0Uv7ocps5TYYM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=C55kQI3sL4AqQ/lSkPtQD1/iMmsySGZKTps8ea74t2+XHrBkRIUMt8k1EMuPr1DXUfmXtZXdYZeffhC0KsVE3ryVyetGJrqefWLwAEBF+HgyCe5W72+4wtb83+QBiFsPPr66G6GQDugqcNKQ8Nyl8ApifdmCwoG7/Aaz6n5gJLI= 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=EUug+3rA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iN9DlHMo; 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="EUug+3rA"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iN9DlHMo" 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 64FBgtM63197651 for ; Fri, 15 May 2026 11:48:25 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= Dxp8B42jWwt+tWH1V+vTuYQ+R3Qg9AEvv+6K2fYAZ40=; b=EUug+3rAOONo7gEI alh9KKX25mPJs7TBl3phJ0ZFuiQKCKRZvcSw6iJNBqLR+guJBX6GacCM7+Za2+2o sx4B9KT2IzHL1Z2SoNVuEtHB3gQEjVZC6GRhx73ZAfNeTLkDej+R2wyle4FS4OV3 7bMEjMQkLYGntC/2JpTZjc+miHMuWC+gHfk63aFZlazlHv+AAIL4vDek4jYdc1cM KDyzTYPtpjaog7+Khi+VXp2R8BKMnEtUlF0J6OPAq8PgeZJfN/ScAyC8J6vf1sCb 4biNjaQHDZmHx7lbHHdeH6yoYXGZpt2TqtbuOzovGTOyd/7SyyddY39CFB7T1wMO PgPUMw== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1qb3hm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:25 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50faf575af4so204717161cf.0 for ; Fri, 15 May 2026 04:48:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845705; x=1779450505; 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=Dxp8B42jWwt+tWH1V+vTuYQ+R3Qg9AEvv+6K2fYAZ40=; b=iN9DlHMoXrhKqtycjOgH9piSR07YYJ1aH8J87Oh09bAY1VKtAiGypO0+wFPFo6XQN7 Ym2OF8htrWp+db+o+5hk7jwo+Xrk48Bi1oFMzfCNmiXPuUXNT9rCBCiqpBqSrtvqLg2Z SHM6RpIPPYL0FW94fOw5YHEWmNIORVmTbgLgTQr1/3heaK8HKqEXxWVMar3CP+y0FJ6P Dti5Y8kOxytntjADPU9gMrpvXwtYZkMVJCip2IdKS3B9r6VZG1b9I4LAfaik5voOVCqp L2befAUH3qErxQUf59/N2rgWkYuhPGyN86n3fD4l8kQxxF10PrR3p4d7go34J0bfwL2U mz/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845705; x=1779450505; 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=Dxp8B42jWwt+tWH1V+vTuYQ+R3Qg9AEvv+6K2fYAZ40=; b=nkCgUGbSqn3ir6xj9dMB1ggGFZjJNFhtdFpPkDNqxdQ480+yE3GXGHkMUDWg+15eBX Ri/6vQrOw6DQWZno6u9UyRjstBMfLvVLRHs/+x1/RnoNywtIEvbf3mGrjhZD97UeYAO5 +XZrAykJamYsemnR7PB+Knmf/xyYbbGuWyRFrGirnfUbJ+pjPogKv7/n4FzZKdTp0j8e 7B9V1E7bsrF9flsJzewebPcRv4zAIu+XVprdsu2sxKapXCZXyhLHwGPLHhBI3/NqSz9p 5Xl+xakdOd7I9MQQeZAIqrunph5pLSS+4yPXTNxXGJMspNXKbtkW8wQqMbPmjNODeChW /V9A== X-Forwarded-Encrypted: i=1; AFNElJ/DaIm3Y1lPtHdCAjh22HHHkyec35oijA/OCI+6SnTBxud3s+R+IUjPM3QYIGNuIYXGO6JjPc7HpTz1k2c=@vger.kernel.org X-Gm-Message-State: AOJu0YzRqOj1iuOPHZUNgRHD+lemwhaupJGwROq9D408woBHXkqWtFYH x0x7sLviZ8akz8owqR6Bdyx39AxZBSVKQTXDW7YifUCaChtMBcGxQPPUo3VwyTa49epUrG0phrj m5NKP4MVG3X95hL7mPphjEanspsx/9r00WQSe4m2YahrIg2STrPiSCRSUuwHka29TGx4= X-Gm-Gg: Acq92OHhMQUVMrBcCYmGGtjCkUXVa8qzj44iEi1qaNRk2iOgGg84FUAoF4CStDrm59U uu0M/hJPrI/CJ0Xv16Ayhd2tm9lk51nuUHxV5qIPWbd+UZoQF7jjHZadvHM35I1s5o804Byt8Ex Yj52j0HXtop5IdBoPe7ol8Lq6BB85j6GUfK7eHPmDYm/hXPDHAF5OXytaKGGcrhEUdIqXBttXWm 44VxS34exDa60mu8hozJWJeZErKc/Gk13OLH0GlUVJJPiMdY0JOIiZguc9bJjG448vcHqaBmb53 Bxp+kpFeq7C8ZZ2BHo2e7uMXxbfhzByGtdcHMGUIVpUDxua5GmJ70olMfuZzx50us7NJevNRcU1 CMJyqp9fgAxXEPnCTQ3SAncXPn15FOgv2ZOMdOKOKCvA6GAQCsP/blDEXAVJlLNmViDK3hukxx7 QqCiJ5fFQuWDBrZAaM/smWkoVquzF16jShzTs= X-Received: by 2002:a05:622a:4108:b0:50e:5cc3:6f42 with SMTP id d75a77b69052e-5165a27a8acmr45272081cf.59.1778845704493; Fri, 15 May 2026 04:48:24 -0700 (PDT) X-Received: by 2002:a05:622a:4108:b0:50e:5cc3:6f42 with SMTP id d75a77b69052e-5165a27a8acmr45271651cf.59.1778845703960; Fri, 15 May 2026 04:48:23 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:22 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:08 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-9-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=8118; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=bF8iILLVIppNchJxOge/8BaIad5y4umYpW2shyRCvbs=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf1zSV2dFei+cI3PFx77aEvLoXlbiMiwuBgJ uwUeUT7Wg+JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9QAKCRCLPIo+Aiko 1UYjB/9i4edjCWnCPSwKG5bbs6wnzY5ZrLjFiZkMVganeoPMWdKhaZKOiESvkPNNjQeINUY9CNd GCmDzLnZPuOdBl1lsK+vUtKdLLoilopHst/2wgxBHKd7Boc2uyQQRSYnKJ4rwtDrWqlp2psZecq /UuBhAsfIjt0pXhVhDp+4ZIueG/o7j/iCQgWFQU6bVJJVwdtL4BVY+HioLSIr9YM9+lGMjs6yYO S5Hy4V5BnE+NHiWSMX5f0pieP65S4jq30G/hXzTEIqwMKJTMiTmI/wr7GZKZbDijO2vGVZ3gHOs pLC2gnFc7H4wv/9qWa80oHwDXpFK09uzxVrIJ2Ls5ZAesgmB X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: f1dr9uL08R8VbzWzu4itoqxgQzc_clyr X-Authority-Analysis: v=2.4 cv=GulyPE1C c=1 sm=1 tr=0 ts=6a070809 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=x0nZcyIE9sK-8O7Lov0A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX6NjxHd90g92s 5d9ynxEQ98hN61XAWKTHJ1BmXNyWZxIh22wBlhenkKmZtdLqeISGfXG1A1TAmI+IpkwOqkx2uL1 QhVz+43hI2NcFI0rbIun/jcimwHaiZNhhyw2JMjmMdi71rYOP1C44JaPk9rYgp1QR/RYHUB5FKI fXHc+Mu1uue+fEltlOnABHnOAASu8YzkvQclZr+OGSE6E7jipFgTh2FcaSEIAnwCOjROAiHR8zl S7O86VlCUsLE6LHLyTjrTKEmU0gtMq/zJjfCh1TloyScjlUHNjF9Ug3XiZTCVLviXEQDxFpz1rj mD+nWXbqMtv8jhXZfhYRmwQ6lFnI1ACxvuYKwKKxQ3JFs9h7z4Fk5tljtvnEtb0ReftzQRkoBdl 6jevbIvt+FY0nsEt1yGmmm4d42xK7J0qgSXjrJsl/Y578hFV3F8sctErT1CW5E86wYTs4I9ONui 5k1uy63cAfUuOaSnrmQ== X-Proofpoint-ORIG-GUID: f1dr9uL08R8VbzWzu4itoqxgQzc_clyr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 clxscore=1015 impostorscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 e1dc226066c1..4a0895bf5720 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -63,6 +63,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 { @@ -283,6 +284,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 b8300195a43b..f3607c0ca847 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 11:18:44 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 17F1948A2D9 for ; Fri, 15 May 2026 11:48:29 +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=1778845714; cv=none; b=O6CBSPFaYgbcRqDPTP1LTo3Icld2Fl5V30tq96EtDjWqnZx0dLjFf41m9x2coACiNT9h9hbhBLFlm0XmfNDpMVqtrS92rm25NZoJO/W1jtJkPDEjui0POtdljtwzuawNdcaj8dc4/RlIRJX+smkka6tSkcQw8S53cLxTJztbVQA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845714; c=relaxed/simple; bh=3LZBjFNjSvRhMK03ekSlXkVYlg7os/XFnLwP9MO6T5M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=e+CqTN/Vgi3a9l8VmROACRbcfeZiC+OjSPvAtJAIPaKM4j7GQM7JdN0kOnG8p0R6h3+LNLEpxRSsNgwTLhPCmjaYL+n/3zsCvRUiR1DSvl9/Ae5i+SYtsdK0otZNqcJSwBXRzMNK1jOsoLomlFVv9gQ715vkFDFo7PUr1nGINqM= 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=U0VSyB28; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=b8SSHsXe; 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="U0VSyB28"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="b8SSHsXe" 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 64FAxwlT2678563 for ; Fri, 15 May 2026 11:48:27 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= kIs5lUio7E7YMx2NkuaANRPWVQRplvNz2SIkISpJQxI=; b=U0VSyB28K1gDS3aE ph6pliUxQYD+nNQdolMJYknIXMj6N1LOkU6q3tRT7SFZmQ870IxHc4kbCEeEin/m 3s4VFLRrejvKUtEsfDLlh34SCVaBbOYcLCDN86PVo4INLoctumkjJyp1pUlt5qeb 6K4gkph0FNiY/SzwJbsMtrq0Lek866RumNZGfuw3Ns/bCsFPOoJDiY0bjpg6p13E +v0FNOGF0qKupLZNol/RCO3qFLcvDEdhJ3aAbJ+y2E3vFXE/SCKZgEsgxrH3ojfO d29OF9pgzQCFQiSnzTLiSuMympk3DZtDz/4SX/bD4NB+kkZ/NkRLhizdEl0QPKZr dFLxDg== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1vu44q-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:27 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50fbc70cfbdso219432241cf.2 for ; Fri, 15 May 2026 04:48:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845706; x=1779450506; 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=kIs5lUio7E7YMx2NkuaANRPWVQRplvNz2SIkISpJQxI=; b=b8SSHsXe03XKIqHO2exbd/cTJEdzSIh0u0quoYeo/eJArKrUjTw3erJp/3aN6uYrqN Kb0SnHv3VgsaJ037vN010k6wSyciFkmIPThauANrg7Y1PbIll6bC5UCJTRa1cMFFG3Sn nAOxhKRe8/S6sU578f6/ek7h00vJNrgpmiTuQOlImbatXjZBlmkwPTQ9rNt5xf4/HMiR tZxbVCuRFg1Ghzpmqrr6KeQVpQccYI7Qm/WF0Sp1VFCXdRjAfgO4k8tmhpOdgRSGB9Tj 9/2KAiSTS84ZGhqonX0yq9V4yQAQgkmlOs+66IQ+Y0ChyyTFa8EksEat5FLwZWMtBcAq RZGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845706; x=1779450506; 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=kIs5lUio7E7YMx2NkuaANRPWVQRplvNz2SIkISpJQxI=; b=HLv4zTmLeZIZRtzuvllIPE8kNhqRk3GYemGW/IsPjrXZX3O84sdnRlFmCUbT6a7fCh 3M/g3wnbmZ+OYkZY8PGCOaDwXiPrK0ReTz6Zi91t1DBCudYKritq5gXEsB7k7o9Y6ns6 yPFan/ZsBC65O3fZBIiUrpOGJ1PC78pJVt79jvDq/dCGI/wa5pG4dDG+AYg13dIhsz9x kQL1rt8w47IG2qJSZTsmesWK80YZnQKcTzJFCBG7PYuiU0jI1mDOcv6fL7ON72Tdrl+u H0qwQVBtvj2yG5KBQ1gbrMjVzYiF22XnQvpDA33WlF7ESP/GMSKZDVpB9RSyRk8xEYbF XMsg== X-Forwarded-Encrypted: i=1; AFNElJ/Xv8egHGr5M2nmqXcwLP4U3CA6tW9Mb6nQNA0+OfckRdVH68t+2/g9mt3yxSF7qdgNBOnc9vPz87bBCvc=@vger.kernel.org X-Gm-Message-State: AOJu0YxaaDoqRa4BctPsDcA2kEkk3bfuhY9vAAg0/yGghrhfjyLdruWg XzEFQI36iQgqGChCMK4758EU8JH/O897LMSGmlErM+s8b+a8KW84Y9I0bV1O50S3pA/gjsl8JT1 S867qnB/y3ANSlXcMeO9WeP0lVREghbEKrTUatI441s96Trk0XUnKvedyGIea8bwWLVE= X-Gm-Gg: Acq92OGLEVgag6z3jmPPa98J3jFCD0mpZuZMTIAbYy7cAIJ2X1uLoXJ3n4rF9zXYfg9 8IVI+PuV+1Tx5K0z2EduTMqc6Q6aPfSGX03LoRCQCMOyU6VTFG9ApYbQsl+cpX0kYlPpUanWoEJ /DlcEvqA6NuxgB6GHap98+5V2l1IxiNTN2oLxmpLVBTiikR6smV8hauDYUL00u3rB7fHBZgoCjF MlhxqQc3YeMCBCLcKAd5uIHNnN6dCUJZv2OpkrCjWhPDByyTcYBo2AoqfqYDuDoBKhPJPaqX8Xw CDTLwSPnOmFVvw0WNQsT6igyfZcovUQLTgkCbkSSNwJq3ppPy7QMYXSEbk0NrcjPE8S2NpIerRO Zq4oFcpo7XqdvWH60U2TDsX9KZ1KqneXzc1H89NvqTi1CK9vHljTY6+c9GwtB4tdD9hnxqwPOFd wd/LgjAq7nBNVLFio177xP6424q7knIL3IOTg= X-Received: by 2002:a05:622a:1f96:b0:50f:ccdd:13f1 with SMTP id d75a77b69052e-5165a03f078mr50218381cf.16.1778845706158; Fri, 15 May 2026 04:48:26 -0700 (PDT) X-Received: by 2002:a05:622a:1f96:b0:50f:ccdd:13f1 with SMTP id d75a77b69052e-5165a03f078mr50217721cf.16.1778845705537; Fri, 15 May 2026 04:48:25 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:24 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:09 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-10-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=5660; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=3LZBjFNjSvRhMK03ekSlXkVYlg7os/XFnLwP9MO6T5M=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf1nUSEEicmWRVL0koIcPwHeliPRrGfuCQ5L xuDoXKe1suJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9QAKCRCLPIo+Aiko 1euvB/48aLOJly1Fx/5K7xUNvTikyq6bfMpYFur3cGp0Mg+itl9zVX7a6bvaSXI3uZUm3ZO6oYn iWESlLBaBBn/0H1LEaNzDtKMl22QV/cKIBtylgxxdbyY61rLSjy5PxC0QXvLefVyyRApFhvQ2ob pmZadP4SHDMGoTt1Jy/mWvBsVwlpC2AiKONwZLkCuifBzb3gGy/nVTtiEO2hWT83iK+HmEdqe3u KDnQkRHjrJk8d8BFHgAnDpU4Pyysvyt6AsfIyvD+MVfYYORk5Sg03nToGwvcYkIAz3Pwl+LAYCX sI162Eg7aa0lrKnkigD7FNsJ9PP1EHkmonv5GrbAwC9zsJXQ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=PKE/P/qC c=1 sm=1 tr=0 ts=6a07080b cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=4y4YWC2vBVg0P_IM3hEA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX3jPDXvIXAyHP BMl5z34LzfwY3Lgaor1jU+TFS4lDiJKtnB+Bde4YkTMjD/G71Gp5o2oenMDlhaJGJefMHAjRiqS wsHGlcNyhEBKm9bLDZtP+uShkWjHPrXpfJR87unjSE0+ulY6wqLZo9oeI41ptHt34uNt23tlA3U hW48N0XHmqCbgw4Z9JQJ/6CSGwSw+xKBQjjKFypFcL05JPkRphXsYRdRF5GOOxdeh15YZ3IhrWj F+yxIHus6GqiLNh399KYGtITks5sTJwnK5b1A6Yat8LIafe90VRVwfPJSi0Tyh3LmHwsY1nJC7X DIjnRktr7j2LVd95p3aNt+NGI9PjiH+Jc4vGs5aoSyevoEvzZcNxBpai9bBQqk7O2HVNBe0e3di +hwp3kDdOHxlEZndywsJ0bwVu3M34eW/hlfQEb7ZtvYqhUN9HUYe6PG9wMwFrRKeqIdhz0PdHUl S0BAceBLWJdqBJxybBw== X-Proofpoint-ORIG-GUID: HAWN0clSUQy7u_IwGM4DyWlDbXxL5DPH X-Proofpoint-GUID: HAWN0clSUQy7u_IwGM4DyWlDbXxL5DPH X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 phishscore=0 clxscore=1015 impostorscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 83373862655f..4e17fa3c602f 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c @@ -1063,10 +1063,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 42226ccee3d9..1b770e830c58 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 @@ -186,6 +188,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; }; @@ -525,6 +533,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 11:18:44 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 4615D48AE06 for ; Fri, 15 May 2026 11:48:30 +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=1778845715; cv=none; b=a1Bdw/7kyrSF4ajxPXCyqufm7HPGCMhlBrhvwcm7i0lygzkV8zN+308TvGEgw/kWYKMXDj81Z4pd8MRtCJSOQKknYHvYzlYxrV8js9mjDHxoFb44MBS+1fgAHNC1SQcdg3HCBBVUTPkNuZ7FGBeY7Zc5kzNgpvLqtgHlMPwsREQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845715; c=relaxed/simple; bh=51abVJLmqPXnrz/IkKiqyklTNSZTZj3V8WGdms5cxdg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=p84w0+nNqTDdyiSD7GPvnzMwtZqxNG2VjukC8S6KQZvAIYAAXt/1z4HoCEmtHowwjRNO+jUyeTq0fAiFPJnLIv/CcqgJN72efpIP9ON0qcxB2g1kZ0lzvbXXirnJkOr2COqORUx6ZiZjFq4WdvuYbgmchIHv+taEEqWe0UoocP8= 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=VAqsj2zU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eZtDvceD; 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="VAqsj2zU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eZtDvceD" 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 64FB5Ec62676441 for ; Fri, 15 May 2026 11:48:29 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=VAqsj2zUeciv+7gn YbbTtPpuvr2puR+pJh2h3j7XjTACJMAN6KWWXISlju7Qtcp3FbR0g4+TjbTe6QGx o7rbB6JWO03Cz0+DbkBBEDeYSSaia63nEm1d0Z0oI+b3/Ugv6WX5fjLH+r3CZijK LreDbnytbeReivFVC4F1nJtf+3yGRsnhhYc1PrOuulACysw/M7MD4OU2iES8reV8 LCxPmgORESNywFSx/uA3BtN6Jp/VmGx26xbLgUbqlE3LbEiYIwygAHUOmzH07A2/ BZypmQ/IR2RTcngLrFGjRVdskPjwLLj6R8AZto+NmY1UYXBrfaMUJLlYMPa+rk45 CnFvxg== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1vu44s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:28 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5162ee45a77so63548201cf.1 for ; Fri, 15 May 2026 04:48:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845708; x=1779450508; 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=eZtDvceD9mM5QWxD7bix3ZWkIQaEhx9F+ROo6Pb+PcFJ4Mm0qhk4BRZYvycacodyhA yePizUiDbR4pHlE4FP9mzUAz1HlwP1+GkXviu90QIYWCLnvy/xVAWadYPsgnf6Ieyj40 IMlKoPHzPPffDfURmXCIWnHZMcMVRcuhMVmFeUafoYPiMxanrqvH/SU/EwbSn+ympE0N dQ1SndBfsIFR+CWG0WN9ppaK7bmQO6A9r4Lp85DXGzgFqCT5WTfm97M1BlvaDK8PFSl6 LB/UgtO27UFyx700VPx3y1yw770me0yeyWJC+ZtznTv8vMSK4oqDGvCL9Bc1lpBV2bmQ QpLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845708; x=1779450508; 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=B6mHCYq3nA6RvteA5J053s2uRcNxya6ncjEwHcJXFnpRBUUGAO7BNFoU57DFXaitdd a6NCt10nIkQeLPqHYpuWRIGlXjBlD9nbKjSWFFNutYU2Z5yccLpaV/FsYYazmN0sZ8Om gc+h9ASA/5SwJ0N0J7HlprGAVVg2mf49U42fPMeat3EJv5JWlFsl4GkHIJTEIC95NLgW QPjUT4m1m4ATNFIXxRGt7Zcw5wX0aAO6lYt5MlMOI15Wu/xphrSDyOJq0kfw/TJPkFLR w1y0HmyB9olHww8OCFHtMHdX04tx1Bh2Lua3owTXDM1+w8J8F829sNNOX1fftxYe+xtf Tdjg== X-Forwarded-Encrypted: i=1; AFNElJ/TmXJpLzp4kEymezMOtAc5pj68+kgf+hAZWrhlYKSKp8CSZjK2COlYkutvbMSK26pf4XqgC7vyXDE1JAE=@vger.kernel.org X-Gm-Message-State: AOJu0YzDUz0oKSx8BJfZ6Wn4SYa85p8ZBVMhgIy6L6aK03GyNAYED4mI FETeUOSbh+psWcr7Ha/G00vFW6N156kC4N8zMfrebPLc47afQgsaVYgRScOT2m+yvjrhX7//9wE 9M1rJO1CGoGpjw5xai9Zrhs/J1KZa0kEWSwalbViwqzpFl9+xj+bBzNltFvWQIFRr6QU= X-Gm-Gg: Acq92OEOyETJUIoMiLOhRVG7SA7/uYASOByJapnxP/YtB5K6js8OrOg7Kvf4Hsbzqqs 8vGhDfzJkLsKr284HN/SsAiRcz94c7v3HfRLOck4jmh7bcIon7GWIIkKkgsLgnB7oH4LsyG/EQ3 4wQFyctwo13wO5oDXGZ55UYS/1a8Ic+nZ6VmWRL20/5SvUBATC8pjA7IyZnPukwIbH3pMkpqmQj 6Xc3rIB1M1FxEMCoTpnzrg42yladjKeRBB7ULnfdFpqkm8nOdK9sXYwCk6FN0tWaa4/GVPfK6lt bsXuPwlaOrZ+Y/3L89Izf9Pqsnz9dkxtt7ZChFXiW7+dMjIIKCIObpU2AyAUMBjmjClQRn4UFGU HVvTobXIR6K4FK1jQwqmnEq7AjMU1AKUHeOP6tp0ixzGUKoWCoM5z+sEhhYE/IRtQYgl4msLuv3 TjltvZxGde/lcR1XyRVv2XLIRx2QgLmyh4hZM= X-Received: by 2002:a05:622a:5c9:b0:50f:783f:31a6 with SMTP id d75a77b69052e-5165a1e728dmr49565421cf.38.1778845707524; Fri, 15 May 2026 04:48:27 -0700 (PDT) X-Received: by 2002:a05:622a:5c9:b0:50f:783f:31a6 with SMTP id d75a77b69052e-5165a1e728dmr49564761cf.38.1778845706992; Fri, 15 May 2026 04:48: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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:25 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:10 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-11-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 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/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf18Rt4tw9ciazUU2ifQ+Q2+z1WJlpd5R/mW fKXLCOANGeJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9QAKCRCLPIo+Aiko 1WkvCACwJ3omOakzMl5YF+U/gJ7ptHGhRt5iomZiP300vbr1UQfNC/DUoXQvA7Za6dxJqc5zIXV Do5gRGVAA6Z37u90e2SKx2/O6cwb2tn+hGdAKRQMZ0Xnbf+PTQzLqVMxT/xKR8+G38oNeLriKfj 6ifGjlZqukjkCbGoTrRZDKjT6yNgGNd43L4F6ZJNBSJHVsPE9OrE0n6WsV9atDjetW3KLVKGjuu 9ok6141cs+Aj8CyqIoTtpWnBi0eF5wvNqMj5kRm+Axy/eDgZhpwr1gSdiS1mcsZAEJKRhJB75QF hEU0wzFXvCE7TlJ1UOypXBKskPqyr8ae8Cl67bjrXabKC4Xk X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=PKE/P/qC c=1 sm=1 tr=0 ts=6a07080c cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=_TRJU0tGboi39qq34nEA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX//Mi3wYMFn88 ZwyDPGrINnfS4FC97S/Qnf2Okw09f/9DH/d3WXUPJAUgJFhvFo073NGUAaB6++Meb4gUNwirn1l UxGTT1FBBsCVENiU5OHkyMBnBMkcD/P0HuWLU93f8Jb+CqknPizSY2qwbqSPGbGRJC5AjFnXl8+ bOcd/NQcEemTd76Asb2W0EohS4ikk7GKzsBzyCrAPq4D2s5kYmg60wAjs32gOENTb+lpnusxKvt KLQnW0qR7Xio1hIknph3qM6NkNVqb0I0G5yEZSfon0/ixEbik0WeR1gfXiVQlHFcFG98h1R7xcc JCRYj6BlFZ4N+qegy9+cSk86gEFIWLTWwclrwCLXZorWlJBqZIvSH3nEEOygRGNQmigRd0+p5wl 4SHLZ7vMhLC3XT2Jaj2O16G82cYR7jVKPxh5Pq0eXT2DrvpCbvQG5FdDfsW/YF8Bw7eaZjj89Sx iudhLvAzgur9PYHlsUQ== X-Proofpoint-ORIG-GUID: WH2M9weQTDUGO1OvCjzriOEeyf4O9dM6 X-Proofpoint-GUID: WH2M9weQTDUGO1OvCjzriOEeyf4O9dM6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 phishscore=0 clxscore=1015 impostorscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 11:18:44 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 EEE3148AE3E for ; Fri, 15 May 2026 11:48:32 +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=1778845718; cv=none; b=BtsVqc0lxNJx/mDqcTBvQ5vDld3ADoRqnLnIkAJk+sLEvCO6LXApBAn4j4GX8YoHtJoz1WvlN/QkteaZ0tWeFWoBuE4ZNas1Bo1zC459wqJEPZ/hvqo3stvIZaz16PE8kKmbw3vMG0IAuKfMy7aS8fq3J0iK0xRiL+tdSiFQk2I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845718; c=relaxed/simple; bh=uXMIqb3vK8jnE9epWO2vNsrU4fvvDB+oCFyJjkJZRB8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=K8HzQ7Qu87B3Bt4C6CLQcbrVa2d1T0u8pbLxSnKnmsvEhFiWdva8UfpYlOXJkU2I9QSqAyGlQuA68EoFnG2hxCg8eQuASWLuV+t008bck7Ekkw6r4N4eGl31uic2cSt3ou05v29vQOv4FAU3DseK9urNXg9naPRIxXcNMwcaYtg= 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=UKHBSaIO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gu3mIZLv; 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="UKHBSaIO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gu3mIZLv" 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 64FBdoes3197968 for ; Fri, 15 May 2026 11:48:29 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= rfjBIjrAeoUK4xU5IY6YCionqcBIbqotW2S0RwwvUuo=; b=UKHBSaIOVexnz0qu 5tpxORyt5GUJ2F1j/6xoRUg++B2Ub0N30W/taJUX6wwt4OYIWNaEKNetUW0GOCpT 0K0duunhr0ButJN4ThJS7n0TeCxuv0WYKq2JEElFCLSw9q3jmZ6wKZn87FiYtFiD IwowNjW8cG2/s9WszwQqOuXs4shCVMdX9Ehz6KAKpH66FNJbRwFKJHxTn3TOXUxk uvdDMGMtDEdtbk0DSqWUSraZw4VZ8hzFZtsULuM/ml/L8HeAd0AiCg+HfpgbrNIW IORPJAbXSjk9TIKCW8SXJitw+vCfiGjssT5wEHehFnDV2/bv6wg9KfpRi36QI4rx t0dNQA== 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 4e5m1qb3hy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:29 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-634ce585b41so3083360137.0 for ; Fri, 15 May 2026 04:48:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845709; x=1779450509; 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=rfjBIjrAeoUK4xU5IY6YCionqcBIbqotW2S0RwwvUuo=; b=gu3mIZLvmxWWGcUpD+2u5+MWf6IonA3JuKuKrcjodjz8fT3lrYhu8wdxydAwSkpbb1 fpyjSqcQNZK8qGrgwtemSM+ZAXIPJFcq1srPFFupCtu7m9GiZYfX1WQawfUJI1VbaH9R HSas40Y3XqWaGZA6d4812ldc4m98t0rvZKNwU/XN0j9+ZM2ZQHPV6fyUPceb0zMkorTx 2pebwCVTRVLu3H8siG1MWo1ohoE/aaVRd2YYvyW4rbBjjwLTUQDtPuDjPqqX9wRiurw2 5j+iMqsf17wO0WpZSVdiX2FNQ/Mg4DWb0udxw+RAIDgAMjtbYm6NlDxY2+a3/NvW8WDT JIPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845709; x=1779450509; 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=rfjBIjrAeoUK4xU5IY6YCionqcBIbqotW2S0RwwvUuo=; b=de3ME8Nn/aoLzEkW6heRHgz5Ve2vWQOctxrbSZbXlnj6O6s+hnr3SVu8xPwfd8FLYV hU94vUOG6JE8vUM1SASMjHMQw45znVr9DTgiSa7vj/HputcfL/SGlOhy0/oR2CFcKcLd ExjhmH+14XUJqbUv74EOFL7HfJi3Ylgq/J2PqVOpBGubFD4wSboTHvWdXN2Y/c6UH433 c1jkvjVrJkteuEnQ9HfJBe5ACHvyJtSQX4RyOYmH4YEuw6ywR0yRBfmO3J4pv3Ik9G94 r4nPUc9b7bUHbthI1DsPHZl1AsDtgKu+XYS5pxNPgv5qgJET0aFtfGBlEE574SWxrhV8 BquA== X-Forwarded-Encrypted: i=1; AFNElJ8fE6QWbUex7pmKRWbpNy4Dv7Rrwk1FJeDBxghZzHwyWrsd5LrdzABMDQeoFEQ4lihuY6R44kaVhrIh/RA=@vger.kernel.org X-Gm-Message-State: AOJu0Yy7pxw8XAJ4/AnJJ/mrkPkzOhfGBCYQigd0dNCHGp0QFtKyItIr PWFiomzLwP6LEVU17lB2aHboTj4BPVDImlWwBO+N+ux3oHQymA9z08prQN7ToOv7dbIsny7dJ73 EUzdqifFd6bMO1Hdj6cTN22sRW4m1Q0i+MSbvC0IDqnPaMHnxl4mfCROCSHF2lN4++YQ= X-Gm-Gg: Acq92OH6YIZ5rhbfRO+3Y2jZQrK/1XDwYbBkTL9KUpMG5zhwMMFSYotBECEGrRBub+3 ysM/tBOazYJTNQ75C6Rn3Fp6NNL3056b+3RdyhFSitRSxFpliTJcCkkl1I9Qhy7oR1yrQ8bvoD6 4UPSNXtr5G0xxFD+3siEF65VpAiRymDTRkqNTwXqM5UtNAkNVQNxB1N5+foywslDbOyPHTZ4FCl N0lSD4Zxp0Lo/H7qmzYUatQ5DHyhxjK36ZOR8milFm4DJKIcZS25rWaWRd3fr5XKGodHdwR0KEa hDG5Lrja75W1vbX3Xc6IU6U7qG4+LqbjcfheNgnO4s9uI82YxEV9mserAg10/cg7eB5zNKjvj4K aexS/9MaFdxQfOlnd/JIvXKXv18/87ty+ZdaB1SXl4p6udWMJx/h6eLgqKcpR+sXDZ2PmlPqd2H auBcfVKfQp4V7bg3l0mOODXxenwxL/e4wMkyw= X-Received: by 2002:a05:6102:800e:b0:631:3b92:9dcc with SMTP id ada2fe7eead31-63a3fea13famr1447926137.27.1778845708942; Fri, 15 May 2026 04:48:28 -0700 (PDT) X-Received: by 2002:a05:6102:800e:b0:631:3b92:9dcc with SMTP id ada2fe7eead31-63a3fea13famr1447918137.27.1778845708440; Fri, 15 May 2026 04:48:28 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:27 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:11 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-12-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=17225; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=uXMIqb3vK8jnE9epWO2vNsrU4fvvDB+oCFyJjkJZRB8=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf1AbIFaWFlgbdguWQ/5mf3uX+MT8cxBjWTm 6OuD+q2RLWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9QAKCRCLPIo+Aiko 1TCBB/470Bxxurus9KT65Snvzkj4qsjOREKztGPTfERZaC7oyn8Wv95rQMOZpZdTPRIlOF/4cx+ RosZyYZeaghEGThKEltpkzFZMJkTxz4lpriFdmDZA01Hu2b1f/jPKszVdlJrOEK4BcdpBNWP4oJ u+5J48uAoA/j4QrB8Za0PYljHyZxvwNxE1UzUDAsjz7K3WJc7jdRBzbTKo3eTqIl+ueNpg8fXMb ulI2iVMTsLTYUO1hGP/1S0k3/iMrEFLG4pdd4SvmqJJDKcrcBAu3KC2vQO8V3fNc+n4ImxuDf6n vh8a8UBc8iHfaduaMG/7QNYXo94yy9nJJp5GeFrpJVmuBHnS X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: J_woYb4YBPEMiV2hWgRe2-pj0_5uZrTu X-Authority-Analysis: v=2.4 cv=GulyPE1C c=1 sm=1 tr=0 ts=6a07080d cx=c_pps a=P2rfLEam3zuxRRdjJWA2cw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX+bQL8/YfkZW4 Gnjq9Dkhmtl6B+V40EZqoGyxFAkqgiakPTRbssAaPmhuAMvb8tGFBPb9WOxXDvhuZGDggeOMtPB px81ZBnFr57l5XsKbhOkR78Sl8SHkjmbGKNzmeyMtaIJaEgZSGNtQ0lE1sNR+IictzfUw+iIyRD 8Y+DOm+WTzdax6bUspgIVm1QlBhIYjVff/NK4Oe7KYWXNHvIOVoNajTxrdQFzMa6bgxf0kH/ViZ eNIdklHNed3DWWXMDr8PS7tnhFoqfM6RUbLK5QfX3HbnTKDSc1loQQUr66yn0T61nRYMuuTKzE/ ksDNMWSwZ/Xpq3zDj4az5iwygefUZXeLHu2NvChYORZkhzE6OJmQKI3hBih2fL6EGgsVTJcDRqy CKoPrCD5BAQhryo2QwM3v//ewdKa65xD0/gzohyqXmH1gH3bRzlYnr26hS9opI4gXSXpKRwwo2s Nn7EqksaLxmGuQjCb/Q== X-Proofpoint-ORIG-GUID: J_woYb4YBPEMiV2hWgRe2-pj0_5uZrTu X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 clxscore=1015 impostorscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 | 111 ++++++++++ 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, 363 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 60f51a1ba941..39e88d5dd6d5 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1.c @@ -284,3 +284,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, + }, + { + .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 4a0895bf5720..f9763ea51c53 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -29,6 +29,10 @@ struct iris_inst; #define DEFAULT_QP 20 #define BITRATE_DEFAULT 20000000 =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, @@ -41,8 +45,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..76bebe012bd8 --- /dev/null +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c @@ -0,0 +1,111 @@ +// 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, + .num_comv =3D 0, + .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 7211d520eda3..070e09406d89 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 9270422c1601..125fb2d6960d 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.c @@ -2135,6 +2135,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 11:18:44 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 A67B648B373 for ; Fri, 15 May 2026 11:48:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845719; cv=none; b=djwEjplUf05uwhzZdG2jL+UQb4CEX48AmLbQpfSTMtCBD7duszZ1VA3bzxxjV4jLlU4v6U3+ceDuIS+Bk24DNJUXKQAxZfPY9TMCCeJ6QzFb/LbEjIlRjrE2qpvsoagKKHK/n8HfhP8qLsW9XVnW6uhdEHNqvi6Ri2AL0DB2Ptk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845719; c=relaxed/simple; bh=3axiyaWetyCCmXr4E5u0cj+R6+VMWoVjI4+fdgJHvJY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nnYLK2Tl7dXi92PI3+MjWVOHmT/yyuavY6vBAohMz2APHFKN4QaLPnP44wKzxXPMPt3eOs3Ox5A0FytGIOVOpD7FJBrQOZfUipNuVeJAc8I5nXX0vfLG1c3nu8C1+0He9QXgZGKTOAb8rWgYOLetaXFcAgOksiRneAtc8AfR+8k= 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=HQaW/R0V; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ht59VvAj; 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="HQaW/R0V"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ht59VvAj" 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 64FBFr9d3197601 for ; Fri, 15 May 2026 11:48:31 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= MFDfg2+jTq+PVTylj95d3CFHXZ8MLRdCrr0Ls1MHh0I=; b=HQaW/R0V7U0f4qlY xt/wE9cm47ysOywdsFMhf54wx0twdvX07lCwYI7FF1EDmwuASKQTCzd1hjvYrIcf C6zPPiS+O1i1YpqDABjNZTIisCxeBDtJQg9LmxsLbWg3COyBPC89/a8xI1mQpSgR /6o/xi8QvPz910RlPEkj55WOSO9nTMWSIUTEg3QaZcrp9TNKWoi+u0Uc3rFwttlj YM7YBoxP273kZybRYjg8rgNrI9VED4Vkeb61oYuTmk5mRd/XjKnPalBhtrDd+V+P 8e7DeoSjlHu+t/tCC2TGexCliaBfl89vjqx8KCYr8FyVvrp16+luE9BvF7QDkzXk q8OLdw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1qb3j5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:31 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-516458449d4so56734961cf.1 for ; Fri, 15 May 2026 04:48:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845711; x=1779450511; 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=MFDfg2+jTq+PVTylj95d3CFHXZ8MLRdCrr0Ls1MHh0I=; b=ht59VvAjUPStXNCaieFYLVJ9FWekV2o1Ipv6LcaArhfS08D6j6EsxUPRvkgSvx5xLw 8myqKVkLr8suKIcLUw4xcaJJ/96RsYt4DcaxfQ6cfOPDBe1nNTZTmpdsacZbgkU503tk pNKS2OjtjLFospB6YkLTNvCXCJdRo4cmiLoV6AaxtKqzX508HLNJhzK1he6ZLlyaOMUp XqselZVZru2BGgMgsEQu6MjDoJoHXRpyPKBOJu5hE1+3acfzaUHTfRhe6PSlFb3WwIcr 8dVmBF0UvQs9zSGL3vRh4b9Fi7hMwQQkpilrYOJkk7pBR+l/k5vBFkNVlgSiLUvoBkzN 4SRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845711; x=1779450511; 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=MFDfg2+jTq+PVTylj95d3CFHXZ8MLRdCrr0Ls1MHh0I=; b=KOE2+67eKub50GzzL8BFqZlPlBMbwRcwFp6JgghNjS8dPiuN4HuZRJDKNsX2werNuW 3Z4HGkeDxmaaJFLdwXwdEyRWoOGFzZNRYFvJyii8YnD8f1cVk/FAhNOKwNiRvxn9hclv KzI4LR5fujBX1rl83lj4H9xkGDYdv+EIaJKFv1kPYLjI5i+79WckxuEoveImGNkgI9/E bn5nVQJJN4A2yplO5yjUjM6593aoq5hxinMU0zBh59zBhSsUA4XXp0d2goNdm2240KhI ZyhDvtm3EVjHyKzoyI8IX7k2sFqRyPFDHaXeU92rZXLbuxwPPMzP4YQKmS68BfbZ5snd Ws1Q== X-Forwarded-Encrypted: i=1; AFNElJ9T4iWp+opn+YxUCRDU51JgAT/MPObmazLnp9IZuEEJvIe4lwK6nfWFpKYUiHOH9mIBqZFuvhvpAftvOdM=@vger.kernel.org X-Gm-Message-State: AOJu0Ywew7kmuZPrngQoh9kn6IJcta7K9IxPU9AJzyb7KatGrBTmjo77 LPt8Ij0UxlWboF7F0L5Ypxzst2qi4INPE0IU8RdYTvaunDc+DgYe/IpzrnzjzlyWE1ADk56PWc7 nYtju9Eki92zI1eD/jC3sXYRvLIp6BjZkm+gySudNIakiW/Iim0fEOw72bHxSwjRUz78= X-Gm-Gg: Acq92OF1c9JTNemR2T53XzA/jutELmgjNifrbLBiFQpdfHs8NCG/S/p3EWuCMoQKIc0 W+y5YDwuBeSfWm1F51uxcuSKybs6DtaTUlFzixN6L7pYJ0EKHiIv46Ft1cL2FvHYy5h9wtJNPuO x5iLG7wq2q6QrqqHEHriy3Hl2CZ0T1C0DeVNXIWRVlH8bz37DBVXxD+m+ul9isEqwAsikjXaNyc 6nYJZDpb9RyijciR74SzOsGieEkt5IYp2cl+QFVa2LIaslX96IQzEdkhBPkZE95kLu9y12cdjpa SmheFIk9gbr5/zI/qWhu7xnuHozvqwyckDpA5HeAqEBZs5ePedCLHiYS8I6n0eFToH/1Dxws4QY dGdjx2KufTDmNCrq7YWqin0XhD85iqLfxyt/IIYEz3YsZyJ5Yxb2SrAOp5DxyRUjrBgMC/k5YP6 c7gThCGVp0dKq3LYWtwiSlT3YwnWAdVAC9LNc= X-Received: by 2002:a05:622a:1f85:b0:4ff:c17b:5ab0 with SMTP id d75a77b69052e-51659fdec21mr50138541cf.9.1778845710630; Fri, 15 May 2026 04:48:30 -0700 (PDT) X-Received: by 2002:a05:622a:1f85:b0:4ff:c17b:5ab0 with SMTP id d75a77b69052e-51659fdec21mr50138021cf.9.1778845710065; Fri, 15 May 2026 04:48:30 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:28 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:12 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-13-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=27281; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=NZM82+SuvWhwak1o8DyX0RlsZmAkYg93fFcjJxyi1Fo=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf2wJJ7UNmdA8oS2X7ycTXDe9L9bjgRMlZ4k vzOxP0XoQGJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9gAKCRCLPIo+Aiko 1XP+B/9b6h4X/YPSZXjR8ljo7RSmOhieTbxZOT+NkUqCMHFwXMfiJOz9G6Tt1jDBuaDXLzOtnna je9qMAblykgvNpzCrFD7dVPPZJe67mLneWd39xjbCAPD8xihfwHVVHI4V6N6l455dGSvdpdrhnk arsDVyyx/jMIqt9pTPDqQHpqORkwJ9V+YsEYKyN+CiGrSENmvSIAXLoJpxZujH8Y+fpV/JEtGvG xHvHr2YCCbKFwYbVlBnzHr/1401iQAxConu0ppl5Iswtk6aMkG7mwCyHdtQudvBe/THuVs48o1Z RgUpvHa7WzEHU+O36Q8kDYKNoNRCuyU/clRvS1mk1PCtsrW8 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: h1DcWqtxmsjUN5A902zidHHIbE0VztOM X-Authority-Analysis: v=2.4 cv=GulyPE1C c=1 sm=1 tr=0 ts=6a07080f cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=iravrUNok-SDL5gDNRIA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX8NYpjNaCjPAC 1+nN3XtjF8Tn5AsquexR59WXGtWP3/rGVSefm59JjMhXGjzFsP7UaIAv1XP71xL4BCvPLYOTTyL LVQ7R4tyb7Oj7RJq/2UNg9dnWARGIGdkp9sYL8CE5Dw5iS6dcxvRVHLFz6INtpG0y6w12t1A+hP F183dgp5yhhPF5+SARrIPMmy0RIoJtEteG4V4c3bBrUTEJolY0v4Pgxu08kCx8AVpaMhKTS+Zz1 S45pgHrTjyJgjdKxoenRbRZSPgjOkt0P4JB+RFGDPQ0L/VFA9Q05PVQAQFazeTyZNIhI6PDAnI+ EFwkr6RG2XF4r8a0JeRh/cpn11Bm9EiVtFXRsR8divX3SfxaHXqOn/CiOGVK0pyxY/QGwof2vxv Y+nLMbUAE2h8bIi+Q3onbkXH7Cre3Q/xsGNMaamLg3IAPPOMnKwhTBEZYrNuaW8GBHyfzcPGyYU MU91QVxNgyav1nsyAwQ== X-Proofpoint-ORIG-GUID: h1DcWqtxmsjUN5A902zidHHIbE0VztOM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 clxscore=1015 impostorscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 125fb2d6960d..e75684d6d97d 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; @@ -767,6 +1037,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)) @@ -790,6 +1072,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; @@ -815,6 +1112,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) + @@ -822,6 +1142,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)) @@ -1410,6 +1737,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; @@ -1434,6 +1770,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, @@ -1693,6 +2039,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; @@ -2148,6 +2504,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 11:18:44 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 1CAC649551C for ; Fri, 15 May 2026 11:48:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845730; cv=none; b=p2F/F94qxKjtJ00G0e/hBv7L7NLgW1DP2Px/+3QIxaDQ5Z/yOhqq88OzyDsvcsitPS75LXVUxQTmYAVffh7Tp42nmtW8AA3KL+iDaGsP5e2FdbNeKfNdlyfPQUK5g1AHsy2slt71st0aUyjy4sP5xMDZhmSVMPysmtLBjcRZdlU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845730; c=relaxed/simple; bh=xV1Ez0VkiHqN4SceKzjewE5NQy2Z+gluSlpptef4L1o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mrPhBQKRD1Opfko+AQskcBjEZb7rJG/+XE633qAenBt9KI/CA3o/KXMaxdj4LcQRqzOHbVVuI1FKSdEuSz4z4T3zkm8XBknqm+B7keCea1Fmo2UOawcq8EoDVt2l9Rd3iZhdzboaAP5S8izbE/ugO1LAC/ZQebGpE0HuNwhjJ24= 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=MoQuPhEY; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=aR5IJKNl; 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="MoQuPhEY"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="aR5IJKNl" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64FB3njD3219661 for ; Fri, 15 May 2026 11:48:47 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= w3IlB6SIs+CZjJfeS1lIhTw+AlBox47qkCGEWWQscH0=; b=MoQuPhEYB7qCYo3C 1LZmCNVjIu1QCh66Jk/wynNsFVvrAbGsW32/I8RDCT4hRXDAkVIF5Ge8CUmBiSjn UAJx7DMXveHgztv409EuXX6i8uA8PT/DzoAfI8uH+aF3sVCdQ6x6+Tjn+YQDua8J 8k5Wrm8G6JdNl2/C8mBVcmUodViz7jJhQrkx7dXpZSiJ7Go+u38+xOadtEjauJbs iXD0Lpwqzax1VZ/12UwsGt1rbwW73s1tHRsMWmiWzKrEtGkJNV6VgyTndLDqItQ7 gCFGpFbwQmlqWbpDUeff/ietpPwlwpih6S/yJ7Ptz+hSPJvFeZGWLz6Ak3Ak+3hD x+thqg== 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 4e5m1s3318-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:46 +0000 (GMT) Received: by mail-vk1-f197.google.com with SMTP id 71dfb90a1353d-5754e645c63so13275878e0c.0 for ; Fri, 15 May 2026 04:48:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845726; x=1779450526; 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=w3IlB6SIs+CZjJfeS1lIhTw+AlBox47qkCGEWWQscH0=; b=aR5IJKNlPaFfRryPYcAxyhbfIwO1zjL2+am1QXNoRdgbebu6TH19Vdgzqap/nWARTk SRHNywoGxIuefybrD4z0qiFTd/W0ByTC64koWdmsUcmREAl285BQ/XJbp9U6hlEJn1dK mof3gDOtMBVgtDm9Vzpk3bp3REeklV8FCR3hfX+a3GsqxZDCN7/3gwC2XW3LE/mYqWKI in0K8Gl7KHt5/GB09w7CGO70puZ+7OHk/AOTsvJLrYhdN/8BpX9PUKg/VtA2/bd4FPov bOUGbW6X4+ddsh4Sd7Npn8gueOrJBbAL+/8aXXNJFDXaVrQEX9s9+ETwpRLZn5rsm6p6 Wnpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845726; x=1779450526; 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=w3IlB6SIs+CZjJfeS1lIhTw+AlBox47qkCGEWWQscH0=; b=or5rVdQcCxAJlKLnn7eLWVGMtP8zTBIXeeb72y2ErOK+kDRtO4bm1woWbGj0Q7j2Nm 4WQQEw6XUnP2O/YaL2+AIWcry75eGN+RomS91MYv+ki0Sf1mCyaH/cte3XvnNmDDPmYn VPt5Hz/L8LcaoekKONmYEyaoW+L8A1XLYkD2iULuZ+zsblbyxnpZNjFXY91sN5u+Qgcf knIfBqlvjGriW0zj3KkY+ATBNitAb26QFop39Wug2XOuy1LQl36cAkHNrUzCj+SiAYWM 3qVAnjoQT2XFjqdTr7XNG/tTkt93K183pgakOgLjL3wdTpCtr/MaE62IK53CiAu3MzCS gZfw== X-Forwarded-Encrypted: i=1; AFNElJ/yVkq2wCpB4dmbb5STV4AjqGtnlma+Rxox+Mo51rZRpDFSItUr1ahh7iVy/JRADd0pOGYz7ruwWz9gwHM=@vger.kernel.org X-Gm-Message-State: AOJu0YzvdCRrUxHrLbsRyZ9cOBfPnD+PARFmxwDFcpMM5DYW1xNOKWeK 0EIwubhgts+kk76+kqb+15YJB5w4iAr2+V90q/ZxtIuvHK88h2gRsQBIcWwUVYFY9QNA42cHf91 KttMZWi+f8OEOLdCs9J3tIftwizyUGY6h8HqaC4Xm9ONHutKJckn/gROfVOhcZ79HtOs= X-Gm-Gg: Acq92OFwRx8ypLpswfMWNIdQqlCtdpo7YsXN4OI4J7OA3SH+AeyUBMN/MVCWvecT2VL RHpddlFOjEPK0ywigZSOmnLwVnhR+EeVyHyNtLiNzJA8cBLeVNmlDH9VtiIHcerlUcZTkOYgdsj vq7uaU7t+FOALsQ2I10KD+GpbSeNYcf4CgPxpQiOaGMU6GyBA0xsJhTspg8moJlWhkcyrUvrFjK RtaBcIhxs6nQDu2G0r0oeSdlO8SU+LydcGTZk3em5yy0wH6Imo1SX53zcF3mxNTSDRnf3TM7YDw KlC5cSfwDqxBO0/s25enZLl84cx5bBDsrs+Gd40/ILqJ54SJZIp+gdWawuKGht2NJVVx96juYpJ oAO9WFfqapuA4bf/juexjUNAFU39lr65wspxw/uMEs2oZf9ptBaB4wapZfkWrLIvWQbaiN+B1dp OADQu4ZMmCXvYT9JPm5YdqGqm/IOWVx+ulxe0= X-Received: by 2002:a05:6102:3048:b0:604:f029:224c with SMTP id ada2fe7eead31-63a3d3257b8mr1663374137.8.1778845719512; Fri, 15 May 2026 04:48:39 -0700 (PDT) X-Received: by 2002:a05:6102:3048:b0:604:f029:224c with SMTP id ada2fe7eead31-63a3d3257b8mr1662625137.8.1778845711860; Fri, 15 May 2026 04:48:31 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:30 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:13 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-14-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=22513; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=y0aQz/0P0fVPN+bBRrR5xdU+3l152avnKBG01oTR+vw=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf287/HZzLb8AnrzoFguWTLetilnJGrVjZHg hIvlrqZ96eJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9gAKCRCLPIo+Aiko 1R0FB/9i64KiXdZW7OodWQ+ZN4zGlIxSHVCXbAJPK1NVsjj/A1hsbsBgRe8wdIEo89BQeDPM/VF iaAmJgNl8jAiwAjuOyoLIA7gw4erL8Buf3GWnlbyQY/jQr5JskPT9cqOp8k7ORb07tM00S3grHD iowENwcqzgj9kBX94FPDka3nopmtLGRYbQ+FFuzyOfsw3eckuhct5bTh1/QVqrr+bjWZ70seckH VNtYm4GxS4KMGQ4e/cx83ju+iCiIyAB5WJnR6RIwmQ3V2fKM6X2nu4UJzzQFFbRjx27DcxJVOGW bLjQKALNF5HV84OR23Qlu/yCWoGkuEClY9LP7U1FcXBrpis9 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX51Iv8jkWYdXH o/NxEyYPNla+QAO46b3QnjJFRESQiR/wUSWYe1hka+gb49onKQfvmX82s1NJuAgYHr1pqxXAmF4 r8sxgPjd7dF7SZBvZhc6P2UDjdm8VewIiSrSwbjRFnV6q4yWojwd+1ZBs6PCXtIjJcEy1f+JYXB cT15B+liIL3qWmaZ+I0n0WBejMxyk9AwWDYgZH4Ou9yOpU8kPRRWP5brfOWUtvhrnraWsLJJfUw jnE7ZgQ3C1IB0scFEZtg9idRRQ7PziGxNpNbQ8b036jRpFkzfUMWnNpYbCtQIw7JqciT+cUi/5k D8olf7yQBgfXBotp4qbYwudzF6G1OcwyfA5BU6ueyCkZVmqM8UpEDXzjQzbVr4aEmUwVFZ++w/o ww402YgKaJSvECnKd4enOi3zSEgyPF1/TIFfJZwBlBRD+aVRh3B3xp1a6e+JoQgqJjlV7gYcEGC U8/4qOf63RzAG/lYaGQ== X-Proofpoint-GUID: dp8zawlkv1bbM_BAxLxqRQKKSOVK7L4z X-Proofpoint-ORIG-GUID: dp8zawlkv1bbM_BAxLxqRQKKSOVK7L4z X-Authority-Analysis: v=2.4 cv=HJ7z0Itv c=1 sm=1 tr=0 ts=6a07081f cx=c_pps a=JIY1xp/sjQ9K5JH4t62bdg==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=GUEZgOuAT4xZVSXxJacA:9 a=QEXdDO2ut3YA:10 a=tNoRWFLymzeba-QzToBc:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 clxscore=1015 impostorscore=0 adultscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 ce8490d64854..61061d17afe5 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2.c @@ -894,3 +894,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, + }, + { + .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, + }, +}; + +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 f9763ea51c53..e0c18780c045 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -47,6 +47,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 76bebe012bd8..d2ee3039e35a 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, @@ -79,7 +85,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 11:18:44 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 2355E48094C for ; Fri, 15 May 2026 11:48:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845718; cv=none; b=I2FaqAPK2nSd7wYle2NT2a4RWCowoKeszLW640DkloCxfiu+akoZUL+Wc817AxozlMi/U9ADnG2+k0hnBMpj7KhTsIqmc0YRA3iEPhv6UXR1qVGgh4ynKqIiZyaBeN2HH7rmFKvkK9MhIE9rS6ll9jfReOHlb7+RnwGDrN2/Kfc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845718; c=relaxed/simple; bh=meJeOGC9Adf/PUbg6XCNyvrgECBd7eveB7tX76HF7r4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=X8hy7GXU8MY9t6DOpxLY6EcGJc7SQiVIJz4OAvbpQvVG2kQ7o5+WLch+YrENaFMCwuUi4k9EzJ2O2cNKH0WYe48BCd2hGpPRQzQWW7JhpT+8oY7j3cFLIEnnYh39RMMUog5plPrOE6yQ6hYhxzzxwGX0VxHalXjwES4F6G1i7UU= 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=oVmeNAUJ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=fB8dkWDk; 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="oVmeNAUJ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="fB8dkWDk" 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 64FAt0Ee1847947 for ; Fri, 15 May 2026 11:48:35 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= isxWumv65PpN92cBtq6/vioXzeAHzuoBszlKeDUSl1o=; b=oVmeNAUJ9AzgCX33 Co42qKTFEJ6lfoWKskFxFUrmtE4dEBVv/nlN2s3oYKqLPaUdBs2QSR8pKJ4GoK0Y MguJdzr2E1aLwQLHZWt6mR0bIqG9SEF2si9CTyrGzf5Md5G0TlJkI1UGF0RoJSbM WkpPblCMCNCdQi58tfDdcrL8FpI9GNfb7F7MrWVYfI89GJt17kdwucEEAXbNuLWH ejBnNpEraaK91juz9ITq187w5Xx3s3ciKNCBCOqgR0MUg+T/yRiVpQZjJcd4siWC XGbCUAk5RZcJZXKunyE8A4maUXfVmDvSiwoEweewMGUbgskHxQcbBqMjmwiC73nF b6tuvA== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1t32eh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:34 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-514cbe73d00so121245621cf.1 for ; Fri, 15 May 2026 04:48:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845714; x=1779450514; 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=isxWumv65PpN92cBtq6/vioXzeAHzuoBszlKeDUSl1o=; b=fB8dkWDkWo+zifxOyE+EJtYnu6URstEiSmon0YHEkfXf9S8Umzi9dLKlzA/kCrl3U4 QbZn2jIBVH5fPG6ayfdkjg1hpjZ/qf31ZKjLnKxqSVIydrgk9gvwOrWn9xXL44L+lFdK 99ABrmtKiHAQilPjBzsSiYk0dIhadf5KCiWUVS0qoTQR2RoYh07K6AYdfDOozuXLIxiR Qv4/zXwD4Qnyu1buCIBsSerxrPm9PIX/RgveJA2toeo4s8LVY9bqFMXyVtDnLicZk/gL +UWMegbpMxhxKZT7fmGRhhEG1+xvk+kdx7VtiZdt8i+xP5xmnJvbD0wnli4+JbZ0vGZ+ nW1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845714; x=1779450514; 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=isxWumv65PpN92cBtq6/vioXzeAHzuoBszlKeDUSl1o=; b=BaOouxZGrXZB08FLo6JPRg0MvjOszosVBI/sPWvvO+DIzaZYUNcdYmYvfXqz8tBktU wv+As4RXDvp4l1rupOXcPJA+SxXTDth2bLpKodihSO+O9b/sEMoM5YAQsfw+W+Jy9j3L gkxjPfS4ZFX1GLB3c7HcUeFyqr1CsTx3SMkbo4pGGb3AENNobhfBvJ2SrMHCk0Se4W9m Kaaz1SD2BI5QJhZqsSTNbtlnkAdzlV03P38n28K5+ILYu1qYscEYa73iN6PHtr7aeuI1 LmSBjZeOjjju2os9PKg99FSJFsLfUh/5Hnf9uGeZJ5H5YxlUf+hmgMd8YPqROrurCTkh aAiQ== X-Forwarded-Encrypted: i=1; AFNElJ/gHuARJHBxPRnGPaZs4mDj8GQ/p/UNSCuZuakWVg3Qmv5pPUrN1a6pBwBUEU5OPomExwGw6XoH+X9pa5c=@vger.kernel.org X-Gm-Message-State: AOJu0YxpXWgu4F+V24836XirIVHssl5AoqSd2hsWCOs+Aa5gnD8o4a9O a6KOdK3SMoL1HrZxL5hq8dXP1r4KVxZx0luR+lh+i63frQQXJlWW3P3xFXHmpbr3j2IDDF+qsy5 BV3jEVufJYukVRVKfgfxqJvN0vgQpqMXTltYufBA62ISAd0ULsaM+DVOoyGBZ/kVnUd4= X-Gm-Gg: Acq92OHT9B1EDrg072y3x6oLlyg6AiQVBztKME7X1rFCCKYBMwLeBH/lL8p3S7wkRRM wzZ4b4GoBMw06QH/rghRWD8M9DecRDMNtHe6dyc1BrjzCCtu1T7/kiOdCho/8tllTjBvZlg30nV Q/6hEQkemyW+5fs8hH8lZ8Ezyx4QH0rrBZ3sqwjtY8VW/9ifsbfNYQr3cY7peHe5RG+1+vVD7IU T/TJ4oeQkohvIljEE8VKsYHYMXi50h7kVjfNb4UwG6FufCJP//AsuuzEIBpZxwc3ii8g3ev3fnj Y8v5ryXYVIPSytjUmHqiC5kjPg7bztQD2JhBnKyB1m95uXBVbahqzXtqu324F+Mfa8Yq8yGTScl tLvkh9VRO6DhmuNAgPPk3nU91mi/1qLb0Q+jYs5UMJp5EZtPVnIpwMgLMLvOPUTTxjAu0JpaevL FIcvBUDaYxUC3IIAARiMY8T3zLmmQ5CLgDe2I= X-Received: by 2002:a05:622a:5c0d:b0:50d:72e4:6df9 with SMTP id d75a77b69052e-5165a240d60mr45336141cf.50.1778845714169; Fri, 15 May 2026 04:48:34 -0700 (PDT) X-Received: by 2002:a05:622a:5c0d:b0:50d:72e4:6df9 with SMTP id d75a77b69052e-5165a240d60mr45335631cf.50.1778845713650; Fri, 15 May 2026 04:48:33 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:32 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:14 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-15-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1744; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=meJeOGC9Adf/PUbg6XCNyvrgECBd7eveB7tX76HF7r4=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf2S/hAvHvbgAhgFpf+qnfmQki5xQth9S/+M yP6zql0piyJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9gAKCRCLPIo+Aiko 1RYiB/kB041veyQ82mu44rhzef3n67bJkKU6d3BUDZXDJv/JR5Si6w5EESsBJ646iRSUCeuckkQ J4UmHqaZ9dL6nN3RpyPosHX7EYtGaUnGWC1nACKQMV3VbGEaZzDntUXIdch2W9riqXRP6fK75X/ JB0xqLJ6ONYDGYrCHks0c7q9M18xSg9m3W17fOFMC8v8yAC5yI3/OjeB/NiwR4U7p9X2nEdZ+a/ hZwwRQnoUK2XP3rh7li7DuJOJFoWg5e5HF9I9LtrYJxFewkIv0nrkWNzVQPnTbUWAU4ROE3n3F/ zf5pvncXZhhbVBG9Qh4d8bboafVn5Q+eSnCI/qPpgBRwo0V5 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=D7Z37PRj c=1 sm=1 tr=0 ts=6a070812 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=TAcc6fXARiqENDJ69lsA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX2Y+R/GfUZybU 94HRLKX6nWDMpFdqZl5Du1liTcmn5Irs+DrK4LZNn3KtsofFt4s4wjkKugPFn9E7cy6flc8fHTT yOqnfdmRLKY9+jFIWYNBGgTpbKoK0Oq5C8P+p8D497F4uL0WpCdwrJoaY1J5cxY6XB0mx9Zb8C6 zHkm3iaLQdCyvJKp8P2RjSQtXLhyItK1k6GuasW+zzqO/+8GXvfn96Gircmx+6lXCB1Kk6+Xepq 5N3ubHA6F7TkuyvHd2is7kX6W4tISY6UZ9gVGwSq50EWftJdGTm9FLjuvwkdqZdCcAf7zYQfFJ6 xY7mpDhZhOq7CFl7fM4/0N66E90FKDPcOPtmD8zTXHaO+XfwJEH7mKeRN5/YtACMhQjNuwXbH9c /o0whAd1vRfgQXp2ORR5EmGlQHPj8Q07fUtFcyZnS5iO6dM3CoGbqL/pLYDi5YdyZ+Ep+bD/IL1 I/ZlwsdquCx33Aa5A6w== X-Proofpoint-ORIG-GUID: Q3S59wCCu9Sj6WCMZZizBypFhFyWY61K X-Proofpoint-GUID: Q3S59wCCu9Sj6WCMZZizBypFhFyWY61K X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 adultscore=0 phishscore=0 clxscore=1015 bulkscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 a87e8afb23df..8838fa958571 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -1074,7 +1074,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 */ @@ -1125,12 +1124,15 @@ 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,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 11:18:44 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 E47F448C401 for ; Fri, 15 May 2026 11:48:38 +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=1778845721; cv=none; b=X1GvvndgFwf6ax8coNaLn1AtcCIclcoiqMSxzeJbURodSporxDJ0OtKQlpdQ2jl1vV1c/k99sJxVDIjSGfgx75Ogzm0N4rLtGQ+XcRemMJHZ1+vQa3nxqmnxRjqI/MbKgROfU6OgMpO/LZR2mdEs5QSCTUj2gulBG7ACGufEpao= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778845721; c=relaxed/simple; bh=1U+PXG9nLo9qUltBrYaeNctURowSep0vzQMqJImDlE0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UvkaE8yXnQDVzywM7ab6Fq8ir+bck2xmVdZk57GYKXo4b9qMkK9CRiSKqFcTJmDBuYVLoskaGMUDKGvXw7em3VfNGPaZkLQlLZX6Ce4BoHMLoS9LqUfqVgNexV0QsAZtXsxaz+J55pndSXr2kGdKouFQDqZR0x+flmaijgx55Ro= 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=E5hgCahE; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gTHQZ83E; 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="E5hgCahE"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gTHQZ83E" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64FARwKi3219606 for ; Fri, 15 May 2026 11:48:37 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= g9e6GbuUhCkLq7seP1dGvQXz0WTCfnuMhV6Ul6jJ9rE=; b=E5hgCahEDoP6SxvM /01IvCLjZzgvraKWJKFAZJvrlS07BhkPER9mvqRq7hsAzR1Qv88QPBfrd7yfjPAb hLD5qxWW7VAe5KxRBwaoATWmh5vp1XsIw9NhG6t3dKVheDonQHsPyhAQvyv3VpwS 9pKt7dKfRVFPWC3PFAFDeazDQYYohYHpUVcPVeqwc/9UAqzTou113WY5ojGJkCf6 mzrdy8GBeLBhfyY3nOAWI5pkqq1dMY0j2mDIGWJ6NMqyWOHA9X1FgTQoP/dpJPKd 1DMrLmGy0n2/AhTRguvLP6mFju6ofAQ65wo+eFyIVH7GaGQ+eAGSjYGOCvNkz8CB UbJnxQ== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1s330x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 11:48:37 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50fbc70cfbdso219438551cf.2 for ; Fri, 15 May 2026 04:48:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778845717; x=1779450517; 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=g9e6GbuUhCkLq7seP1dGvQXz0WTCfnuMhV6Ul6jJ9rE=; b=gTHQZ83E4ITa8wVrw75bYjVnU+dmvT0CDEIJBurbiDrVcJu0R7fTF8FgeIxRceiCPX 2H8o498a7WJH4G6e343ERyjvCqHpQwT+FRIwsE5I9z3bapEdGpe1SMfRyPFCAMF1ub0J rahA7Z9CRb8wMY2B5nFVcnR0LaLYj6G+6FVcaC+skEDFlWgzS6Ix17I0P1rAQk10swW1 CjRnPhJvwU+q/YGttYEDGpHOR7enbPZW9P/n4jio0SJV4DZJmhAgSJQ2f63nViQxqkRs oq3H34wktYBgK+bNlgtf/kfXzDyl7l6j6HAFEsYaA4Bn/I6SErsa3FAGC5FLJRDB3lfd bS+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778845717; x=1779450517; 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=g9e6GbuUhCkLq7seP1dGvQXz0WTCfnuMhV6Ul6jJ9rE=; b=Du/acFpYeZ6Y5AfEM209uBJWAW4rcAKqisgJ1/CxHdyqMk8ryPPexaWwR+CvJrGOlw QHG1buhSTFiHXgVj7F3zSBzLLVC21W7dF/Q/N7pkjeQbawuX1wR0mSPHB3ooACa8s/vU wHs7H9zoy8lFgEjHx1Fi/qw/eJPFAyk4TJ/+rT1zjfOPsGDpR7aIMduHMgoSWkvcnvdL CEN05umyIhpOswX0X3IXLN9m1YExLl4BLsDvuzcZjoPoHAIlsMFD0iJ9dmsqoww8TdOr qBCHO4JnPtWR8B07GivzaLuBu4tQC1YoNZHqrc6rgw9tfm3Id4DBZbPdA6mhm50+8IYh hWLg== X-Forwarded-Encrypted: i=1; AFNElJ/QtkllzwRUVXz82h+MMHV8c+ztjqFMazsbBO2A+qy/PuQ5xw6YC2UUVTZvroKggb7noghzs+X1znj3rbA=@vger.kernel.org X-Gm-Message-State: AOJu0YyeWm+UoyRwXvZrilZmXyJgMonX8n1Ke8/pSE7yKyHzaowpul2T G/jOgflBs7EH5+3Tovfq1xaWZ2H5N54ZqzrFVlognqNl1m/Ng9/vwRmue+Lgvbf8fMBO/HMh/7x YVMAlKoo958k2CgEH4AvtfAaytEbGZw8xyMto+x84pAbAw4p3qoTp05Np+AH8o3vQzeg= X-Gm-Gg: Acq92OEMBQGIF+W/ylK6uILo/XgGOHSAUgDu3LteAseYggY/NuebEZZznVgvDJq4G12 oYvyz/0R2rPv86HxSB9sSVthItaomMTpKSxnmyuiP8u3/wrH/1yv0W0Jqi/X+jvRIMCjAknn9S5 dV4bM2qDmqKIbpyHJUEDaeSu3BOPjBYYOop0InUa+Gklm699qnNoSr49QguCylhVIhokx9PycFp VNm3JJb+mVKnMoa6tgx9lC3wsOXKfEQ+0Uf7e6njtArAHcqSSKf3WxGmsw3yksIMN1xWC6UHor1 y7v7zCXa1g0Q+JxENut/KVTAH3X3dXyfi3G1flP9nZCchPCR+PHFVympU2pdqTpL2+AeW0M+mdC czjMq+GP4UBv2XwvVnT1qcqC/gW6G5SUbAZNLFz8d5TSeMe2NUsAF4LcYvF0hcpqlPp1jkWWHGk vvl8Ai+hMr+ileI8gmdkaLNU8ZEss7//pagUs= X-Received: by 2002:a05:622a:a6cd:b0:4f0:131f:66fe with SMTP id d75a77b69052e-5165a285292mr38859401cf.59.1778845717128; Fri, 15 May 2026 04:48:37 -0700 (PDT) X-Received: by 2002:a05:622a:a6cd:b0:4f0:131f:66fe with SMTP id d75a77b69052e-5165a285292mr38858911cf.59.1778845716408; Fri, 15 May 2026 04:48:36 -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 2adb3069b0e04-5a90f11a682sm1265079e87.31.2026.05.15.04.48.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 04:48:34 -0700 (PDT) From: Dmitry Baryshkov Date: Fri, 15 May 2026 14:48:15 +0300 Subject: [PATCH v3 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: <20260515-iris-ar50lt-v3-16-df3846e74347@oss.qualcomm.com> References: <20260515-iris-ar50lt-v3-0-df3846e74347@oss.qualcomm.com> In-Reply-To: <20260515-iris-ar50lt-v3-0-df3846e74347@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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=901; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=1U+PXG9nLo9qUltBrYaeNctURowSep0vzQMqJImDlE0=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBwf2j3t0gdyFILDLQFigdxHWQCUaLnsGxp4QO ByqT0M/weSJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagcH9gAKCRCLPIo+Aiko 1VOOB/9nmtxijHAo4UEcjqs7xFv/rQMeeSy7v1tyrf71rjd+Gl+sXsx7+Z7hpP20zkoW5frewGr bP3o08iyC/7h685GKwAM1K5FIEan1ORH9FDFYI9KEuXiKFyaekiWhekrm6bsn/4bs7wtjPXSbxH GpXv8mAK7NlOYvfCO9lID5dJJyaL+yJdMAXSyRM4HjjgcsKZ90qmIMrK7wNlPPlY+PNJzys3Ka2 JpL3OL6NegAcwygTifvw8tMfjOUUr7RPGfBLvxu6nrHbUXzPVYAhV/dtyiOl4J+119TWRCJo4s2 wUJsWy3V7oIpeGTCJLeDomY3Q5ZrVuEIah8TMvi37T3JKanB X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDExOSBTYWx0ZWRfX395oEEXSEfu+ shXKGQTUdS/3kGAH27MQcMceP5VqiXuNEGdr7b6Lp3PPhbLMUXpkOabz1XZRqQXvVOSGRsbuInq ThevoCakPeCT2M5mCj00m850XyBnKnwyTln6NnPl5LG7353PhgUkPoniilkWG4uf8rTxcwbfH/J /zkj+yW+FIHfuWaAYbi9TIZOoVGngXxTAhfQT3Nqk6mnTiLnz25HtdUqBMETvfAHuXpcmA2/T6I 2KjIDTETizOEIPvXy12Y/vxGR/JnBXWG0O21NaLOrA8PAk2jk/9//wzlxcDz2PtSUu9jNTkhXV3 GLxBbF67GT8gfBmHHDwj8ksjcgESLAKIifUcQ6qUv3w+6TamkknyBxHceISYX8t9G+GkPJlpODX SoLnRh1gT5BJrHMLAx82D85HGk5gDrTMrNzjpHpophbshlWfV6E4KLIZOelFo+FIpphF5pRmB1F H6xkKRosbMIbjp27mlA== X-Proofpoint-GUID: mZ0mymhJ8GFVtnKRgYde99CDNT7junLg X-Proofpoint-ORIG-GUID: mZ0mymhJ8GFVtnKRgYde99CDNT7junLg X-Authority-Analysis: v=2.4 cv=HJ7z0Itv c=1 sm=1 tr=0 ts=6a070815 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=aSZcYj2XgHFsS6ESuJkA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 clxscore=1015 impostorscore=0 adultscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150119 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 39e88d5dd6d5..6ec5ecfc7759 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