From nobody Fri Jun 19 01:39:54 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 EC5522A1CF for ; Tue, 16 Jun 2026 00:04:43 +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=1781568285; cv=none; b=Ouk9CADYn6DgeWy22owoV1JRFg3h4g6g6ENDeZgPHznEKZFtS1mp4X9pejpv9bwFQ9PKTE6WCJmOHjQJGoSEz5Vor9Fpol7TvtuRDMyJt8kxM0825G3KMYmUEhSJ7Q82tGsezBvlclLMbg1sZXlZfj2ePeqvZ1L3nRLzjjzY66E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568285; c=relaxed/simple; bh=aFCxwN+s0nObB9dYmcqshZUCs9EjeMcuhwbHJaldKhc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mimF4wgIaHEPaheXeLqqBNcfn0xtxzfR0yxXShVyBsOeBeeDDJsiIwsE/U8j6hiL3oUpsZWix4tYKSo+TIcbVsYEO4XM16eZ3D8cLR5hEbtloaiTTm2pCyGUVHVQDVi0msqWpXSC2OQJJvWr4SohlmfMJor4DB0/aQ9H0YDit4w= 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=Q8hJXL97; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eGk8KGPJ; 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="Q8hJXL97"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eGk8KGPJ" 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 65FIxNba781815 for ; Tue, 16 Jun 2026 00:04:43 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=Q8hJXL97fpT6SiQz hOghPQQiUWmZnEM06tpv/XOWxpw4PlLtsCYM7i531FDHvoT4tQCCykbV73MmiGaE lfimdK22su0elw+nse7VVEZZrCHps8lWCXbjj52ah/ptMFTevlexI1JRe/sZX8DN n0qhu+yGpFOhExKl23EFyo4oQ32kqKS7icbi0Alfg5eDUbqmb1y+BoOUu4vw9sc1 M0zreiF89q8VgGCRB7YZJcN8n3mlPcoSFyK39urpU41kba56pqS6FB3bijAgkeao 8d2fl55mNaQjS06CWnAEa9hpg2p2EHxkZZZspwjHyYE/37zChHe4mLsH1otsgaZO NstyEw== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4etetjuqfn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:04:43 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-915d1d4fc5aso674413885a.3 for ; Mon, 15 Jun 2026 17:04:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568282; x=1782173082; 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=eGk8KGPJsbQDprAUWQh9gF+EjKYgrCBFbKvh/tnn68kJTchrMMhopWjK/uU2ulBTK2 ZNBnLBj9epSwcESWFx1AAGCPuZ8D575dVnPmHMb2VSh6gZ8ZZ5V9JWP/mt/Gx/BLgWtk LyTqfrJvIl1/thvLJnmhyKf/qUlHYMYqAmjhMTjmLHDY88hcy0syfDsyIgSyb3H79a88 s36tzCop9LSNYJGewZvqG+H+HTDuNTXE/195UisGhVoZnuadM5j3q0wyI6ZQG0pioCr8 N/HwsnfS44QmoJ3kR0STFeXihWPkw4k7vGSyimRkdib59JGjqO1BI4JeimQp8SvaTnCv FOmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568282; x=1782173082; 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=H4M85HnQJv0PdXtuDRWW3rILMHTKb6ze8uIkucQBwCWjS7Xssk+II0aZ63MxIZLwbW rrZlLMldiS4yydT0YavQEwgJURumGasNeu1bsP8+aRoVzInFobOthMhBAe/yrCTYKb9h xi0tCXx+xOwm6zl2nDY04rPKya21oW4zsWBxEUt02dNC/TLPpsG37XhHwu5bTLg+L5D7 xjjYg0G8lHfPPOfzdRp1Xp4+Rx4wciSlEtJD6o43CX6Ye5Jqt9vYQEfzo5lljxzROWPX ATrr1moghbDqbBLiLNA3EgiZPemQnguynOm88uUa1eQLjdpNbpV08nwHgROX6+dCk7oF zv/g== X-Forwarded-Encrypted: i=1; AFNElJ9ryMCY/3QAdGJCMCVaf5aqYWlRZsmWKZ9tfHXXzM6z/Zyery23cKo1M1HMZgm6BErV2QchhIwp5Fn0TJ8=@vger.kernel.org X-Gm-Message-State: AOJu0Yy3VyXxWSuTTOFI1QXJEyn0AIBY84tOe7XRQqaQsGCnedlFlarR hWnf7KtcpqVno2wd+44YlLlAuE3yhELweqlBVeRqUW9YwN8PFyCXxVeOCcU8yEV8Q1XHrKG9ndu OIX/5qFcQOc1b9S8UQiogw0XCalKwGQukYvio2utLfIPg6ZTJDFYCyCkWqvFnNb3AsagK2ZQwLo o= X-Gm-Gg: Acq92OFxcVMvY+tFQ0d7uhLF1KVQOgNiFZMX3zvWaH7QF+8GR+WwhcOKKrquLGYdP1E 7tuDOiZeeaJ3f/rpeIPrSAREKWLHOxupMir3SaaQv42JEvSkjGFrvj0eFruCXXIlqffL4DIxsce +J8lGX4JerAbgcGDGztBvJIMyWjsxIM8zClRvD3EqP6FMa9QtYiTv8wG796Ru7qzrOEEj+meo// lhk0zcbm76CbpfAlNiWWqq7qnFiuQ3GM1FqqgL4iBHiZIhSF7v0WMqxGBXa4AJNwwZK5Tywmjry tPXr5IUggcz70jUnEM/IfSdIO7CKt0BxyjXHWIqmCOgsz1RfkyAFZyW4eQY3pQ5jaXUtfVTtafw /BsI5bxts0ASiOG9W4WPsS6C4gzowcyZPLPLEaluhrnsGbwthHhOD9Pbr9TmHTiYmc6z5CjLjbD NIzyeCVF/u6unFYs6H6aAF82OVhGqrkNxN+gk= X-Received: by 2002:a05:620a:4095:b0:914:7b1e:a5db with SMTP id af79cd13be357-9161baf57a7mr2579160385a.4.1781568282119; Mon, 15 Jun 2026 17:04:42 -0700 (PDT) X-Received: by 2002:a05:620a:4095:b0:914:7b1e:a5db with SMTP id af79cd13be357-9161baf57a7mr2579156785a.4.1781568281627; Mon, 15 Jun 2026 17:04:41 -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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.04.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:04:38 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:28 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-1-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal , Konrad Dybcio X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1263; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=SkhEj21efbGwh1OhN+7NneptPnsqOcydi7iGjY56ptE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMNjdNQpbBcgQvuiqQf1YgzDa6ZzxLfNE4Jz zX/dg9DWXiJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTDQAKCRCLPIo+Aiko 1VacB/9K4Wu0T0kXH9C7EgJCm4yN2GDV7JYd0DSI1uvFMft5A+yL7bqojC1pjrAY506zTzHwokV IM2rYgdMcbjYHYYv2xPPgoiwIhM+w0VGp9eSvmvfunkDx7z+RNru48C4G1HEemHOqo7bkpdRLfi 7dLcFiQCZgHdTll5ot3KDN6PHheAu0pQMSsXykVEr3zJcGzanUsRFbWr4R8ZoXYIqgWQ1KEG6bS E0ljp9rZwaMNvjw9j3YRMm0i3fturGYQ3pLHpq9r29tD8H0rEwgiL2KopLp8YuGynkhVAD6F+rq J48H4ffbaRTDZleRgADPNicdgntm6HO5Sjmh7ryaGWoNlqiJ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfXwjwgwfAcZ8ea hFEf90XP522NX/cLi8vSeGeSOKI5E6/tp9HqEKHKdPsA15Aq2Th6Uyb/AuGzvly+QFWMPJzCqrc +tTI3VUqhVGnU8ZNSgqa33iflGIxT76ERdzLOMJ8DN04v2TLWJ6yt16anxvX87M886mXqdP/lIl B/QQ0BNfy7JhPL7Z7aNZfzio9THba8bp146l7og7/dqFhw7vDolA0vrNdzQW6HWrMOGhvC3Zae2 1sMi/mKSttkPU40CX14rJ7rTTfCv2PH3bOMG414o9i0ZBybXLCme+BD/BVm2u4kPXePfdf3U9pv nsQGFp6AeuoibBbbIfkj3lcauOZm75Oro1fXuBOi1TipWreJhYqXk/FCcRL1VRkaaBRQrYM2IYm roWojDhLUZHdFCiV+dZnODbd0yOswTSe9vpBXdlvdKUH0Rct9ioCS98aWTOXtdBtEF7GjmnxRT3 E4Ol5JO8a+F+EfYIS1A== X-Proofpoint-ORIG-GUID: xWnx4TjJD11QDpqaMQgY2h8J7Y3aleg- X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX6AaGSAKN5MaF nxmF5ioZCpRSgwg7zUjfKcNUZMO1c7q5/nq1E6d2dLnSJrawPmdwTSLa5aQ31iNIHBqyufu6vaF 2nQddMcDgufPIdEa9OWjus4MYbqHrrs= X-Authority-Analysis: v=2.4 cv=HttG3UTS c=1 sm=1 tr=0 ts=6a30931b cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=wrkyJH6U6m0Jdbs6q_kA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-GUID: xWnx4TjJD11QDpqaMQgY2h8J7Y3aleg- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 suspectscore=0 clxscore=1015 impostorscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 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 19 01:39:54 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 1F3601F5EA for ; Tue, 16 Jun 2026 00:04:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568288; cv=none; b=sO85bWBznCrob6FYtl8AZb35Y0bl2h6ntXPcQIoVQaX2sE3sy8eizOy6Ie4lf43zr5H+2Nv0unzk/T2C6zENEcR1h0jb/3pLvu8bmPOZve/mLYMz/UO4RsD1KL7Ar203aNW/Rx5xToommyWjxaD/XUgh+PVoN/Rgh8m0epLqUgs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568288; c=relaxed/simple; bh=w6VvzeXtMFbm92J+o6+RQFxhKFl1bm3gP4NcPPLrgdA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=omImfZCoK+jMBDruidOTbAQTnQdLVHExv4R5s1yakAVu+YFrjfVvBjz/RXsIMjdoN68djvDmLFbCzu4ZRnlbM0ezEaQibcNBNs/MCpEJ8P94hwFPqsstQG6nwfrgCAT9JgIyBnTv5sObNIVnc+ZkeTAJWcNW6IwCGb9Cx3l4Y0c= 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=BirFjMnX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iIEa7QZe; 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="BirFjMnX"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iIEa7QZe" 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 65FIx7kK861025 for ; Tue, 16 Jun 2026 00:04:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= QHinJ5pmzeA+6swGJ+pu13N7o3lyaDZ9KgcAONydjSE=; b=BirFjMnXx/w78PQR ioq4PTSxqLkLlMGJi7pey+pcuVZ6wzpMh1w7h9UwF3rOX/3+hN+rmyqmrIkmkA0l PvjDPgUZuiIiBZrVreWo3T35iJlsaQq+FQymC/TcXOxIFAXg/NXY+IMvsJSJaT/Z yhGZg3FZnbj4L7bqBW6RIEgzX9858tlVXzz4Usbu4pBxl+YsWp+PJ75tNYpVflCH B6ys7g8nIFwPtx5BjeuaADHDdt6ULgQjgb4JEXLPE2Kjn0qoauzyKOFVmG8o5Lil KfJd9xc95kUjcFfXpSgkVxHCIznEOxG42KAigY9GOyH4xzW2AILGOb3ZlxjZwalg Qzie2A== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eteydbmnx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:04:46 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-915b6b63056so772009185a.1 for ; Mon, 15 Jun 2026 17:04:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568285; x=1782173085; 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=QHinJ5pmzeA+6swGJ+pu13N7o3lyaDZ9KgcAONydjSE=; b=iIEa7QZe5745rbtdkbvmLrdofIUiMR+yqCtO8Wj53PW6SDJr9mvdZblqp1iDNVPmkn 8G4HTYT9LFU2pgJ5IF5St4peni7R7x4jfGb6Egm9ks21luEy1/XvwzW1lKQzDDkoIwij G6CB/WZHjB9sDzHys6Z9KigNYUv2LHcoVDDrHUT5HzFFM8kUBefpXnaoCm4D7miJuDDJ rvTKF2LbMmEbOuE59RIZmRkMMlRoUdFgSTR7AgVHBRaFtRPx1dUKe6mK4fDWQzjVHrec EbEXU56tN0cD9eK8Gvq2ANnK6cef6Vlp/9qMO9y0dN8tJusnag7pzMwfERwOfRjii/R5 EEnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568285; x=1782173085; 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=QHinJ5pmzeA+6swGJ+pu13N7o3lyaDZ9KgcAONydjSE=; b=htrV7aQYda2J3jAvC7fiNc/Wagw6psVp6di40ZO+eYE915xPNC0FBZrfUrmPvpArZ7 18LbV72SqoqSoOI9WjA7cIb3wFbesgsr12fzyl2jlfLfMlx9kbRqtY29C/vsbmQ+acPP cvquPZPfF7WQPwBXZe14C2HE7QyANgP21f2xOOqiGpFBV6wsIk3lKjB/EH+CkuD516hG 4j85DIrbMJ6IkFnzB1fAcRsTxc8+9VMvC+W60XNmpmNYQSd7xhbWaxPpqncOXXTEbPZ8 jFrfZ95NDpdV3eXM07QkzUPYkgPQ/e1ZWlZ8NmWaMBB4C/IKKzbUUKrrWg7p6oP/waLS EB5g== X-Forwarded-Encrypted: i=1; AFNElJ//37LF2PJ+elpqFw3ZbMUA7s6ZUlDI0i2MbRrz+8sQjMRmnioB2WrwWTfq5Fn6L+hghlz4tGhKgVs5etU=@vger.kernel.org X-Gm-Message-State: AOJu0YxRHz8i3zLR5UsbL6hpbBNpO/1gJMPJbl2Q6uFBEqOhYRNOs/Tr cUKnAC+Swc/fL/cHFGPP81cavPwQBVv3iLCU8trZrYwKbDrXLJ2Udn8jgW0FLc/xIoJ/KwjFv9m MuEjwptXatgEDo6ZYwqMwSGv2jRX3rM0IQ4XBfWkBmPQDaoFfqRThrWl0pa4sk+YmxsM= X-Gm-Gg: Acq92OGyzyqakg2YLy03YFyXUHUFMu4ZavkIGPM/6UBUkMgbtgf6rINTN4YNtCSAmy1 B3s6jwWkAkJhSgMCy2XxoeNBuF7l/LwFKL16deO/icLts37aya28MW0AklAmbQbABjCb/GkgUk+ MhnBthJu1YTUWPz2jAywHHhqiTSPSfKO76t8lKWIIZ1Vv0vs2UiY5zD3b27FlUQefvSjO6m92KJ VzgUzXpnYIVgfLL/eDckIouYtDe/LsxMTLyLbfbCZvuR5ao199PklYsdbPTZdeNWxXTYT/zxq4L a2XlOB6JAJjTQjVBPgXSplD83gZiQliAnbfdt+p2ib/y8esPGpvnD97uxDwx6oLEM06zFiyWet8 mau1XqtgwFskST7hi5t82Aj1WfkCeVs+8bU7GgPDL6Rl69hi6FR9SkTJ320HTbQHQ8hzXNYSGS9 9h4e0sog7hVodvxX3AWRBQvfu4Qq6sCL0kKKc= X-Received: by 2002:a05:620a:84c8:b0:915:9125:e649 with SMTP id af79cd13be357-91c48b34225mr213378785a.44.1781568285326; Mon, 15 Jun 2026 17:04:45 -0700 (PDT) X-Received: by 2002:a05:620a:84c8:b0:915:9125:e649 with SMTP id af79cd13be357-91c48b34225mr213374585a.44.1781568284882; Mon, 15 Jun 2026 17:04:44 -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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.04.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:04:43 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:29 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-2-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5156; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=7eAXYetUjHA2IWQTpRRRPO4xYcQIYvJysU+KoTDDI4E=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMOCVxIJE4Ld/rO9Q7yn/i8ttZAKx5qQWi63 m8rDhp917GJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTDgAKCRCLPIo+Aiko 1QQaB/9Cs+A3xnIsEPIFwBSOVrrECopmLXgHrH/IIKZRfSKjijMQkVawulOo96ZaphpGTVfQ9/3 AF+0G3tmGSgsnwFK2l3aaGOC8oDMiD0taI8RPXIezmElaw8vzJQRSMo0q0g1BAp4GkUNS3jRGHk KTW2j5pvjIdy6L8cbKi5iEwhMlJMFZma4NWoafEY4HOvuDA8PNfoDur0VWJM4lzTh20386ZyPxi r7Pq50hXX76eVSR+a/Su1Spy9xb0ocMQkkRQbSC7To2U+SVcLvENRTOcF0fdth5j4Jny1UrcPUq pZhUHRHcjA1FlMHHFpgqXhpvTkHw2bumvMRsp1ib0kkzcKX0 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: 24shTpBN4jqKqXLMfjqngvYO0qMjIYMS X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX6TRT4Nw4SBLz 1OKhd5iXxdm82FvIoFd6ttpRf70Y70Lxq2yRQyrm/dln+PjRjwTO49xmZojj+P2lDVdqRpz4dpw i88ku8q+J8CsQNZzs2uTrVgCHCBG60M= X-Authority-Analysis: v=2.4 cv=QrJuG1yd c=1 sm=1 tr=0 ts=6a30931e cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=gsa84qigJ8via7s57H0A:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-ORIG-GUID: 24shTpBN4jqKqXLMfjqngvYO0qMjIYMS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX+HoCR7jmokCt sBpduTXeDFSLDe/jNheVaQswTHvfuMtfFW+JdR/9ON3YJXcKkIO6Rb1TxVfw5ZheXCeKGhAeWmB SlOyiNKmSsv/rwGlTq5IWAlGuIcUot8RZqs5+yGtRYePSvK9ey5dwWVg6HciM5XZafYuPNx/ANH IyotfuzmTnB6vMvqvz+OhuYbu8mhQMrowVQbYyTU6iAO743BYBnyFm/HTw6N0GjzAhPf/iMmrIZ Fpa5vwt/3DyyCzqWlcfUxBhq85aOEpYKyDfyJx86tEote7b+AQxXP7vZCcCOh4O2hirHnEXDcPh o8fZ6QUR5YVkKCmdJQ3ku4+Ru17nCA5iC4+H6notKgoN4bRvZ7WMIUeT4IHOGMeF72hzoSi95fF pdloPl+cGA3NP19/vNpqN/L+MXZHQkcpr769OkkbB53NPSzu8ncNv6SmE4LWINVtCzxOerl6Zkb 2A2dnzREpevl//jFt0Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 impostorscore=0 malwarescore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 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 | 26 ++++++++++++++++++++++--= -- drivers/media/platform/qcom/iris/iris_venc.c | 9 +++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_vdec.c b/drivers/media/p= latform/qcom/iris/iris_vdec.c index 9e228b70420e..63b7c9dec60a 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 @@ -69,8 +70,14 @@ static const u32 iris_vdec_formats_cap[] =3D { [IRIS_FMT_QC10C] =3D V4L2_PIX_FMT_QC10C, }; =20 +static const u32 iris_vdec_formats_noubwc_cap[] =3D { + [IRIS_FMT_NV12] =3D V4L2_PIX_FMT_NV12, + [IRIS_FMT_TP10] =3D V4L2_PIX_FMT_P010, +}; + 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 @@ -80,8 +87,13 @@ static bool check_format(struct iris_inst *inst, u32 pix= fmt, u32 type) size =3D inst->core->iris_platform_data->inst_iris_fmts_size; break; case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: - fmt =3D iris_vdec_formats_cap; - size =3D ARRAY_SIZE(iris_vdec_formats_cap); + if (ubwc->ubwc_enc_version) { + fmt =3D iris_vdec_formats_cap; + size =3D ARRAY_SIZE(iris_vdec_formats_cap); + } else { + fmt =3D iris_vdec_formats_noubwc_cap; + size =3D ARRAY_SIZE(iris_vdec_formats_noubwc_cap); + } break; default: return false; @@ -110,6 +122,7 @@ static bool check_format(struct iris_inst *inst, u32 pi= xfmt, u32 type) =20 static u32 find_format_by_index(struct iris_inst *inst, u32 index, u32 typ= e) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size; const u32 *fmt; =20 @@ -119,8 +132,13 @@ static u32 find_format_by_index(struct iris_inst *inst= , u32 index, u32 type) size =3D inst->core->iris_platform_data->inst_iris_fmts_size; break; case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: - fmt =3D iris_vdec_formats_cap; - size =3D ARRAY_SIZE(iris_vdec_formats_cap); + if (ubwc->ubwc_enc_version) { + fmt =3D iris_vdec_formats_cap; + size =3D ARRAY_SIZE(iris_vdec_formats_cap); + } else { + fmt =3D iris_vdec_formats_noubwc_cap; + size =3D ARRAY_SIZE(iris_vdec_formats_noubwc_cap); + } break; default: return 0; diff --git a/drivers/media/platform/qcom/iris/iris_venc.c b/drivers/media/p= latform/qcom/iris/iris_venc.c index a945992f63aa..2cafbe9f8abb 100644 --- a/drivers/media/platform/qcom/iris/iris_venc.c +++ b/drivers/media/platform/qcom/iris/iris_venc.c @@ -3,6 +3,7 @@ * Copyright (c) 2022-2025 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 +#include #include #include =20 @@ -91,6 +92,7 @@ static const u32 iris_venc_formats_out[] =3D { =20 static bool check_format(struct iris_inst *inst, u32 pixfmt, u32 type) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size, i; const u32 *fmt; =20 @@ -98,6 +100,9 @@ static bool check_format(struct iris_inst *inst, u32 pix= fmt, u32 type) case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: fmt =3D iris_venc_formats_out; size =3D ARRAY_SIZE(iris_venc_formats_out); + /* Last format is UBWC; drop it if UBWC is unsupported */ + if (!ubwc->ubwc_enc_version) + size--; break; case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: fmt =3D iris_venc_formats_cap; @@ -117,6 +122,7 @@ static bool check_format(struct iris_inst *inst, u32 pi= xfmt, u32 type) =20 static u32 find_format_by_index(struct iris_inst *inst, u32 index, u32 typ= e) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size; const u32 *fmt; =20 @@ -124,6 +130,9 @@ static u32 find_format_by_index(struct iris_inst *inst,= u32 index, u32 type) case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: fmt =3D iris_venc_formats_out; size =3D ARRAY_SIZE(iris_venc_formats_out); + /* Last format is UBWC; drop it if UBWC is unsupported */ + if (!ubwc->ubwc_enc_version) + size--; break; case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: fmt =3D iris_venc_formats_cap; --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 684B213FEE for ; Tue, 16 Jun 2026 00:04:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568296; cv=none; b=IlIJZjqgHD6jxChKzFLtzkGt0MU5D7D/HX1OJDr4g+S43DfCpWBuYmihnl/FSTy1vDW5Ma3cKDDcDNiLtk5nVzBGcZi7xw4ZDpTwxLTByHSwFKXwfg0J4TvcR4YtEyvj21dsG2VIHi8h8md7XS86V2YURfON46olKP4yYmUpmmo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568296; c=relaxed/simple; bh=SUPr9326R8/I85NqmtSxzGXasITRZ38mBZxBYOCk/p0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ooZENg2S6+tcffifjIkyD8l6nAtiXAP7qJXi1hgvP6NALiqJgjGi0lNqtCiUScfrbB1q/2A38v3pc5xH7H2Knaca2fdjJqo7UesuLEpdKGw+MhgfFADDCU5+uQAIkMjh4yuA2IxnlJbnxs5HyQrR8zzzJ+CdDq6QJhOONj9Iam0= 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=FfsJy/xn; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=j0aZyNrJ; 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="FfsJy/xn"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="j0aZyNrJ" 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 65FIxJBw781711 for ; Tue, 16 Jun 2026 00:04:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rZBfUegtVT46gf+3kV/ulvsSL+G4ssvBArwyOeiJ5Vw=; b=FfsJy/xnufqnSeKf Xze1sj8sFewclvbfiDjIz8b1Ey0OQ2aQD6MfQa55DRAYX2ltfl7GOeaZg1H0bkyj 1cUb8/PIroEE71i/ytKj5ziy+KZ0/w9Nomc4rQ08Pjso9zMkTlsJ4LKVrtKPBsqV d+hr6RmmeQO90PdA6HZYYLkAxFCAAKKisqTDz+oaP8irI1M71la95XCQ9AfRuS/o seEN9YqtyNxGLiZVTW9qxrJM3L0LkBXoP7SErURtx8/P7kDFRGoQyKMuL+M6/IUQ 134H5d4QNOscV4YE2mNCRLO3bRZPArHHzHIyCun60VzKyvSCqStl7hu2tkY7dxSY WEeEMg== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4etetjuqg4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:04:49 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-915d3261c5cso814593185a.3 for ; Mon, 15 Jun 2026 17:04:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568289; x=1782173089; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=rZBfUegtVT46gf+3kV/ulvsSL+G4ssvBArwyOeiJ5Vw=; b=j0aZyNrJvnTGq++YQsXSWFQ189kZ/8jPAOWCAMduKcBqv2Aw7k6wd1FlXOnp3O392H JaFW+yx1gbcJG2TXHsEYqkf0ZRCgjgCrjaHoaUclCAi4thNcHkpgL1A6haXVQaEkHM0e z8bVndarZIzPNxt1+W16VsuBZFqy1wEGvlmps2RtsCXWLYKoh1tG87Wq26sEBpaNrr97 cFziqlwqf6QzR93UIEKg3lOAmpZbMNql9IKzTM1v5kbvJtcEhPO0Od/dKDitekjM5k+y CScR+oBIvHW+y1f7UxRfO0lkUJu8t58c4QVsThP9kG2sAI6bqDce+aYkLFoiopTjojRN OiDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568289; x=1782173089; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=rZBfUegtVT46gf+3kV/ulvsSL+G4ssvBArwyOeiJ5Vw=; b=lXKv/onJqFniVxIAwHCAeYYvfvmx4ayAm+fXbNaiTCBtoYwFlzPpdAbewhcHGfUMvq d+N2DcFhqABETMKdtawikAZb6DH1bgNS2v2D6D74kGDimwYcdCuLoGgsMQ5Q8j8IVRrL L+oUdE8oOqKhN6TuyOEgnxI3u5A0tnUim8VBZvkHJAkB1n5ZeRCFdIzsbFPyIc8sdh1R OnRcRUgGumO/7q7brjgukgis9We7oJwef0F36EAidkoAdTS1J0ymOfEL0szc26QpzeYJ XDkK4zFJDJVHfOJVBj2ax7Cw0hBr2H8j2FYNLypGx3QOaqqZrqmDkFc4irDd0FMIi+6v lQ2g== X-Forwarded-Encrypted: i=1; AFNElJ8svgtQJB/90svaD48rRPkw+7119hSD+3J1ggXp/XEC2A8h9dWsogBeVfLCjmQj4T/xjW2j+YNuBeqN06I=@vger.kernel.org X-Gm-Message-State: AOJu0YyFT0v7GJaDSAAaaqoEmU+k+cwpTutgCil135/JjwjPF8F9hbjH 2Eg/wbPAoTPN8MQMlX/VSS1Dw2VrthbAGaA7QlEZACB1LA76qr0fekHQChhNOGxKqi1xVSLa+v0 y4nVnSLdlwkQBqDsKYqGr5aC5dblsMqSDqoeE3kczDqWkgr239tn18E0Gx1K0fvfzjlE= X-Gm-Gg: Acq92OGGtOZc4vruFUpBPVuu5ban0oNagOyz4T8mP8cgrHj29ZIEo/+iay1LFsLhl8/ gJMf8awFCwqAkfzDl61IqxoZymvFTQ9Prgb6DgLtSdw6bgFpcI4mfXjSGxdYZ96t9HcykpDdzad wn3RM3kF1M0qAXym5pv/jMTK/QhQp/gVmH3pd8/z9Ly9AK5a6pgmt0n0UUzOoYMpxPPaCC/EGwL kOgaeEkOcSnvQLUr5bBMIM1X2V+scHAHQI3d2sHWyyYXgB1quSPrRX6oICwUoMdUvr3AedKVD3m CeiqZT9vAoAyiKIAqKq//tdXf8LqfZDd2pXfl3fvi6mFU+5ugXzt3lmUgUoos+1C9AnvzWQOiFK BO0wAMbcG3C0vpb7ybdTBmAJw8B+YE7sHUmDDLV0HdOu0D8Ee4g5mCFwwUYGWNkkMKJJxnyHYYd 3ooe9NQPbhVvhrsYt4Da0aRzHDrzoomZz/gbw= X-Received: by 2002:a05:620a:2584:b0:915:a762:2735 with SMTP id af79cd13be357-91c47799fd7mr210617285a.37.1781568288715; Mon, 15 Jun 2026 17:04:48 -0700 (PDT) X-Received: by 2002:a05:620a:2584:b0:915:a762:2735 with SMTP id af79cd13be357-91c47799fd7mr210611385a.37.1781568288243; Mon, 15 Jun 2026 17:04:48 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5ad2e1a7092sm3015731e87.50.2026.06.15.17.04.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:04:45 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:30 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-3-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4447; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=vk2n05YaqyNL1lA1l7CdzDHPMAEMMeRGvxRtE9L+Mhs=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMO5NJZdxcfI07EHv74CzfYbRVDgOfSBpbS8 806WVLBtjaJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTDgAKCRCLPIo+Aiko 1SjLCACJ5iSuZLJwO8U75b0uzLQeYt+gmFY3mI/wLagM2FIkoI0BQ96Lwsg752FdWyVLN/zljXb khsPudaw7J+KmYEAAgzaUXnZvddLDp4vDrOI8t/4YT/DnxCZnkplOkz354R4JLctbM4EHkFUMUk UnksLH8SLokRxeJjTHQmHYPI/N+XlNmbn9o8dJTzFApDyGRyADxut5VoQSuphwj/YGKiMBegWjQ qaD7iEG82M/szol637TL78y8pZl74VbLnDd/RDyMasQbBSPucTgQAQgIS0ceAYduk5TzHXPwnJE tXNL2gg5CxCPZhysCmC39A2p5q7WrWAPk5Qla8sqRl+za7ID X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX+Z9H80j+J+ha Uy6WvZdQ0d092GBwL/6yHpLNdM5i0IB1OmkSI/Agao6lSwUu62C3RGXmm2SfLFNhkajixTR0ftp DUC4s5BV8I2YypGSg+c9oLJqix6if5kSIPmf5zZ37Rqa3ZKKbiv3k0GI7trueY8HEWgDbeFqjhR 4Opkco0kiM2THKrj1MEE9WLbsPaKIF+8R3CkusaN7Ii8RjArnCzpcFSIvla42qaMuIUPklDCyg2 hN2PGho5enopv3cMMcBQfPF0MjGjDZwnrSWWsgc9tEiMTVQzypH/Un+OeM2W+aYCYGX/HG7c9zi 9WZA3uF5XelAW8xBt/SNT3j46y9yzv8rSlms7QT8SKtGcP3SN3C0wkwz5wpbjcKicJY4EKN+7BM qlTOxH5tU6dmWbYASozo7S2fPCcOcXjFeDZdaRexvnVdywGavxXoOk8bs9Bl2elXFyZoVyLZpmf Ldp3005BxcUwPoaAs9w== X-Proofpoint-ORIG-GUID: hcRagB-wYyCssgA_Ra1CcpRU8kdkDH5P X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfXz/nXFYORYtZT y2IKp/tG9W8n/WtxHMEz1gTsOG+tUWbA+52FReKZD7W8CH+npLPLZG1PBInKCdPHmDp2ya/HgrF f0+Nou0i3u7jPCZA+9Rc2u26JtqfoJg= X-Authority-Analysis: v=2.4 cv=HttG3UTS c=1 sm=1 tr=0 ts=6a309321 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=4Uh0hlRDs2lXuULb_e4A:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-GUID: hcRagB-wYyCssgA_Ra1CcpRU8kdkDH5P X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 suspectscore=0 clxscore=1015 impostorscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 From: Dikshita Agarwal The set_preset_registers sequence is currently shared across all supported devices. Starting with Qualcomm QCM2290 (AR50LT), the register programming would differ. Move set_preset_register into a vpu_op to allow per-device customization. This change prepares the driver for upcoming hardware variants. No functional change so far for existing devices. Reviewed-by: Dmitry Baryshkov Signed-off-by: Dikshita Agarwal Reviewed-by: Vishnu Reddy Reviewed-by: Vikash Garodia Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_vpu2.c | 1 + drivers/media/platform/qcom/iris/iris_vpu3x.c | 3 +++ drivers/media/platform/qcom/iris/iris_vpu4x.c | 1 + drivers/media/platform/qcom/iris/iris_vpu_common.c | 2 +- drivers/media/platform/qcom/iris/iris_vpu_common.h | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/iris_vpu2.c b/drivers/media/p= latform/qcom/iris/iris_vpu2.c index b8714dcbad10..2dc121a3f5e8 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_vpu2.c @@ -45,4 +45,5 @@ const struct vpu_ops iris_vpu2_ops =3D { .power_on_controller =3D iris_vpu_power_on_controller, .calc_freq =3D iris_vpu2_calc_freq, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu3x.c b/drivers/media/= platform/qcom/iris/iris_vpu3x.c index 3dad47be78b5..dc02ced1b931 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu3x.c @@ -261,6 +261,7 @@ const struct vpu_ops iris_vpu3_ops =3D { .power_on_controller =3D iris_vpu_power_on_controller, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; =20 const struct vpu_ops iris_vpu33_ops =3D { @@ -270,6 +271,7 @@ const struct vpu_ops iris_vpu33_ops =3D { .power_on_controller =3D iris_vpu_power_on_controller, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; =20 const struct vpu_ops iris_vpu35_ops =3D { @@ -280,4 +282,5 @@ const struct vpu_ops iris_vpu35_ops =3D { .program_bootup_registers =3D iris_vpu35_vpu4x_program_bootup_registers, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu4x.c b/drivers/media/= platform/qcom/iris/iris_vpu4x.c index 02e100a4045f..f608a297d4a3 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu4x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu4x.c @@ -368,4 +368,5 @@ const struct vpu_ops iris_vpu4x_ops =3D { .program_bootup_registers =3D iris_vpu35_vpu4x_program_bootup_registers, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu4x_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index ab41da1f47c8..a49113b0da23 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -483,7 +483,7 @@ int iris_vpu_power_on(struct iris_core *core) =20 iris_opp_set_rate(core->dev, freq); =20 - iris_vpu_set_preset_registers(core); + core->iris_platform_data->vpu_ops->set_preset_registers(core); =20 iris_vpu_interrupt_init(core); core->intr_status =3D 0; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index 09799a375c14..21ed4c9bd5e3 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -22,6 +22,7 @@ struct vpu_ops { void (*program_bootup_registers)(struct iris_core *core); u64 (*calc_freq)(struct iris_inst *inst, size_t data_size); int (*set_hwmode)(struct iris_core *core); + void (*set_preset_registers)(struct iris_core *core); }; =20 int iris_vpu_boot_firmware(struct iris_core *core); --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 7BBFDDF59 for ; Tue, 16 Jun 2026 00:04:55 +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=1781568296; cv=none; b=m1cvjLaJ6Wqv5KLVMOEV+rCBZCyEgoqM1HyWnJwJOWhrBKKN++zosYvgHYVDEOleM5so4iimRZn6UrbBxBv1Ex8h3j29xxVcR4QI1UUXlrOhrrUlZMyff9wVMMCJL+yk+fnxMXbyg73kWChfw6BVYC3JGDEyNlexyatUdjZtIZw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568296; c=relaxed/simple; bh=mn+e/RylLLe8OTePgCv2X/kFcuAkbIe3sFltrQBvOOg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ua63Q7hTNdhTMUOraBLoaMgowqQKLaAO6grQlrSgDoQhLjbW1vaez5+QYmCG/Q2Wa3qtkNl9+ejXpu+MmUQVB7RF/DYr23s9MWG+C46Uo/IL+rseY8kKzp3+vzAvlyNd8hzX0d+KrjPD1qkweKEOajNMZqvfSvPPgsSQ0e3wIqQ= 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=f159LoDw; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gNinkRFp; 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="f159LoDw"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gNinkRFp" 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 65FIxUs6781976 for ; Tue, 16 Jun 2026 00:04:55 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= BSlDrwbGIU+LailKGlDSa67oRh8dtUgn/OIYCvnUjAg=; b=f159LoDwNqlGlkGt 96eYEjasqTgPKsCV/S+X37DuulLm0Y+WtQqYIvvB4k2AIhDJ5ZJ7fhTRySRxRtAL swbSNXg5m9ybckJG58EBxnxFRVXn8j7WYmRbs9bcwJ6CG9B3AlznHizx0HnC8M9y nItXvGuH9qXJaS9J59gdAzwFcnHNfGpfIxzEwmX8lXV6GDjLB4JSHJN/FMs5XmwB 1/L4NVKX8FlXGLrlvixdmEpz/l74yeEvigEuLRiGZjRNis8zdaUNovDipGkah0js w/mHpDS9ahXtZwFeIXWj8QzvlH0iNNHfAp71u0szJWvQ5Jnh9Y+UPC1L+upeA6r+ 0xqMlg== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4etetjuqgf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:04:54 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-9156cb14b1cso375339985a.1 for ; Mon, 15 Jun 2026 17:04:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568294; x=1782173094; 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=BSlDrwbGIU+LailKGlDSa67oRh8dtUgn/OIYCvnUjAg=; b=gNinkRFpYGmytpeuIGqML8KwiCbEfA095VnmkjlGZgFx54DoMe9na6JVzRJ+ahxBJn VkbYr3uNFH2eaT+kNYR4Kp0hhjVhsN3YxsLCQ4mlbSjoJ0gHpOz0mSlNaeWoYs08EBz7 F+o8Ll1KHpnrcTX2dmGzZzroihTZv2sUpBS53iRNQgzU85DnC+ITln9aFjgzdXrE0Ys/ ByfoQj2h96UxvMw8FFX9IXyQDgE0SHm9kfyBaVxWlaVrjoVXyH3IUx+m6lNPajkVOvGp WVZIHNuWX0XxF5UqvP3Yam4doEWsEwDvV+IeNv3MN0spvlDb8n1dGRn5Ch77Pl+akusp 2rMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568294; x=1782173094; 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=BSlDrwbGIU+LailKGlDSa67oRh8dtUgn/OIYCvnUjAg=; b=RegdAGpzBG2yRjAiVLfM7sYHZtclcGkd+Vsy+y1r6gih9KF2JokNF9sAE3ee/FfQ2J KIKeHApKwnYoLs7wFK51QrRtGy7BzmCre6zVoJfNZ96bwZ4RaXrlr0KjttpGta94H+Vg 1KorRJ9ykrBDIU0h9Lz+XWnaZZqnij8FQ4tMce65IdNmZtIn+vAsRuXOOl5Yh4gw/K0F PWjEF6F8W1m/TX7WlnkRYJqK9UxvtMV0qasVDzF7JhiZQTQxOkbXAHvZE/QQ0QIHY6re oRb6MPOqEWfUUvopZ2vF3LR29nPpPLxeC5fbn+7rR5g7AyzinUc8WYaVzIzNE3Ms19I1 DkWA== X-Forwarded-Encrypted: i=1; AFNElJ+AyvZtu2LCkDy5WCa6WgEJ3Q9aQ5wAFQX5YiF+SUPEeFiZ9XLd2FTXSNpJQbl5jRklrNQRLt+F1S5hDOc=@vger.kernel.org X-Gm-Message-State: AOJu0YzPe0+IOaDY0UycF1SlQ0It5BZa8svSG+zBE1zasi/dZisasNyL XijpVMm9teEq3kr99bgjWhydsl0n2x4B8cZOaCzBAGfkUfb9CG+aibClubr0s1bppd/QvwizNgp p6a+8E9rfFJqdJKwbiSP636ugPS7idrx2IS/v6oJvYAoEzRVfdh4mWp5NE+742huz0a0= X-Gm-Gg: Acq92OHoWKMVWO1v40fc46zjHSDySQfZ+GoG2wxEREABuKovlh8rpSvW04fj7CzAByK TrJ9Wfsfal/hSOPpYmO2shtCo2C+5JRL4J53bbP18xpW78hpdMKwqdN0hGnQnhhy+1FVOqm7yFr Iv00Xm8qG62Vn+3JUicYOqXNmGJJ9Fd/VUIpxHovs14fd66KbBIB7MqyjKiSFoMxfWr7oWwuKWU qDea52pps+E4pnzKi8js1zjPtqxzRBdwJyE/Moiwww82vORt3qVyFIWT2E/vEz5pYscEtZfeElA yUszWEVT3idMFYeXZrNdeTagz9DrTzB01S0eU7ExrJPMI6eDW0y+7fQ5qQd1tlItnVn+4QvolV0 GdISVr/mK7lFZU057mE1272eA64QTMw7GXDVnIlCmX9WQ1W9yK3MqocspW3tMA8XeKtEKqmA/27 6zrtVf7jnhSR+ebBW1kufEjkbdcgRBkrA+oP4= X-Received: by 2002:a05:620a:270b:b0:915:bf79:3e09 with SMTP id af79cd13be357-917f1474c81mr1970545785a.44.1781568293763; Mon, 15 Jun 2026 17:04:53 -0700 (PDT) X-Received: by 2002:a05:620a:270b:b0:915:bf79:3e09 with SMTP id af79cd13be357-917f1474c81mr1970540385a.44.1781568293243; Mon, 15 Jun 2026 17:04:53 -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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.04.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:04:50 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:31 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-4-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4931; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=jlbWJ6BnLAb8hDHnLKbkTUpBs5ZGORWEUsmmVGvPwio=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ5bBZL7qvPUPxHc5l36bc7PoE38NQ+LNbTd93dzz3z5U/ COa+1uok9GYhYGRi0FWTJHFp6Blasym5LAPO6bWwwxiZQKZwsDFKQAT+dbOwTDvvXShePai3szm 8pm7mTavnfN460VflvIMre8m58wz7/Wxtz569OCh5eK1Rk4bBB6eM1DZ96+jNySJL1mqtdd2V+P CJbyNFdxzTetKPltnq7IYWagF/jKJ2l3w5vBOkdc/jer+fnyr2rcjy/yYoYPDw7npS6O+HYz3P1 U4cQZjEE9Qar38PJ1LTiK1R6/+Wc6jOjFANlokpGbL2r5575bZrqyuLTGvUGQvYbIvfnX573HLF VyfN2l7i9jJTJurNWMNq4x5/MWPkj77ZoYF79LL+zfpT9axvbd38+TyLPRkY3FWTBW40cpZZi18 +7V74oJLLP/PGJYF9/YJlnupFf/TFCr883D6Lq+GOsZPAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfXzSGw2WXW8MAK ux6MdIJ249Vj8XY9PAjhDBzLrnxEGcy9Br0fs+rC1MVb+jI99dx9tPpo5gNmIGPn+qiNdeRppwc k3XMeTzKgCExbHF6e8OqBVNElzNgOeI+TzcuAYZrptua05s0hN5n2Cad6sozBuWFVoTCP38lWwj rXjKF1E7MUyu+u+3FnmZQYrRDKEVUjiQqtmtrvnhIXhBPtmV+3XpHl9g25S4h10CFIOzkYU+Kii qQ8SWMQsTcqT7I2utnBkbJNoeqzSvBJW56HfEQf3YTSfxEa3XTCqF+afj28zDL74LK6wjLhwcFg YDeX9RGvT7PgREYJXbysDrsPZ0/jKpabuZqwl+/E6Onl1P0IPm03N9DROW8gd4ulfSwAcz91BgK 20awvoZa3WHFSb2EDR54dqSSCUYKnoqyHhRO9dHKyv4Aanaphv+3MZU6N/yKxUR0Diwj+LFG9mn xP+QfO5rPn+p+SHpyyQ== X-Proofpoint-ORIG-GUID: -g3sqBp1wehgqAfug5tYnPRAz8Oxt_cx X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX+rWkg7Ixxzrr D337eJFmwgfnvK7H+xRoEBtel3t4RMMZj5D140fwoZ13ZBYKEP+NfyYvYX96LIHn5EBQ5QTreOU HnVDs8V2kTyCTV5h7nMS2//Hox04YPk= X-Authority-Analysis: v=2.4 cv=HttG3UTS c=1 sm=1 tr=0 ts=6a309326 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=2EYiHOum3YQmkHKk0wkA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-GUID: -g3sqBp1wehgqAfug5tYnPRAz8Oxt_cx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 suspectscore=0 clxscore=1015 impostorscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 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 Reviewed-by: Vishnu Reddy Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_vpu2.c | 1 + drivers/media/platform/qcom/iris/iris_vpu3x.c | 3 +++ drivers/media/platform/qcom/iris/iris_vpu4x.c | 1 + drivers/media/platform/qcom/iris/iris_vpu_common.c | 4 ++-- drivers/media/platform/qcom/iris/iris_vpu_common.h | 2 ++ 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_vpu2.c b/drivers/media/p= latform/qcom/iris/iris_vpu2.c index 2dc121a3f5e8..dd2eeae0d9eb 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_vpu2.c @@ -46,4 +46,5 @@ const struct vpu_ops iris_vpu2_ops =3D { .calc_freq =3D iris_vpu2_calc_freq, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu3x.c b/drivers/media/= platform/qcom/iris/iris_vpu3x.c index dc02ced1b931..c3b760730c98 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu3x.c @@ -262,6 +262,7 @@ const struct vpu_ops iris_vpu3_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; =20 const struct vpu_ops iris_vpu33_ops =3D { @@ -272,6 +273,7 @@ const struct vpu_ops iris_vpu33_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; =20 const struct vpu_ops iris_vpu35_ops =3D { @@ -283,4 +285,5 @@ const struct vpu_ops iris_vpu35_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu4x.c b/drivers/media/= platform/qcom/iris/iris_vpu4x.c index f608a297d4a3..90ccdc0d2a07 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu4x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu4x.c @@ -369,4 +369,5 @@ const struct vpu_ops iris_vpu4x_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu4x_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index a49113b0da23..375bcd923476 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -31,7 +31,7 @@ #define UC_REGION_ADDR (CPU_CS_BASE_OFFS + 0x64) #define UC_REGION_SIZE (CPU_CS_BASE_OFFS + 0x68) =20 -static void iris_vpu_interrupt_init(struct iris_core *core) +void iris_vpu_interrupt_init(struct iris_core *core) { u32 mask_val; =20 @@ -485,7 +485,7 @@ int iris_vpu_power_on(struct iris_core *core) =20 core->iris_platform_data->vpu_ops->set_preset_registers(core); =20 - iris_vpu_interrupt_init(core); + core->iris_platform_data->vpu_ops->interrupt_init(core); core->intr_status =3D 0; enable_irq(core->irq); =20 diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index 21ed4c9bd5e3..9151545065cd 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -23,6 +23,7 @@ struct vpu_ops { u64 (*calc_freq)(struct iris_inst *inst, size_t data_size); int (*set_hwmode)(struct iris_core *core); void (*set_preset_registers)(struct iris_core *core); + void (*interrupt_init)(struct iris_core *core); }; =20 int iris_vpu_boot_firmware(struct iris_core *core); @@ -44,5 +45,6 @@ void iris_vpu35_vpu4x_program_bootup_registers(struct iri= s_core *core); u64 iris_vpu3x_vpu4x_calculate_frequency(struct iris_inst *inst, size_t da= ta_size); =20 void iris_vpu_set_preset_registers(struct iris_core *core); +void iris_vpu_interrupt_init(struct iris_core *core); =20 #endif --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 D03DD15B998 for ; Tue, 16 Jun 2026 00:04:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568300; cv=none; b=DNwa0BDXtYHRgrmYXrFtlhc8sxnMvK9WqeZQAO3F42elPiYYCa4ivXNabSg6Gl6duWnhpzuLBamRpWebjc0X79cstN5ppWTRDYBQblyAkm0QNoKT3HfvzD4Bw/X3xj8kGGUxx9QGn979O24IAsbVTQwydtU8Bur1tChZKic2SlU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568300; c=relaxed/simple; bh=H5gjTCkahlz2x03Clh/PysKqV1bvgbU9MHDzqSGjKm0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XHXrMsji+ypyQX8CWONJN43WVVRDZOJkGVUHHorwfK6EZAXEnEIDAxtwMK9zkouIIv+XFvYORIYZ3DDLPgAbj8y8zci7ANHlOkvABMylQeObtX1Fr/NqiebKKI9bwj0HupkLCsHK/Da38reRn6q2wALaT6ip4dhmkxfhbdDVy68= 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=hqMt8xjQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Vj9Dthlt; 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="hqMt8xjQ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Vj9Dthlt" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65FIx0Nl883725 for ; Tue, 16 Jun 2026 00:04:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7GXhlm42Lq8jhZpNQbWDnVnjUliqMt9PAaqnfp5/6jw=; b=hqMt8xjQWmgHItyW hY3ukjeudWwLqasB2qaKs5dIOXaxuAotqLI9NWAIXDnPhBDB3vtKSu/lTIeMFqLZ EX1a8dRz4+xrEx9+tReBi71DMxIv/YZvIai/c2kYqEVIZmnqBBOFSjuohGdkr88Q 9jjRIZkSrM2Txj2ohPh8NNsn3rdy5NcSap2s7knszs+/TZ6Kv+ZsfBMftgY9jVYf BbaWGI/7o2XmN0Oztcdt9++ek9BVYjcWKXVfHeZzfKNu4PewyR2JEPXOt9cYBj7a edj4Vn3laEcj/m7TkCqvNeA6J+I1xUfr/43/7ANWNBh2SaRQLxsIZJR3jrygD9Dh IbRThA== Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4etfa73m3g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:04:58 +0000 (GMT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-8ced08f46b0so95751796d6.0 for ; Mon, 15 Jun 2026 17:04:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568297; x=1782173097; 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=Vj9DthltNP2NxgPMS/rhFDdRt9TLbvoTxgJ70swXgWUqnUhMGKAdHcnhl3+of5/24F ZDajpIymUk/7fcCC81c/1BSeY1uKFFP2mli2cQA1e82TbYMu0XwyOiAykTQkNik5uQ0D P8I8qTELWM46O7HUGZM/lOpn20KIC215X28StvnGKSTvx/9OonCkpU9Mvg8wfrJM616V YvAzuAwmPVVzCpFZ/a76sKOs1+Reea+W57J8WbOdZlPnomz+WrA9P2rd32c9OOWB8Mef MAZwbev7WbIRLZFCDiUvJnteOhSEKOHd7SPemzKu2qHB/5UfoGRReEeVLMXbaqO4MsT2 78WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568297; x=1782173097; 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=JU+dpF5LzLohoQcjNJASPF8Fvt8DMuca2w8FHysDsJBPrI9e2qp5NoSZNmpVVF5rDx eCRleyMaaiIW6m6C/fChF3XmxWBehlEf8y/GiyvhyIz+habYKU+/IQuP+X71/u/wSBrx w1o1rM2VgNIQsq5T4kWIFtm8RRmboyIEt/PDW/gCTjaeLQbG7jp5DN3P+tmWhGY8iV1K 0bi8DYwbUKm3RFWqVfBCn1EoZRBts615sACksP/SWBxXfLN0IEybJJ/WvznsjYEbEgRH J+H+XBnJyGImqh/D2/5k5ZBxL4w0303vMaL5+OGN4/BgefsXGa0KemwhGlr3Q+039b3Q 8uXQ== X-Forwarded-Encrypted: i=1; AFNElJ+JD1BXJNybKqKzCKt7gq8T91QS/75zg4DCaGDReEPNZ0bJMAcaauBOu72KtdfbcwdymRYyfE7hYd2k6x8=@vger.kernel.org X-Gm-Message-State: AOJu0YwKRRa0hZrb5eHPAETcNTWJex/wfMqr9kn3cPIzOYW7twt0Fd7t fWyFzk28choA0whb+ZBDOBZNd7mtd3idzVDTkypwsM7QiwPF6IY4/+GmEJ0t/t/4Tb21q2OFG5Q iaOVqo7+emzaGQrV/ywbWhxse6QlsxaDYiBRiQxrqe9lfHkhyS8aOrYuTh7KiMn9at60= X-Gm-Gg: Acq92OHlzr/6Id3HZDKgiNsBfE3rJSbyPDyq1VmhpUuxbK/op7VJJ3IdUA2+brBV4yV /9npfBypMTntSw9ZDF8+C0LAIBOhaTnGnKNWhaRpu9Tj/TJzCWQ2qqbpGuyzpMIE9mdsDNE/UrC Mhj8DIN+caTORIsOZ0OLhWPeCIpYyd6RsF6uaBJFMoRNzluyqwfYYDCRsnRP39Pc3mtj55QOLeC GurDV1zaFI3IDvqQyhyrQZYb3Wgna8n9u1CBirpeFmbbEN/F6m9YZBObticQzylsAwiRfqNPU/z 7A4jNDiapl902J/5qx5Mcj/36VJAY5jb7AYr1N94dZqclwew6ifBc9igRbGb84AMSPfVzoe1Oyf flzpGg7GokSvj7xEmwdnlQbKhm0/kqxmFGV+jmn4as2+NRohC9CH7sXmL6Nu2pKNI2P+ELXWxyB kff7nBn15m7oVrQoMM6Gpgb4GKPYmP9yXXwjI= X-Received: by 2002:a05:620a:7014:b0:90f:47f6:832f with SMTP id af79cd13be357-91c2f4b575fmr236453185a.33.1781568297215; Mon, 15 Jun 2026 17:04:57 -0700 (PDT) X-Received: by 2002:a05:620a:7014:b0:90f:47f6:832f with SMTP id af79cd13be357-91c2f4b575fmr236448285a.33.1781568296646; Mon, 15 Jun 2026 17:04:56 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5ad2e1a7092sm3015731e87.50.2026.06.15.17.04.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:04:55 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:32 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-5-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3064; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=1XoxNMQkIKQIwreQUtjXXBpaKx8sVaEKHYTsCNEF0Ak=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMOFCSBUjYKpeV5O62WLur1Lf+FhvaEbbPEC dCYVRVFkYSJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTDgAKCRCLPIo+Aiko 1f8kB/wP/NZcnkyFWquaYiZTWR/p4Bya2N1Xawcrr3joY5LORcCGVyOmcLwrn/TGb4paCCd+tbk VUtV7EegN2dNGpr9mYPH25+J4PEXLuPBp7x91SnWvxf91uvi4FuyLv+hfJnhcWBEBiFCNr8BXjQ O1uyOkWxZ7UdNZp3twRtJn0/Ar4uf3MwJJGwbxe5Gn/K3v2dfYinJLfaN6y5vH+n0/MR8pLEUKY O0irOhbexGQM/KySErNUqppkyo0EEHGrzGy9+sju+ffEtgEbGLsNlGId3Td1xWnJ9B/Q/xWBVJQ l3ja4KtTl5pYRts+L9AgCpzPr2/CTCBc6aa4BnzjfdP84CXs X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: ikwMfXNi3x70vKIjcslttepka2wR3_cc X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX47mVL/sl2UMl EbHqQddZkWEiU4S+GCtEbCkZMgOMWa7VGMr+VjNgCjio3hMnLSMQn8qPMcQTj67CQKSmQ53C+Ik dds8+FRWKlvYIqqagW7Rv3WC45C0myM= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX1Uk5RK/t9tAr 4OUC5ymXwoUA2rqzqIMUwYMlhO719ece/5/B4CsKOXAW/g7r5K2x5dmWk3RNjBZGwwszypb/EhG jgHDRW+MVdcbpT+ANdrk96q7/UVMaMxkb6zx5n1T69Q6ReCD97Okr+5Ubm2HuX79wblovVXdaHa jtX1xxsh4dAGQET9o2et0cu+hQEIy5U6eQg/dMheSMEFkTqCaNuj4s8EedIh+fmo3l6bjIqez+G t84DLuYUw3slsk+SUiX2B6fzcv0eYCduhCPJuG+uQXwZkJhYJo+qDeYmI5/xKAqq4jmilvavTl8 0NoBKkY9FJLknOHoL9o2trL/JR//JnthRG6SLPnULfrXmthX8Pjf+28zzKCneT19MbuNhSwsnHd ZWsk9spANADs4jz5t4SMPWbozwDxex1srO4UW96ZFXMzuppNHd+jCz1kDgh7h3uWzgYPoh3w6Fk evNKx2O2BpfFLaBeIkw== X-Proofpoint-GUID: ikwMfXNi3x70vKIjcslttepka2wR3_cc X-Authority-Analysis: v=2.4 cv=AN2yTM5Z c=1 sm=1 tr=0 ts=6a30932a cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=vdBeo_PM3xCM7oyOFJQA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 phishscore=0 adultscore=0 malwarescore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 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 19 01:39:54 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 3D58B13777E for ; Tue, 16 Jun 2026 00:05:03 +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=1781568306; cv=none; b=BDWzeG/7m8ZLr9c4llFm0BB/Wd4WU40aGVzZo/bmXIFhu127Jii06hin4gW5uImMVmg7cZMOtsbUUyEgB79YE+y7DyaeU8tFSLhUE59lEQ0XE0TosQJNv+xDVpndci+c5UKJyI6h5YraKCZL5d0EETgKjtxAMpS+pItixa96oZE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568306; c=relaxed/simple; bh=+Z5rBkgfi7IwcRuoWGZOUS606iHRju+ESdKBNL5RkTY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dUyYPykeodg2OhUaQDeN19Hk/iylB5V6BiSZX2qZYulpyMh0f9mcEh7BL87cb0ZKcaztXJMw9Bulp/2875i34n0zcFzi/+9AxgIfWGz5oOy3yK/pzxaw3f5CUsyVZ4qhtRbp9IXp7OgzYth+EVkyOQyVci8yLF1x6bKnq5Eft9k= 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=PvbfC8V4; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YWEYHvuR; 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="PvbfC8V4"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YWEYHvuR" 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 65FIxJkl781712 for ; Tue, 16 Jun 2026 00:05:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7dNNWLjoL73Wgtu4gxCh26z70OXEkNFEiHQmOGKik4I=; b=PvbfC8V41HYOmj2b 8dzeZmvMSxLgBHpkLIhKUwh8ud/KHQ5rPIVZAdSJpIjpBc6GTHJI+UTsM0V2b6gP uwd2wN3S7UnkUa8zETGE902okz0xeeUB6weSDKt7tb8CenMCDx/OGsttGKesMbSl HzgHV66g2f2I1jb9AQc+GpYbhTfWYeWjdCBjxJlSK8aPdPInVGDf9WVjfMRkMErz X3t4n+PfDNJWemdJoKADR9+m1U+PopSKX3EHPr2pCXe/i4R9Q6rvbFsyqToEWCxF EXYX78Bzc9K7ns2ufVw9t3psl/Zn9NkMH00b1BzghHo65EfD+2Wefx6S4iwnuz7Z KF8oyA== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4etetjuqh6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:02 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-915c8347cd5so801288885a.0 for ; Mon, 15 Jun 2026 17:05:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568301; x=1782173101; 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=7dNNWLjoL73Wgtu4gxCh26z70OXEkNFEiHQmOGKik4I=; b=YWEYHvuR1JAZjTKLS8+ZF4UOFPklejf85m9ZYmH2yENT/RSmu33ysxaCE/vBSyGQcW cC4EqLA+re/sO1QroRtGZxMjhHqaDScAgol5ZH+JjkvJGnxNDdKmh7duM6VTzDm6oHad PH7tSDN5bHufIvx3tqrLfsBOGoy5dQYZnQzpEcGsYmEyMqFwJeJC6pkNL9MCxmNcuK38 pHR9UsoFOZwQZM/vidUfRHUJKHiwWXY2y1NJXrz1Wr+IIiit6C1dBeYfVTnpmxt+E3g1 2opgmr5pdJ5xLs8ReGp0a1hvJeW4TSqHBlFzavCZOrKmYMceSCW8bCNcy4D74XIAgik0 /OdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568301; x=1782173101; 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=7dNNWLjoL73Wgtu4gxCh26z70OXEkNFEiHQmOGKik4I=; b=QaAXY5HvCJ/coxCWohEF+Pc6Rrxj4nwLHKsfdPr0ZyrU4iTd7/J0ue2lLoF0lfSUSs J0hUj5ZiQmlZfL61N1uYc0RKJnmC3waTufcA77xrSReblpgKtBWpKr6x9XcZA+kQi+HB tXiyzBQnlL2jr1zFZqt6yKdv+edBJ3k5a1X31TaQi1rpG/L1zxhoaqOVJ//aEP5BU7U4 +PGndf+2nwDOZzrwDZ3ZA0Jg7/OQipq2cy6+NK/xghk9CCv0mO06d6BVYrdb5wsYs5K0 T1ES/bIgOWcGlAGL25Sizbb0RxDtBNi2RLKO57a0iNfE4QBJuhUXNnZ+lslsbxTdYAdi mJeQ== X-Forwarded-Encrypted: i=1; AFNElJ8g8Y5+qt+kfWrpr60FHqey1gFJnr/E1OMBHLtsBBo+TjQh0IfOuu7sTr5Q3UkT9LlVlStfCLfabsU/92g=@vger.kernel.org X-Gm-Message-State: AOJu0YzeiKEHlY3Kvx+TZoWCxBuUVVbvlTqUUuhkW5IiJS+OAwgl+z0r 8eHJ7zw5Ef7MfwyTs8Hi17DaU0elr2gkBLf8uV1aaUsN8M0HgyawwjDM/XOiBvpi/dQyZ8MLXtp l4yfh9MK76+Pnfq/eZf5cvGeRVxW0wu1WomN9mTbINML/66zZnfHQ/JtbnAwTuM3hoC4= X-Gm-Gg: Acq92OH1X5biUYO+jAwYpO6zbctan3ws19/vZVC3QHbjJ2fs4hxGH+Y2qfERsxwMx5q a50MujORcnL3QmGIEi5NBhZCqg3pYBLerxwDVkYXwNpzEEoCdFgIdqHkS8y7E2fjzQ0A1wuQ+Ro oB2yd20ATAIjh0iNLHNvYManuHsxxF3NrcbtQ8Q+MERodQBKiNGN20DFoYXrocsvPnNIgM18c0f uJqCdHPbmKmtTLjfTpcoKAyQTK9n41TE7OtZIXQYUphiRyGys4wj4N3llx/Tp3w7M5AzEmjdFjD +2BPY5ylQVOTnG1KenMePutytGPLv3d+85I7H6yAOI5Ka3OS7hP/TT20hZgfVQl2yrJf9X9c4fD FK2dVyqeelVtd33XyxgHBfMVC0wX+AHauFxKkEcFX6842DfdjKBsmpEjwWiPRVxzt+/8A8vNiD0 uYjIwZjNwBGInU9iEwOcV/afFZS8pZKqjQLdo= X-Received: by 2002:a05:620a:2984:b0:915:8055:3f91 with SMTP id af79cd13be357-917f1f4bd4dmr1972933385a.43.1781568301534; Mon, 15 Jun 2026 17:05:01 -0700 (PDT) X-Received: by 2002:a05:620a:2984:b0:915:8055:3f91 with SMTP id af79cd13be357-917f1f4bd4dmr1972927385a.43.1781568300966; Mon, 15 Jun 2026 17:05:00 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5ad2e1a7092sm3015731e87.50.2026.06.15.17.04.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:04:58 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:33 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-6-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6946; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=AJFs3OudyuZVurF6CXPv4L/hKHLI2q1ug8aHEJrRBk4=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMOtFFKn3Gk8q3r1GPmozoFOIWr7mSKtbmNS Jlxjkpt71CJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTDgAKCRCLPIo+Aiko 1RMYB/4ifAOK6LvptRsRn0YV0KuNuvYytHJ/Oq3Jh2aBS/RVs2Cb0DWqnmnWytzvYTakL7UvICQ a69ho8YoudM0PI6X2muzHU9J1Gq9L+3J5QVXNbZ4BoUbJ3Y47h459v81um5MDQB6H+6o6jw7Zw9 v08a1h/GFzmxOPkGg0sHXCh+RJ6yRFuDdSIm8LY9n/hZXX23C02nAKMZ3bM1l75g/2SLqLMN9G1 yqnU5h3SpwR05XpGHgQqxavFiS/ZVJerf9Tm55DznaQgj4Ey/Q2fZNshMWzZiTsPYqw/FjMhzXj aF3C8equN+008+VD3b0IJ+TyP14w1IPLCHx6ZvrGJyyNyr2h X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX1X+HAksKyuuL mmRFx8iUQJrUFHfiFPorxYSS6RyqtoDcMtTkHIh3FngJ71ch1lpYOoghw0Oys9IMWFKGSO6eC2K 1wBqTC5ecdXp8Fn0CZ7v6LW/5iHeIvn3R29Uggr1cPCrkXQgQGC/DdWZE2okpCryBLQPOEqv9Pd dtWFCtBw6yspnQFiCCnq21n1ksHpYYOXwD/nPP7rL82BeAYI1oxRzrEsJmee1G1358QhXk/qKBz gMHX+RbSoAzvPDuUHZ69XLYm3LY2LLFyZZbGLrbywO9EHwzlxI3lBqZ/fXAK1c5e/0Ru/dUY1yS /k3/HiRPjMkMe3hcjFDRkvGTBhoOazN9++vK3/uodMOpME7nkhH/7hOHAJ31+XrZrsVOL5nTzuR SVFu9yF42gQgGlIbnCMDFostyRHr6nheMbJvYyWI3YFdylr6EfpuyZbgiIQaSZLwdQXRFHKO4MW rZWXCvWFg6NNvWYgJsw== X-Proofpoint-ORIG-GUID: NIVWSb4IHL72YC5fOjNJC1KktogWvmv0 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfXxTWABCFMIc/j 6KuTPhSJ4ppJ59zG/3wwEAxpCfN87vLtJC6uLH+CbgpgpqgV23gZcWRcCVVpdOHPwSQW3kZ9Dn8 /3qKahOzjSyc3r/2p9zG7KtvivO7+ig= X-Authority-Analysis: v=2.4 cv=HttG3UTS c=1 sm=1 tr=0 ts=6a30932e cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=6vpm4igQ2ooD_hm6sYAA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-GUID: NIVWSb4IHL72YC5fOjNJC1KktogWvmv0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 suspectscore=0 clxscore=1015 impostorscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 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 Reviewed-by: Vishnu Reddy 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 | 4 ++++ drivers/media/platform/qcom/iris/iris_platform_vpu3x.c | 7 +++++++ drivers/media/platform/qcom/iris/iris_vpu_common.c | 8 +++++--- drivers/media/platform/qcom/iris/iris_vpu_register_defines.h | 1 - 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 55a4fa356985..81fcb2854772 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -315,6 +315,7 @@ struct iris_platform_data { u32 tz_cp_config_data_size; u32 num_vpp_pipe; bool no_aon; + u32 wd_intr_mask; u32 max_session_count; /* max number of macroblocks per frame supported */ u32 max_core_mbpf; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c b/driver= s/media/platform/qcom/iris/iris_platform_vpu2.c index 961dce2e6aa9..eeef453c583f 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu2.c @@ -16,6 +16,8 @@ #include "iris_platform_sc7280.h" #include "iris_platform_sm8250.h" =20 +#define WRAPPER_INTR_STATUS_A2HWD_BMSK BIT(3) + static const struct iris_firmware_desc iris_vpu20_p1_gen1_desc =3D { .firmware_data =3D &iris_hfi_gen1_data, .get_vpu_buffer_size =3D iris_vpu_buf_size, @@ -94,6 +96,7 @@ const struct iris_platform_data sc7280_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu2), .num_vpp_pipe =3D 1, .no_aon =3D true, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D 4096 * 2176 / 256 * 2 + 1920 * 1088 / 256, /* max spec for SC7280 is 4096x2176@60fps */ @@ -124,6 +127,7 @@ const struct iris_platform_data sm8250_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu2, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu2), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c b/drive= rs/media/platform/qcom/iris/iris_platform_vpu3x.c index 74626b35d9cb..6cde94d86408 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c @@ -18,6 +18,8 @@ #include "iris_platform_sm8750.h" #include "iris_platform_x1p42100.h" =20 +#define WRAPPER_INTR_STATUS_A2HWD_BMSK BIT(3) + static const struct iris_firmware_desc iris_vpu30_p4_s6_gen2_desc =3D { .firmware_data =3D &iris_hfi_gen2_data, .get_vpu_buffer_size =3D iris_vpu_buf_size, @@ -113,6 +115,7 @@ const struct iris_platform_data qcs8300_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 2, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D ((4096 * 2176) / 256) * 4, .max_core_mbps =3D (((3840 * 2176) / 256) * 120), @@ -142,6 +145,7 @@ const struct iris_platform_data sm8550_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -179,6 +183,7 @@ const struct iris_platform_data sm8650_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -208,6 +213,7 @@ const struct iris_platform_data sm8750_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -243,6 +249,7 @@ const struct iris_platform_data x1p42100_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 1, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index 375bcd923476..41498f94480e 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -109,11 +109,11 @@ void iris_vpu_raise_interrupt(struct iris_core *core) =20 void iris_vpu_clear_interrupt(struct iris_core *core) { + u32 wd_intr_mask =3D core->iris_platform_data->wd_intr_mask; u32 intr_status, mask; =20 intr_status =3D readl(core->reg_base + WRAPPER_INTR_STATUS); - mask =3D (WRAPPER_INTR_STATUS_A2H_BMSK | - WRAPPER_INTR_STATUS_A2HWD_BMSK | + mask =3D (WRAPPER_INTR_STATUS_A2H_BMSK | wd_intr_mask | CTRL_INIT_IDLE_MSG_BMSK); =20 if (intr_status & mask) @@ -124,7 +124,9 @@ void iris_vpu_clear_interrupt(struct iris_core *core) =20 int iris_vpu_watchdog(struct iris_core *core, u32 intr_status) { - if (intr_status & WRAPPER_INTR_STATUS_A2HWD_BMSK) { + u32 wd_intr_mask =3D core->iris_platform_data->wd_intr_mask; + + if (intr_status & wd_intr_mask) { dev_err(core->dev, "received watchdog interrupt\n"); return -ETIME; } diff --git a/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h b= /drivers/media/platform/qcom/iris/iris_vpu_register_defines.h index 72168b9ffa73..4fffa094c52f 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h @@ -41,7 +41,6 @@ #define MSK_CORE_POWER_ON BIT(1) =20 #define WRAPPER_INTR_STATUS (WRAPPER_BASE_OFFS + 0x0C) -#define WRAPPER_INTR_STATUS_A2HWD_BMSK BIT(3) #define WRAPPER_INTR_STATUS_A2H_BMSK BIT(2) =20 #define WRAPPER_INTR_MASK (WRAPPER_BASE_OFFS + 0x10) --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 45BC9175A5 for ; Tue, 16 Jun 2026 00:05:08 +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=1781568309; cv=none; b=OG93tpHXR9zJBcpxA31txQV7YSFfMMr/lLUiirP1f0XGqg1Efu1+RnxfaPpW4Pwnfo7uehyMhnp+CFsefvgv2GJ0CYPxESVDus4A6DSlNCWVPoaKtO0hF9v5b3BJAf6uh73b7j5jMhFshOcTWNjoYhzwJ5cTs+v8dQAG/T3r3os= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568309; c=relaxed/simple; bh=mCQIn5vpu80BJVHa96rLCLr73oxORhR3/iJH4OsVEgw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FgZgLwYL8786ZDj5JoFNbo5rafZze60FOmgcYENVYTB8Qaq1UKzs5jUqMs+oMbfb3xAi7zuEH4qlF8htKy0oyylMAUgGPF+Y0vPaGyCNf3fC7BnC5sQMp8YzoAAzX2UY4uuZ/2J6yQaPYH2jtt/gWudnv+vxScCpXcEvOO9uVkc= 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=kVVHKKIB; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KfbyqMLA; 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="kVVHKKIB"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KfbyqMLA" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65FIxZmA3579093 for ; Tue, 16 Jun 2026 00:05:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= L9Vw5jDigYiQesIzmMLfKp1iVpSNlFZ/ib37vSw5XRE=; b=kVVHKKIBlqRiqOI6 RYRM6WOdsRb/1ZKIMm1dV5AvVm+pqXOSQFbvQbzijXLeNDYw23Ce5Z876HJRCZGQ 19J8c6Ba/A5kwUrL7vE6234Q2rDExxsQbaDgzqnd7SEKIlN4i2mUqA/snG83ZdEx bvWNLV3R0ghn24F3O0jYNtvF19notebyDJhrRQk/BGVjsnAtRpm78zXqQvtuABrR MjcIMEFLWBtiaUyGrva2/m0pBzUWAE2lvZjL5GmIlCHrIr6Pv6GJt6KkQ0SdGfmA pQwE6QrrN1HKBv9bsS/vUxHZeyzRjwGBh7e6z35JR0zjzXyAPqHb9T9E6exiGicf 5xrdVg== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ete983tj6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:07 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-91565f8c589so691795185a.0 for ; Mon, 15 Jun 2026 17:05:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568306; x=1782173106; 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=L9Vw5jDigYiQesIzmMLfKp1iVpSNlFZ/ib37vSw5XRE=; b=KfbyqMLA4mBlBWqsJ/z2l7FedVit6ZLQBUrs1YfWkq73zXbA9L7OMPkSUkvFJg70Dz yVWzTiGHJzkfyWI8ETylmSxJYVXp98SpgC/FN3QxP7ExpNECLnI//xfFgSjsfNaumab5 VS7GegkKLnfmoGlp2A85X0cTpCsg78Uc6HmR/ZmKeEc+dlxo7nZDvRXFvwIJ54oA1Pzh o3PjO2c8QgAZRFm4h62ZWriceXtmyf/+if9of3bPK3vZXAGlbpNMRlHSmtyzHoimGGD2 LEcRUore8tSV0O6/6lui94YTDVRP1u3nXwUs6O6uDfqf9nfPgPSkok7g0hhkR8jVIN8S 7DNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568306; x=1782173106; 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=L9Vw5jDigYiQesIzmMLfKp1iVpSNlFZ/ib37vSw5XRE=; b=DG/7+NFs3dA42QVSpSC7FRS3V+a4lGn0KdXqB5Bo3f9R2tJ6DB9amOkg5selk/pO64 bwN+4kVxZJ1e1vgtN9byFsgVKrA9l3CxkM2tAB/k7d0jKUqCBn/ftuHyOvmDfF+buYXz mBk3WGQOYba5deUmEIetq0BlOk+h8UCtYJMSc+j7CAZCDC+5oqY7d5zCW5tQgg9jSmZR R7FwUfpsDinfRH25yDD8P8r+teJvNsriQtUc+1Ozl22J3pwU8JgLqkD3QKLBEP1HRAjL 14UPwSAcr/wZphcZ0MKw0Pp4RAs/PSqLKuVHwFnkUj4ORaOVT7tLfUGhuFETkTguTWVv 38lw== X-Forwarded-Encrypted: i=1; AFNElJ9njGN0OPR33em4MV7TKFrpwE4EIYQIH6c67+xuSM4d/col1JdpKJS7EMjqqt6Lr65zVXAd93YR4k8ilpk=@vger.kernel.org X-Gm-Message-State: AOJu0YwA78UO/kMMNxLFYFdnEAJNZCIomvER42u+eUl5j8ZVnpSkS+Jz aDO8w/GYZJ6xUZJH3Q4P3EaUUA35JF6QJ2uFsBnVkqI6ViJ/Dan+5KohRqqiRdY/tj405Xdd7gY jg+LwwQ6qImhI/hllJeZRVa00dj+w1fGrJLCBCrndQERZ8gqaOJjvdSXtS7OjJfPkZa8= X-Gm-Gg: Acq92OEnIlggQOa3pBjsAtRUtOneN54oYpUkyoHazDCbVPi924AsZ4wx0vkyhXatuq3 NLMCBGiWWYcingitfbEsphrfMeS/fqEtPhLf84Mqr5sObtKSWu+orSdaikI9TWewzdDVarWi/GC E9kAom5IeXX4MQQUxoP5xEz8ylOWXJ+SR/W1vFfYFWfLBWWbtJfvQzQek0YcqgHHgHjG4F2D1PF m4nPJqTMgEvS05DDNHrx1Hw/Fj2j8L2leip5q05BgIHy2hz2f2SpIHGcKoz8p+9yLmUMsakfW0p NUsWGQebVmDrL6fInAdmfXucN6mXIas7d3NYLQQzwKzJ6bLUHB37EijsB7OZqRlqrjc+kd+0rpF 4IfLzBVX5VNOHCYJXDkiFyq4qqR2raQrHwgm+fooQKKAdDh7XhQNvrALI9qV1jLtaMAMYVB8NSv Yuo30/KZmNDfOWcgQPylqdyPNCmCpVT2o9jgY= X-Received: by 2002:a05:620a:3713:b0:914:bfca:7d12 with SMTP id af79cd13be357-91c2c4d3767mr244245685a.5.1781568306489; Mon, 15 Jun 2026 17:05:06 -0700 (PDT) X-Received: by 2002:a05:620a:3713:b0:914:bfca:7d12 with SMTP id af79cd13be357-91c2c4d3767mr244241185a.5.1781568306028; Mon, 15 Jun 2026 17:05:06 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:02 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:34 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-7-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5396; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=IXfRr4SN9wgRvhhg/OBkArNivfd6O7byWgxU1yn0ucU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMPmA83bxVL6wf8y1MoufXvyjnlRae/r4G2R eFpzI3NoY2JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTDwAKCRCLPIo+Aiko 1ZPLB/4iBMSCAfzR3DtxcOgwupMevTdGwco5tBcyuCwNLpwaDxjladnmDoOdPzLlXK5auWCU6M1 Nw0+NYurohaeytfvLcuDN8Zx0AqYC1gsAEh/ZyD6o+ehLAkkr6kov3Uri+1CbBsLR8V/kx126v/ pR25PIrt2EmL73evysQLnkBKbD+wCeDnhGIsuVaO2+6DSlj0ap7CNQKEMTPK3ALrZryoWgxEltk ndGZteuCpw8fWrWRWyI0DyqvcetPq7rarKuQxy3IFEwGId4KVJrjOKcwLJ8jLdJUU2EmQ8aNJa8 ip4iL72A0UntcZ9CT46r7emH05MTx6NsP5akSSy/L2Cb6h5a X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=V5tNF+ni c=1 sm=1 tr=0 ts=6a309333 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=jsq_lj1EPjN6R-bUmboA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-GUID: nm23f3mXnj2g5EpCXtMsmhXue8HVbJry X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX4ZBVyn24DbVC HWIGguz5EmkOfsQMvzIu0Tfoz3En1++wkgh6ylfWr1Ga2vjRJLK2hAqvFe3Co0WH/N8rbxu4KS8 AGDEvyT2RTZPx/0MaI+cnu7nBsr+Xqc= X-Proofpoint-ORIG-GUID: nm23f3mXnj2g5EpCXtMsmhXue8HVbJry X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX/kRdYDdJP7ld aMHO18+dCl0Gf6PKjhwEqt84oZaerXhq2OeaHRkzj7PsNzu4RGRmoUKgfm4WiEHUuEVG9AMHBQw hfbjbvml49PGte3GdIGPLX5gWIqcE1LkDQr9Z27jnFfkFVp099wVrrqhY3MBu0UILS3ulGtfX26 UPB63PFNIk9GtBqlsLf1A4MyOPvOXimzURN7umx+QscpRvokyTUu/jdnkao87FUnTBvRtwdxLR9 L6Bh3VydivfX3x9xIbigT3dOCyE1gGMMbq1/Jg89V6YhtY04lao2CYq83a6pl9DZD1WcyXeYUi9 Cj75qiuhsfr7/eE6urahROm5lJ2x6rwMo25pjQKASXZowzR4/pHEfpfkha2aiC8TP20dBgeV205 X6CCjifkHYOCHce1EzY+AK3DRucn3ckiy7B2gGt2qEt/WShT7J2AC1wfuZ3Q1Y0csqYinvKWdqM BICvhrh9OTow6muHdgg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 phishscore=0 malwarescore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 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 Reviewed-by: Vishnu Reddy 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 | 5 +++++ drivers/media/platform/qcom/iris/iris_resources.c | 2 ++ 4 files changed, 10 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 81fcb2854772..accc1627defd 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -316,6 +316,7 @@ struct iris_platform_data { u32 num_vpp_pipe; bool no_aon; u32 wd_intr_mask; + u32 icc_ib_multiplier; u32 max_session_count; /* max number of macroblocks per frame supported */ u32 max_core_mbpf; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c b/driver= s/media/platform/qcom/iris/iris_platform_vpu2.c index eeef453c583f..e2fddc29abc7 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu2.c @@ -97,6 +97,7 @@ const struct iris_platform_data sc7280_data =3D { .num_vpp_pipe =3D 1, .no_aon =3D true, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D 4096 * 2176 / 256 * 2 + 1920 * 1088 / 256, /* max spec for SC7280 is 4096x2176@60fps */ @@ -128,6 +129,7 @@ const struct iris_platform_data sm8250_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu2), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c b/drive= rs/media/platform/qcom/iris/iris_platform_vpu3x.c index 6cde94d86408..73bc80a6de50 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c @@ -116,6 +116,7 @@ const struct iris_platform_data qcs8300_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 2, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D ((4096 * 2176) / 256) * 4, .max_core_mbps =3D (((3840 * 2176) / 256) * 120), @@ -146,6 +147,7 @@ const struct iris_platform_data sm8550_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -184,6 +186,7 @@ const struct iris_platform_data sm8650_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -214,6 +217,7 @@ const struct iris_platform_data sm8750_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -250,6 +254,7 @@ const struct iris_platform_data x1p42100_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 1, .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 19 01:39:54 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 3FA044502A for ; Tue, 16 Jun 2026 00:05:13 +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=1781568314; cv=none; b=Pxo9Z9oUiVzZ9288QG/AKdfXcAm85K5N4CC1HM1jJhVaqmEWZSwLxJcRcp9qE4Y7OWMrBgXvIokqzNtCrGI+cT/mXE2xbLTsmeRESEuDlg2ggJ3UL0+naTn4lJVZnCyPWi33kHoLvmIuS7qcdd08Sxc/CqO5IRizXYNCN7/gT+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568314; c=relaxed/simple; bh=sUPB9VJRkRZ4see9KcmUKrC+0hNnHbRSIZoFexQREuo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cOELEfP9OOXdfxyXql7wo5IIbR+pL0mcxubPY6hUyQ3zNR2ZZLZEVxxPaNjjMTNhAeLQ0+qieYZW1nMhDBImfKJJPHfvRPyabJQrx6IpR+8m0HpEmBWSX3w+tCj3JGgoUXhKvHk+8IUgh36KclPB940kH63w1LoqpYckTK2/fQw= 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=CjdZlHKz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Qnr+xUG+; 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="CjdZlHKz"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Qnr+xUG+" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65FIxJwW844448 for ; Tue, 16 Jun 2026 00:05:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= U0gyuvkccvtpcfH79fJjPBeyRgK2qdZ/uoYlWvMd7TM=; b=CjdZlHKzuveyjQw7 YwsNi27RzrJQA4UsbEj8mVq3pVbDXcfgSPCw9J3QrP5wDjPEHSsXAeUZBFCBKRlW uFmAaN7tDru6HwT1uEW1CDfWtvbeOutLlPanmBuuzzIkuVVOQeqpot4aTxKH+fpe YERg3RrnlnT0dfSHIkSgyD840WnmqRhGmTqw2dF6awOuT476SyZ4Lt+juHsPiUip X0v46uda2dZ+oB+jKDmazCcjrvNvT6zVJyEd0JbSavV5P+ZJYDddiuqzc2InmyXJ wqdHMn8ylN3iHFhFIGUsVwqyMK5OeYq/ivYklFJxnQHecGEkNpdJ7RAwjo1VSbDV Ebz9Xw== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eter03mqy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:12 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-9159c4b210aso640366385a.1 for ; Mon, 15 Jun 2026 17:05:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568312; x=1782173112; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=U0gyuvkccvtpcfH79fJjPBeyRgK2qdZ/uoYlWvMd7TM=; b=Qnr+xUG++kmSAYXelfilaC/iUXWZp3UgPvORvAVKBxRgJV3ZXAl1lorxkD9LxyLfdT 7W60TycvDLb5hcm+gGIDdUb/5VfnMgi0upv0M2dKHNFB9DUpAebpsWsuICGzdTa+4JGJ RosphjAepouLXOEcZuVrqqU/LjjEq7Q1ioIL8pvkslBKK7i7He5osc0DL+7NT4TyVOGy cGA2Gnmxt8Oa3y8i1MOcylzprJ/21ulj/IfCAVOyg4a/w/SuNwvry2B47rHhopsa5p7B MabMc+rxS/E1urgeFQmSr+7DOU8Nbh3WYZF4ydbW0cAJgogVT3rkeEEaXrDC6BE1o+Zw JDUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568312; x=1782173112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=U0gyuvkccvtpcfH79fJjPBeyRgK2qdZ/uoYlWvMd7TM=; b=IGo/BqgyBAEPdVkGPnPuk67PRXV3Y6ABYNFllZpesSKanjcqVPVpf7+1q+9cajQ6eN WTVJa2XNv7tiiIpJO5YF6QkcYo5fdb8zY93dOWKfBYePEktCaETgn0w05D7LCSR8PKea GlKTyYK1fLQV4brMC9yUXvqkT6/EdptajJ/X5rRCcMdz4NRiJri66ZaFtueLokviGSc5 /gDM0cZlgp8p2aaxQB/zB+VTWRfuRsVBPiAmoNCXLQsyPzdBMK7u+ex2CIcepQWakJv3 +K3Ej42FBnB2UqqWPeMphw71lZ6MtCH4s8GhEWkd5NWha/TFEUM31OpyDOu50A/LEe+M HBVQ== X-Forwarded-Encrypted: i=1; AFNElJ+GjIOAlLVMI7o91sGN41hbio27bCDlW2PeCyJRyyFnF1MhzJt3qMY+BLq/lFCe4JhhTs2VJNgu1K9pafg=@vger.kernel.org X-Gm-Message-State: AOJu0YzTTVYWl3x3q4br1wfPxRrg0CaaA8TrhSueG0Q58bd181TSlz0u BbwOamzjeHbCjfxzlT0OHKceeqb5IUjbFOewJQAAp0RM1tVloO6YprrgZ6Nsz3zk+3h1wSu5ulq P4ONtXsjanpPeUBQjlBmg9lqkp3U5G85Hl5Q+PbfnVvXFkq9Kzm8e2qtY65BacJYtujA= X-Gm-Gg: Acq92OHoe8a7+BTQt8Yqk641xy8XEeoCvM+hNByIrYBHYn2C78ZJa8vvJ1R5Rw77POm 2fpzEocsfZ4wu9ymaZG996LFSV+vwZD8OQgMXmTB9/oClGeBJYs/U0CHZBWnwp+adeSko8crkfi +iDPUh90aImbYivxgLCDEvc/rKa48ANjuIP7bmNbKtP0q2fMVv5MTy3iwlPRSUg2KeUaQ9yxeYC I9MN6CMo70ZQMIX3f2I82XDMg5SPxiewsjmDQUHj8iigCBOejjK1QuTvKoMfXrtwICH9kOwFC7f UZ8SeNsFQK9EAa+WbcxCTNc5C7Fv5r2XPMokUgxSIFBNdDzlXO/w4fD6Esg36N+M/rLVFvFWnnB 4Q3csw2h7Dzdb10wf+jIx+T1dE4gMZ1X4x9tegFoZXc0Pn7PIRNw4OFRmbQcT4ec75f1YJfAzAE P799ylbTidczlqReGL5EBQwssU4PH1Pbx76iI= X-Received: by 2002:a05:620a:4542:b0:915:ab5d:6763 with SMTP id af79cd13be357-91c2fe7f3f0mr239109685a.43.1781568311690; Mon, 15 Jun 2026 17:05:11 -0700 (PDT) X-Received: by 2002:a05:620a:4542:b0:915:ab5d:6763 with SMTP id af79cd13be357-91c2fe7f3f0mr239104985a.43.1781568311253; Mon, 15 Jun 2026 17:05:11 -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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:08 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:35 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-8-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1159; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=sUPB9VJRkRZ4see9KcmUKrC+0hNnHbRSIZoFexQREuo=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMPIuHDGDZAVSivYyEtXG2etJ47LOrQXsXzx AZctKuIPbCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTDwAKCRCLPIo+Aiko 1YQkB/0VGV4PJPIn/d60fP9t7WHD5ubQ7btS3FVmtwmzuj7EJumcknjG1dBkfSGvazVI0iK3Ix5 rPINo5Ugw14owrtvPsFmX5eyepWLwCMvu2Rrh/3d3W2UjFYTflSXHRqlvscAgVrGwu9VgazquGk V/lNmn6KigDeIYrOICLL63KYK53rEQbow48A8p6GVBwGL6jCkDXLVkY+0jrSQT7rJ0uG4/qniPT XfFaVhkL/1zuGdW6uc+OphKbBLRNVTTlra8oUFcg+gURp10804kJZnoTEMWDsYtT2O30mHVpmuw bnU/dW18pZIULbaW/J5hTrWfMFxs0ulbeydiFgDc5YHyeFYM X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: JNuaEOFIUHo_IvRoyCzDRisci9X5qyqL X-Proofpoint-GUID: JNuaEOFIUHo_IvRoyCzDRisci9X5qyqL X-Authority-Analysis: v=2.4 cv=UPzt2ify c=1 sm=1 tr=0 ts=6a309338 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=9TuWGWrZIemhly9L:21 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=DRvvl89rPFtLv9ObwM0A:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX3qK3WJPhJhIL +XsPekWXBVv/Ei+QbC6pJJoYuSsi85lbZ6f9j7TdEGdLzI26IW3Vh2fZHjGp3e30iX1r1M5q5I7 AdK7fnBtv0EImFgA5VsHSflnuT0NqCq6miVgKYei8Ek71zPlavSfGO1eMWuLF+e3Uy3fyGZ+g7h 5HbnfNCosd3P0zIK0FJRds1b7VDqRSX8af9D6Y/7FOB8FJ1ZRB2wG0+DlWUCIMdo2ge1rISqD4g eXLOjPJBMI22RCdpjBtmXXjtNkd72xkHLGAIU905gtugzCb1PGQuJPPiemFmYRSe72sEgj8FUv+ 4yyEtqAzftwF9GHwUoOmeKCb2saO5pODoSJWEfe1/el541DqSY943IX8AKYpxSqaUn0lAIpsBz4 MWTpz1DmbmeQTClX1E8Cxz8GJ1Mj5Pb4W3LsuGXTbw28YY9kIGw3RSb1gM0dGvryefiqyzFbjVt yhHrVF0aU6sxHN4YpJQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX2eetcz8ACVO4 L5kt0838LylemYqvxqW9BQagflqaRrtTmfsi1IaVo8hHn1AuIr85KWwP+vUidgqC1mUwzsQnFEH XZGVbpR2lX1Z0bIe8uwn7cNTZKL3X1M= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 AR50Lt doesn't support HFI_PROPERTY_PARAM_WORK_ROUTE. Tables for AR50LT won't have corresponding entry in the capability tables. Let iris_set_pipe() silently skip propgramming the property if there is no corresponding capability. Reviewed-by: Vishnu Reddy Reviewed-by: Vikash Garodia Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_ctrls.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_ctrls.c b/drivers/media/= platform/qcom/iris/iris_ctrls.c index 10e33b8a73f6..33a34573391a 100644 --- a/drivers/media/platform/qcom/iris/iris_ctrls.c +++ b/drivers/media/platform/qcom/iris/iris_ctrls.c @@ -534,6 +534,9 @@ int iris_set_pipe(struct iris_inst *inst, enum platform= _inst_fw_cap_type cap_id) u32 work_route =3D inst->fw_caps[PIPE].value; u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; =20 + if (!hfi_id) + return 0; + return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, iris_get_port_info(inst, cap_id), --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 84FC614F70 for ; Tue, 16 Jun 2026 00:05: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=1781568321; cv=none; b=kP2y4YWLZtziE9wAbyxpfZBZiaBQ6QmzWTxgTAG9senWYXda1Lercu4eab03SguZIVx6XlhpyIyQ3nMx481IRLuyekvmdAefZJdUMZqpwtuKmRtIMuy+smuumFK1JQoQmUwP3EIgBnKtSEGEFPKRgv45UDvUbLBDWmhLpATgLws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568321; c=relaxed/simple; bh=UNUL9Mr0l2L8Lqs+wHPrdAEPNY6fCsW9k5nh51lE3yE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=J0kL+7/tbhLZwAlK3pslsygaMAFuQJGJ6YmWhDox3RGTFqaQsxF6y5tM8ms0LabMAoJPe3VMds73Bjk4h7maWYMxb2XitD2Xpu2P3W0LkPn4OyxrNNsZYLSJRkDh20KBYiTe9JVzdtyVQf7ZeM9rEEJ8I8UuK0oE/RYxAWnGHPM= 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=lTBPwv++; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ADNHFssm; 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="lTBPwv++"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ADNHFssm" 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 65FIxIg7781703 for ; Tue, 16 Jun 2026 00:05:18 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= 6VtT1Xc7mzYmEVXSOrS2xHmSXZj1i0soFFiiNBvav0A=; b=lTBPwv++UFa1gKuH ssp8Mna1dLZKluuNnSUzFzJgT6okZSSdfELUxR+YKdEJClRUCa0qPQDw2TCTtzj7 UusktLjPdwkZg+AsWfQEuw45CdjLxIDyL8fqtaKtIOD6Yr96q/tt8f7x6mZe1X5E lBC0hpwidZkT5pHQUHZI/S/pdRmsMrmSGWPXLV9+6NAhIN60TA5lxrSlomhHdPSv FeLE7XFh0o2czyfK1MapMNR7OKfneLyoPfYqf/pyRLA+AuLchHubJ+xGeZTN7Lsg Rt7uiip5WtBkc3X5ZVyzt4wO+VQU3hkrbz3hMchbXHxs/MHJbvIv8wqnFW5R29ni +V7Lxg== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4etetjuqju-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:17 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-915c1997732so844217785a.3 for ; Mon, 15 Jun 2026 17:05:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568317; x=1782173117; 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=6VtT1Xc7mzYmEVXSOrS2xHmSXZj1i0soFFiiNBvav0A=; b=ADNHFssme9aS+KiMd2FSRNDe8WPu9Al7O8nehVT1mxO2FOdVS6OuNgz6DizAvFc9Mt B5LbcwLk90yvvwqSb+6C3BPMuVsIjA8nVHUSD6KvWAcRPqbPLhEWPLQw+Jr5mV4NZgFv +ZI+gfDaQCf0PeXhv1JS1NVHmzBNBKRxDXOthipWYB0VksH2nMXfvDELUdc5UNp9CDPN GLb2IkCYpbEo4V08h9UHWif/u2EZcTuwLGrKSHq9+2K291g614psGfP5349HPukOpEup vNFbWfHqZfnUScJfEFSDUy7HY01h+BVlXBfbPBlk2DJZjFt9N1ymoLnzZZZqJPCGEiJ1 eDBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568317; x=1782173117; 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=6VtT1Xc7mzYmEVXSOrS2xHmSXZj1i0soFFiiNBvav0A=; b=NLlMIk5i/AoPair6zG5UVRbIqETRG78KwxojMF5wbEkr1YVK9U+cVhxmngv3kDImnk lzbylBNN41EeOQJQZZ9LkNRo3dZU0T0iMKKopY39JLdXVuZeSFy9a2JgK85qChmQP6p1 5K7PRYulvR69DoBl9cCUWxEqYM1bnZX9XqhYTiUBHSPCWgeUvxbafh2sxi7izX8pr9zr HDykD+6AcZ6SuAUWWH8S3AdOZ9lH2I7jCWxIplzf2sX1v5m4ZddNxulE7tN7BISOU1hG HGjs3sTBL3fCLMou40jRBR7yU3CDq33v2Ehalev2PbIs46xXuiYJ3iKsBawhR907Ak0T vbfQ== X-Forwarded-Encrypted: i=1; AFNElJ9zYcMS+mQxLdL5+sDwz4T2yavQ44cEXutWY+p394tKE3XNOdX1ah8zfJR54MEy/MW8xXdeIj00ieImL0A=@vger.kernel.org X-Gm-Message-State: AOJu0YxJdE2h+OLYF9qrv6J9VSYQ7hfZScgcWQDE0DMWsW6RrrE1p7Lu VeDnoniKmAMmtnorRjnNpFctVBPQ/Hr/13lJXgONw21He87I6EULTUhwmo3Nmm6TwjjGxaDemVx 5QI2vcZbNP0rIdYK0pnSgY6OHR8KEk2jZ9QKyqD7txEWKKFNPOC93/I6WZnE+kqHd0BU= X-Gm-Gg: Acq92OHQ7RDll1CyVIb1QVRq581w9qJ/P+AcQYxsQ3UJhlq6pTs88HILPlSNfRhXLmv ESzKednmzXNbT1k09Wvh52xLdis25T3VvRYRrhOZ2id9N+560yDC7fkDNrNfmSgOSuxbFI344LH Ju09MbzmTjBOX+iNygMPIq1vH6AVbNM75YCHHH5/4/MIzQt8Q7xCaCM5Jf45ohIbnG/XH88I/MN 6efL9J34JmmQPoJBfM2Wwjr/jWRYtGv9FjXxKVrtahAi+Iec3vwBaG8I50yD5Tex3WIyskRiVNu ApKSA8bgvhTTIdgEU4Azo5WXol4pRaVSObamRVdko/DpdVP3i2ikz2/mteAshG6kpNcx8anFSqc 7CYzFPz7aWjajeHlEWBa34OjZSWqh/XOFWGRZ0fFA2BhpWukCLwKd1GQ7UuxwiKw+iuUwi+gef9 GKmCb2uKclUkSF0WUux/dBoHuK/FN3VS3I/WE= X-Received: by 2002:a05:620a:2b92:b0:915:9aa6:8e3d with SMTP id af79cd13be357-91c480734eamr205200185a.33.1781568316842; Mon, 15 Jun 2026 17:05:16 -0700 (PDT) X-Received: by 2002:a05:620a:2b92:b0:915:9aa6:8e3d with SMTP id af79cd13be357-91c480734eamr205193885a.33.1781568316294; Mon, 15 Jun 2026 17:05: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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:13 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:36 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-9-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=10669; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=vbLao7R78n3Cd+uUYw/mexaoZuBaorBehVeJUdtqoNk=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMPEVpz5fkboRgTeSn2oEfg2MKSwyDo56o0e uAExup0R8GJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTDwAKCRCLPIo+Aiko 1ftHB/4980j7Rnpj8VvtUU9DHgfGtLZzRGGwJdwwUMHfyYpg+y8jAUZRXv+76LEfz/eE/asgYMy /3ioLhA1A6BiJQpz8UbozJ5OfD+gmh2AVv+5FKQH5yHNSSkBmJfIesbzmNiOU1KE9XPYytwCf7w YzUC5N8bgxg1URlrZD5Fx0vTKIktP09l9SiLh3YWpZ78TGpLExI9fB224LiAuTBoM/7gQXC+L7N fYytP7rwUaQhB9r49cAMdeqm+g6jRYdgSgHkoshE2b+Zs3aGp1qnds3SzrVEIdl5qVTCTEefzGi 9WWP3f+GuPpnvdMAIvotrhTn2XbbTXi5pSRdkPY2JZ9MKKf8 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfXwn3QSfn03diC u6DqMRKWRYE6/x2HpfvjPdQ16ObW5WM83WNBmFru9TuKAmQvIkmkeoFHWhUCTkIHLtLEyJYyBAy 9hfCSZeWI2Tw508iG0rOqtD1kf2hX/aOUDGG/FlcZ0CrmUk5UyDlbnC4ATqZiwxcnHCvB8pvNV1 7TK+Afjj37wWjniOt1dxzxb1rkM20hs/nXUI6ZxIoh4Qdlqzj5AKYx2vCm13oHrCmkqbges9SRw 4wFInPJ9z4Xam6OxT20nMXRswoazT4tnO/kAQDyU1QsylF+GUL9jabi3jNr+7IwpfUKDG1G1UnW N8YgIUIkQz8U10xbx4J0w44UH6lHMA+z96q3j2Lg99CFGZO07xGtWCTcRINUBjtQVopgGQis5JG 8GTQXHysRpV8kWCx7lsztOjUJ0o85EGGSvE1TPwfH4P/sR2Jlfi6ypOvt4joa0ssNhdhRNfG2PJ DnAr5AxUB7iXAtKtRxg== X-Proofpoint-ORIG-GUID: HfEVPz2cqk8p7bqr2FAXaT7gMeF_bXzJ X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX/6NlWm5Ag5bo /OKHsUr7JuClbmVpdSjqbBEWxlLvvh4/gQoxFw72LS1eiYhJRxLC5LoVGM2Pj5G3AEfo9HOEdQk 3Yzpj+2W8iJ0CKNRiGIBd3V2zm8uNpQ= X-Authority-Analysis: v=2.4 cv=HttG3UTS c=1 sm=1 tr=0 ts=6a30933d cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=oth-URKmseDdlDMfR28A:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-GUID: HfEVPz2cqk8p7bqr2FAXaT7gMeF_bXzJ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 suspectscore=0 clxscore=1015 impostorscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 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_vpu2.c | 28 +---- drivers/media/platform/qcom/iris/iris_vpu_ar50lt.c | 130 +++++++++++++++++= ++++ drivers/media/platform/qcom/iris/iris_vpu_common.c | 29 ++++- drivers/media/platform/qcom/iris/iris_vpu_common.h | 2 + 6 files changed, 164 insertions(+), 28 deletions(-) diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/plat= form/qcom/iris/Makefile index 48e415cbc439..f1b204b95694 100644 --- a/drivers/media/platform/qcom/iris/Makefile +++ b/drivers/media/platform/qcom/iris/Makefile @@ -26,6 +26,7 @@ qcom-iris-objs +=3D iris_buffer.o \ iris_vpu2.o \ iris_vpu3x.o \ iris_vpu4x.o \ + iris_vpu_ar50lt.o \ iris_vpu_buffer.o \ iris_vpu_common.o \ =20 diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index accc1627defd..6a189489369f 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -74,6 +74,7 @@ enum platform_clk_type { IRIS_VPP0_HW_CLK, IRIS_VPP1_HW_CLK, IRIS_APV_HW_CLK, + IRIS_THROTTLE_CLK, }; =20 struct platform_clk_data { @@ -315,6 +316,7 @@ struct iris_platform_data { u32 tz_cp_config_data_size; u32 num_vpp_pipe; bool no_aon; + bool no_rpmh; u32 wd_intr_mask; u32 icc_ib_multiplier; u32 max_session_count; diff --git a/drivers/media/platform/qcom/iris/iris_vpu2.c b/drivers/media/p= latform/qcom/iris/iris_vpu2.c index dd2eeae0d9eb..5419a5096b00 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_vpu2.c @@ -12,38 +12,12 @@ =20 #include "iris_vpu_register_defines.h" =20 -static u64 iris_vpu2_calc_freq(struct iris_inst *inst, size_t data_size) -{ - 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 inst->frame_rate; - - 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_vpu2_ops =3D { .power_off_hw =3D iris_vpu_power_off_hw, .power_on_hw =3D iris_vpu_power_on_hw, .power_off_controller =3D iris_vpu_power_off_controller, .power_on_controller =3D iris_vpu_power_on_controller, - .calc_freq =3D iris_vpu2_calc_freq, + .calc_freq =3D iris_vpu2_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_vpu_ar50lt.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_ar50lt.c new file mode 100644 index 000000000000..e084a5b49f2e --- /dev/null +++ b/drivers/media/platform/qcom/iris/iris_vpu_ar50lt.c @@ -0,0 +1,130 @@ +// 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; +} + +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_vpu2_calculate_frequency, + .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_ar50lt_set_preset_registers, + .interrupt_init =3D iris_vpu_ar50lt_interrupt_init, + .disable_arp =3D iris_vpu_ar50lt_disable_arp, +}; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index 41498f94480e..d64e7745a63d 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; } @@ -422,6 +423,32 @@ void iris_vpu35_vpu4x_program_bootup_registers(struct = iris_core *core) writel(0x1, core->reg_base + WRAPPER_IRIS_VCODEC_VPU_WRAPPER_SPARE_0); } =20 +u64 iris_vpu2_calculate_frequency(struct iris_inst *inst, size_t data_size) +{ + 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 inst->frame_rate; + + 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); +} + u64 iris_vpu3x_vpu4x_calculate_frequency(struct iris_inst *inst, size_t da= ta_size) { struct platform_inst_caps *caps =3D inst->core->iris_platform_data->inst_= caps; 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..a62b6184bde7 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); @@ -40,6 +41,7 @@ int iris_vpu_power_on(struct iris_core *core); int iris_vpu_power_off_controller(struct iris_core *core); void iris_vpu_power_off_hw(struct iris_core *core); void iris_vpu_power_off(struct iris_core *core); +u64 iris_vpu2_calculate_frequency(struct iris_inst *inst, size_t data_size= ); int iris_vpu35_vpu4x_power_off_controller(struct iris_core *core); int iris_vpu35_vpu4x_power_on_controller(struct iris_core *core); void iris_vpu35_vpu4x_program_bootup_registers(struct iris_core *core); --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 8553018DB1A for ; Tue, 16 Jun 2026 00:05:20 +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=1781568323; cv=none; b=WSgoZg1oVNe6GxSOcFSezK0qLgmC1Q5EZG3B+zcqRrajOT/WEuHRgDlGYGAQBTrfj0A8V9N0Jp8Qw4s//4U36TC+Rv1fLQI5TYc2i+uiEKPr6RiftqG4wHDJnk9Nj8RaB7rY9ghb9e5zYyORCYZfABXmCUT1ClHN+Br5UAWFii8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568323; c=relaxed/simple; bh=z4UvlLuMnEtqK/mLIS5Po0b2ZhrWKH0eSyWDRWD5s7U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SS9Z2sQUO1IpVfeqvYe6YwoDd6/d/yCTZ/F6Hpim1BAhVWWuJOZr5OCNSE42aDkNy+9RdqE0gZlol5ccdjZEu9i1oBnXC6C5U5QcHNayeM5icge26SQFU4COKie5zISv73icxDJs6ZRy0b0Vcs7pfhxO84A3m+0GVh1SES36IyI= 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=Mwzwqaci; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZRsZjzBl; 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="Mwzwqaci"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZRsZjzBl" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65FIxDIP844415 for ; Tue, 16 Jun 2026 00:05:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= kcKWHiV3PIVeEfWstVYdHMZX8C49G/avdEPkqKGjnhk=; b=MwzwqacimipnwimI Wu7e7oIsxa/FOdqepKuPq5Z0WCnxSuEAl2ydVHqHhkcsYrFUv4MU6Qp8sWh/ZuR8 tqSIGm3s6+fNQiEUGkKU27rxs8ZHbxlEFYGMoUePfBrgWM4Bxpsv7ST2KmClcVRL VBU6VuwHdDDum4x/McbUlahEVgK7X8bV90PjJTz7plY/2DtK/JJ6WsOrBlusxAaN DcnOMo3ZaMgDFVHJcC1zohSWBdPezRSiYwAvOyxilry2l+Sb9IGQxamyqK18Mke5 +VrMOgLHkRQDG0B/jzzTkDdijAOxbZmVM3ixE8oLQ1Ti6xQJo1oFTB1pI944vygh c81S6A== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eter03mrr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:19 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-91598af506cso401328685a.0 for ; Mon, 15 Jun 2026 17:05:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568319; x=1782173119; 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=kcKWHiV3PIVeEfWstVYdHMZX8C49G/avdEPkqKGjnhk=; b=ZRsZjzBlx1NBSquN0um9+XRkCklyF+HS+LrSCEYs88bBBjYCPEm9aBvYi/zMLVqQ0G ut/iS1ywq19L5Q2vZCZY11jXDIYq0MauolfjQXUKvjayEUWXzcS8scyfAPxr/U0Y7KVD XMt6nWC8DDnpyaxXsX6535rUgLi9TtPEh189/9VawvnnTcQ9GZWKoES+nJvPwbsNXhUN kjauIsYbTx+dqPYITHsxP8t55JTcqETl0rKdsvntPx14kyxu5b87o+L/Rd2ib+iDFRV6 ofHzzQvD9q30KwRyJDQtHHNOw4grp7Qmif7t7bfUGzRkmcVNdd4UdaLUg3+Jqm7RukcY OtRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568319; x=1782173119; 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=kcKWHiV3PIVeEfWstVYdHMZX8C49G/avdEPkqKGjnhk=; b=khLByX5yJrKrNT84F0EbPLI3P/vi6KdtRxcKNycz9MQtC4EEnSDVaPJu3U367MtJ2R l/4w/4E1G5YezjQNMW5Ipsfp+xEVuhT5QY8sO7uso0+ojLrM7NeElLMAXFvTiZLDLlJx f82YpTypkdXqfSZ/h/Dvxn1hOM/Z96oL7KQqxfhAvb5d73/T1dTuIsHGUAf4rka6snHt aZ9ynPb41DqZyiRdAMnlhwgriYVRKn7UFefSS/FPe1aB0Je8k+hx/xiYTkYfjL1kfloi UVikd+AoeUC/PSiDrFIj4JRNGbTJMCm5K3EqyVpVMICUrtht8umzb4jR7P7PJv556ZFp eI1w== X-Forwarded-Encrypted: i=1; AFNElJ+1iALEz6XQs2Yd7uWLBc03ln1c9BQypWPH60dRCorwC1oQH4gIvPlDBTFFCUHM9dTafFb5sIN1pz2yoks=@vger.kernel.org X-Gm-Message-State: AOJu0YzNj2+uOAA0cKNW5tAHeer6npmR5mpQhEmnTY4Nm6BjyAJDIQ7x Lcxj+lgSf3IiOm+q8uFfRlCNfiUO1jJgsMmGJbq5K32dsN4bh1G+p5M7YxCp6MtLOKfvVlkPDBl d84W6/Ig9mJdeCEkolTXllhAwG8n5J0Wpwpd7T+oeAMTuxe4+/f41v2OUONB//0UE/l0= X-Gm-Gg: Acq92OHNwcN2aVdDrifKH7DXqTiZoQpqTBw8DGPhTOAVVz1bqOqrT7dxsjxvohoVtzh wjc8faM0/MsrgI2YL4983jUfdtR4Q22hlp0kZaRZnb0DBHTd1jXo2ID5YmyVoFHytTyeetkaho7 HXi2NvTOTo6s8NQg5FYMIjzAmgBkxUq9MwEh6XpW6Q4c7NC7TSms2i75QegeWLCuJdZcaFzzZn3 PCXXt4VG0mznJD8C0dZkGePFJxlBqwYjp0W4Tw9EWA7oTD3fg+8h/wp8SPz5p1yw31PekkJGMsV vYIzOIrUMPFHaFO5RpgfKCyBpwWSCk6b3JEZfVutdKePkdMPPnPLY+erneNDZumwwx02Mropl/n cshPSPq1X2IsRSeGiAj3JA4Sm1fEJ9s4c7xsVb3qazeu/wQwEKkhNNE1sAtrPTzf/jjXhK0b5tz wbKPo1At+gzGo7Qgo1MOXGeETmU5+BSlKDPww= X-Received: by 2002:a05:620a:288f:b0:915:bf79:3e0c with SMTP id af79cd13be357-91c454141admr233329685a.4.1781568318754; Mon, 15 Jun 2026 17:05:18 -0700 (PDT) X-Received: by 2002:a05:620a:288f:b0:915:bf79:3e0c with SMTP id af79cd13be357-91c454141admr233321485a.4.1781568318181; Mon, 15 Jun 2026 17:05:18 -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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:16 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:37 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-10-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5661; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=z4UvlLuMnEtqK/mLIS5Po0b2ZhrWKH0eSyWDRWD5s7U=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMP9g5nklaYa/KQV+8JH/N7yIxgSekcTrE72 v0bY6vrW3+JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTDwAKCRCLPIo+Aiko 1TBeB/9zgHf57ijJTGoPAxVFBPgk2owckJ91zdSxmgyVnF0QGIn9tNpQGVUIvSo63QPZe8RUMEb ggPPb7NxXEKtO4jxel5J9iv1bhJjbDryJskSMM1ntpk4za9y8NGxIOH+wjl7m1ho9wXU/XsITvs 96kalButhX17cE3b7bH9AiKIPEuZY4jng64GkNtPRsjDLEXLcWnCiS8b9SFOPED18ruxYPpu5Fl lrrZHyRmba8EL17PfiN7tCjumW85ZP97TZGTVKTAg6ats/PxHVKX+xR9P/vWBVEtn8gnzDNFPj4 hheULXOjjpfxIWvI2cJU9Q4WG9BxJRIhxlmgFneUw6Fi8oym X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: CIOrCTxTU62ZYFavg6R_UetDBlhpoYt2 X-Proofpoint-GUID: CIOrCTxTU62ZYFavg6R_UetDBlhpoYt2 X-Authority-Analysis: v=2.4 cv=UPzt2ify c=1 sm=1 tr=0 ts=6a30933f cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=O8_DsgnrxEnowPJBzLQA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX3mLKX6Y46TK/ GCFXxeO/llVPTezkgocEbCcLEqLcopElc/Ut02QQIAqvLd+xLN6lclbeWCJyjxbCNOW1Bn0/9xs hfzFeSVskXTKJ8ITrSI4qf+dHDoMyyBytxccVyE2y7qK2BCS3LNxte1/+FRUS0IPI0C/LVXEAxa mLKJ312rsAqQmm0tZzflBVFJ1/d0y33Rjnlo4GSB3Ist2LlJDA3xggqIUSq9/qrYZMDQ82XuAwC rnWuUcTwKJtuSCRN2zS80GYv6+kVCkN7Ulu6+kgDGzWUB8sxhYZBhQ1B/eDiQLJpfWCKd9SwvI0 IN30zkgSOXZuMqMETm0cj1F6pUvVNUf0Dibe6brglotfdnnS2r21EHPEdNKE+jq1gfpMyDTsbZw 5HziMPjFAJobuvRnYSMM8aHEWII55rusT2kR3ju16HQt0PiaY0RnmHkPjzQJJ+pnH62lWNt7jkk a2/cwDT48GAG5ngQcHg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX9Z9hKm3+h+Cj LXy9eM//wmTQQUEIxCy20AzpTFgier2stbXr/w907uwMEMaGV1kguW+XgjrmwPEdV4ycrnuub9e 9o57tete2kIpl1d0Dd3RbUwDP1nIuUo= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 AR50Lt with the Gen1 firmware requires host to read HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS property, otherwise 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 Reviewed-by: Vishnu Reddy --- drivers/media/platform/qcom/iris/iris_hfi_common.h | 1 + .../platform/qcom/iris/iris_hfi_gen1_command.c | 21 +++++++++++++++++= ++++ .../platform/qcom/iris/iris_hfi_gen1_defines.h | 15 +++++++++++++++ .../platform/qcom/iris/iris_hfi_gen1_response.c | 6 ++++++ 4 files changed, 43 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_common.h b/drivers/m= edia/platform/qcom/iris/iris_hfi_common.h index a27447eb2519..16099f9a25b6 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_common.h +++ b/drivers/media/platform/qcom/iris/iris_hfi_common.h @@ -121,6 +121,7 @@ struct iris_hfi_session_ops { int (*session_set_property)(struct iris_inst *inst, u32 packet_type, u32 flag, u32 plane, u32 payload_type, void *payload, u32 payload_size); + int (*session_get_property)(struct iris_inst *inst, u32 packet_type); int (*session_open)(struct iris_inst *inst); int (*session_start)(struct iris_inst *inst, u32 plane); int (*session_queue_buf)(struct iris_inst *inst, struct iris_buffer *buff= er); diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c b/dri= vers/media/platform/qcom/iris/iris_hfi_gen1_command.c index 7674b47ad6c4..99e82e5510ab 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c @@ -1117,10 +1117,31 @@ static int iris_hfi_gen1_session_set_config_params(= struct iris_inst *inst, u32 p return 0; } =20 +static int iris_hfi_gen1_session_get_property(struct iris_inst *inst, u32 = packet_type) +{ + struct hfi_session_get_property_pkt pkt; + int ret; + + pkt.shdr.hdr.size =3D sizeof(pkt); + pkt.shdr.hdr.pkt_type =3D HFI_CMD_SESSION_GET_PROPERTY; + pkt.shdr.session_id =3D inst->session_id; + pkt.num_properties =3D 1; + pkt.data =3D packet_type; + + reinit_completion(&inst->completion); + + ret =3D iris_hfi_queue_cmd_write(inst->core, &pkt, pkt.shdr.hdr.size); + if (ret) + return ret; + + return iris_wait_for_session_response(inst, false); +} + static const struct iris_hfi_session_ops iris_hfi_gen1_session_ops =3D { .session_open =3D iris_hfi_gen1_session_open, .session_set_config_params =3D iris_hfi_gen1_session_set_config_params, .session_set_property =3D iris_hfi_gen1_session_set_property, + .session_get_property =3D iris_hfi_gen1_session_get_property, .session_start =3D iris_hfi_gen1_session_start, .session_queue_buf =3D iris_hfi_gen1_session_queue_buffer, .session_release_buf =3D iris_hfi_gen1_session_unset_buffers, diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h b/dri= vers/media/platform/qcom/iris/iris_hfi_gen1_defines.h index 0e4dee192384..bb495a1d2623 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h @@ -35,6 +35,7 @@ #define HFI_CMD_SESSION_EMPTY_BUFFER 0x211004 #define HFI_CMD_SESSION_FILL_BUFFER 0x211005 #define HFI_CMD_SESSION_FLUSH 0x211008 +#define HFI_CMD_SESSION_GET_PROPERTY 0x211009 #define HFI_CMD_SESSION_RELEASE_BUFFERS 0x21100b #define HFI_CMD_SESSION_RELEASE_RESOURCES 0x21100c #define HFI_CMD_SESSION_CONTINUE 0x21100d @@ -113,6 +114,7 @@ #define HFI_MSG_SESSION_FLUSH 0x221006 #define HFI_MSG_SESSION_EMPTY_BUFFER 0x221007 #define HFI_MSG_SESSION_FILL_BUFFER 0x221008 +#define HFI_MSG_SESSION_PROPERTY_INFO 0x221009 #define HFI_MSG_SESSION_RELEASE_RESOURCES 0x22100a #define HFI_MSG_SESSION_RELEASE_BUFFERS 0x22100c =20 @@ -205,6 +207,12 @@ struct hfi_session_set_property_pkt { u32 data[]; }; =20 +struct hfi_session_get_property_pkt { + struct hfi_session_hdr_pkt shdr; + u32 num_properties; + u32 data; +}; + struct hfi_sys_pc_prep_pkt { struct hfi_pkt_hdr hdr; }; @@ -574,6 +582,13 @@ struct hfi_msg_session_fbd_uncompressed_plane0_pkt { u32 data[]; }; =20 +struct hfi_msg_session_property_info_pkt { + struct hfi_session_hdr_pkt shdr; + u32 num_properties; + u32 property; + u8 data[]; +}; + struct hfi_msg_session_release_buffers_done_pkt { struct hfi_msg_session_hdr_pkt shdr; u32 num_buffers; diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c b/dr= ivers/media/platform/qcom/iris/iris_hfi_gen1_response.c index bfd7495bf44f..23fc7194b1e3 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c @@ -591,6 +591,10 @@ static const struct iris_hfi_gen1_response_pkt_info pk= t_infos[] =3D { .pkt =3D HFI_MSG_SESSION_RELEASE_BUFFERS, .pkt_sz =3D sizeof(struct hfi_msg_session_release_buffers_done_pkt), }, + { + .pkt =3D HFI_MSG_SESSION_PROPERTY_INFO, + .pkt_sz =3D sizeof(struct hfi_msg_session_property_info_pkt), + }, }; =20 static void iris_hfi_gen1_handle_response(struct iris_core *core, void *re= sponse) @@ -652,6 +656,8 @@ static void iris_hfi_gen1_handle_response(struct iris_c= ore *core, void *response iris_hfi_gen1_session_etb_done(inst, hdr); } else if (hdr->pkt_type =3D=3D HFI_MSG_SESSION_FILL_BUFFER) { iris_hfi_gen1_session_ftb_done(inst, hdr); + } else if (hdr->pkt_type =3D=3D HFI_MSG_SESSION_PROPERTY_INFO) { + complete(&inst->completion); } else { struct hfi_msg_session_hdr_pkt *shdr; =20 --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 35A148634C for ; Tue, 16 Jun 2026 00:05:25 +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=1781568326; cv=none; b=EUQY0CCaStOcxYj40p/pS7Be6pDIR1+6ygg/dCge86HW2xoad58IKaLOfZLYqQivXsnaMb5FijfYLjvk9B8jmD5Ga7ASHpO49vneDH5S8A8fslJc3rdys97LdWNiHzXDS1lqFlecLa4joDczCc8EHPmp/sPbArCyNn3tPAcVDt0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568326; c=relaxed/simple; bh=rzyqQrKzvy6ldK9fhdbOvdhzBtzpiycrKy0NRCh1cXI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QI/wQKw71pgX74SuTozsToV2WQC+9qp/+jSpMzoOs4CH4nzl5KIp1rGRgDdJWmMsJIHIPLQmmhZzgem9hVdbMDSHW07Fh12ASICw665i7Pp5ABcxmUkVl7sDy2+fZgNapDCmqQldHgEBQxsBthKHJq1In77R2U8da9TTgHTHNCY= 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=Qiyz549Y; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PzOgVQCH; 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="Qiyz549Y"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PzOgVQCH" 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 65FIxDGE861104 for ; Tue, 16 Jun 2026 00:05: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= i0Pk/65yvuq+3l2N+bYFXSL7qdsgACQtO5BE0On9j7Q=; b=Qiyz549YAFK8b5Z2 zMlMCotrDFx/3AYIDcPFSj7wlIACdPq36R6oGIT1G64KJqaqBwibTYU6igtIknUq FgqOux1rJD8rUG3Ehx0Sxt78BZqn5TJRyfPb+YWT0vcDZRnIfGV0b2ruZ9gToMB7 iHi0Y2vivDuKmeZb7Juwuw4zeuITKJGFP4JTYKPLCQSvTlsnvln+DGS1mtWlJOoA Io4LD+SbTlwgy7QXTwXyfne51QPGMctYUDl4B3x72ENbSGdGH6Y3nMk1pn9OmlVL E2d4+2lBsAR85AbskIpQxxCBxyFFgLUrpZscFKgBK/onkFitqi8xmIqZ9UqEDMqv Em3Cog== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eteydbmsn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:24 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-9157f453a27so570284285a.1 for ; Mon, 15 Jun 2026 17:05:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568323; x=1782173123; 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=i0Pk/65yvuq+3l2N+bYFXSL7qdsgACQtO5BE0On9j7Q=; b=PzOgVQCHCvqU+kkyeaI3hJyj3uGiEDjlXq0ZV4K22mqiwfRN25HtUEstluWVjBEBqH 6cj18qA+XfUtqB4TFPvoSs4FXp27lXH2U1PWjaiC9cIAYh7cADGHUpnwhH5E3Vdoe4S5 tDSYEZbIIJhAeKbVHrf68EPQsvmRzLGSV6f2xs7vpJNAyIbderAKbbaj4gduuYBfwu88 IZWmwzqTVNqoeVVrO4BxoXcBSjJoJ335AkFTUJkdrrVDmen1CCWmLdLseRa+NqydWF67 KeFdbP+yp+oKmT/wUCMReWwOcVJKRiIwKTDCIxP4Dk6zjbo3cCA1dfkZTTetlPChD9sn GGRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568323; x=1782173123; 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=i0Pk/65yvuq+3l2N+bYFXSL7qdsgACQtO5BE0On9j7Q=; b=dQgeB1gTb3uaMEkirHGxWv3jsSA1K3xfa1d3BYcOJygMBTFF8XrWloIfGTvFM8CER7 /YlYS4ropt844fRFgEfX/xbgySlU2PEt3X/Hjd+RqNmm+EELESkm1aP5HpwWt0fw99IV RByJ6IeFNZ6qmMagW6aaZFCxzdJ4i3bsOuKKV5jyFHhmg4SrVobH8boiLkFJ6hk1oQWs nLD4hgfGqkT2zHo+DwKLFp0CY32b7BPW8YUSBhPW2Y027H4skF7kqkVGiuMsZ9mMICG+ 37BAbQFqoNHsJ9Mv0cv3oCsxhIO9+/fFQJe/+q2/53H46/gpyUMdNbXIFsRBJMrsV6nQ GL7w== X-Forwarded-Encrypted: i=1; AFNElJ/qpWwKSYd1Cwd0FKhpVg65WmaxuX7tdtCY8z3IpUTcXmYcMGNMp4jQRlfyc9GZJDyQC3XC0qdTGEPN58U=@vger.kernel.org X-Gm-Message-State: AOJu0YyAUVaMRK9Q6OnI3oM7e6y5SL6uurISMK2nmtkfsDY8/QsxEQS6 zqG2EO1jt8b2Nx38QvJdwWm8aJbYUaNYuDfoMQTRBs0mldi9N4K9uC0e5tLqLPiUvoo7WTqzETW EW8Z9ezVzJKXiVRgyTAnkh2hAteeIWfYAXoKGdF2JKuY1NEqRs5RmlP3BmEQ6oSTTw7Q= X-Gm-Gg: Acq92OFmsw7T6ZJLMBSfWbsiKSHDqbH5OoNnSJH9S8ApsBQwTUxLbwB9e4NnPtwJ6OE hrfwyB2RIuzHEDnVjal9gXgrS2DRyN7qs9w8w/ZJRyHDB8qx6MKIrvzE9PqOGwBVDVh7Ae8K9Wc orHaAo4TOqI3Ihbm+DUp3c65vCy9LyG04B+eQcyZMIVE2E8R6uF4baXHmeyehVQiijge6L0OAqQ XzmaqrLijN4nn7uIoA1oLGFbuui9aFPMbF9L47aOUNHKjReJqtuzlFqIJgqrc4BLsvv5nXXn8Kl L7QSlAiIxV3RlnsW8Qu9NM6utDNqDAARgU+VxJORqmfgMww1KdhcnawEo1xPgxubSUmHF8/JxxK ItOQMYxn62z6WIbZ0N08h7zrDjfayyCwtA3vzkwjtncs2GrjLtAMemE5wvH4XT2LXvXAZFeML1k QA3XIhvDZTI+5upMXqaJoTjQccS3xeNGVJ+uk= X-Received: by 2002:a05:620a:1791:b0:915:d5d6:f1fa with SMTP id af79cd13be357-9161bd3a595mr2526502485a.31.1781568323550; Mon, 15 Jun 2026 17:05:23 -0700 (PDT) X-Received: by 2002:a05:620a:1791:b0:915:d5d6:f1fa with SMTP id af79cd13be357-9161bd3a595mr2526498885a.31.1781568323093; Mon, 15 Jun 2026 17:05: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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:20 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:38 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-11-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3438; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=rzyqQrKzvy6ldK9fhdbOvdhzBtzpiycrKy0NRCh1cXI=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ5bBZP4CSeHJjVu+9UnkbrdSaU99GB8mUpqk4r7jYlrLy emPU291MhqzMDByMciKKbL4FLRMjdmUHPZhx9R6mEGsTCBTGLg4BWAi83vZ/7tHmc3pNzteH1yu lB/WsXJ/stQWr7SQKu1vpxe/bssysPphvtbtzOecXvc9jDdrFGbpbNje8t9w61+P7b8dJZljjp8 zdb155Kp+1P5lauFGFtphZ3yfXDx5qjVGJXPt3cqTxh8O2ebOjnOo12mu47b/eqgwdfLlnYvExA Uyop/cmqX1PTCm/0IaJ8/1pD1P13GcWKDn05Ztv8bU8iKzcknho7VpNQt2npMvFOTeLciuVxGkc 6PwWO2lW1ci8pJ97zXNnsX2/OCBN/J7iq46u7IJS2Y6qzhmrn6YLnjXxzhzt9vcQ/WZCxk+PUt1 UXI6k8jI/qLznnb7hE1i5g69jFHesXZ3W1ZHPlIw+rgTAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: SPuuesUIpn7nR9D4QWD1N5qX92NzMtwz X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfXxaZY4lT5VT7x w2JfHtyayz/elEQxTTr7prLq22N8nJ78XJG53bGpjnF52wvtBOFGrmLQS66DG+O9FerbWPSGt5S ijiynC3i1LA3JuNVhJGVU8BcC46n4wU= X-Authority-Analysis: v=2.4 cv=QrJuG1yd c=1 sm=1 tr=0 ts=6a309344 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=_TRJU0tGboi39qq34nEA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-ORIG-GUID: SPuuesUIpn7nR9D4QWD1N5qX92NzMtwz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX0p8uRoinghdi 3/NcEDHUedok0GuDkpHiD43w5dPqtQOCZiPIXAxYjUem/EOA6F/VOeo5R2DedsGIYr7G+vz/OTK 8DBgeYdkkwQLHWbOQ7a/YTua4BL6OOuqTH6MubxdRp8865aQLTWJge4TaV3YrGZnmTISbR+fl9F eYsDGtr10JW/sKKVIPQ/yA2+jMfqhA60ZHdEhBURDJL4KUtXS7pO7w9bEHTyu/wsb4UIJZT24tP jKmIhccprI364z8x6nuGaCcOAwgrWzJP3qCxQ2JTbilTtUudTFMgWgHZCmsfWy2/lfguOuHlCEz 7Ylconpe86/Dft731hOSOtSgw6OiwLWVlZeW+P7ULzOYtLTTs9hND6MAwBJWfa5penjiZXRnOHH nAVAUUaY4jWVqYI440T0G5qXsPulgp3PmN3qaErtyWBVliqEp9oBsAf7mzNh1TdJZ9uibqPzmPl ZD3Fikq5sNc3okn3EQA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 impostorscore=0 malwarescore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 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 | 75 ++++++++++++++++++= +++- 1 file changed, 74 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..896953ea62ea 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,79 @@ 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; + + /* on relevant platforms hold_count and min_count are swapped */ + 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 +730,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 19 01:39:54 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 D7AFD1A6819 for ; Tue, 16 Jun 2026 00:05: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=1781568331; cv=none; b=InRSZar63LdEYrBmp3ALiW3DkE58JWzM+1SrKiGyoaIb8H0PzlrBUsxPk2bFpT7HobumiX1yUZelvi3Du2NHl9WiLfIyTrSbFdLsJOIjz/5UuqIunHGqPA8BjOya2IXTUawFEjVfdaQLS1lKHBf6iov26pkqSPJ/daVMpzSUyjs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568331; c=relaxed/simple; bh=9UNxbtDOKcqj/XRj767wK8XZ/LIeAPPIVLk9YZhcHWE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DYMJa1o9iHT1/yR+3BYpwGAuV9939eECemQZ0t5iM0E4M0BPloV704Z3F8KKCcfLNGyJuXci2XgGJULSvF4r1tYiRNyDn8+brvVBi23h50StR6PPCVxG0Hp3eVUWz+Q+50tspynHcY+I6PqRl8csLdsG8xDgdq7Ak8dXe/ycbTk= 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=gakdbffT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Cx9QJIMM; 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="gakdbffT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Cx9QJIMM" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65FIx2VO3577926 for ; Tue, 16 Jun 2026 00:05: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= /OOL9Fbb5ab9YXxSbJvRKruTCR6weoazdSeJyfd3wBk=; b=gakdbffTSKJvKI3O q2swiRGcJbCl2/xIRuVDwLjAL9suOWppFoeQikQ5h8gI1SCdcYzy2js3CaSpalT4 73d4ZwUeHSY5M+q0eXUxw8An69D0dRp93U1BGy2CAqQwqH4Uz1YbIBxrewKLt9po ijne+msH8EYM7ewggzar5owSsJiduwqujo4JLr46rqkyx/Pjz4jiTJEacIo+jyDq d2wHxqjFTmkyLKX57FWm0HUSjbYZ1fbhcjJD677uj4Z3nMFUrYYUZC7mM+Av8Af4 QU5rqDGXfUn0W/ogt6eSYilepCkwt30G99GggJJ4j1kSah7rDhoIIkaSJwYzmRVg xG0nIA== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ete983tm7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:29 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-9157f453a27so570290785a.1 for ; Mon, 15 Jun 2026 17:05:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568328; x=1782173128; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/OOL9Fbb5ab9YXxSbJvRKruTCR6weoazdSeJyfd3wBk=; b=Cx9QJIMM0+u+505K9ppVnadyrH8z8wgXbPwMI4TK4SnKwOer2cQ3RzcBfTAapg0/pI b2MycagRzOreEfoSkYCqRzeHNgbdEFrHk54DMIdRHzG22Fr/lf0u/2HTSpFGDXfg5Sa0 2coqVg5AqIURihi4gYSYhyGlUMLm54p8rpFTR/CTA+s0mGoGdUPLdQzZ7aJUA2qEeOFk cFDrlj7fNGg+w1GXr374p1mVS3IVsNF2O8QDAXy7o8VVCOXwNTiJmygkRdz70dAVF7gl NpXUAau4DGwjc4qb88OwneDfxpL2qMV6RYVKkqbVlvvoOVkQF1VzYazsh8bQY7HasIYd AOpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568328; x=1782173128; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=/OOL9Fbb5ab9YXxSbJvRKruTCR6weoazdSeJyfd3wBk=; b=LoaEopbQuAYdX48TE41rho+IyERsPTpTQSLDSVXFzw5iMPQ62cOwG9otxnOdSziNQQ WJZYlUdzWgBhm1WyzCd/1xMXJJDIPS4O/96QYPxjsGKtHyZvWMvP0yVut0X2Of8g1SEe FIzWynszh2EuHuu2UdBRY9TvmpDR1L0FB+vOLLWyD6IHBsIRvBC1Zv31jg1fGqZxVWzt Ww3ra9nYBw19vls4tfXQAvy9ycelhJpqX4ayTxKd3SXMHb4og9y9V3j2YGmkwFtoCMy5 bdxGQnTS5yaD6DVPMyzW6m3r8k/1wnuzj6x4j+NaG3w7d+TkgtiX3jZtjAEriBu0wkgk 98ug== X-Forwarded-Encrypted: i=1; AFNElJ+v2BxnidDbRccnr9ujJiSBpkz7BgXEMx2oZJGIJMWD95tpfAQ+x+7f4mr+Hqwmw77/jJtl3Ux+hQ/6i9U=@vger.kernel.org X-Gm-Message-State: AOJu0YxAvJf1jSy41Brn1wW5q+rxRytt82UwsJKh7zwkGJmmVNVmJZEQ mxVYY96j8vROfu8u/sYY1xV2Gbzy0TNH6Kb3S5ypGQtLwe01p3kyDzz2Y//6cQDdB/AU4bbVXqc LdhI8xWd8n1ibTGSlHnt+9xVaFqrLCCjSrIV9kT3zI0Cc8A3PqME3wk/rjFBlcydNx4E= X-Gm-Gg: Acq92OH/WVqwaEghUCt/NF6Cd7s1D8frLm4sRCi+OWcbStmvm+ebYfUWEk71d2neYJp cKGdKXoT3o/StlRJ7liB6roMYtuIsfBtMRB5xJLURlVO24dJ2yZP60reK2ABWfd2X/IzzytH8FA UcpsHTsvAZ2vfUoLmUqaMPbIlJtMrT9UrkFWdb9aTW2sw3xCCuE35bXkIRNj3I8PUqNjvuTMaA/ r1mXI6yE+pYxgl1QwkJmAkO586aHDtzToSABRnXSktFH9FQuI9kLksxo/Gh4J9paS96JNbz3Dr8 m8Tq9gbRBG4WbciyfKMm9NJG90XikqZtsKq0nmt6eBoANrXfSngOSGumrpCJs1L2duRQDXDz7jt jrijkMNkBhE08QDbftX++yL8b9qn9vEaMeRDEsk1pba9AjuB7JNyIoXVu97auWAcFyC2TAowGKX pP+epHV3lht+Sq1X4cNUCJtYxgHPrHNspJtQY= X-Received: by 2002:a05:620a:6409:b0:8cd:9033:1724 with SMTP id af79cd13be357-9161bc20a3cmr2374009385a.9.1781568328036; Mon, 15 Jun 2026 17:05:28 -0700 (PDT) X-Received: by 2002:a05:620a:6409:b0:8cd:9033:1724 with SMTP id af79cd13be357-9161bc20a3cmr2374003085a.9.1781568327454; Mon, 15 Jun 2026 17:05:27 -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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:24 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:39 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-12-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=17237; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=9UNxbtDOKcqj/XRj767wK8XZ/LIeAPPIVLk9YZhcHWE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMPCsx0zFHfNVmaJiLx4B9wawMXJDHszwfOz omjjyjgHUSJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTDwAKCRCLPIo+Aiko 1TIIB/0Z3WrlG8yZ3427FL/CEG8TUtNkMnAxB308bmZaGLwLjmbj8KsxUFD6EbMm+vMno6tWNQO oYXIMyzHmSW1QpuHDoOP4sCEWTMFUxBZUWrxuIPGaRTIEh37kHcE5ZcAsfUVt7RPxZ+3nO1TVX4 ZTYDEQwf1mJQg/8Mn9vFmLcDaLcV2uzDro84VRyBWqWCL+O8O7leuFzRw0+WvYUP9lPD2gj4+hx yQBMh7FJZlP10mUI2RG1jTor/UaLL81DajdE8qSmBDia5SS0QZdJjwvOOFGWzlA68OlvUb3kj2I Ucj7mlAYQX6Wu3J4qVxNBHvIhVx72bcIqVmzu3wKg6mRa/tX X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=V5tNF+ni c=1 sm=1 tr=0 ts=6a309349 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=dOk1iDCBItVmpnauvPoA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-GUID: 7c3xbzDoDK1AQNpckXQf_zgSS885Zm15 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX66wit3YsEOem AIw6FrDAtBMPrP/lPuSPzNgM4bznatgKc+wF7OmI64hoNmBvck7U/5pbQ74pSX6MCmtH5gLyq91 m5zfGUCn9kklimda/IJWTSI+SNCwdro= X-Proofpoint-ORIG-GUID: 7c3xbzDoDK1AQNpckXQf_zgSS885Zm15 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX2gdn5SHT7NVx uak4SdgMv16+e3ylabUpVdJGoPSkrbunGCfS5/Deo4hl2aflKfZxJs0hGHVo4/AL+X5LR2tiyCK OKMXB2KEXv5XZdCqoYwj6CgdTYsyLhKlSjtCUigL9tCxzVS/KihBp+FkWniK3g9x37JevuHpqyN hjFI45aY7y7ENx1+Z03eUhjKxnfVjxkoT5nlo7ZnOoryL+y9TkvK+oJ1Cm6UgW54L/QL7EhZao7 zYDgv4wjvAPPUybpJCiZb4Rt2LVyuEhoEit5KgnF+Hs9/Q6L6wOr8AOTeQC8jvOMh2fk9z8zKYD vlgotUA/66IuTJIIhKHfcrJqyQnk8CVoezG7zDrBhiQmhvBFTgoWWWLsOavoNmd2BKvuBIWGKw+ lLbXEOq6FZ6dGgoNBS310BxF2NhWiyzcZfqoitcSi46M9w8DAwM7q/2EX3kMaqtAPzSBp38HOV/ OMeBhv8UZaGh3njS4Jg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 phishscore=0 malwarescore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 Port support for the AR50Lt video codec core (present for example on the Agatti platform) to the Iris driver. Unlike more recent cores this generation doesn't have the PIPE property (as it always has only one pipe). Also, unlike newer platforms, buffer sizes are requested from the firmware instead of being calculated by the driver. Co-developed-by: Dikshita Agarwal Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/Makefile | 1 + drivers/media/platform/qcom/iris/iris_hfi_gen1.c | 227 +++++++++++++++++= ++++ .../platform/qcom/iris/iris_platform_common.h | 6 + .../platform/qcom/iris/iris_platform_vpu_ar50lt.c | 110 ++++++++++ drivers/media/platform/qcom/iris/iris_probe.c | 4 + drivers/media/platform/qcom/iris/iris_vpu_buffer.c | 13 ++ drivers/media/platform/qcom/iris/iris_vpu_buffer.h | 1 + 7 files changed, 362 insertions(+) diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/plat= form/qcom/iris/Makefile index f1b204b95694..bbd1f724963e 100644 --- a/drivers/media/platform/qcom/iris/Makefile +++ b/drivers/media/platform/qcom/iris/Makefile @@ -14,6 +14,7 @@ qcom-iris-objs +=3D iris_buffer.o \ iris_hfi_queue.o \ iris_platform_vpu2.o \ iris_platform_vpu3x.o \ + iris_platform_vpu_ar50lt.o \ iris_power.o \ iris_probe.o \ iris_resources.o \ diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c b/drivers/med= ia/platform/qcom/iris/iris_hfi_gen1.c index ca1545d28b53..f57af31dbd9f 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1.c @@ -443,3 +443,230 @@ const struct iris_firmware_data iris_hfi_gen1_data = =3D { .enc_ip_int_buf_tbl =3D sm8250_enc_ip_int_buf_tbl, .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl), }; + +static const struct platform_inst_fw_cap iris_inst_fw_cap_gen1_ar50lt_dec[= ] =3D { + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROPERTY_PARAM_WORK_MODE, + .set =3D iris_set_stage, + }, +}; + +static const struct platform_inst_fw_cap inst_fw_cap_gen1_ar50lt_enc[] =3D= { + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROPERTY_PARAM_WORK_MODE, + .set =3D iris_set_stage, + }, + { + .cap_id =3D PROFILE_H264, + .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH), + .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D PROFILE_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE), + .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D LEVEL_H264, + .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2), + .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D LEVEL_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D HEADER_MODE, + .min =3D V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, + .max =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) | + BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME), + .value =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .hfi_id =3D HFI_PROPERTY_CONFIG_VENC_SYNC_FRAME_SEQUENCE_HEADER, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_header_mode_gen1, + }, + { + .cap_id =3D BITRATE, + .min =3D BITRATE_MIN, + .max =3D BITRATE_MAX_AR50LT, + .step_or_mask =3D BITRATE_STEP, + .value =3D BITRATE_DEFAULT_AR50LT, + .hfi_id =3D HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_bitrate_gen1, + }, + { + .cap_id =3D BITRATE_MODE, + .min =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .max =3D V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) | + BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR), + .value =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_RATE_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_bitrate_mode_gen1, + }, + { + .cap_id =3D FRAME_SKIP_MODE, + .min =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .max =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) | + BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT), + .value =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + }, + { + .cap_id =3D FRAME_RC_ENABLE, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 1, + }, + { + .cap_id =3D GOP_SIZE, + .min =3D 0, + .max =3D (1 << 16) - 1, + .step_or_mask =3D 1, + .value =3D 30, + .set =3D iris_set_u32 + }, + { + .cap_id =3D ENTROPY_MODE, + .min =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .max =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) | + BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC), + .value =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_entropy_mode_gen1, + }, + { + .cap_id =3D MIN_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MIN_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP_HEVC, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MAX_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MAX_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP_HEVC, + .step_or_mask =3D 1, + .value =3D MAX_QP_HEVC, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, +}; + +static const u32 iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl[] =3D { + BUF_BIN, + BUF_SCRATCH_1, +}; + +const struct iris_firmware_data iris_hfi_gen1_ar50lt_data =3D { + .init_hfi_ops =3D &iris_hfi_gen1_sys_ops_init, + + .inst_fw_caps_dec =3D iris_inst_fw_cap_gen1_ar50lt_dec, + .inst_fw_caps_dec_size =3D ARRAY_SIZE(iris_inst_fw_cap_gen1_ar50lt_dec), + .inst_fw_caps_enc =3D inst_fw_cap_gen1_ar50lt_enc, + .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_gen1_ar50lt_enc), + + .dec_input_config_params_default =3D + sm8250_vdec_input_config_param_default, + .dec_input_config_params_default_size =3D + ARRAY_SIZE(sm8250_vdec_input_config_param_default), + .enc_input_config_params =3D sm8250_venc_input_config_param, + .enc_input_config_params_size =3D + ARRAY_SIZE(sm8250_venc_input_config_param), + + .dec_ip_int_buf_tbl =3D iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl, + .dec_ip_int_buf_tbl_size =3D ARRAY_SIZE(iris_hfi_gen2_ar50lt_dec_ip_int_b= uf_tbl), + .dec_op_int_buf_tbl =3D sm8250_dec_op_int_buf_tbl, + .dec_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_dec_op_int_buf_tbl), + + .enc_ip_int_buf_tbl =3D sm8250_enc_ip_int_buf_tbl, + .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl), +}; diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 6a189489369f..bc04831ae7fc 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -39,6 +39,10 @@ struct iris_inst; #define MAX_HEVC_VBR_LAYER_HP_SLIDING_WINDOW 5 #define MAX_HIER_CODING_LAYER_GEN1 6 =20 +#define BITRATE_MAX_AR50LT 100000000 +#define BITRATE_DEFAULT_AR50LT 20000000 +#define MIN_QP_8BIT_AR50LT 0 + enum stage_type { STAGE_1 =3D 1, STAGE_2 =3D 2, @@ -51,8 +55,10 @@ enum pipe_type { }; =20 extern const struct iris_firmware_data iris_hfi_gen1_data; +extern const struct iris_firmware_data iris_hfi_gen1_ar50lt_data; extern const struct iris_firmware_data iris_hfi_gen2_data; =20 +extern const struct iris_platform_data qcm2290_data; extern const struct iris_platform_data qcs8300_data; extern const struct iris_platform_data sc7280_data; extern const struct iris_platform_data sm8250_data; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c b/= drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c new file mode 100644 index 000000000000..393256f39112 --- /dev/null +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c @@ -0,0 +1,110 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include "iris_core.h" +#include "iris_ctrls.h" +#include "iris_hfi_gen2.h" +#include "iris_hfi_gen2_defines.h" +#include "iris_platform_common.h" +#include "iris_vpu_buffer.h" +#include "iris_vpu_common.h" + +#define WRAPPER_INTR_STATUS_A2HWD_BMSK 0x10 + +const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen1_s6_desc =3D { + .firmware_data =3D &iris_hfi_gen1_ar50lt_data, + .get_vpu_buffer_size =3D iris_vpu_ar50lt_gen1_buf_size, + .fwname =3D "qcom/venus-6.0/venus.mbn", +}; + +static const u32 iris_fmts_ar50lt_dec[] =3D { + [IRIS_FMT_H264] =3D V4L2_PIX_FMT_H264, + [IRIS_FMT_HEVC] =3D V4L2_PIX_FMT_HEVC, + [IRIS_FMT_VP9] =3D V4L2_PIX_FMT_VP9, +}; + +static const struct bw_info iris_bw_table_dec_ar50lt[] =3D { + { ((1920 * 1080) / 256) * 60, 1564000, }, + { ((1920 * 1080) / 256) * 30, 791000, }, + { ((1280 * 720) / 256) * 60, 688000, }, + { ((1280 * 720) / 256) * 30, 347000, }, +}; + +static const struct icc_info iris_icc_info_ar50lt[] =3D { + { "cpu-cfg", 1000, 1000 }, + { "video-mem", 1000, 6500000 }, +}; + +static const char * const iris_pmdomain_table_ar50lt[] =3D { "venus", "vco= dec0" }; + +static const char * const iris_opp_pd_table_ar50lt[] =3D { "cx" }; + +static const struct platform_clk_data iris_clk_table_ar50lt[] =3D { + {IRIS_CTRL_CLK, "core" }, + {IRIS_AXI_CLK, "iface" }, + {IRIS_AHB_CLK, "bus" }, + {IRIS_HW_CLK, "vcodec0_core" }, + {IRIS_HW_AHB_CLK, "vcodec0_bus" }, + {IRIS_THROTTLE_CLK, "throttle" }, +}; + +static const char * const iris_opp_clk_table_ar50lt[] =3D { + "vcodec0_core", + NULL, +}; + +static const struct tz_cp_config tz_cp_config_ar50lt[] =3D { + { + .cp_start =3D 0, + .cp_size =3D 0x25800000, + .cp_nonpixel_start =3D 0x01000000, + .cp_nonpixel_size =3D 0x24800000, + }, +}; + +static struct platform_inst_caps platform_inst_cap_ar50lt =3D { + .min_frame_width =3D 128, + .max_frame_width =3D 1920, + .min_frame_height =3D 128, + .max_frame_height =3D 1920, + .max_mbpf =3D (1920 * 1088) / 256, + .mb_cycles_vpp =3D 440, + .mb_cycles_fw =3D 733003, + .mb_cycles_fw_vpp =3D 225975, + .max_frame_rate =3D 120, + .max_operating_rate =3D 120, +}; + +const struct iris_platform_data qcm2290_data =3D { + .firmware_desc_gen1 =3D &iris_vpu_ar50lt_p1_gen1_s6_desc, + .vpu_ops =3D &iris_vpu_ar50lt_ops, + .icc_tbl =3D iris_icc_info_ar50lt, + .icc_tbl_size =3D ARRAY_SIZE(iris_icc_info_ar50lt), + .bw_tbl_dec =3D iris_bw_table_dec_ar50lt, + .bw_tbl_dec_size =3D ARRAY_SIZE(iris_bw_table_dec_ar50lt), + .pmdomain_tbl =3D iris_pmdomain_table_ar50lt, + .pmdomain_tbl_size =3D ARRAY_SIZE(iris_pmdomain_table_ar50lt), + .opp_pd_tbl =3D iris_opp_pd_table_ar50lt, + .opp_pd_tbl_size =3D ARRAY_SIZE(iris_opp_pd_table_ar50lt), + .clk_tbl =3D iris_clk_table_ar50lt, + .clk_tbl_size =3D ARRAY_SIZE(iris_clk_table_ar50lt), + .opp_clk_tbl =3D iris_opp_clk_table_ar50lt, + /* Upper bound of DMA address range */ + .dma_mask =3D 0xe0000000 - 1, + .inst_iris_fmts =3D iris_fmts_ar50lt_dec, + .inst_iris_fmts_size =3D ARRAY_SIZE(iris_fmts_ar50lt_dec), + .inst_caps =3D &platform_inst_cap_ar50lt, + .tz_cp_config_data =3D tz_cp_config_ar50lt, + .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_ar50lt), + .num_vpp_pipe =3D 1, + .no_rpmh =3D true, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 2, + .max_session_count =3D 8, + .max_core_mbpf =3D ((1920 * 1088) / 256) * 4, + /* Concurrency: 1080p@30 decode + 1080p@30 encode */ + /* Concurrency: 3 * 1080p@30 decode */ + .max_core_mbps =3D (((1920 * 1088) / 256) * 90), +}; diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/= platform/qcom/iris/iris_probe.c index 7fe31136df21..472d9e293ece 100644 --- a/drivers/media/platform/qcom/iris/iris_probe.c +++ b/drivers/media/platform/qcom/iris/iris_probe.c @@ -356,6 +356,10 @@ static const struct dev_pm_ops iris_pm_ops =3D { }; =20 static const struct of_device_id iris_dt_match[] =3D { + { + .compatible =3D "qcom,qcm2290-venus", + .data =3D &qcm2290_data, + }, { .compatible =3D "qcom,qcs8300-iris", .data =3D &qcs8300_data, diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.c index fb6f1016415e..4a39b8fef52b 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.c @@ -2194,6 +2194,19 @@ u32 iris_vpu4x_buf_size(struct iris_inst *inst, enum= iris_buffer_type buffer_typ return size; } =20 +u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type) +{ + const struct iris_hfi_session_ops *hfi_ops =3D inst->hfi_session_ops; + int ret; + + /* return 0 on error to let the driver cope */ + ret =3D hfi_ops->session_get_property(inst, HFI_PROPERTY_CONFIG_BUFFER_RE= QUIREMENTS); + if (ret) + return 0; + + return inst->buffers[buffer_type].size; +} + static u32 internal_buffer_count(struct iris_inst *inst, enum iris_buffer_type buffer_type) { diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.h index 8c0d6b7b5de8..1d07137c70cd 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.h @@ -288,6 +288,7 @@ static inline u32 size_av1d_qp(u32 frame_width, u32 fra= me_height) u32 iris_vpu_buf_size(struct iris_inst *inst, enum iris_buffer_type buffer= _type); u32 iris_vpu33_buf_size(struct iris_inst *inst, enum iris_buffer_type buff= er_type); u32 iris_vpu4x_buf_size(struct iris_inst *inst, enum iris_buffer_type buff= er_type); +u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type); int iris_vpu_buf_count(struct iris_inst *inst, enum iris_buffer_type buffe= r_type); =20 #endif --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 6F3A320E702 for ; Tue, 16 Jun 2026 00:05:34 +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=1781568336; cv=none; b=S87c6P2TnyccX5IhIw17oZl11J+jo9zzmp/G7r7whda1DgivaroQaiERXmhtr85agRT61pSLm/Pn8ToVhWZjCRiYl4lW79BnSmhT4FHqnwH/bZEE/43A4gxkHVN7Hxac5djNOovmRIEqniR6w9noq9fivVyHsaDVegNBSiwNUz8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568336; c=relaxed/simple; bh=1rqisT53JJGh/fNyyVTyZE2yM1bDUT6+91E494r1IQQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gHBJV3dCVnhnjcFFu/Us8V5A/d/I239240t285gTfrDrQGRxoI8Fw6zWIb+MhAeJp8+rZL1jkIMgV/ZG8bCSeu7MM0ZDIN0elJEi0T1UBWxH4tZ42WrV0/o+6+vVv0qVdAAEMORHsrDaf8AlscvEUoKC4+cD2UwhIhhQbkBCTtM= 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=QS5IJtdR; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=I57NKpA3; 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="QS5IJtdR"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="I57NKpA3" 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 65FJ2J4q1245716 for ; Tue, 16 Jun 2026 00:05:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= fGMRe9Q9Hy9J04p9JzSuFbN7mDJTpbypQJ8HaqAzsFE=; b=QS5IJtdRqiWulm1Q vPTFWVAKFKKqgbco+YBSnICV2sS8b5DWX1JlFcmln+UJ1TImS8T0S85pOdij2Up/ TwMwCiifhnAOSEqIXqKSQyXYFIAnowIMWsXl+e9YXRvOFr7oPy7Moe3Uw2MGRA/y aC+gX7Lg1LK1WqZiLMDiLbiffNXOUECY9JaiYSy/01/HR74n8Hgm/2z5wUokQQ9U dvPTNQyhKpDq3QbnKkb+YmdbFTTZGAMV/+/aXRPQsysoQ18neekGhNTKlKgwULk2 Czrz4BYm5W9bhw02vQPXyj94K+yXhfs0JyTto6pyS/0xDBIqP8zAi2XGoFyFvXT0 gcKvfA== 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 4etetf3my8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:33 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51772325a64so53536231cf.2 for ; Mon, 15 Jun 2026 17:05:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568333; x=1782173133; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=fGMRe9Q9Hy9J04p9JzSuFbN7mDJTpbypQJ8HaqAzsFE=; b=I57NKpA3/RWV5JXN4HFOy3YpKHTGIuC/5xrFIeJn516cfTID2HHR84aKjrEaQndPQI GE/WtxnZmPAFOoQ+5/PJuO+wJ8bBf4g/bMPDXuYL5WflV+PyHDfpNp+TIR/A+bUqxE2Q 0ffdobK23VCKNQgx0+AgI6ZN0EFuyD04yKXgtNM39jIeDC/ukXpY46qoh7aONqRZDb+s bpFZI3FMVmCL0FqGoJugmWezfZ69Id3mEUIZ5NIMVqoNXCPXRsDCTrturo+AiXr3aW8I 0ay2vKgQJGXs8C5XO2mFPF/h8vZfiicB+QYw3hXdQPexP4KqMNmXb1A8xtSkTM+7ybml NlLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568333; x=1782173133; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=fGMRe9Q9Hy9J04p9JzSuFbN7mDJTpbypQJ8HaqAzsFE=; b=RBDpFlinOccnBiXDjHpEf4K6pmlqG1NSiZnO+ralZ5FnBf3dQu9rsX59B57vPdpP+h cAG6BIG92rV7ShSFgH84+NuA18rPb2nGVqNIGKPyYHNh/SZ9/J7Za29tQ4GRS9Jp+5oz 9lWLucpOFFJBiAN0+Poa5cEX+c/EsYOIUHTuUCuEFkBNynYo6PL9Bpcw/Kf5eX0CdNwL rfqSgHr95cmmABD10sRStVknu/GnkcP2z61yQQ3lqAmuSXVWq9lkTNoKUFx24tsoLvju AgnElfvKbO6jATdivIIgvLFUsxxWxlnmOf/gBUhx2Nx80fgDQhBS0x5x0xONXijJE3xO 1IaA== X-Forwarded-Encrypted: i=1; AFNElJ+YmPJn38oT91G6EgVR/At8PBtFsWJyEuvua6xON3WL3Q7/t7B642l1FXpUBrIMuBdXvV5fOcK7t1V4aww=@vger.kernel.org X-Gm-Message-State: AOJu0Yz+H0thURXjAkYMl1ZgSULL2C66QeHL9ZWtMdgmQkNxDc/ClzKr pZ2wcXnNUEr6p+75CFf1X0rNZcKoNOG/MyvDwX1ee/UZ9TxVWc2bFxVIFuRsHd1jsd0zwVZgPQV bizvH5uVlKv0iAw5U9/M728ub673OKE9pn446ScC9WrIWydwGorZ4hum0MwIQALyBDa8= X-Gm-Gg: Acq92OHvP0WrFRVeAZJEBEAqMlvK1vRhfx1piLrrXIfxujcdDnyoFbpt7+M5dnyptQO EFRgk4K+IXSxA+ZlR/E/GkO0rnIYw8wm8IwN5PvfFoux15O3uKIq2TpdMeCfYppwtsB0tDZYdN6 8QN9QBcDsxj3D6CXyqnPqlxm+CxzVo0x8Kd0RwUBwnYBwAYB0w0N8VfaqhpS/m4pYz9Ass3ENNt tz28D6hQwYUX7wSDRYdCcI6ICXTmm5gVGVFqs4IkCouaupMGe2dpyGgQOqIXnJKo2rR7+fr1n9E jX5qpJCpe3q/a5Gkx0DpJNqTKaMYDjxv9Dgh0aJJaGTAI2qDqbzJgfT5Y/vflaTSdz43i68qdpz mblXb5oP3aCqfuz0GbIzVHz/f2Zhy9V7V+MziY1JzyB2apdksbXxkkk5yw4W2n/L5Jwc1MmLkOL FlwuSXoGnkC3c9QqGqyCFfg50R8vEOenNb504= X-Received: by 2002:a05:620a:1b90:b0:915:956b:790b with SMTP id af79cd13be357-91c47f6e54dmr200179585a.40.1781568332354; Mon, 15 Jun 2026 17:05:32 -0700 (PDT) X-Received: by 2002:a05:620a:1b90:b0:915:956b:790b with SMTP id af79cd13be357-91c47f6e54dmr200171585a.40.1781568331611; Mon, 15 Jun 2026 17:05: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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:28 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:40 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-13-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=27281; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=Nt5SKbENSmSVpgARrFtz6PX8so/LVahjAEGqJynf66I=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMQZEaYQ+IJH/ELLz1fek3uNg+mn/I05qVEM XntNURhLN2JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTEAAKCRCLPIo+Aiko 1bazB/4rQfwT7rANVg/ITHSjKbzYEXRYCASDNAh5Tm6jCqnY1tjUjL+hf9U7J1Ez1ZWNwB+XG+s wBr7wDl7OknYk7UXCS3i6eiK9Rj1pLt8t2Wl8wMfGRygaoSve87CgUSx+QYdO2oIaW89zaeBQpb HPFxm5MTcduy/tKClGi2W/Wn/nIPOt0pVxqY6wp7H41H5r6PkJqtob98BYuZ1Fb3O2P7RQaxbk9 jfLfkba0+/XNp0vatEK+bV+WJW0+CIzUeXI6e5Gt1l13ySNg9CPB83Az6UsJnYiqfY6/JwH17dO 0ix3ruGfMvEbOMfDtxctW1VVqKLwVRMeQqnBJwtpQYiMO2hy X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=adxRWxot c=1 sm=1 tr=0 ts=6a30934d cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=iravrUNok-SDL5gDNRIA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: IeH8Q_huqEfYn8AaAhdBvi3JNPWKKBk3 X-Proofpoint-ORIG-GUID: IeH8Q_huqEfYn8AaAhdBvi3JNPWKKBk3 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX2WLOjNKBAo5J 0svoqF6c6r4Sw8KV9aN6QvL79hzBfGlp1U1fnZPFlDjD38XbtCU/rNUmcTGSsAx7PoXMKJgX6Gf E/RP/uO7abti+RB7Whk2qUZdQGWTwhA= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX71IjVnF2yUh+ OUVVMzPWi4KMk+G2bLOeXMhUJuUZSg1zMzXPlAAuNsVouBhU112Gl6cPQYHCVxAHZ6i7OuNQ02n f0ZY4TUiTcKn8vFI8TCblLM3b3sNSSDGj9cWOtBghH5QDB/rMry3QT3nuzLxAs5iAf0ROHKn3Gg 8xmboczfLah71PfMoQZ58LJCuLIZrF6h3mtSaZmS1jrjx3gHfzixJzShaxugfXbsoazituJIJXh KSdHmWLPO37EaPak7vqayOrPkMitmwnfrZDS/ed86sSf5Md4sv5/4cIjSwaarnh5PklSk4bCS6t aRxolN0Q08RajEdYjRKptgVQUNZ7kqUZt+Af2vxZfWL9t/LQXsF5fCI7fXGfH3+E8CqMUn8azIa WjlymomEgqMiGYeu2QAzROYgsbjnTK+LCZJEnE+FMjwcBzRkU9gq/Ax26j064OqwC88GpHkjo3k fin0pjhfY7TS8XbVHRg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 impostorscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 spamscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 From: Dikshita Agarwal Introduces AR50LT buffer size calculation for both encoder and decoder. Reuse the buffer size calculation which are common, while adding the AR50LT specific ones separately. Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_vpu_buffer.c | 401 +++++++++++++++++= ++++ drivers/media/platform/qcom/iris/iris_vpu_buffer.h | 37 ++ 2 files changed, 438 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.c index 4a39b8fef52b..ca03d6570513 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.c @@ -50,6 +50,32 @@ static u32 hfi_buffer_bin_h264d(u32 frame_width, u32 fra= me_height, u32 num_vpp_p return size_h264d_hw_bin_buffer(n_aligned_w, n_aligned_h, num_vpp_pipes); } =20 +static u32 size_h264d_hw_bin_buffer_ar50lt(u32 frame_width, u32 frame_heig= ht, u32 num_vpp_pipes) +{ + u32 size_yuv, size_bin_hdr, size_bin_res; + + size_yuv =3D ((frame_width * frame_height * 3) >> 1); + if (size_yuv <=3D 1920 * 1088 * 3 / 2) { + size_bin_hdr =3D size_yuv * H264_CABAC_HDR_RATIO_SM_TOT; + size_bin_res =3D size_yuv * H264_CABAC_RES_RATIO_SM_TOT; + } else { + size_bin_hdr =3D (size_yuv * 3) / 5; + size_bin_res =3D (size_yuv * 3) / 2; + } + size_bin_hdr =3D ALIGN(size_bin_hdr, DMA_ALIGNMENT); + size_bin_res =3D ALIGN(size_bin_res, DMA_ALIGNMENT); + + return size_bin_hdr + size_bin_res; +} + +static u32 hfi_buffer_bin_h264d_ar50lt(u32 frame_width, u32 frame_height, = u32 num_vpp_pipes) +{ + u32 n_aligned_h =3D ALIGN(frame_height, 16); + u32 n_aligned_w =3D ALIGN(frame_width, 16); + + return size_h264d_hw_bin_buffer_ar50lt(n_aligned_w, n_aligned_h, num_vpp_= pipes); +} + static u32 size_av1d_hw_bin_buffer(u32 frame_width, u32 frame_height, u32 = num_vpp_pipes) { u32 size_yuv, size_bin_hdr, size_bin_res; @@ -103,6 +129,21 @@ static u32 hfi_buffer_bin_vp9d(u32 frame_width, u32 fr= ame_height, u32 num_vpp_pi return _size * num_vpp_pipes; } =20 +static u32 hfi_buffer_bin_vp9d_ar50lt(u32 frame_width, u32 frame_height, u= 32 num_vpp_pipes) +{ + u32 size_yuv, size; + + size_yuv =3D ALIGN(frame_width, 16) * ALIGN(frame_height, 16) * 3 / 2; + size_yuv =3D ALIGN(size_yuv, DMA_ALIGNMENT); + + size =3D ALIGN(((((MAX(size_yuv, VPX_DECODER_FRAME_BIN_BUFFER_SIZE)) * 6)= / 5) / + num_vpp_pipes), DMA_ALIGNMENT) + + ALIGN((((MAX(size_yuv, VPX_DECODER_FRAME_BIN_BUFFER_SIZE)) * 4) / num_vp= p_pipes), + DMA_ALIGNMENT); + + return size * num_vpp_pipes; +} + static u32 hfi_buffer_bin_h265d(u32 frame_width, u32 frame_height, u32 num= _vpp_pipes) { u32 n_aligned_w =3D ALIGN(frame_width, 16); @@ -111,6 +152,32 @@ static u32 hfi_buffer_bin_h265d(u32 frame_width, u32 f= rame_height, u32 num_vpp_p return size_h265d_hw_bin_buffer(n_aligned_w, n_aligned_h, num_vpp_pipes); } =20 +static u32 size_h265d_hw_bin_buffer_ar50lt(u32 frame_width, u32 frame_heig= ht, u32 num_vpp_pipes) +{ + u32 size_yuv, size_bin_hdr, size_bin_res; + + size_yuv =3D ((frame_width * frame_height * 3) >> 1); + if (size_yuv <=3D ((BIN_BUFFER_THRESHOLD * 3) >> 1)) { + size_bin_hdr =3D size_yuv * H265_CABAC_HDR_RATIO_SM_TOT; + size_bin_res =3D size_yuv * H265_CABAC_RES_RATIO_SM_TOT; + } else { + size_bin_hdr =3D (size_yuv * 41) / 50; + size_bin_res =3D (size_yuv * 59) / 50; + } + size_bin_hdr =3D ALIGN(size_bin_hdr, DMA_ALIGNMENT); + size_bin_res =3D ALIGN(size_bin_res, DMA_ALIGNMENT); + + return size_bin_hdr + size_bin_res; +} + +static u32 hfi_buffer_bin_h265d_ar50lt(u32 frame_width, u32 frame_height, = u32 num_vpp_pipes) +{ + u32 n_aligned_w =3D ALIGN(frame_width, 16); + u32 n_aligned_h =3D ALIGN(frame_height, 16); + + return size_h265d_hw_bin_buffer_ar50lt(n_aligned_w, n_aligned_h, num_vpp_= pipes); +} + static u32 hfi_buffer_comv_h264d(u32 frame_width, u32 frame_height, u32 _c= omv_bufcount) { u32 frame_height_in_mbs =3D DIV_ROUND_UP(frame_height, 16); @@ -174,6 +241,14 @@ static u32 size_h264d_bse_cmd_buf(u32 frame_height) SIZE_H264D_BSE_CMD_PER_BUF; } =20 +static u32 size_h264d_bse_cmd_buf_ar50lt(u32 frame_height) +{ + u32 height =3D ALIGN(frame_height, 32); + + return min_t(u32, (DIV_ROUND_UP(height, 16) * 12), H264D_MAX_SLICE) * + SIZE_H264D_BSE_CMD_PER_BUF; +} + static u32 size_h265d_bse_cmd_buf(u32 frame_width, u32 frame_height) { u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * @@ -185,6 +260,18 @@ static u32 size_h265d_bse_cmd_buf(u32 frame_width, u32= frame_height) return _size; } =20 +static u32 size_h265d_bse_cmd_buf_ar50lt(u32 frame_width, u32 frame_height) +{ + u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * + (ALIGN(frame_height, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS)) * + NUM_HW_PIC_BUF, DMA_ALIGNMENT); + + _size =3D min_t(u32, _size, H265D_MAX_SLICE_AR50LT + 1); + _size =3D 2 * _size * SIZE_H265D_BSE_CMD_PER_BUF; + + return _size; +} + static u32 hfi_buffer_persist_h265d(u32 rpu_enabled) { return ALIGN((SIZE_SLIST_BUF_H265 * NUM_SLIST_BUF_H265 + @@ -195,6 +282,13 @@ static u32 hfi_buffer_persist_h265d(u32 rpu_enabled) DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_persist_h265d_ar50lt(void) +{ + return ALIGN((SIZE_SLIST_BUF_H265 * NUM_SLIST_BUF_H265 + + H265_NUM_TILE * sizeof(u32) + NUM_HW_PIC_BUF * SIZE_SEI_USERDATA), + DMA_ALIGNMENT); +} + static inline u32 hfi_iris3_vp9d_comv_size(void) { @@ -212,6 +306,13 @@ static u32 hfi_buffer_persist_vp9d(void) HDR10_HIST_EXTRADATA_SIZE; } =20 +static u32 hfi_buffer_persist_vp9d_ar50lt(void) +{ + return ALIGN(VP9_NUM_PROBABILITY_TABLE_BUF * VP9_PROB_TABLE_SIZE, DMA_ALI= GNMENT) + + ALIGN(hfi_iris3_vp9d_comv_size(), DMA_ALIGNMENT) + + ALIGN(MAX_SUPERFRAME_HEADER_LEN, DMA_ALIGNMENT); +} + static u32 size_h264d_vpp_cmd_buf(u32 frame_height) { u32 size, height =3D ALIGN(frame_height, 32); @@ -222,6 +323,16 @@ static u32 size_h264d_vpp_cmd_buf(u32 frame_height) return size > VPP_CMD_MAX_SIZE ? VPP_CMD_MAX_SIZE : size; } =20 +static u32 size_h264d_vpp_cmd_buf_ar50lt(u32 frame_height) +{ + u32 size, height =3D ALIGN(frame_height, 32); + + size =3D min_t(u32, (DIV_ROUND_UP(height, 16) * 12), H264D_MAX_SLICE) * + SIZE_H264D_VPP_CMD_PER_BUF; + + return size > VPP_CMD_MAX_SIZE ? VPP_CMD_MAX_SIZE : size; +} + static u32 hfi_buffer_persist_h264d(void) { return ALIGN(SIZE_SLIST_BUF_H264 * NUM_SLIST_BUF_H264 + @@ -230,6 +341,11 @@ static u32 hfi_buffer_persist_h264d(void) DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_persist_h264d_ar50lt(void) +{ + return ALIGN((SIZE_SLIST_BUF_H264 * NUM_SLIST_BUF_H264), DMA_ALIGNMENT); +} + static u32 hfi_buffer_persist_av1d(u32 max_width, u32 max_height, u32 tota= l_ref_count) { u32 comv_size, size; @@ -255,6 +371,17 @@ static u32 hfi_buffer_non_comv_h264d(u32 frame_width, = u32 frame_height, u32 num_ return ALIGN(size, DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_non_comv_h264d_ar50lt(u32 frame_width, u32 frame_hei= ght, u32 num_vpp_pipes) +{ + u32 size_bse =3D size_h264d_bse_cmd_buf_ar50lt(frame_height); + u32 size_vpp =3D size_h264d_vpp_cmd_buf_ar50lt(frame_height); + u32 size =3D ALIGN(size_bse, DMA_ALIGNMENT) + + ALIGN(size_vpp, DMA_ALIGNMENT) + + ALIGN(SIZE_HW_PIC(SIZE_H264D_HW_PIC_T), DMA_ALIGNMENT); + + return ALIGN(size, DMA_ALIGNMENT); +} + static u32 size_h265d_vpp_cmd_buf(u32 frame_width, u32 frame_height) { u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * @@ -269,6 +396,20 @@ static u32 size_h265d_vpp_cmd_buf(u32 frame_width, u32= frame_height) return _size; } =20 +static u32 size_h265d_vpp_cmd_buf_ar50lt(u32 frame_width, u32 frame_height) +{ + u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * + (ALIGN(frame_height, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS)) * + NUM_HW_PIC_BUF, DMA_ALIGNMENT); + _size =3D min_t(u32, _size, H265D_MAX_SLICE_AR50LT + 1); + _size =3D ALIGN(_size, 4); + _size =3D 2 * _size * SIZE_H265D_VPP_CMD_PER_BUF_AR50LT; + if (_size > VPP_CMD_MAX_SIZE) + _size =3D VPP_CMD_MAX_SIZE; + + return _size; +} + static u32 hfi_buffer_non_comv_h265d(u32 frame_width, u32 frame_height, u3= 2 num_vpp_pipes) { u32 _size_bse =3D size_h265d_bse_cmd_buf(frame_width, frame_height); @@ -285,6 +426,20 @@ static u32 hfi_buffer_non_comv_h265d(u32 frame_width, = u32 frame_height, u32 num_ return ALIGN(_size, DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_non_comv_h265d_ar50lt(u32 frame_width, u32 frame_hei= ght, u32 num_vpp_pipes) +{ + u32 _size_bse =3D size_h265d_bse_cmd_buf_ar50lt(frame_width, frame_height= ); + u32 _size_vpp =3D size_h265d_vpp_cmd_buf_ar50lt(frame_width, frame_height= ); + u32 _size =3D ALIGN(_size_bse, DMA_ALIGNMENT) + + ALIGN(_size_vpp, DMA_ALIGNMENT) + + ALIGN(2 * sizeof(u16) * + (ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS) * + (ALIGN(frame_height, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS), DMA_ALIGNM= ENT) + + ALIGN(SIZE_HW_PIC(SIZE_H265D_HW_PIC_T), DMA_ALIGNMENT); + + return ALIGN(_size, DMA_ALIGNMENT); +} + static u32 size_vpss_lb(u32 frame_width, u32 frame_height) { u32 opb_lb_wr_llb_y_buffer_size, opb_lb_wr_llb_uv_buffer_size; @@ -317,6 +472,13 @@ u32 size_h265d_lb_fe_top_data(u32 frame_width, u32 fra= me_height) (ALIGN(frame_width, 64) + 8) * 2; } =20 +static inline +u32 size_h265d_lb_fe_top_data_ar50lt(u32 frame_width, u32 frame_height) +{ + return ALIGN(MAX_FE_NBR_DATA_LUMA_LINE_BUFFER_SIZE * + (ALIGN(frame_width, 64) + 8), DMA_ALIGNMENT) * 2; +} + static inline u32 size_h265d_lb_fe_top_ctrl(u32 frame_width, u32 frame_height) { @@ -348,6 +510,17 @@ u32 size_h265d_lb_se_left_ctrl(u32 frame_width, u32 fr= ame_height) MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE)); } =20 +static inline +u32 size_h265d_lb_se_left_ctrl_ar50lt(u32 frame_width, u32 frame_height) +{ + return max_t(u32, ((frame_height + 16 - 1) / 8) * + MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE_AR50LT, + max_t(u32, ((frame_height + 32 - 1) / 8) * + MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE_AR50LT, + ((frame_height + 64 - 1) / 8) * + MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT)); +} + static inline u32 size_h265d_lb_pe_top_data(u32 frame_width, u32 frame_height) { @@ -355,6 +528,13 @@ u32 size_h265d_lb_pe_top_data(u32 frame_width, u32 fra= me_height) (ALIGN(frame_width, LCU_MIN_SIZE_PELS) / LCU_MIN_SIZE_PELS); } =20 +static inline +u32 size_h265d_lb_pe_top_data_ar50lt(u32 frame_width, u32 frame_height) +{ + return MAX_PE_NBR_DATA_LCU64_LINE_BUFFER_SIZE_AR50LT * + (ALIGN(frame_width, LCU_MIN_SIZE_PELS) / LCU_MIN_SIZE_PELS); +} + static inline u32 size_h265d_lb_vsp_top(u32 frame_width, u32 frame_height) { @@ -404,6 +584,29 @@ u32 hfi_buffer_line_h265d(u32 frame_width, u32 frame_h= eight, bool is_opb, u32 nu return ALIGN((_size + vpss_lb_size), DMA_ALIGNMENT); } =20 +static inline +u32 hfi_buffer_line_h265d_ar50lt(u32 frame_width, u32 frame_height, bool i= s_opb, u32 num_vpp_pipes) +{ + u32 size; + + size =3D ALIGN(size_h265d_lb_fe_top_data_ar50lt(frame_width, frame_height= ), DMA_ALIGNMENT) + + ALIGN(size_h265d_lb_fe_top_ctrl(frame_width, frame_height), DMA_ALIGNMEN= T) + + ALIGN(size_h265d_lb_fe_left_ctrl(frame_width, frame_height), + DMA_ALIGNMENT) * num_vpp_pipes + + ALIGN(size_h265d_lb_se_left_ctrl_ar50lt(frame_width, frame_height), + DMA_ALIGNMENT) * num_vpp_pipes + + ALIGN(size_h265d_lb_se_top_ctrl(frame_width, frame_height), DMA_ALIGNMEN= T) + + ALIGN(size_h265d_lb_pe_top_data_ar50lt(frame_width, frame_height), DMA_A= LIGNMENT) + + ALIGN(size_h265d_lb_vsp_top(frame_width, frame_height), DMA_ALIGNMENT) + + ALIGN(size_h265d_lb_vsp_left(frame_width, frame_height), + DMA_ALIGNMENT) * num_vpp_pipes + + ALIGN(size_h265d_lb_recon_dma_metadata_wr(frame_width, frame_height), + DMA_ALIGNMENT) * 4 + + ALIGN(size_h265d_qp(frame_width, frame_height), DMA_ALIGNMENT); + + return ALIGN(size, DMA_ALIGNMENT); +} + static inline u32 size_vpxd_lb_fe_left_ctrl(u32 frame_width, u32 frame_height) { @@ -438,6 +641,17 @@ u32 size_vpxd_lb_se_left_ctrl(u32 frame_width, u32 fra= me_height) MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE)); } =20 +static inline +u32 size_vpxd_lb_se_left_ctrl_ar50lt(u32 frame_width, u32 frame_height) +{ + return max_t(u32, ((frame_height + 15) >> 4) * + MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE_AR50LT, + max_t(u32, ((frame_height + 31) >> 5) * + MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE_AR50LT, + ((frame_height + 63) >> 6) * + MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT)); +} + static inline u32 size_vpxd_lb_recon_dma_metadata_wr(u32 frame_width, u32 frame_height) { @@ -492,6 +706,19 @@ u32 hfi_iris3_vp9d_lb_size(u32 frame_width, u32 frame_= height, u32 num_vpp_pipes) ALIGN(size_vp9d_qp(frame_width, frame_height), DMA_ALIGNMENT); } =20 +static inline +u32 hfi_ar50lt_vp9d_lb_size(u32 frame_width, u32 frame_height, u32 num_vpp= _pipes) +{ + return ALIGN(size_vpxd_lb_fe_left_ctrl(frame_width, frame_height), DMA_AL= IGNMENT) * + num_vpp_pipes + + ALIGN(size_vpxd_lb_se_left_ctrl_ar50lt(frame_width, frame_height), DMA_A= LIGNMENT) * + num_vpp_pipes + + ALIGN(size_vp9d_lb_vsp_top(frame_width, frame_height), DMA_ALIGNMENT) + + ALIGN(size_vpxd_lb_se_top_ctrl(frame_width, frame_height), DMA_ALIGNMENT= ) + + ALIGN(size_vp9d_lb_pe_top_data(frame_width, frame_height), DMA_ALIGNMENT= ) + + ALIGN(size_vp9d_lb_fe_top_data(frame_width, frame_height), DMA_ALIGNMENT= ); +} + static inline u32 hfi_buffer_line_vp9d(u32 frame_width, u32 frame_height, u32 _yuv_bufco= unt_min, bool is_opb, u32 num_vpp_pipes) @@ -507,6 +734,13 @@ u32 hfi_buffer_line_vp9d(u32 frame_width, u32 frame_he= ight, u32 _yuv_bufcount_mi return _lb_size + vpss_lb_size + 4096; } =20 +static inline +u32 hfi_buffer_line_vp9d_ar50lt(u32 frame_width, u32 frame_height, u32 _yu= v_bufcount_min, + bool is_opb, u32 num_vpp_pipes) +{ + return hfi_ar50lt_vp9d_lb_size(frame_width, frame_height, num_vpp_pipes); +} + static u32 hfi_buffer_line_h264d(u32 frame_width, u32 frame_height, bool is_opb, u32 num_vpp_pipes) { @@ -529,6 +763,25 @@ static u32 hfi_buffer_line_h264d(u32 frame_width, u32 = frame_height, return ALIGN((size + vpss_lb_size), DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_line_h264d_ar50lt(u32 frame_width, u32 frame_height, + bool is_opb, u32 num_vpp_pipes) +{ + u32 size; + + size =3D ALIGN(size_h264d_lb_fe_top_data_ar50lt(frame_width), DMA_ALIGNME= NT) + + ALIGN(size_h264d_lb_fe_top_ctrl_ar50lt(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_fe_left_ctrl(frame_height), DMA_ALIGNMENT) * num_vpp= _pipes + + ALIGN(size_h264d_lb_se_top_ctrl_ar50lt(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_se_left_ctrl_ar50lt(frame_height), DMA_ALIGNMENT) * + num_vpp_pipes + + ALIGN(size_h264d_lb_pe_top_data_ar50lt(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_vsp_top(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_recon_dma_metadata_wr(frame_height), DMA_ALIGNMENT) = * 2 + + ALIGN(size_h264d_qp(frame_width, frame_height), DMA_ALIGNMENT); + + return ALIGN(size, DMA_ALIGNMENT); +} + static u32 size_av1d_lb_opb_wr1_nv12_ubwc(u32 frame_width, u32 frame_heigh= t) { u32 size, y_width, y_width_a =3D 128; @@ -724,6 +977,23 @@ static u32 iris_vpu_dec_bin_size(struct iris_inst *ins= t) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_bin_size(struct iris_inst *inst) +{ + u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; + struct v4l2_format *f =3D inst->fmt_src; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_bin_h264d_ar50lt(width, height, num_vpp_pipes); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_bin_h265d_ar50lt(width, height, num_vpp_pipes); + else if (inst->codec =3D=3D V4L2_PIX_FMT_VP9) + return hfi_buffer_bin_vp9d_ar50lt(width, height, num_vpp_pipes); + + return 0; +} + static u32 iris_vpu_dec_comv_size(struct iris_inst *inst) { u32 num_comv =3D VIDEO_MAX_FRAME; @@ -785,6 +1055,18 @@ static u32 iris_vpu_dec_persist_size(struct iris_inst= *inst) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_persist_size(struct iris_inst *inst) +{ + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_persist_h264d_ar50lt(); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_persist_h265d_ar50lt(); + else if (inst->codec =3D=3D V4L2_PIX_FMT_VP9) + return hfi_buffer_persist_vp9d_ar50lt(); + + return 0; +} + static u32 iris_vpu_dec_dpb_size(struct iris_inst *inst) { if (iris_split_mode_enabled(inst)) @@ -808,6 +1090,21 @@ static u32 iris_vpu_dec_non_comv_size(struct iris_ins= t *inst) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_non_comv_size(struct iris_inst *inst) +{ + u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; + struct v4l2_format *f =3D inst->fmt_src; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_non_comv_h264d_ar50lt(width, height, num_vpp_pipes); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_non_comv_h265d_ar50lt(width, height, num_vpp_pipes); + + return 0; +} + static u32 iris_vpu_dec_line_size(struct iris_inst *inst) { u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; @@ -833,6 +1130,29 @@ static u32 iris_vpu_dec_line_size(struct iris_inst *i= nst) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_line_size(struct iris_inst *inst) +{ + u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; + struct v4l2_format *f =3D inst->fmt_src; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + bool is_opb =3D false; + u32 out_min_count =3D inst->buffers[BUF_OUTPUT].min_count; + + if (iris_split_mode_enabled(inst)) + is_opb =3D true; + + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_line_h264d_ar50lt(width, height, is_opb, num_vpp_pipes= ); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_line_h265d_ar50lt(width, height, is_opb, num_vpp_pipes= ); + else if (inst->codec =3D=3D V4L2_PIX_FMT_VP9) + return hfi_buffer_line_vp9d_ar50lt(width, height, out_min_count, is_opb, + num_vpp_pipes); + + return 0; +} + static u32 iris_vpu_dec_scratch1_size(struct iris_inst *inst) { return iris_vpu_dec_comv_size(inst) + @@ -840,6 +1160,13 @@ static u32 iris_vpu_dec_scratch1_size(struct iris_ins= t *inst) iris_vpu_dec_line_size(inst); } =20 +static u32 iris_vpu_ar50lt_dec_scratch1_size(struct iris_inst *inst) +{ + return iris_vpu_dec_comv_size(inst) + + iris_vpu_ar50lt_dec_non_comv_size(inst) + + iris_vpu_ar50lt_dec_line_size(inst); +} + static inline u32 iris_vpu_enc_get_bitstream_width(struct iris_inst *inst) { if (is_rotation_90_or_270(inst)) @@ -1470,6 +1797,15 @@ u32 hfi_buffer_dpb_enc(u32 frame_width, u32 frame_he= ight, bool is_ten_bit) return size; } =20 +static inline +u32 hfi_buffer_dpb_enc_ar50lt(u32 frame_width, u32 frame_height, bool is_t= en_bit) +{ + if (!is_ten_bit) + return size_enc_ref_buffer(frame_width, frame_height); + else + return size_enc_ten_bit_ref_buffer(frame_width, frame_height); +} + static u32 iris_vpu_enc_arp_size(struct iris_inst *inst) { return HFI_BUFFER_ARP_ENC; @@ -1494,6 +1830,16 @@ u32 hfi_buffer_vpss_enc(u32 dswidth, u32 dsheight, b= ool ds_enable, return 0; } =20 +static inline +u32 hfi_buffer_vpss_enc_ar50lt(u32 dswidth, u32 dsheight, bool ds_enable, + u32 blur, bool is_ten_bit) +{ + if (ds_enable || blur) + return hfi_buffer_dpb_enc_ar50lt(dswidth, dsheight, is_ten_bit); + + return 0; +} + static inline u32 hfi_buffer_scratch1_enc(u32 frame_width, u32 frame_heigh= t, u32 lcu_size, u32 num_ref, bool ten_bit, u32 num_vpp_pipes, @@ -1752,6 +2098,16 @@ static u32 iris_vpu_enc_vpss_size(struct iris_inst *= inst) return hfi_buffer_vpss_enc(width, height, ds_enable, 0, 0); } =20 +static u32 iris_vpu_ar50lt_enc_vpss_size(struct iris_inst *inst) +{ + u32 ds_enable =3D is_scaling_enabled(inst); + struct v4l2_format *f =3D inst->fmt_dst; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + + return hfi_buffer_vpss_enc_ar50lt(width, height, ds_enable, 0, 0); +} + static inline u32 size_dpb_opb(u32 height, u32 lcu_size) { u32 max_tile_height =3D ((height + lcu_size - 1) / lcu_size) * lcu_size += 8; @@ -2207,6 +2563,51 @@ u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *= inst, enum iris_buffer_type return inst->buffers[buffer_type].size; } =20 +u32 iris_vpu_ar50lt_gen2_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type) +{ + const struct iris_vpu_buf_type_handle *buf_type_handle_arr =3D NULL; + u32 size =3D 0, buf_type_handle_size =3D 0, i; + + static const struct iris_vpu_buf_type_handle dec_internal_buf_type_handle= [] =3D { + {BUF_BIN, iris_vpu_ar50lt_dec_bin_size }, + {BUF_COMV, iris_vpu_dec_comv_size }, + {BUF_NON_COMV, iris_vpu_ar50lt_dec_non_comv_size }, + {BUF_LINE, iris_vpu_ar50lt_dec_line_size }, + {BUF_PERSIST, iris_vpu_ar50lt_dec_persist_size }, + {BUF_DPB, iris_vpu_dec_dpb_size }, + {BUF_SCRATCH_1, iris_vpu_ar50lt_dec_scratch1_size }, + {BUF_PARTIAL, iris_vpu_dec_partial_size }, + }; + + static const struct iris_vpu_buf_type_handle enc_internal_buf_type_handle= [] =3D { + {BUF_BIN, iris_vpu_enc_bin_size }, + {BUF_COMV, iris_vpu_enc_comv_size }, + {BUF_NON_COMV, iris_vpu_enc_non_comv_size }, + {BUF_LINE, iris_vpu_enc_line_size }, + {BUF_ARP, iris_vpu_enc_arp_size }, + {BUF_VPSS, iris_vpu_ar50lt_enc_vpss_size }, + {BUF_SCRATCH_1, iris_vpu_enc_scratch1_size }, + {BUF_SCRATCH_2, iris_vpu_enc_scratch2_size }, + }; + + if (inst->domain =3D=3D DECODER) { + buf_type_handle_size =3D ARRAY_SIZE(dec_internal_buf_type_handle); + buf_type_handle_arr =3D dec_internal_buf_type_handle; + } else if (inst->domain =3D=3D ENCODER) { + buf_type_handle_size =3D ARRAY_SIZE(enc_internal_buf_type_handle); + buf_type_handle_arr =3D enc_internal_buf_type_handle; + } + + for (i =3D 0; i < buf_type_handle_size; i++) { + if (buf_type_handle_arr[i].type =3D=3D buffer_type) { + size =3D buf_type_handle_arr[i].handle(inst); + break; + } + } + + return size; +} + static u32 internal_buffer_count(struct iris_inst *inst, enum iris_buffer_type buffer_type) { diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.h index 1d07137c70cd..2085e316a6bd 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.h @@ -61,17 +61,26 @@ struct iris_inst; #define MAX_FE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE 64 #define MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE (128 / 8) #define MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE (128 / 8) +#define MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE_AR50LT (8 / 8) +#define MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE_AR50LT (16 / 8) +#define MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT (32 / 8) #define VP9_UDC_HEADER_BUF_SIZE (3 * 128) =20 #define SIZE_SEI_USERDATA 4096 #define SIZE_DOLBY_RPU_METADATA (41 * 1024) #define H264_CABAC_HDR_RATIO_HD_TOT 1 #define H264_CABAC_RES_RATIO_HD_TOT 3 +#define H264_CABAC_HDR_RATIO_SM_TOT 1 +#define H264_CABAC_RES_RATIO_SM_TOT 2 #define H265D_MAX_SLICE 3600 +#define H265D_MAX_SLICE_AR50LT 600 #define SIZE_H265D_HW_PIC_T SIZE_H264D_HW_PIC_T #define H265_CABAC_HDR_RATIO_HD_TOT 2 #define H265_CABAC_RES_RATIO_HD_TOT 2 +#define H265_CABAC_HDR_RATIO_SM_TOT 1 +#define H265_CABAC_RES_RATIO_SM_TOT 6 #define SIZE_H265D_VPP_CMD_PER_BUF (256) +#define SIZE_H265D_VPP_CMD_PER_BUF_AR50LT (192) #define SIZE_THREE_DIMENSION_USERDATA 768 #define SIZE_H265D_ARP 9728 =20 @@ -81,6 +90,7 @@ struct iris_inst; #define VPX_DECODER_FRAME_BIN_DENOMINATOR 2 =20 #define VPX_DECODER_FRAME_BIN_RES_BUDGET_RATIO (3 / 2) +#define VPX_DECODER_FRAME_BIN_BUFFER_SIZE (1024 * 1024) =20 #define SIZE_H264D_HW_PIC_T (BIT(11)) =20 @@ -99,6 +109,7 @@ struct iris_inst; #define MAX_FE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE 64 #define MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE 16 #define MAX_PE_NBR_DATA_LCU64_LINE_BUFFER_SIZE 384 +#define MAX_PE_NBR_DATA_LCU64_LINE_BUFFER_SIZE_AR50LT 176 #define MAX_FE_NBR_DATA_LUMA_LINE_BUFFER_SIZE 640 =20 #define AV1_CABAC_HDR_RATIO_HD_TOT 2 @@ -155,11 +166,21 @@ static inline u32 size_h264d_lb_fe_top_data(u32 frame= _width) return MAX_FE_NBR_DATA_LUMA_LINE_BUFFER_SIZE * ALIGN(frame_width, 16) * 3; } =20 +static inline u32 size_h264d_lb_fe_top_data_ar50lt(u32 frame_width) +{ + return 16 * ALIGN(frame_width, 16) * 2; +} + static inline u32 size_h264d_lb_fe_top_ctrl(u32 frame_width) { return MAX_FE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE * DIV_ROUND_UP(frame_width,= 16); } =20 +static inline u32 size_h264d_lb_fe_top_ctrl_ar50lt(u32 frame_width) +{ + return 16 * DIV_ROUND_UP(frame_width, 16); +} + static inline u32 size_h264d_lb_fe_left_ctrl(u32 frame_height) { return MAX_FE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE * DIV_ROUND_UP(frame_height= , 16); @@ -170,16 +191,31 @@ static inline u32 size_h264d_lb_se_top_ctrl(u32 frame= _width) return MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE * DIV_ROUND_UP(frame_width,= 16); } =20 +static inline u32 size_h264d_lb_se_top_ctrl_ar50lt(u32 frame_width) +{ + return MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT * DIV_ROUND_UP(frame= _width, 16); +} + static inline u32 size_h264d_lb_se_left_ctrl(u32 frame_height) { return MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE * DIV_ROUND_UP(frame_height= , 16); } =20 +static inline u32 size_h264d_lb_se_left_ctrl_ar50lt(u32 frame_height) +{ + return MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT * DIV_ROUND_UP(frame= _height, 16); +} + static inline u32 size_h264d_lb_pe_top_data(u32 frame_width) { return MAX_PE_NBR_DATA_LCU64_LINE_BUFFER_SIZE * DIV_ROUND_UP(frame_width,= 16); } =20 +static inline u32 size_h264d_lb_pe_top_data_ar50lt(u32 frame_width) +{ + return 64 * DIV_ROUND_UP(frame_width, 16); +} + static inline u32 size_h264d_lb_vsp_top(u32 frame_width) { return (DIV_ROUND_UP(frame_width, 16) << 7); @@ -289,6 +325,7 @@ u32 iris_vpu_buf_size(struct iris_inst *inst, enum iris= _buffer_type buffer_type) u32 iris_vpu33_buf_size(struct iris_inst *inst, enum iris_buffer_type buff= er_type); u32 iris_vpu4x_buf_size(struct iris_inst *inst, enum iris_buffer_type buff= er_type); u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type); +u32 iris_vpu_ar50lt_gen2_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type); int iris_vpu_buf_count(struct iris_inst *inst, enum iris_buffer_type buffe= r_type); =20 #endif --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 502212264D6 for ; Tue, 16 Jun 2026 00:05:37 +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=1781568340; cv=none; b=dSlnbQsrpy5a4gU+ZpXJLKr8SQJ4sYnmTHM/mcdsOkcKX+GNWBL0+NnktqJvmTxvAmtrVw0ketLxxWz2swwfKMWgA1imicusW9fnMJXC8UPZJfVcvN7Gbe0C2hm0DHGesxYDft3wVghIXVDh7nDZpQk2tsvO1zPqYYT3PRIO198= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568340; c=relaxed/simple; bh=7e9Z74Q1L0nekJViAOnYD+dOHRBzFO189DFrri+T0ok=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uG+2EbzOpYB8kLzBsxH3ihEycEKk6Ck0DkLlkM2J7f+9AeH4KXap7SXIinZ79r1BloQVwd/p5RkjiJW42LBlH1mhYmTdZZ9EmDfNQWJlK8JxNZFKpjW66Cp/2Tmi5QZXGpghelvc3mxb/5fLIdHg71U3JqzXt/sNlYNL8yZaSVM= 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=BVMiuk3I; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FQf/zYnI; 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="BVMiuk3I"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FQf/zYnI" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65FIx1lM3577893 for ; Tue, 16 Jun 2026 00:05:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= NSZIeR/PALw0s5YexEl8YedZMsbjMIImpBw2uZ0uvz8=; b=BVMiuk3I0ijXKq56 235VD1mjQJRjTGpOh6gzqZ5JH8gjwaP7+LgADXeUhsTLDBUlXrev3dpJ7n85BlTh kR+FhoRtyfYeorVTGxXbjV24Sd6FroHrFAdVAESns/q7M+wRKsL7lv2REgkU7ZCJ 1KblPkMMJMaVDLioDFGKdrgU2k02ImR/2riMV5IP1WlmBI6crwptDT4vYEVgm1vE KLCNRAIun18Ivq3aTJf851UaHJrpbnK15SbrQ/wUpsmqWoMsQ72S9NWC+gs9nN4b goU2FHy4ySG91hIASf5ldkqTem8uhTCtUPzKojHv+u5e8BzGCaeALtvwwmHiQ3gw sbEgoQ== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ete983tmr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:36 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-91574ad681eso611975485a.0 for ; Mon, 15 Jun 2026 17:05:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568336; x=1782173136; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=NSZIeR/PALw0s5YexEl8YedZMsbjMIImpBw2uZ0uvz8=; b=FQf/zYnIEHQqZ66hMFzvdlscaq0oYTPEeAo3hmuSWVSggD6HClkh5/hLIFhC2NGT8w VGGRM7NdFCrCZUQSwJgN6yYOveVHhwCoHRE5jC+SUGfa3AB8a8/Oi3JPn/Gx8NSDxl1v oJExxvC+QhRx0AmxHbOkgGwoyn9D5zfJ3DqUoBjVASmRjL2nSiN+lmqYNC9XQCbEFDTo q6sy2i87YjZjyDnXPqIOq+nQwoPG5TsVsWPgZJ3Wr1EReorDrsEgjXIDZ6CmTZ5du14D FGXUuOP52Qn8fL0t4zvlQkoIC9aPeMCEzBg/QHkZO7NA8TOFRGwxnxyLbfLx5n8KLYp6 Uzrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568336; x=1782173136; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=NSZIeR/PALw0s5YexEl8YedZMsbjMIImpBw2uZ0uvz8=; b=iULjlAN5rSCXM1oVmtsJlys1whm5sVaOTFUKc3Mp9z43ooQbY2hJneX4VFd7Dw4Jbh d7iyKzseo+HwZHHY973ZT20RM8Cng+G5DRt7+DE3m+zVT3UoRqM3/6s49HqyDUTDSZzL n3Os66VtuDYjFptZmTuCw99/9hKqRSo6vEE2nwfgYfxFLmh8nNnkPVeCH319fLYz+8SJ FXbLNX81SlnL8jBveLkQD1X+dtLL3omFgW8Jsoj6g79xMUU0gatzjwnGAVEY5dHkYjw5 ppLmLiocdZmOQIVZJhiTbTESqLDAc5NEN02kE80mj2Ukujx7boP/KLRV/yqfT3F5MS8k m7ug== X-Forwarded-Encrypted: i=1; AFNElJ9jy0gPbTcHViMG+0fipG2M2PHG8QRiqazZFwJQ1xSxZzSUvXfsIz0waL6xLrE/Z+zuFaP72/ME7qfuUCE=@vger.kernel.org X-Gm-Message-State: AOJu0YzttXlZYO/FX9mJpyZycihkOlAP4onaNJrwC/bneM1EjD7mTiQI 91SIFekdjpkAmVJs5T/r6SKaYafV3DHfgYOCJz8zXIen0iy70fgM4yVMTsmmVV/+HoEJaQZS4u+ WRebk6/FOvF5bd8IjiDesY3Msg7F9aiIi8q4KyxJ5N+5ytTAzbb4JRdnbXmpCQzMnSrs= X-Gm-Gg: Acq92OHSBe/7i1LMXT9Iilpooaad5d2ALc7qefluc3Hdc83GyK/qnRF88DxVTn80JTV TUAxORq3qUEd9YRDSsdqB5ovJjfYZ7itYcm/7Z3oFEm8766osLREGaWVMl5xLElO1FG8W6qRqba S/6OLurKDjE9a8pKyGoJxOheFtMDue+sYkSnt4wYMn5oNFlgRJRJ7y6wT7NGLSbOoXH5+MHOHf5 Wpk6h4oQX9fBzavU6xB42+6g7TzaiAAUck9iJLJ02Xy1c07aCFeSU4M0zAIBWrAUXJgK+bjxrQh SnMYEl8mC/WshAKfgsOx060qoQWD6rPGnBunqYYdMH5uZWCmQpLt075MM9foMGY52NlCTlHzBbj V3eDgNQj3Vr8aMmedCxzXX8+O6ix8QtrL8sO3kH51sbZ3ZfjF/Z/2L5r1mQIP1AITr6GbPb+2Mq STWy1PI88GXwtMTO7gwaO+15+G7HQl/x1TAo4= X-Received: by 2002:a05:620a:27c6:b0:914:bc2f:baf7 with SMTP id af79cd13be357-91c45511b20mr208205385a.4.1781568335381; Mon, 15 Jun 2026 17:05:35 -0700 (PDT) X-Received: by 2002:a05:620a:27c6:b0:914:bc2f:baf7 with SMTP id af79cd13be357-91c45511b20mr208199885a.4.1781568334757; Mon, 15 Jun 2026 17:05:34 -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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:33 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:41 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-14-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=22525; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=LPduOF4U48dDdNMZXEau7vak3Qu2qM+bqRiM2DzBGS4=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMQ7Qlr2KDxOrwOifBBhOdhtCpIY/yGC5x6p LtmRJbpQ82JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTEAAKCRCLPIo+Aiko 1ajMB/9Azdcnyw5QFju3SWVZKMjGNM7Rw/kZW/8ii5z/U/YQ7EqgiJVZGEsUaFDCXuaSdUJ5+G1 oL/vnMpd5wocoJ+fyw760SUc8YDcwZGSUBngE/iO5iYwOIs5fMoR1d1qb08kxrtlbSS860Q/WeJ QBN07SsVzffKHqbbbYPjd5Yhb+uwzfpnis+gnNyXhJZmLRe4ZnHQrAcjOnjr2r+3n8Cvqw1HbrA aVKSiMluJjhGjTznO0DWTbKAte5ziDJ9uSc0y/a0CqV6EPSsjKrFn8N7AAjPhXgnnctd2SaYajE BldZwc6vEjKoJIU5yBKFNjVNbpk57qNoBw6hUSz0ijW4Auof X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=V5tNF+ni c=1 sm=1 tr=0 ts=6a309350 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=GUEZgOuAT4xZVSXxJacA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-GUID: PhULpXwheBw5zsBylcjk12bD3ryy7qe0 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX5frN6WP5YRef LN0xs7Tc9BEEEPZxQ6Wd9QOJYnYKVchQucY1uK8qijwstPd4P8pMrE9ruCH/CamUI2mEJODAAcI tskhFntwg0cTzdyoMEt1CHMecsQnAq8= X-Proofpoint-ORIG-GUID: PhULpXwheBw5zsBylcjk12bD3ryy7qe0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX6mghuLiajb5o rzNjkjneYm/Yqyp1P+U19VvP2BHlXmbHh3JC4uQDSdWJa8YbHm4cWSUUiJOlQ5MvFE5UIT6XqFY uC7dPFEA0qBXnsiAiR+fAE+FtP5NZjJTyPpha2eQ0SN89H2q/Q4gnwdnL4QQJPy/IFMZkILWcaG ZMI7AoiRFrrSVS+nhlYo2pwmjsN5VkR3T+xCBhj5PNMdv5QgGBJlsNDwT2SoWQKT1wMcO5BYTJh ghHaNykMiK+2pcCaKLIDALHn53IAg9MSiaKlPDp8PvS4629NOCgtjwH1hLk4ERNUFrrAQKY5XXn Oe8952mJyTumTMKA6DYb4Aux8UwkOQYbMSfc4Ldx9Y9nFCvSphdhUen0faNtDQGInWmjtK2ycYw n7t5xfCLPB7hcvmgd/GdfZs0j4mR35jZjibgwF7SXVjt6lZDnneKsOAMDnElvxA2rl7ZmeZJy4S a24CrO1p1RAsyuiJ/Bw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 phishscore=0 malwarescore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 From: Dikshita Agarwal Agatti platform is using HFI Gen1 firmware, which is considered to be legacy firmware branch. Follow the example of the SC7280 platform and extend the driver with supporting both HFI Gen1 and Gen2 firmwares for this platform. Like HFI Gen1 this firmware doesn't have PIPE property (but unlike Gen1 buffer sizes are calculated on the driver side). Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_hfi_gen2.c | 613 +++++++++++++++++= ++++ .../platform/qcom/iris/iris_platform_common.h | 1 + .../platform/qcom/iris/iris_platform_vpu_ar50lt.c | 11 +- 3 files changed, 623 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c b/drivers/med= ia/platform/qcom/iris/iris_hfi_gen2.c index acc0ed8adda1..f89245269e8c 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2.c @@ -1118,3 +1118,616 @@ const struct iris_firmware_data iris_hfi_gen2_data = =3D { .enc_op_int_buf_tbl =3D sm8550_enc_op_int_buf_tbl, .enc_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_enc_op_int_buf_tbl), }; + +static const struct platform_inst_fw_cap inst_fw_cap_gen2_ar50lt_dec[] =3D= { + { + .cap_id =3D PROFILE_H264, + .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH), + .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D PROFILE_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE), + .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D PROFILE_VP9, + .min =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, + .max =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_0), + .value =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D LEVEL_H264, + .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2), + .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D LEVEL_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D LEVEL_VP9, + .min =3D V4L2_MPEG_VIDEO_VP9_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_VP9_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_VP9_LEVEL_4_1, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D TIER, + .min =3D V4L2_MPEG_VIDEO_HEVC_TIER_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_TIER_HIGH), + .value =3D V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, + .hfi_id =3D HFI_PROP_TIER, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D INPUT_BUF_HOST_MAX_COUNT, + .min =3D DEFAULT_MAX_HOST_BUF_COUNT, + .max =3D DEFAULT_MAX_HOST_BURST_BUF_COUNT, + .step_or_mask =3D 1, + .value =3D DEFAULT_MAX_HOST_BUF_COUNT, + .hfi_id =3D HFI_PROP_BUFFER_HOST_MAX_COUNT, + .flags =3D CAP_FLAG_INPUT_PORT, + .set =3D iris_set_u32, + }, + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROP_STAGE, + .set =3D iris_set_stage, + }, + { + .cap_id =3D POC, + .min =3D 0, + .max =3D 2, + .step_or_mask =3D 1, + .value =3D 1, + .hfi_id =3D HFI_PROP_PIC_ORDER_CNT_TYPE, + }, + { + .cap_id =3D CODED_FRAMES, + .min =3D CODED_FRAMES_PROGRESSIVE, + .max =3D CODED_FRAMES_PROGRESSIVE, + .step_or_mask =3D 0, + .value =3D CODED_FRAMES_PROGRESSIVE, + .hfi_id =3D HFI_PROP_CODED_FRAMES, + }, + { + .cap_id =3D BIT_DEPTH, + .min =3D BIT_DEPTH_8, + .max =3D BIT_DEPTH_8, + .step_or_mask =3D 1, + .value =3D BIT_DEPTH_8, + .hfi_id =3D HFI_PROP_LUMA_CHROMA_BIT_DEPTH, + }, + { + .cap_id =3D RAP_FRAME, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 1, + .hfi_id =3D HFI_PROP_DEC_START_FROM_RAP_FRAME, + .flags =3D CAP_FLAG_INPUT_PORT, + .set =3D iris_set_u32, + }, +}; + +static const struct platform_inst_fw_cap inst_fw_cap_gen2_ar50lt_enc[] =3D= { + { + .cap_id =3D PROFILE_H264, + .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH), + .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile, + }, + { + .cap_id =3D PROFILE_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE), + .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile, + }, + { + .cap_id =3D LEVEL_H264, + .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2), + .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_level, + }, + { + .cap_id =3D LEVEL_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_level, + }, + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROP_STAGE, + .set =3D iris_set_stage, + }, + { + .cap_id =3D HEADER_MODE, + .min =3D V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, + .max =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) | + BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME), + .value =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .hfi_id =3D HFI_PROP_SEQ_HEADER_MODE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_header_mode_gen2, + }, + { + .cap_id =3D PREPEND_SPSPPS_TO_IDR, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 0, + }, + { + .cap_id =3D BITRATE, + .min =3D 1, + .max =3D BITRATE_MAX_AR50LT, + .step_or_mask =3D 1, + .value =3D BITRATE_DEFAULT_AR50LT, + .hfi_id =3D HFI_PROP_TOTAL_BITRATE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_bitrate_gen2, + }, + { + .cap_id =3D BITRATE_PEAK, + .min =3D 1, + .max =3D BITRATE_MAX_AR50LT, + .step_or_mask =3D 1, + .value =3D BITRATE_DEFAULT_AR50LT, + .hfi_id =3D HFI_PROP_TOTAL_PEAK_BITRATE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_peak_bitrate, + }, + { + .cap_id =3D BITRATE_MODE, + .min =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .max =3D V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) | + BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR), + .value =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .hfi_id =3D HFI_PROP_RATE_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_bitrate_mode_gen2, + }, + { + .cap_id =3D FRAME_SKIP_MODE, + .min =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .max =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) | + BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT) | + BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT), + .value =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + }, + { + .cap_id =3D FRAME_RC_ENABLE, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 1, + }, + { + .cap_id =3D GOP_SIZE, + .min =3D 0, + .max =3D INT_MAX, + .step_or_mask =3D 1, + .value =3D 2 * DEFAULT_FPS - 1, + .hfi_id =3D HFI_PROP_MAX_GOP_FRAMES, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_u32, + }, + { + .cap_id =3D ENTROPY_MODE, + .min =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .max =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) | + BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC), + .value =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, + .hfi_id =3D HFI_PROP_CABAC_SESSION, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_entropy_mode_gen2, + }, + { + .cap_id =3D MIN_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROP_MIN_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_min_qp, + }, + { + .cap_id =3D MIN_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROP_MIN_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_min_qp, + }, + { + .cap_id =3D MAX_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + .hfi_id =3D HFI_PROP_MAX_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_max_qp, + }, + { + .cap_id =3D MAX_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + .hfi_id =3D HFI_PROP_MAX_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_max_qp, + }, + { + .cap_id =3D I_FRAME_MIN_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D I_FRAME_MIN_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D P_FRAME_MIN_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D P_FRAME_MIN_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D B_FRAME_MIN_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D B_FRAME_MIN_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D I_FRAME_MAX_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D I_FRAME_MAX_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D P_FRAME_MAX_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D P_FRAME_MAX_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D B_FRAME_MAX_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D B_FRAME_MAX_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D I_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D I_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D P_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D P_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D B_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D B_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D INPUT_BUF_HOST_MAX_COUNT, + .min =3D DEFAULT_MAX_HOST_BUF_COUNT, + .max =3D DEFAULT_MAX_HOST_BURST_BUF_COUNT, + .step_or_mask =3D 1, + .value =3D DEFAULT_MAX_HOST_BUF_COUNT, + .hfi_id =3D HFI_PROP_BUFFER_HOST_MAX_COUNT, + .flags =3D CAP_FLAG_INPUT_PORT, + .set =3D iris_set_u32, + }, + { + .cap_id =3D OUTPUT_BUF_HOST_MAX_COUNT, + .min =3D DEFAULT_MAX_HOST_BUF_COUNT, + .max =3D DEFAULT_MAX_HOST_BURST_BUF_COUNT, + .step_or_mask =3D 1, + .value =3D DEFAULT_MAX_HOST_BUF_COUNT, + .hfi_id =3D HFI_PROP_BUFFER_HOST_MAX_COUNT, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_u32, + }, + { + .cap_id =3D IR_TYPE, + .min =3D V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM, + .max =3D V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM, + .step_or_mask =3D BIT(V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RAND= OM), + .value =3D V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + }, + { + .cap_id =3D IR_PERIOD, + .min =3D 0, + .max =3D INT_MAX, + .step_or_mask =3D 1, + .value =3D 0, + .flags =3D CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_ir_period_gen2, + }, +}; + +static const u32 iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl[] =3D { + BUF_BIN, + BUF_COMV, + BUF_NON_COMV, + BUF_LINE, +}; + +const struct iris_firmware_data iris_hfi_gen2_ar50lt_data =3D { + .init_hfi_ops =3D iris_hfi_gen2_sys_ops_init, + + .core_arch =3D VIDEO_ARCH_LX, + + .inst_fw_caps_dec =3D inst_fw_cap_gen2_ar50lt_dec, + .inst_fw_caps_dec_size =3D ARRAY_SIZE(inst_fw_cap_gen2_ar50lt_dec), + .inst_fw_caps_enc =3D inst_fw_cap_gen2_ar50lt_enc, + .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_gen2_ar50lt_enc), + .dec_input_config_params_default =3D + sm8550_vdec_input_config_params_default, + .dec_input_config_params_default_size =3D + ARRAY_SIZE(sm8550_vdec_input_config_params_default), + .dec_input_config_params_hevc =3D + sm8550_vdec_input_config_param_hevc, + .dec_input_config_params_hevc_size =3D + ARRAY_SIZE(sm8550_vdec_input_config_param_hevc), + .dec_input_config_params_vp9 =3D + sm8550_vdec_input_config_param_vp9, + .dec_input_config_params_vp9_size =3D + ARRAY_SIZE(sm8550_vdec_input_config_param_vp9), + .dec_output_config_params =3D + sm8550_vdec_output_config_params, + .dec_output_config_params_size =3D + ARRAY_SIZE(sm8550_vdec_output_config_params), + .enc_input_config_params =3D + sm8550_venc_input_config_params, + .enc_input_config_params_size =3D + ARRAY_SIZE(sm8550_venc_input_config_params), + .enc_output_config_params =3D + sm8550_venc_output_config_params, + .enc_output_config_params_size =3D + ARRAY_SIZE(sm8550_venc_output_config_params), + .dec_input_prop =3D sm8550_vdec_subscribe_input_properties, + .dec_input_prop_size =3D ARRAY_SIZE(sm8550_vdec_subscribe_input_propertie= s), + .dec_output_prop_avc =3D sm8550_vdec_subscribe_output_properties_avc, + .dec_output_prop_avc_size =3D + ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_avc), + .dec_output_prop_hevc =3D sm8550_vdec_subscribe_output_properties_hevc, + .dec_output_prop_hevc_size =3D + ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_hevc), + .dec_output_prop_vp9 =3D sm8550_vdec_subscribe_output_properties_vp9, + .dec_output_prop_vp9_size =3D + ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_vp9), + .dec_ip_int_buf_tbl =3D iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl, + .dec_ip_int_buf_tbl_size =3D ARRAY_SIZE(iris_hfi_gen2_ar50lt_dec_ip_int_b= uf_tbl), + .dec_op_int_buf_tbl =3D sm8550_dec_op_int_buf_tbl, + .dec_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_dec_op_int_buf_tbl), + .enc_ip_int_buf_tbl =3D sm8550_enc_ip_int_buf_tbl, + .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_enc_ip_int_buf_tbl), + .enc_op_int_buf_tbl =3D sm8550_enc_op_int_buf_tbl, + .enc_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_enc_op_int_buf_tbl), +}; diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index bc04831ae7fc..5afe395cc4a0 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -57,6 +57,7 @@ enum pipe_type { extern const struct iris_firmware_data iris_hfi_gen1_data; extern const struct iris_firmware_data iris_hfi_gen1_ar50lt_data; extern const struct iris_firmware_data iris_hfi_gen2_data; +extern const struct iris_firmware_data iris_hfi_gen2_ar50lt_data; =20 extern const struct iris_platform_data qcm2290_data; extern const struct iris_platform_data qcs8300_data; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c b/= drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c index 393256f39112..d9de7dcb59e3 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c @@ -13,12 +13,18 @@ =20 #define WRAPPER_INTR_STATUS_A2HWD_BMSK 0x10 =20 -const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen1_s6_desc =3D { +const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen1_desc =3D { .firmware_data =3D &iris_hfi_gen1_ar50lt_data, .get_vpu_buffer_size =3D iris_vpu_ar50lt_gen1_buf_size, .fwname =3D "qcom/venus-6.0/venus.mbn", }; =20 +const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen2_s6_desc =3D { + .firmware_data =3D &iris_hfi_gen2_ar50lt_data, + .get_vpu_buffer_size =3D iris_vpu_ar50lt_gen2_buf_size, + .fwname =3D "qcom/vpu/ar50lt_p1_gen2_s6.mbn", +}; + static const u32 iris_fmts_ar50lt_dec[] =3D { [IRIS_FMT_H264] =3D V4L2_PIX_FMT_H264, [IRIS_FMT_HEVC] =3D V4L2_PIX_FMT_HEVC, @@ -78,7 +84,8 @@ static struct platform_inst_caps platform_inst_cap_ar50lt= =3D { }; =20 const struct iris_platform_data qcm2290_data =3D { - .firmware_desc_gen1 =3D &iris_vpu_ar50lt_p1_gen1_s6_desc, + .firmware_desc_gen1 =3D &iris_vpu_ar50lt_p1_gen1_desc, + .firmware_desc_gen2 =3D &iris_vpu_ar50lt_p1_gen2_s6_desc, .vpu_ops =3D &iris_vpu_ar50lt_ops, .icc_tbl =3D iris_icc_info_ar50lt, .icc_tbl_size =3D ARRAY_SIZE(iris_icc_info_ar50lt), --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 A552A23BD1B for ; Tue, 16 Jun 2026 00:05:40 +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=1781568341; cv=none; b=myU9MnBmI+k4uXRQ+KGLDJb6vOFpNOR1eiQG+NVc1vh+0RzPKJJLzu3Y0B9fLQsJZb1AneMWJr2UVi/E0txhjzLiNHJS69d3RfpDBuy4AMYkiR9/RZVjBYmGBsv767IlS0Ck4EO4K9MWlZGe/1JU5z8W1HU68eXdCNU2PbnbDSk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568341; c=relaxed/simple; bh=bBMr05z3+hZKyiKnqtJur9lg4bNIQFaGUAfGEfPWSb0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AxH5bVFU3RkuH4QwcVRluxk4q7Gwbu5kN90H81b05+6wg8ozA/CCsfoUVnUTtCwtM7099qTjbpd0Bhd/4OvoUnJNqWInCQVKriLZtouREYmh7YEEQuYHknJeI3Pu2NTEsYWN5Puek45QeXqP+ZJ4+FHFqudZ6exOyD62RxO6guQ= 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=hbYRMHxY; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Dv7W3rby; 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="hbYRMHxY"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Dv7W3rby" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65FIxD4U844401 for ; Tue, 16 Jun 2026 00:05:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= AWJObvt7y+kbPGRMk8Pkpq/KWzg0qp4Ve45uTUJVorU=; b=hbYRMHxYe02vlCT0 X1snr0Mh87ob7zj/yEWy3In1nCSZpwCIeboJPPLhf4sGV4h3/Oa0IMbMrDaUAQWP jp9zSmbFz1PibTYAZaPh+1pTGQO4Y8jlYSfKNf0iBaDjQRACD4mKOCqgNJbJAw1G Vsb1Rso3nI8MAjDUV4x2xWl4pYAE2OkJ38l0VUnpHHeWpJNvd4n3Ykce6PLfUEA7 sjQxuBpFBewvhsad5Y0KfNg5iavHT/RpjQVUjq4+JiLFsqrHgUBBpMaOW7txnQxS mfQgGp2YoM8R5pLSHNSv+J4zVcuue5VDuT1tvacYF7l//1jf9PKpCTfP0vO3Mw3b P3MgQA== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eter03mtc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:39 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-91576c147a4so1007876085a.3 for ; Mon, 15 Jun 2026 17:05:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568339; x=1782173139; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=AWJObvt7y+kbPGRMk8Pkpq/KWzg0qp4Ve45uTUJVorU=; b=Dv7W3rbySsPoSONWjBsPhmVYXs0exN5NoUFnVjNzhI736GroNDAYLQojEvbm5H43No 0G2ZopllZqdgSq+H0u648/O+53dAch2IMG7+bTBpqSd8Nxa3K7ySxjIZqAD2G+RAnUIN y99vTJKEMyj7viQTNwBQC3TFzktab2VmSxsN/Uc/Y3T/cIhuGVtVDD+Ake0PsJptbrxL usAR2QMgK/d0F6Dm/dVkkBeQM+VZPHPDVsnXV8CCRYDm1ij1HTgaOkaT3elaOQgcF8ix oSb/oYGPxaBjbYl9XNrCw77pThYafXQByyMYBxVuO1QnBGxz1qRQj0JTDxG24S5hVapg ZP0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568339; x=1782173139; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=AWJObvt7y+kbPGRMk8Pkpq/KWzg0qp4Ve45uTUJVorU=; b=Jplq5zTRbs4rAxZ8TpoXxZYCndUR01QqG223c6pblOChPhc6cAGVe9Z3MDpoiwhEWT /Sr6O5fTVJsRgRRVBkVTJBlZPvddZ5ddUCvxOJVXlk1wyGi0T0UbP5ioNweMZFRmIHhB ZPuO05ypsMuqzFmoH8AZjhMvF8EtC7psu1HqVrjQaKmElUJdIX+H0V6H5/iSfQsyH9qh x8+ItNysZq6cSKUytPwwHp/B7/wnJOs1zqJGC7+2rWN8wr6CvlWXrjOqg5uO2+sPBre6 vLHARbhhezhxZFKNrQjvOhcRRQrwnEyVB6LvWVyXmdlt0vl8RucDYeFrkTZNsOV19Y0v A+OQ== X-Forwarded-Encrypted: i=1; AFNElJ8TI4ufl1lgACCvr2bSy/Flkel2HaXeJ3Khp2DiBE2a0gYV2OoYFY+1IdfjGFIAxK21NVqgStlkFCfOmwU=@vger.kernel.org X-Gm-Message-State: AOJu0YwtewLnzLi5UDz8Si0cQ3bxlSOVKnnuWwUQGY3a0xBmNKLAsZVB awyLOuqq0yNczRKfZDNNmfS/E9qQB6+VqV/Ju8MDqkRupKOK0P8lSTS7RRNIH2VcSbrrZfeR+j3 nnv3FWSDWhcvY3fC/unpnQuvBQ4l2vxmAL5u3hcvx/F3BJeSAPmfNS9Dx7haROrXzMJk= X-Gm-Gg: Acq92OEaSkugORvRt126CWeuUrBIJvMG2h2pCzNdfxflB/cW8JiRYHHBK6PU7cKT3WJ 9QFNP/jgn/KvbaSk4OuA4goQFYO8b9wyI0toi0eMncEFI+y7wX6RvZZndSGcW5ZPDLexejwauxm 57Gbmzmgw0WZ0X6i91/D/cUCnmXoDPFYe9cjiZG08Ced4a0y/TJgBUFjA+dVXE5p4fRs9rOHgWR 8tkviQADp0Z12TuvVLapIC3g4RcXHXzC6o4M6jLx9O7mHBEjR6qbHzAtzfL0M1VmZnfNMjBDhbj xgyUFOzdzUXGAy5Sy/2RyFScsI28cy+uvXlslZRAJThJhcZ0f6krbR20ZTGyOKEBwwxlJdZ9AT1 lQpZKfH5gMdF5bwkbUhjvb39BsmrGlepDaqS7gCCkkIyenEyGTRxJz0n0W5KGSnXrmyS45o4o/Q 9G8VFnXpdgzFB7Bmla42o/b4F1vrE6v3tMD9w= X-Received: by 2002:a05:620a:2992:b0:915:86a4:6691 with SMTP id af79cd13be357-917efbbd2d6mr2192262485a.4.1781568339027; Mon, 15 Jun 2026 17:05:39 -0700 (PDT) X-Received: by 2002:a05:620a:2992:b0:915:86a4:6691 with SMTP id af79cd13be357-917efbbd2d6mr2192258785a.4.1781568338659; Mon, 15 Jun 2026 17:05:38 -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-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:36 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:42 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-15-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1810; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=bBMr05z3+hZKyiKnqtJur9lg4bNIQFaGUAfGEfPWSb0=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMQ9jyjI0xtGZm9mkeQcVIITP3V5I9BWIzP2 B+zypqYjDCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTEAAKCRCLPIo+Aiko 1ckNB/9gQAoQXZ9c6otmE0V8YpLudu7XUS3NIMxAZq5Vra5YVT7sFL3y94zeBvMGRjioKK5ssTy O3Ty2uYR1qpZnWqZnDR261US0PDhbZ0kZyOUvxhoM3FjqvdpM9SOLKimUsyPQvdt7EHnavWdd9v pAkFOweeYp4QzGwT6LGBE//jSLILvsDSltX3AVoR+g63mA3WkKCoFAr1RqkrCHlQ5h8uwgR4Rrv mGBHpbpQT0vb86PPXdvYYzB3mM29lxjD794q6EprPbEWqtCwYDrYY5Ic1M3akqdjY0kNlaFsx6q 0gemNMP79cm8yuXiuSwwySiJcG1vjQM+iWbkwZoL8iAbci+r X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: 6-dR1GJ2k4IyH2CoSqU94_PqR083j02z X-Proofpoint-GUID: 6-dR1GJ2k4IyH2CoSqU94_PqR083j02z X-Authority-Analysis: v=2.4 cv=UPzt2ify c=1 sm=1 tr=0 ts=6a309354 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=TAcc6fXARiqENDJ69lsA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX6h3tqM0BJEgP Rpn4XN03nMG9R41clCK6iU4a6H+THUyQeoH3jDwott1efHfM/v8mGZTZ2JiEuuG5KxNptzwt3hL zCOzm4IENNqo+KJDHHgPC0e/VAL2ZZIAdkVZRKU2zqCfQYmlECwmwTA4fCQMueKqwU1CpFRAuBA hoPXpoyMGJ9sGQCJlxY7ljJIUr7o0VuMX8CqFBxAsIQW8FyQasjxNysfY/VFKk8g2jfWs5Ts0YJ 6jcZCJdSruqw8Ue8MhX9+4XSXnnYH8xf81oo3z7e/8JPZuSR89CjhFuUZ+ARq5UC/PTD1WNvohS q6Uj0k6Xhi4DZ1Sx4kfI6VcAUqitn/kVmf1i4vYf4hXygY1bxB4tvbqu9aNuHQtJ+xNN7e8wA3r L2Sickg3GHpLHROMSnEGs1slTIUHQuEgOXT1GLd76W9wuY7EW9AYduQBVncSc51UcIYRh2tppRL L/YPckNCO0Rr4RekJOw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX+dKuadLX0aF4 9GUdnSg6zG5w1tciHKwih2Vi3kEi83p8jWlYHAmmK5PmC28iiR4fPt1nzHiIr+Yy1B4mOCmUM4y dDmxMqpW5EZbcU6YYrUI7qV7udkskpo= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 As the Iris driver now supports the QCM2290 hardware too, there is a race between Venus and Iris drivers on binding to the corresponding device. Follow the approach used by other platforms and skip QCM2290 in the Venus driver if Iris is enabled. Signed-off-by: Dmitry Baryshkov Reviewed-by: Dikshita Agarwal --- drivers/media/platform/qcom/venus/core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 243e342b0ae7..3c88594eb1d0 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -1118,7 +1118,6 @@ static const struct venus_resources sc7280_res =3D { .dec_nodename =3D "video-decoder", .enc_nodename =3D "video-encoder", }; -#endif =20 static const struct bw_tbl qcm2290_bw_table_dec[] =3D { { 352800, 597000, 0, 746000, 0 }, /* 1080p@30 + 720p@30 */ @@ -1169,13 +1168,16 @@ static const struct venus_resources qcm2290_res =3D= { .enc_nodename =3D "video-encoder", .min_fw =3D &min_fw, }; +#endif =20 static const struct of_device_id venus_dt_match[] =3D { { .compatible =3D "qcom,msm8916-venus", .data =3D &msm8916_res, }, { .compatible =3D "qcom,msm8939-venus", .data =3D &msm8939_res, }, { .compatible =3D "qcom,msm8996-venus", .data =3D &msm8996_res, }, { .compatible =3D "qcom,msm8998-venus", .data =3D &msm8998_res, }, +#if (!IS_ENABLED(CONFIG_VIDEO_QCOM_IRIS)) { .compatible =3D "qcom,qcm2290-venus", .data =3D &qcm2290_res, }, +#endif { .compatible =3D "qcom,sc7180-venus", .data =3D &sc7180_res, }, { .compatible =3D "qcom,sdm660-venus", .data =3D &sdm660_res, }, { .compatible =3D "qcom,sdm845-venus", .data =3D &sdm845_res, }, --=20 2.47.3 From nobody Fri Jun 19 01:39:54 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 4A57B23ED60 for ; Tue, 16 Jun 2026 00:05:44 +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=1781568345; cv=none; b=bediBefcQsEBUuIZmD36aUBM5WupewdLTMBijsY/mFoy1Ls6Js3ep7NDN9oBotW9GG+5NAziX/nBMbYOaTtWJCAdJnyIWLfFpLxicq4TLw9AZJjJ4uSqSR/q0Y3TUrGg1nMWBbwp1dgZd7G41QgvVJ7WWbu6izKRWG3cSvI91gQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781568345; c=relaxed/simple; bh=RfGmISJ4Tg+rlJIDtM2rxs9yeQZR7HuRyIw8EI1Vrgc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BEpqQtVZEln0Hnqa33g0QJlzaCXl71Mjl0SrSLpM+FN0+JbqwrckdNlW0KM/yv9Ypy9sJBYyKOpncg0HwDd5YXo2zcKyx8QUPZN2tWc/GGN5hvn72BuZ1Nnfxk58IbiOFgGeK5zNam1BgAzRc/L1sxL1LDrtodM9QIQ1MHFAu8w= 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=AVrVNFy/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=df6Zx6od; 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="AVrVNFy/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="df6Zx6od" 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 65FJ0Kd01389732 for ; Tue, 16 Jun 2026 00:05:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +lsgrKk9p/S2kXHtUz8qoicwfhLPPm3xQs1fSPkm5/g=; b=AVrVNFy/q5uNNgMD y+1pVvyChCIaRBhxOlMYvyHRzVjEiJOkrOvEhrfpkOvGM4vh9spCMKsINc8Slmma fYo6LfatAaJXHbLYa6Dsbu0kB46w6eaozRnZ3kHztDsKn/qD1BYKaaal9uP7DnCg E1KOFT3dRH6GBcIpdf7e3MWTV2IkMIqW+yq3gAF2pLV9yXOBjxbgQlsEJ5yruVck 60o93tfbN2W8+3EAvBXyTgCPjzVjqeftAJhDJRj74yS1uCrd+4gRgz7ANfYv2+zo Q7Y3wG5I1BZKXhHPMFXhNOinPDo0gVxUEo7bFFXczSS8awGm5SVddoeL/Fh6svi1 azuocg== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eter23rum-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 00:05:43 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-9159c4b210aso640417485a.1 for ; Mon, 15 Jun 2026 17:05:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781568343; x=1782173143; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+lsgrKk9p/S2kXHtUz8qoicwfhLPPm3xQs1fSPkm5/g=; b=df6Zx6odEloYDWzu5So+EupvddhRe3+CZc1ptotHO05KGfTkbmaYZm+vXf/TxyJ8oe gvGU/aUT40zt3Ma2Nqb+BEuOmqpU2pukcC4hWnUlRlE/92nlVuKSFnzxtib17DQwvYTG p9kGo2aIGSmTnOFOk9YH7QrthCcgiSu3E6Q+EKKED/DO96oSpKB0J18q8tke2vtig5F2 9HyWHQyarJZEvckJFv+sPhh599mXpYMlCwRGVI2nquErCp+wkvDR0KGMrFG20kf6yquJ d7GqjcmdGLRAiTbUMzr6tl5MCqHsYlohTUUKvZM77zlnzBSsfgCUOlYZdv0fkJuA7axZ ibVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781568343; x=1782173143; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+lsgrKk9p/S2kXHtUz8qoicwfhLPPm3xQs1fSPkm5/g=; b=QLsZq6FgL7duQ0mLqRZiNT1GYX94UD8qc2UvU2VbQ634AQ4QsafKFrOy72iBmTpao5 nAdJWydJYadTfVyt4Ur2f2ptP6tEiUGSuy33TaxguBPyVHc+z+fAq4C8QgRpkMFlys6C 85ukq1kiTHuk7fqxJrvro1+vrEo7GCrg7MchDM1z7mTqPCn0SaypzYdQSPAbUyBWhAZd ocrLh5baClgpY3+evPaER9jiUERmhnE04kaH81WSda9SnZ8jkF32ZrrJFw6p89zgnfQ7 MlVEhKF0NFGv4G3X8iPOAEh3tMnwZVP99EyLJicTYXowKuRPm5ITBKot01HiNsNYkz/T n3jg== X-Forwarded-Encrypted: i=1; AFNElJ8UHFZ59MPSaR6LMU5pYB0u0SMZDVbMvzd8Eoaly99qWUsAeOSC4GRgcROfgGvWjv7XE1cWgx1GOZ4z/Ys=@vger.kernel.org X-Gm-Message-State: AOJu0YxquijQtrTft9eVMCwlR/TSxr1IYb/IY9MlGQLSeSynRYZQbcHr RTr0vlKIxSYoq20eVOj1IICZYBHGRZEsxfcEURrMnFUqizTXAiN5RMDh4VpwhYkU2f5ntMpn2da Bi57zmGZLPyM0EK0YiCWcz45nT/8oimM6JJ9xZKoG5Rvjfc0rDaciJJ2Dy3Sc6n6tiNA= X-Gm-Gg: Acq92OEcIpXiiCLi4njGHIfHUtkNAWzu6JOOiTQARMZDZDxFTSx/pqNLZBfeMXeg/sf QkDXeHM3V7I7nQplvr/rpVZ/05s/SbexQMFySmtkpXIE953gaBZtvL28cccMsPi2hB13acJ0S3w td3G6ugcOhbDumoklSMR3fEJxydWNOkU91WjMbBFXukrELL60bieIWjrceAitrA5G1X56+lEf/a 684GtZNz3UblKwMGBKTcR2rTLDPCbLyb9JLPl7k5D73FPZqWz5Z6EUSYQ9vgqio23UAFWIryh2H bR+t5TK9EdhKp1WPBmUjT1szam2kArAmjmJqk8ALdTMm9Z6oapoUL7OSsg9YLMLygLBqzHUOnct wyBa2SWDSVkrKEbhsjt9AmrQP60g3ANbW1i4Wr1+rrbPOX0yy8Y2mRN/WdfpWpmNLxdqw15guU+ 3BSShTYLrm9r3s1aYa1CAZ5ZDOy8PFWUD4Ku4= X-Received: by 2002:a05:620a:25cd:b0:915:4c9b:4120 with SMTP id af79cd13be357-91c2f8a532fmr237277685a.37.1781568342729; Mon, 15 Jun 2026 17:05:42 -0700 (PDT) X-Received: by 2002:a05:620a:25cd:b0:915:4c9b:4120 with SMTP id af79cd13be357-91c2f8a532fmr237272885a.37.1781568342274; Mon, 15 Jun 2026 17:05:42 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5ad2e1a7092sm3015731e87.50.2026.06.15.17.05.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 17:05:39 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 16 Jun 2026 03:04:43 +0300 Subject: [PATCH v5 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: <20260616-iris-ar50lt-v5-16-583b42770b6a@oss.qualcomm.com> References: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> In-Reply-To: <20260616-iris-ar50lt-v5-0-583b42770b6a@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vishnu Reddy Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=901; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=RfGmISJ4Tg+rlJIDtM2rxs9yeQZR7HuRyIw8EI1Vrgc=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqMJMQ+9/MTBoo8zy5/Eect8ALxjYmFFWBT0NOa kTUllzxVvOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCajCTEAAKCRCLPIo+Aiko 1TY4CACSG/THyXnQ7tfqFwmQG82iyICvVWfIUH3JWjZhxBfxF7EDwfjQQEjMniu8MtUQH/mY5Ku IJxujjZ28QvOViF4qQA+7BBrvJBTmmbcHLbKuDMSkPmqSoyOk9ytPtTikyoeSU7IxBXq9iIdc3x UYswZ7tFZYj4YCca6WCKCdcIEawOCZoW34B+gh8V1k4upHSnp0Py70UTrTxwKiPnC75D0RaBllT dkCZOIoShVBp1bsjVKgjEFp68N3aCxrt37gS6IS4r+P3lWsa2Epdxedbp8Fspl8w7haGYx8bYgx Zvo5oyv4fJ0x5CpV4r+iNteciGNZ4uriKalKVmObd80sYGMJ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX9TZpo4PgavTu 2jQn2lNLt/GERicnGpWn6MiKogYeTbmIjzO+LoDZbHcr+yTGSuZdEZxVBhsauRX1qRyPexG4DsQ cXxtu80Vvqhxuvnn4s59+4PtA/Kxr/M= X-Proofpoint-GUID: QJNMdrxUksN7Aj-Eoga0YD-xXvqjYzCn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE1MDI1NCBTYWx0ZWRfX/g1JEfQQY8Wq jm2pWNViHKMFFqOe+/gm3RwxtycrsEqb8JcibLsEQg/BydR/42Ia2c4VfqG9ycxn7j9z4qt2tZb r4hVvQjV57Id6U1V2U0NPtulnZ5YvDsVh5TC7ta9Hd6BEw3nWzS88EN/bsSzylna/XxF7ka5sG1 thNRTmeC0Ln3f9rD/rTyhI6RnDrQc/r+nSN9oxmb3i9En1LqcM129GaclO1w56fokpEBX4meCiD m+40VCBuiEm3Cn8p1AXwJcCdXYi8f6tYOQG+ldU5jUtwH6XtxhBRLvDtlGY6FAznl8ehYHVCA5u 7mi6i3PQXRDK/LDuqDOmWoIEydNGRCpG9mWzBVlMb8LyrmRB5WtTJlKk+ytwXojSEgkjvfceiTv hvnUmWo/L/TPwqGe/ksnXG/OdKBBV5aqNJUd8WEK6vA7scj50XdAqJRUF30vZP7zciAZdMChzEF cXwFH5+MovQFQ3psfSg== X-Authority-Analysis: v=2.4 cv=F4tnsKhN c=1 sm=1 tr=0 ts=6a309357 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=aSZcYj2XgHFsS6ESuJkA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-ORIG-GUID: QJNMdrxUksN7Aj-Eoga0YD-xXvqjYzCn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-15_05,2026-06-15_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1015 impostorscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606150254 Mark inst_fw_cap_sm8250_dec as a const array, the data is read-only. Suggested-by: Vishnu Reddy Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_hfi_gen1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c b/drivers/med= ia/platform/qcom/iris/iris_hfi_gen1.c index f57af31dbd9f..a8819470f703 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1.c @@ -13,7 +13,7 @@ #define BITRATE_MAX 160000000 #define BITRATE_STEP 100 =20 -static struct platform_inst_fw_cap inst_fw_cap_sm8250_dec[] =3D { +static const struct platform_inst_fw_cap inst_fw_cap_sm8250_dec[] =3D { { .cap_id =3D PIPE, /* .max, .min and .value are set via platform data */ --=20 2.47.3