From nobody Sat Jun 13 14:01: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 6774C2BE026 for ; Thu, 7 May 2026 06:42:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136134; cv=none; b=uRC+JCZicPj2psr6WMCLB9FeeCiUj8c1eNIZEDaXPtD9Vy0zFv1ofaO42G8uFACAT/EXHFRzsvc8jB7AQkJ7pM72uLwv0Fu7yf0qv0lTDbJkux6wnbahhimcBk+5dG6qXXuvoGbJB/DaiSjZPOE8u0eA+UvK2rGZv3cAV7Flb+U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136134; c=relaxed/simple; bh=jaIRCRQ3d69KBHmHN0Ry0EKvqFuijis4q6NGjtukHfQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r8fuKt9TRIVhNjipCOFsEPVdKawNO/znMIYyTgnQ8CzkqYJ9U8XrHmEYiShlyp1ZCJMdz52F/cQT4c4edDajBZVyxPfPFROjFFa7wbF2uhg1jJBAEl2tA/kum9k3bilYsqJnt8kf7KX/5FOUUSi3X+t5lwYaZo4NXX3dbpC+pPU= 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=Sqb3+cLB; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Zv/ejK5t; 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="Sqb3+cLB"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Zv/ejK5t" 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 64745rvw879618 for ; Thu, 7 May 2026 06:42: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= B8G0+2ZSIN+qIPIG7cPGxhr6UssK8Trq7L9tfiuvmrU=; b=Sqb3+cLBJX6M6a/Y jociyz9Xcge8h6fNurnPLQfCC5TPZusgyVubo93xQ+Tr4D0W8DUCrUsc2Fw65PET uA0g0lKeP2PghiHKIMg7JH1GU2+7U0esn0gdC7QeT8CR8BupACk0OVlvrDYgKHUp QCJMAy49L3ZEaX+bTPw/NJT/0gL3+fxPwfG+X+rj1FYhvD/HpM1N21NYNGSsbttr X6C8XdlrEQJMmklSb3pujVmjk31TF/3wccjscx7AU6YiRU3A+qgl85BbmE9f1LbT DWdLMbHvXaW43qzTvp7D0L4c7FXp7KG2Fl5KjCsZe1XZlkhibrPDHIjRf/7o0YlJ 4l4Dtg== 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 4e0kdq0f9f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:12 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50d84b5f73bso15547571cf.0 for ; Wed, 06 May 2026 23:42:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136132; x=1778740932; 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=B8G0+2ZSIN+qIPIG7cPGxhr6UssK8Trq7L9tfiuvmrU=; b=Zv/ejK5tStG8bKpmUkr1XT0DqGK8ZCRX3gQxD6VMnUNZ8SE3Pi4pHdCKI/RLeyiWwH 9TT+efqYhLKosVUuo58YoGFgD8CJU58XaMUZ0x7UmqpARXeXwUjM6BAF43G/HNILAvO8 A+Gn4IICN8nZntIMNCM66LUi9pDfQz7y51qSq4mkmoPGItbVJOu0Fw4YMepL7oxhQtUG /GOsnZCVi/tVR8PDYe05IPhfUhKMU/kSsDvtDKTVu0imXxqbweC7zli/bs/ZJLROu2hS P6fivPLn7aWEOd6DqUoOsjDzYzJgUtSiX/fI7u1kP4oEon1OefcBJFSn6lkzRpdGK/gI 260w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136132; x=1778740932; 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=B8G0+2ZSIN+qIPIG7cPGxhr6UssK8Trq7L9tfiuvmrU=; b=O1UFqrRvPqZrXni7ZtisDEqt4bVET35+A2e4VjqGJ6t0ojMQ1SWbvePDyg1WxJfJkI rqQWj6W8XlzjXzsuRzcsTyRJ8L6jWhT3ijPY4MlW0OADtxwTLMFd/k/lnuohWZeZIGuK CLdpDyag+4WNbqyFD4UNz3BfLhQaPvlMwYAlvB7XqavZ0VHne2ks5xlmtCckFPhkSOM+ hCMDpnoMfH8ro7WH/6Psx9VNElsa+bctWaXPddHKw+8hetfLpczZ7NfLl3ZuLy5tVUth mFpX+meMuDo+z6mnkaHlPvbXJat6Il8xl5sJhefazcf03M8feVIUSUcd3xP7M9TxDNF9 b1uA== X-Forwarded-Encrypted: i=1; AFNElJ/9gj5I17PX3QpBj+TT/6ql5Ef1mTYZYF1ben34zfkfa9hChFz/B78v2yvC2D1WQZ8S7y98XTffy2kSosA=@vger.kernel.org X-Gm-Message-State: AOJu0Yxhti5+pwM53wCe2gBqsqssvCrmIlm0+qFxZWk9LDaSJJqFFMZV w59nNqYiVUL/6GAF0V82od6VbcmnfgiHZU/M6UqI71iwhcXJEbFbMsViSQ7P61neDGhJ5f9BIUE E7vUMDXpnu3kPXpBTDlnlb626t3u28xTMAe+XWeb47YNAu7xbB1ieT1Dz1ABHcKJvyaQ= X-Gm-Gg: AeBDiettCQlXogWAo2czwc21jifNpuiXhFk4YkEUYtyrzIS9+9HlaQdethW725dI46Z 8VfjBHFdnajDNbH96YleCjq84mDHf33/8IQq1x07s/u0Y4bLXPSw1GLDF0NniyG54gptUbct20T /xgwwHCPSx3l1/z4EQkQX3rEiyjko4CdHCEiF2arQcH6r8h2k0Htr3sjjI7RQEToC6r9ScCHPRg 8U4v4LNmOPU9Gm+oJo7A7ZDBj0gTdVyitcJ6hell942AfnXzKUD8xsv8AZCx1zXoHkm8ekosqJL +6Q7gsYyAwfeNrkZSy2byufdBQp1K1EmcGFNwv60hQiwMZrW8933vVlt9/ZXusu90YJbZBuYxoA Wuwf5Lb/fqZODGyD/tncIehsYjZSLSgWxZodYZo0m4eRR+HxgeGbIB/Ly078huFeZQ8EDejc5Cn 0bPoe8s0+TF1b12PQJgW1pr4Ae9nBOieAf5XAPuuhb/QW8lA== X-Received: by 2002:a05:622a:4d8c:b0:50e:d316:fa33 with SMTP id d75a77b69052e-51461fce4famr95530201cf.39.1778136131599; Wed, 06 May 2026 23:42:11 -0700 (PDT) X-Received: by 2002:a05:622a:4d8c:b0:50e:d316:fa33 with SMTP id d75a77b69052e-51461fce4famr95529971cf.39.1778136131205; Wed, 06 May 2026 23:42: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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:10 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:01 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-1-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1079; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=53Divj+Z2S6t3+tbeAUvd2qjozMuWVZK/b7AyLFa9bs=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ9WEne1cLGwyNkAVonc9IE9/EVCM7kGFClO lpVTKdLAkeJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PQAKCRCLPIo+Aiko 1fdcB/44RBJLJQ0xHeBwE8QYUivW+pUw5XJmoYLwZSqHDfcZ8MsMZchHgMfrc7Yhu8PRYmy1/nz WcK4zYVEtouSH8sMk27IICKPgF1Ixh4B33J/+a8BwoLV73rfr4gQhFVqMyVROf+rRQHtQiywqDf xHnv3kugeq68RbYjbSLE5paSrsBOiKW6DFFysOR9mZpka5K0d2B7/KZ+s5X0FNE5m4HQP1A6OQk koosVq2v27bHQf+pf9vpgo49zMVz8VZ2sbAS9DSjvAxcPzEAgArioFWMYrsZRfzjRSFK2VAI3Mr 8TbPDXzoEFGZ++vwDilk/h/EaKEZtibPrKau8qJjPZw0+l34 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=P6IKQCAu c=1 sm=1 tr=0 ts=69fc3444 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=wrkyJH6U6m0Jdbs6q_kA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: ZKk2LoSDoiF8r3zBzorbccdlLgBm8jI3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfXzW6xsvqYn8Ak 4y/JJI4wF96uea04mZXxqmnqoJLfGgOeKNpP3ObkmX/2ggfMvTO/U09w/IubIzLXgxEfdiv2C0Y W/wAJl+PvNn9qTvLvYuPNXFqWBA2dMcTAeBORoginLpkYoSGHUIBlm/5k6FwHKBdtnosCBALuzM BDaKSXS9gisExGBFy+K39ePtgQKFkQe9N+CP/Pm5haaV0gCaG9uWu6aBUhyxXzh4IrcwrMDiD9a AdbL+o+uRQtHAjFEdSn3zoNxMKuRE1ZMLb/SmgRneOtDdYPH1yN3M2b9mKubVNjO6ptFU8V33wn FfwoA0J+VaoCLNd+6xZbRaWtjF5RJzY+7C93NtoESatn8K9liplrB/kpAdVAB2uRhkhSTN3g4Lw 4C2ThN99sJAIcjmDLCzJAytv/40LvhBZMgHJ4o6riOwcMIhbatsS/tXXmY4cB+/jmrh4si23fZn mNEfhCTzAfXZjBwu2aQ== X-Proofpoint-GUID: ZKk2LoSDoiF8r3zBzorbccdlLgBm8jI3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 clxscore=1015 bulkscore=0 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 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 Signed-off-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio Reviewed-by: Vikash Garodia Reviewed-by: Vishnu Reddy --- 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 Sat Jun 13 14:01: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 A280C33F5A0 for ; Thu, 7 May 2026 06:42:19 +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=1778136141; cv=none; b=OGRJYRvrlZHP7pKxZGZ2VCSd6j2lElHedFOO9wO/5TWO5zddIFks/FAkp557RsaR9CSXAB5YPkqy7aY2UsNP6iHZuhnCBvLu9sLsLLKIVuD+f3OS0NZSG0IHThMvH4MymtpnDOKagX1ZRMhDaMROWHTJUeuwL1vPtrB//Wnh8UE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136141; c=relaxed/simple; bh=coVjg88BpVVzIxncaZzLG0g/mxYBRVsGnjNNsfMl5I8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QoqCxLIPWNJcviniy47ZGmLxAwApHF4/qXT/t6EY7hTLgQdk8FDvsyvmD8U4kjEuTYYii80VQrmyevO8b4/rlA0UQIwOyzuINvdXaymjtlMlaIuQQj+2z9XZh6vQJGP6oqKydOyXdftTdiEGlbFD1tLrKyKvN1iGG6WbB0lqXJM= 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=NyvzPLMi; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=dUX6Hakf; 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="NyvzPLMi"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="dUX6Hakf" 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 6475Lxr6682852 for ; Thu, 7 May 2026 06:42:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 72FCffrovM5qoqfYzfgTQu0WKk0ryn3kQM9UYoEJSWo=; b=NyvzPLMiznBco5Qv edkJmlgk4mBJeXA7qmdf/cqIW2pzJ0J2OWAenUzrlPsm/gvdn/1Syj9rABs0jsAK FKtfeD4iJSDGDGYXe8YuswpQHoFRz9B4WNLWuizKbtHs7LrX9K1IddHv0kEqqcGy X8SsMcEyCfme6rhCFCjJprWYHuLHtUa5lecxFF9buWRKVL9sXKpKlz0L2HPmqadg SGDFASu4XyfUc2LsfvVLmouYTnxuH+eSSktG803HLPXKM8E6q8mo6205zNFkEMyg he6MygZPQmFprMd69lYB7+G3YLetFiCPl116k2yJwJoFyYB6F3+Uj/rzNnvACNSF RlFgYA== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0mhar8p7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:18 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-5104b861649so16328691cf.1 for ; Wed, 06 May 2026 23:42:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136138; x=1778740938; 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=72FCffrovM5qoqfYzfgTQu0WKk0ryn3kQM9UYoEJSWo=; b=dUX6HakfNm82lwfOUADGpiMO6xTuZa55WC/wZ3VwI13zJO+upQAXu0A4WREiB7Yqjz cpKUW/8aVIdsPhHhntdJQhpmoRXHfS6MNzin+E6Gx4AMVh7oljZ0Y6D04KqqxEJOXEWu e0aKEVvyuhF5c1DAmYyb4ce+Rs9uO7jmIHvZ/t2dCuF7K2LcASe7g/556R6OyQPm9QlB LmQ/N2rKfhoJdrpg7tNuO/r1OlJrkhWGkEYuALtCyDHK9lLBNWcIq+lXMO0JKDGp2Bsj XJEjXsJOyi0xFtSqeXVX2icmAgZdB9fj0D3s2Jc3s9fxUrgq/RdTCBBuQWni3JGNJYtK szGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136138; x=1778740938; 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=72FCffrovM5qoqfYzfgTQu0WKk0ryn3kQM9UYoEJSWo=; b=BIv87jSXMMrhJgmk4/e6QJ+Ut25+uRVpbO3rm8FzwN3ewkG23eahXI1ysNWxQJ6t90 Zi8S75h9XcC7ezyJeZ141zlt6VYUD6yaeKDdu+BF6OxeDUH2vsNy59KoXpDG+hCNZ+iU UJLUcFRkcbTiNDozaRfiX6i3pk2NqReJNtBQHQEBpqRyPX4M4iNMURJ5SDa1aearqdse 2J/RH7mWkYlko7iHTJ5I2+916IsrRLSSFGy3AV0n88PH/p6hPBfHf0sJ94K/pdC5fLak ViScSyE/qpwWnYGAmH1bYiGfRA99nSAuruoHPP4iJH/EpGLwk4WH5VKPqtx65LICqB33 xx0g== X-Forwarded-Encrypted: i=1; AFNElJ8o4jPcMn6YnBxTEESZvhSVQ5wRHmf+clrYRgk7sdFo/Nktbg6S294kgh9Maj8YLD0Q8C4jv0beozMTK5s=@vger.kernel.org X-Gm-Message-State: AOJu0YwJXr+aQelfSEblo8QegAdAHIRwfyWAgvVeqM+lK98XHu8Rim6/ Tf7URMDrfWCzSoH7QQ22hplrA+yl+jdrNp0dO2Hbm7y62CCBAbjWmjpjuw3yInYFxHbhLxpcGQl ONn3q9D4WDyRWTI+gKuO8dWN3CztO1DmDHkJjBv521Gy9oTk9J1I+kwH6Fn21sfecTd8= X-Gm-Gg: AeBDieszY+5jnsoYtrzeBCQD9hFJPAfTexwNNfx0FTVmSVOyEvlRw334iwgZHTcYdwo SbI3yrS+xWul5CwdjMu6P1hCDjcRtLKVbtPM/kmXhCGOzad06r/eZh+LtzFEwQG8gbWZEBvDlKb 3tordxQaFEAPiYDHaRKdTiaxkrD/dO31DHIvP1gQYlOEkmzIGTlssnzNBVFDNaIqO327QlKHgnt rTuOj2M60u4FT2+JZ9MqLRUfn0xaHFP9aLJPok7A9mhexhQ1NLoZSB1lgy6rYzCkxjooYQ/ng4b /2PwAlyW6lJiiQrPWvbLMxjPFIuw4pC4znaSB6sTtHuM+3rZC7o4vSJpPRHZtuJzCxemjdCZWiY FR5WLXRgL6QXtNy2RhyIxpe5cm3eArk83ee7+iklf7EPwEsxuCJJa6YCBZhutr/5KRoihTg+4X5 zjXJ6cYyMrR0FgOMNuoLHMABYFc+TWLi3P0v2Mr98uKT4Grg== X-Received: by 2002:a05:622a:647:b0:50d:71aa:6b67 with SMTP id d75a77b69052e-514621d15e1mr92134391cf.53.1778136137918; Wed, 06 May 2026 23:42:17 -0700 (PDT) X-Received: by 2002:a05:622a:647:b0:50d:71aa:6b67 with SMTP id d75a77b69052e-514621d15e1mr92134091cf.53.1778136137385; Wed, 06 May 2026 23:42:17 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:11 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:02 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-2-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4413; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=l7we/4v2r0lTXTULk2MQKkzGpBMGA2OLuGGhvYxgzOM=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ936Wpyvsdx9AspG9AitCcbV0Q35E2ar46J YsRzVNM5i6JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PQAKCRCLPIo+Aiko 1TDyB/9DDOhRfzzww4R1R8G1YkrfeOYlqHS9zNDuMF3FCIAfwjqxvPV67DRibXuFaPeLdbzIJ7+ Brom/ZxpQZ1lJ7FTieK+eV5BGsD2ecxh/1UqcQh8xCeAn8+shg6cu1jsrbk3qzzs40wICeVeme0 que/ZpLrBxUAv81KNq5U2XwqNu2Ewlfc+GGUpVeRKTv2qFXO++GbPv7lL1nNXkKBnpZ8/cR8R5m OaKjQC25ksbPdGjeMnyF/vnGDPu7M+H6a4CVwqZmWxNBXOCrQmz4Sxsy97qyPOcfXO6YlU0gDVQ AS252WkO8qIvR9vregYlDHfqOTBDEVGnQ1eqDK8d48XtEzXU X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX+lwMUMi0t0YM LTIxvQAQV1u9Zc0MQ8vstwZxenDvNJX0NqvkCTIZkh8JyTLh1HqCXmRn/ecxmmUUAII7sivEfzU VRfU4dtGcQ0kBnUzqIwIhQbg1nIFNP8j8yHHROFaY4Ss55ZH/l9WRE3kZJUNSMucyVhvCbXCcjP hoYhgpHeL21d4945w6U7eNbjwEzMR3WpqSnX/bToDkvdf/iSaYks53sMkFK0jiK/z0nR0IGXrEG qn282AkSsaT1BEQX53Us890rkorNw1Ax+5PImtMP8z/4ytbBYioyRSs09YyQGDpszIHNwfRewY3 OxqYLvAAk/piWk8oecAH/j6Pr+ggS04YbVQJa4+7etXt13v9Jrg/GcWbg1A8XZzoJ9s+r+4Rf5O dRIbtnOM4WOZcLRkMBP2dbkyH5PUWNADKSQulpwmNZ5ek75RC7rNQiB1NSg6qc84U3yGAsYPw4y FVYBvQ2iDP7ewwshSkg== X-Proofpoint-ORIG-GUID: I3wcju9qdNhceFUM3Om13amrA2MY3vnP X-Proofpoint-GUID: I3wcju9qdNhceFUM3Om13amrA2MY3vnP X-Authority-Analysis: v=2.4 cv=ReWgzVtv c=1 sm=1 tr=0 ts=69fc344a cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=HWmRtQhKy1KQUjwlQEkA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 impostorscore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 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 Signed-off-by: Dmitry Baryshkov Reviewed-by: Vikash Garodia Reviewed-by: Vishnu Reddy --- drivers/media/platform/qcom/iris/iris_vdec.c | 9 +++++++++ drivers/media/platform/qcom/iris/iris_venc.c | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_vdec.c b/drivers/media/p= latform/qcom/iris/iris_vdec.c index ff8d664558af..bd44e6437480 100644 --- a/drivers/media/platform/qcom/iris/iris_vdec.c +++ b/drivers/media/platform/qcom/iris/iris_vdec.c @@ -3,6 +3,7 @@ * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 +#include #include #include =20 @@ -74,6 +75,7 @@ static const u32 iris_vdec_formats_cap[] =3D { =20 static bool check_format(struct iris_inst *inst, u32 pixfmt, u32 type) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size, i; const u32 *fmt; =20 @@ -85,6 +87,9 @@ static bool check_format(struct iris_inst *inst, u32 pixf= mt, u32 type) case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: fmt =3D iris_vdec_formats_cap; size =3D ARRAY_SIZE(iris_vdec_formats_cap); + /* Last format is UBWC; drop it if UBWC is unsupported */ + if (!ubwc->ubwc_enc_version) + size--; break; default: return false; @@ -100,6 +105,7 @@ static bool check_format(struct iris_inst *inst, u32 pi= xfmt, u32 type) =20 static u32 find_format_by_index(struct iris_inst *inst, u32 index, u32 typ= e) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size; const u32 *fmt; =20 @@ -111,6 +117,9 @@ static u32 find_format_by_index(struct iris_inst *inst,= u32 index, u32 type) case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: fmt =3D iris_vdec_formats_cap; size =3D ARRAY_SIZE(iris_vdec_formats_cap); + /* Last format is UBWC; drop it if UBWC is unsupported */ + if (!ubwc->ubwc_enc_version) + size--; break; default: return 0; diff --git a/drivers/media/platform/qcom/iris/iris_venc.c b/drivers/media/p= latform/qcom/iris/iris_venc.c index 2398992d0596..c41f4103ccc3 100644 --- a/drivers/media/platform/qcom/iris/iris_venc.c +++ b/drivers/media/platform/qcom/iris/iris_venc.c @@ -3,6 +3,7 @@ * Copyright (c) 2022-2025 Qualcomm Innovation Center, Inc. All rights res= erved. */ =20 +#include #include #include =20 @@ -97,6 +98,7 @@ static const u32 iris_venc_formats_out[] =3D { =20 static bool check_format(struct iris_inst *inst, u32 pixfmt, u32 type) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size, i; const u32 *fmt; =20 @@ -104,6 +106,9 @@ static bool check_format(struct iris_inst *inst, u32 pi= xfmt, u32 type) case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: fmt =3D iris_venc_formats_out; size =3D ARRAY_SIZE(iris_venc_formats_out); + /* Last format is UBWC; drop it if UBWC is unsupported */ + if (!ubwc->ubwc_enc_version) + size--; break; case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: fmt =3D iris_venc_formats_cap; @@ -123,6 +128,7 @@ static bool check_format(struct iris_inst *inst, u32 pi= xfmt, u32 type) =20 static u32 find_format_by_index(struct iris_inst *inst, u32 index, u32 typ= e) { + const struct qcom_ubwc_cfg_data *ubwc =3D inst->core->ubwc_cfg; unsigned int size; const u32 *fmt; =20 @@ -130,6 +136,9 @@ static u32 find_format_by_index(struct iris_inst *inst,= u32 index, u32 type) case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: fmt =3D iris_venc_formats_out; size =3D ARRAY_SIZE(iris_venc_formats_out); + /* Last format is UBWC; drop it if UBWC is unsupported */ + if (!ubwc->ubwc_enc_version) + size--; break; case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: fmt =3D iris_venc_formats_cap; --=20 2.47.3 From nobody Sat Jun 13 14:01: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 213A233D4F2 for ; Thu, 7 May 2026 06:42:20 +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=1778136142; cv=none; b=Od/gzDnTjzPHGDd0aZANJcmnbuOVcvrKEWlW14lqf9ZM/v4ioBsJSDk1EITtF8EyRuZXUj6oZTWHDQOm4HL1qUVI/2sPf5ZSJcTjGg6JejCkstD/w1EUDvwdJmywvFaJtR1l8u20DowFAz/Hh1X2Iue53LTubTJ7t2Pny11budA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136142; c=relaxed/simple; bh=gxgKlk8U7o7rPcDA7wzebJQFCIcBZ4dBOE0PByUcthA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dTWttVv8Qzv+TFvZ3OAQNyMKj9uIGZB88Gs9iRtViU2Zrc+1LgSnVeQl4QqFJYLnNEQQ8wduCUR6CQngf6UJw4s4xmGHYJEvE5uwIU9w79KBMQzFu7c+FY4fnulxAtQqpVyip4zZQctsA+mIZqn4oRb4UrYZy2jwMzkHnz8bC3k= 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=HxESMiHm; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HxMA187v; 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="HxESMiHm"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HxMA187v" 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 647440WM150875 for ; Thu, 7 May 2026 06:42: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= BbuOCCQkqmd+11RpoiDQrDzWmHqm80eHgugw0mju+II=; b=HxESMiHmNn5I2fPD NdJC3fGpcM1N70e/mRmjcCEyQSdbXiwYP1jKkGpbwLsLEq6G7rqGNg7Lih9kxvoh kzCFiBxYkOFTlCFdraWMDYobtK7jcictNGmLPFxFMb7pDTUZY7c1HmeESm2uf6Xr 3YKQjbp1S1z8t4Z8vvV1j+m3n1etM+w8CV/8v4AVHY4HzDGnLRI3MaRjbygBpPbZ EfFdPPLpXQmxYcqtwbs/xaS0ivxWPDTRr2FudveaAFdomlc6sfJfquDEhykJHhVy S4+xYJR197TdUiQ9s//6WGVCd9W0juW3tWnZJvHtoC0r55w1VwNMKmMleygurcEL eYuncw== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0kctrge1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:20 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50d84b5f73bso15550071cf.0 for ; Wed, 06 May 2026 23:42:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136139; x=1778740939; 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=BbuOCCQkqmd+11RpoiDQrDzWmHqm80eHgugw0mju+II=; b=HxMA187vQ96YuXuSR/VK0M4PU7vSZpza7/dAPMLMG7vyRZVMNbcQSb37MnGDXkzDJC PuimQkE2OAT71MNgNpbmOA7CepruGoCAxnPaWBHPoUZG3T8urH/Y8xqd9eAq+mC3jUSU mRJzjVvV/332RwIJJe2Fg/HUeS4/2qo+RngBP55ojfaFWJ860eFdsgVKmkf6W+A0IEFm 9qvX86pqK4L8MLhAfE7/avmTSI43B3374gakMOsLlmqKq6/CEkIQ+WvDe1RmFayAspTG 7LMgd09ziHH/j0Eu3UlGRHE2siQstaysqrM81ahiZzYmBGYbMBoPdU1cfEJ4QXw24ZpY U0zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136139; x=1778740939; 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=BbuOCCQkqmd+11RpoiDQrDzWmHqm80eHgugw0mju+II=; b=dU8bhN67yEF3UVwEVJmBq9MJoHoaDSwUU0Wh1yx+f1p07yXoWhSCQ+lgUrB9UrlCkF 07zjioKVD4X/pa1Gg0ow+NClAURMWj+WUMrijQ/JRT3ZLPSIGQwlv+xm8DX54yXhnINq WUYTOu0TvYZfqaMSZ2Vl8sdUF4RW0RRVWELswq6e01Rbqu8+tF3+YyRO23kkmaYIsal4 x+s86v+RR3hEJ7V9vStedtUXRARnkOsD3rL748QzDWE1tS8W4zCzaf1i7gh+mIFKWGA8 R5kRAbPkmhIiix8PGHmYunhIg2uq2oZzgksegztmMmlSF8/VnhPRAMRLS+uzMR01M0zC EvPQ== X-Forwarded-Encrypted: i=1; AFNElJ/3r9nu6eXgzgFNo7BZu2EZlQ471dBBYKGdYYq5Hw/QLDseAsuOOd3D5q+aw4ArTIpaJrdwkVGBB1dNVLw=@vger.kernel.org X-Gm-Message-State: AOJu0Yyzu/zelAi1oSZ2bCIWMg/S+8D4yxTLZLdj52t98/kgVSX3qUyh cTjKLKZ+K1XWC8qxae8KFjrUBUTyHQQDf2X7dxXIDTIrM/vRR9QIVZKmsqf4lOJOwa/wAmCzTCH g1jYUDlrrKd5OMuS319goAFi7gvDUO5KuUnrKUl3LJxum6Hhr7OktfgQhB4TVi9+1W1I= X-Gm-Gg: AeBDieuFTrtMsep6DOlhnVNf9dy4T3Z8qqj2Axy3H/AWajLdYI0qwqm5GQF+xM28GnT /QZOvg4EcOkTYXQTbZjUnjYcVden9TtnJosfVe7pnxk0HcIx6ugfrkVu+FazKGZdb4SjNasn/9Y TUjTTRwAz8eez0n8bnR1KZGiTtEkvT//LjWTrZxerkll7erRUqWZFFggn10hHz9i0hzOGwXPAAf i/Ffq+WqX7JkhejYuwdSgno8zzPKc40fy05LIqooS6xllnOdpoytaO91PC7AA272lR39PBMd7KW jncjTksKXl6ECL5kMOemq2ynmzCyShCHyLHNANSsrnQSqgda460vT8GAaasA0iodB3RL1huI0As 1WS2eqqEmyL3r6oRQyXo1APC7UmooBLjw/1fS2XeNNKwp7ouoC1mzuOU9WeF44Uiwf4sqHkkjxW w3Vko5TxDq8JFxEA30sarjiZ4Y6wkOY4pOZnNZJFELE5e0Ig== X-Received: by 2002:a05:622a:608c:b0:4ff:c17b:5ab0 with SMTP id d75a77b69052e-51461c18236mr89648521cf.9.1778136139520; Wed, 06 May 2026 23:42:19 -0700 (PDT) X-Received: by 2002:a05:622a:608c:b0:4ff:c17b:5ab0 with SMTP id d75a77b69052e-51461c18236mr89648251cf.9.1778136139132; Wed, 06 May 2026 23:42:19 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:17 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:03 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-3-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4324; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=IBDxDR3cM9Y0EwQbnRMqwF48utF4pbiMRXgQ3/zQqGQ=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ9WZem9cOmBlR0d2pz/oqztle7+9LzspLIv 9eHKrln812JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PQAKCRCLPIo+Aiko 1ZHoB/wJqkCpxtQqw9Lv0e+iYe2WX9Hwu4TQR1bjfsxX43FNw3T36p4ztVWZBa8jZrcF2KAfRw9 dE5BmZ8edAk9vYbRgal1JybEcUkWWG/BRdN6LBdM/TANcgY2hFvPfqrv7YU9yevYVVz2+FGUDDK e0m58PbuewqtC7pY/JjnsRnSFHcf2vn8xOgLqOlySMONOwz5PzlOK6IFrCPGVHtkdZv1BoOAGVB +Q5r/2x6kb2EkbddCRtM8Jr0PW2ZE8wAlMWPnzvz1C+k+/sizs8SEsCM4YHKZfvp+h1QxN6OszE fjgTKM21ODasgnfeagR2QNrf+9em5DRhH3D5vWv7BMHmGDdh X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=XsPK/1F9 c=1 sm=1 tr=0 ts=69fc344c cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=4Uh0hlRDs2lXuULb_e4A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: g6ORa6mEEKKITG5ni0lQWiSZBzp6-w9q X-Proofpoint-ORIG-GUID: g6ORa6mEEKKITG5ni0lQWiSZBzp6-w9q X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfXyWI/YqnOIw/n uDAAXVMfOoEnDWKKHwkzq9jKaIx7EP9oXukkkUdOWIodcYwQe+ntjP29z8JvpQGOhrYSo00/KbL N/ZpAsyPZMfcmJaLra5OI8EO2VxHAmQeF5Kjw58nMaxGhIJ+DwMHvvnN2pDTgfdB+6Maj695F04 J6Y+BRl/KSMOQDD4om2UbpZkwGxiqU8GbMURPxZc5+lb54ggxDiQeenIkBAqTul/nIJJM97CoDm Ji6JA6tcTAbQ2eABKqO8tA5qi3yfTr6FnUsBl0zK6lQKxGFQb3ug5g7Ul6cabHoYv0sQecprhYA 8BB2G9oEDd95j99a4GlLuDclQYy9LRpzTgUgfsfWS0KdL0eWrxVUtm+od3+gRPzn0TNvgeZURMD jVtnRDkyduxO6tOuoqEy2WcRI8hNySm+annMLs2dqQBBDEOIggKZUf2QDt8Fxwe7Bn0jE1yvSqq eLH/esYnvoaKdRAxDKQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 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 Signed-off-by: Dmitry Baryshkov Reviewed-by: Vikash Garodia Reviewed-by: Vishnu Reddy --- drivers/media/platform/qcom/iris/iris_vpu2.c | 1 + drivers/media/platform/qcom/iris/iris_vpu3x.c | 3 +++ drivers/media/platform/qcom/iris/iris_vpu4x.c | 1 + drivers/media/platform/qcom/iris/iris_vpu_common.c | 2 +- drivers/media/platform/qcom/iris/iris_vpu_common.h | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/iris_vpu2.c b/drivers/media/p= latform/qcom/iris/iris_vpu2.c index 01ef40f38957..d61902c9a213 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_vpu2.c @@ -45,4 +45,5 @@ const struct vpu_ops iris_vpu2_ops =3D { .power_on_controller =3D iris_vpu_power_on_controller, .calc_freq =3D iris_vpu2_calc_freq, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu3x.c b/drivers/media/= platform/qcom/iris/iris_vpu3x.c index 3dad47be78b5..dc02ced1b931 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu3x.c @@ -261,6 +261,7 @@ const struct vpu_ops iris_vpu3_ops =3D { .power_on_controller =3D iris_vpu_power_on_controller, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; =20 const struct vpu_ops iris_vpu33_ops =3D { @@ -270,6 +271,7 @@ const struct vpu_ops iris_vpu33_ops =3D { .power_on_controller =3D iris_vpu_power_on_controller, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; =20 const struct vpu_ops iris_vpu35_ops =3D { @@ -280,4 +282,5 @@ const struct vpu_ops iris_vpu35_ops =3D { .program_bootup_registers =3D iris_vpu35_vpu4x_program_bootup_registers, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu4x.c b/drivers/media/= platform/qcom/iris/iris_vpu4x.c index 02e100a4045f..f608a297d4a3 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu4x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu4x.c @@ -368,4 +368,5 @@ const struct vpu_ops iris_vpu4x_ops =3D { .program_bootup_registers =3D iris_vpu35_vpu4x_program_bootup_registers, .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu4x_set_hwmode, + .set_preset_registers =3D iris_vpu_set_preset_registers, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index 7bba3b6209c2..ff0070c85ccf 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -472,7 +472,7 @@ int iris_vpu_power_on(struct iris_core *core) =20 iris_opp_set_rate(core->dev, freq); =20 - iris_vpu_set_preset_registers(core); + core->iris_platform_data->vpu_ops->set_preset_registers(core); =20 iris_vpu_interrupt_init(core); core->intr_status =3D 0; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index 09799a375c14..21ed4c9bd5e3 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -22,6 +22,7 @@ struct vpu_ops { void (*program_bootup_registers)(struct iris_core *core); u64 (*calc_freq)(struct iris_inst *inst, size_t data_size); int (*set_hwmode)(struct iris_core *core); + void (*set_preset_registers)(struct iris_core *core); }; =20 int iris_vpu_boot_firmware(struct iris_core *core); --=20 2.47.3 From nobody Sat Jun 13 14:01: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 F1012340A62 for ; Thu, 7 May 2026 06:42:22 +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=1778136147; cv=none; b=eeuVuCC8cKrKFlaDWs11X++JsqctaLT0iApW6PEKeOEsQEeWQ+zlDLQ4xaJcQcx04/GG5LFC2K7dorYCuVokEcaYu9PXLIb2z+FwZ8aja80wn/2mU8Xi09u+m5VL9/B9TEqbU1w1ZBRKQDBSCU/Zq3+dA07N0uIw9QY+cLXi1Rg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136147; c=relaxed/simple; bh=xdQhJoUl0aK+2Ix7d2cAxdXiGObKKMBXv2H0iO+htCA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Fzw6O3nXB0J8EKaFFZoWgg4sVoYXsoFhPlY4yoGLFRt6c2xnJOpsuj5Ihfu2h9/8YLx0w6DvIufzRN47x069fT7zOzq3pjt8lE1+zVtAowpJcKQrs3eqQFrjDynMC3dZbdgwWTrtnXywEq2cd6lbUhtmKIk4Dip5pkUFNHRYMas= 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=IvIzYQb7; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LAI3czjD; 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="IvIzYQb7"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LAI3czjD" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6472LOvn3464696 for ; Thu, 7 May 2026 06:42:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= K6gPMzFlIvZlXBHM8qU79sOvtNXYw2NQG6gyfTtDAqA=; b=IvIzYQb7WOPHaE1P zkQoQoQ88Sn5Aua6DVMoyNqN+v/c/twkT/ZOX99Y/+Jm8v0dD/IGuXYFRX603ab0 Oy8uaQqZd5lBwELimG7Wxk6b3WYJpJYlYXv795SMELmTbRHeP7ZxldfGKjv1OsMy sir7trCEPC4yBOWFguIKrHZY0fpbQdl5e8ZX/k6bTAtdiHRAH61q0rh71Zh3SOSr 406I7FVm3TZ5DapQXesepbzyAiVOMvvzrswDMGECjuDvVpwjby0KC6miJ19loKlO hdzDkz6UWx4LGzEoZdMdI5v8ykGngRUXtE+4EXdN9LBAmdcBvswHrZ8zZAy4Q4P9 rZZMLA== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0hvn0sun-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:22 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50d9a6a853bso11402171cf.0 for ; Wed, 06 May 2026 23:42:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136141; x=1778740941; 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=K6gPMzFlIvZlXBHM8qU79sOvtNXYw2NQG6gyfTtDAqA=; b=LAI3czjD2IFJ0FDiQebvEzrISYQeLgEK6OuRBAuoFrqknQDc25Fn64M71Sovn+Tz7j tdAu7JAJ8B05bMbRhJIrQJh+tUXvLYAvsSBsPeyOatjI4+vGDXtLoNcZ0/557f3W8SXX KZOS0SaAQ+eKOtoR1Yl2PWazXL9XYs4KprcFp4iFXTM+/Z/vOmC810l7kAvwZBKE6eGW yIKGRuS2k6HZ1TxVPrtngsgkDluZl/0HJUXudN7rdkYd47voSbph/nZx6yiWMznYl4rr vxejvLy+PtCtZUBNTkhKsRbUF9kMQd6FgOwesZQlEjQJ9CGIpl8BM5sL/Nhf791ngnuo MeaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136141; x=1778740941; 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=K6gPMzFlIvZlXBHM8qU79sOvtNXYw2NQG6gyfTtDAqA=; b=XErdgpANcMIyfLbag8FlC5hWP+eaXhYpnZILwbhcc/MokBjcItNHF6+BPvV6ssIGtW XOJ2pFgogeBEcm/TO0svbN76tWxN3dEIFJWYLIWxZYxCQ5cpLwwfyv6pFORKsjE/FxJR oXABQwAr7pzvoT8i6hwpOgOVHethsPSbZCfIjVD8QSiH6GNwFf0misTOv9xZC3C3ai3R cGI4uB+GVrPIpICJo9rugNxQlcf28antQE5s38HQh6LXky2NuNT3CeUsgjVTruHaMaRC GQo+TbfLU/VLaJQ7eAEaQn6X9BIiXYtysJRndHrsLaIKw2bSnXRrk7IE86t6+B7Q/nbz TPoA== X-Forwarded-Encrypted: i=1; AFNElJ/ljsvBLbq8RBSW16NVPmyTequEj0ZAU5tB9fS+3NyaBAKx6hES3CCcE74DsLrM0qdILPHNiYphtA2DKwk=@vger.kernel.org X-Gm-Message-State: AOJu0YxwRkhK/KRRDw0NOR1y26Rc/MON5/CndWJd4dcDSdKwMEjc364X 7c9Dcl90WwzGTqxwg1Dvl3ED1DSPCTJDoAXysC8GX1aNZr2/GDzUkjuUpen+4fVpQbXMywccakI VA3Ib/DCG6nGhQacZUUFyymMMhMh8etscEWzdJ7BRN8xB5/kzra5ybZFwSQnaDgou7qQ= X-Gm-Gg: AeBDiet1ZfTkNI2G5s7ksDfDnIY+z4VpZzkXfCH0vLsLcVvUTuGUaacHlzKwp6du7CF tR9rCeiqbIl+GBx4z3azhLqOF+NKuEKh1e2d0A+PYOdmiiSN57WFLIzafHCndW+Ka3Hop5gagw3 +wybfj5J3+R9VqYrPdJJa5LjNHAAuyHzcsWPP5RP5Pngk9tjQGNsag4tciKJrmdKtOcQaYJQpUz PY+vLElcR9m7ppOchWDKNH2+lONC/V62A0hfeg+mBIZZTQv9PQTaUs2js6n3c0RjJwbDexNGQwN o6wjTB70P9qFG0YbYo6Y9dZlm1jB7qNICYqE4ivnEe8c0KMA4/cjni4Uj/SveeGOffpfeKW17Xv yHuipr0eLqBnF83TNkAaNyixNaFdmQFrtWtmoEwJUbjefMJJy+sr3qL6JXGkrTu3Y5bmtrR50BD /TJBNAQGMsUH7EjpeuJkJ4IqJSl1M5VJ53ZYK7LAdWlzr9pJmCAuyB+F8z X-Received: by 2002:ac8:5a16:0:b0:50d:9b07:9c46 with SMTP id d75a77b69052e-51461fa0213mr88562001cf.33.1778136141210; Wed, 06 May 2026 23:42:21 -0700 (PDT) X-Received: by 2002:ac8:5a16:0:b0:50d:9b07:9c46 with SMTP id d75a77b69052e-51461fa0213mr88561731cf.33.1778136140689; Wed, 06 May 2026 23:42:20 -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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:19 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:04 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-4-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4808; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=kj6DR4cWKV5C9mtO2ZoEmuI7vButCz1bmXA5tAl5t+s=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ9Hyz/kn/F85otEYZf67npXz19pmKP2Hbp+ Fgk+1pPQ0qJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PQAKCRCLPIo+Aiko 1YF7CACjGCz72GFhw/gpDY0hwHCUoaGnWm8mgR/jZt6ore8OMwxm2844pyZdKczzgoeEPs3tgJH spFEdZu3JDscpeoDulWpxRfaWUunIsC1FZ2z3P0PxUj/mJVlPDy/KhAbUVIHxfFCg877P6qhE64 7tsOqp5A0ylH9TXZb3NooA9mikck28rs90hMaJz2ok4Np6CbT9sRTwcFEnFpqT++61GKD12mZZ/ ibe5YOXKStvs3aheavHTfLg4ETLd3mIDqxIlo5moM9u+BSffCF28dH1Px2Un/mxe8AYtDbev6zU ftsZykq055cP7OBAqm9LrZie5G3DerAiBXKoIvtxhur81tnw X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfXxZ8Ah8vhtmch kl+9ADnqlyQyxTEcSJ348/1+Q1Eqx+tMGe7v8n8thBVQK/gwlLurUViPTjlzn+rd7Ht5NdGYpPh Zhgw+vICHZL28Jk/F7A5rby4wblYg6tQt7Lj+KcPw84kQEXsXGAdqQ0pY0TIc/uOI91TEAIWcaR WKahk2a7D2cVU9VKXJurN4+7JIAZGFLnj5QMlEQiZ4jJG0GCGYUMmx0d0TcK5aPQw06bEq2SMaq t6rvCVfii0/loAbygesNlxRt9ImH6kaYx09HKnr87fNlyWlMl22NNKfrtCtt9avBn7vMSBBq7f7 jyykDeSI7TuJemGs78ZMyo0KxZCURYOlSloYcCZW29XaBFc+MQWEPlUX3dt4UYZWk4qmtGsAXvL WyxkaHv+U6Fy6HU9y0iIqpK9hqzrOBy22qZE1ielSoQPyxOmvI3XdN0JQtS5OyfKuFzpx6FVPBs 65AO2zk9ihxhU8Ea+wA== X-Proofpoint-ORIG-GUID: qlifeDhAiJl77j6fyniYvELFtDJeI3of X-Proofpoint-GUID: qlifeDhAiJl77j6fyniYvELFtDJeI3of X-Authority-Analysis: v=2.4 cv=ZZ4t8MVA c=1 sm=1 tr=0 ts=69fc344e cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=2EYiHOum3YQmkHKk0wkA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 clxscore=1015 impostorscore=0 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 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 Signed-off-by: Dmitry Baryshkov Reviewed-by: Vikash Garodia --- drivers/media/platform/qcom/iris/iris_vpu2.c | 1 + drivers/media/platform/qcom/iris/iris_vpu3x.c | 3 +++ drivers/media/platform/qcom/iris/iris_vpu4x.c | 1 + drivers/media/platform/qcom/iris/iris_vpu_common.c | 4 ++-- drivers/media/platform/qcom/iris/iris_vpu_common.h | 2 ++ 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_vpu2.c b/drivers/media/p= latform/qcom/iris/iris_vpu2.c index d61902c9a213..d49d22b14753 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu2.c +++ b/drivers/media/platform/qcom/iris/iris_vpu2.c @@ -46,4 +46,5 @@ const struct vpu_ops iris_vpu2_ops =3D { .calc_freq =3D iris_vpu2_calc_freq, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu3x.c b/drivers/media/= platform/qcom/iris/iris_vpu3x.c index dc02ced1b931..c3b760730c98 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu3x.c @@ -262,6 +262,7 @@ const struct vpu_ops iris_vpu3_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; =20 const struct vpu_ops iris_vpu33_ops =3D { @@ -272,6 +273,7 @@ const struct vpu_ops iris_vpu33_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; =20 const struct vpu_ops iris_vpu35_ops =3D { @@ -283,4 +285,5 @@ const struct vpu_ops iris_vpu35_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu4x.c b/drivers/media/= platform/qcom/iris/iris_vpu4x.c index f608a297d4a3..90ccdc0d2a07 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu4x.c +++ b/drivers/media/platform/qcom/iris/iris_vpu4x.c @@ -369,4 +369,5 @@ const struct vpu_ops iris_vpu4x_ops =3D { .calc_freq =3D iris_vpu3x_vpu4x_calculate_frequency, .set_hwmode =3D iris_vpu4x_set_hwmode, .set_preset_registers =3D iris_vpu_set_preset_registers, + .interrupt_init =3D iris_vpu_interrupt_init, }; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index ff0070c85ccf..59e4d68d042f 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -31,7 +31,7 @@ #define UC_REGION_ADDR (CPU_CS_BASE_OFFS + 0x64) #define UC_REGION_SIZE (CPU_CS_BASE_OFFS + 0x68) =20 -static void iris_vpu_interrupt_init(struct iris_core *core) +void iris_vpu_interrupt_init(struct iris_core *core) { u32 mask_val; =20 @@ -474,7 +474,7 @@ int iris_vpu_power_on(struct iris_core *core) =20 core->iris_platform_data->vpu_ops->set_preset_registers(core); =20 - iris_vpu_interrupt_init(core); + core->iris_platform_data->vpu_ops->interrupt_init(core); core->intr_status =3D 0; enable_irq(core->irq); =20 diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index 21ed4c9bd5e3..9151545065cd 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -23,6 +23,7 @@ struct vpu_ops { u64 (*calc_freq)(struct iris_inst *inst, size_t data_size); int (*set_hwmode)(struct iris_core *core); void (*set_preset_registers)(struct iris_core *core); + void (*interrupt_init)(struct iris_core *core); }; =20 int iris_vpu_boot_firmware(struct iris_core *core); @@ -44,5 +45,6 @@ void iris_vpu35_vpu4x_program_bootup_registers(struct iri= s_core *core); u64 iris_vpu3x_vpu4x_calculate_frequency(struct iris_inst *inst, size_t da= ta_size); =20 void iris_vpu_set_preset_registers(struct iris_core *core); +void iris_vpu_interrupt_init(struct iris_core *core); =20 #endif --=20 2.47.3 From nobody Sat Jun 13 14:01: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 5390133FE15 for ; Thu, 7 May 2026 06:42:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136147; cv=none; b=aowPyXV/eXItVWnTUo1V/qVwJwVDo971r7dnWZWY7vOpSloW/tB5fg6urUypdOJd9KbAdjdy5AnEvsYLGgGZ1mpR51VRVAwYoVb/5pBfDJo980BtJ4o92X9B/lpGppwc9T6hZbGa3GUAcYr5wJdHvEhFcoJwhQeP7XTc+D1v1go= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136147; c=relaxed/simple; bh=13Wy0PboXXprJEYnsXJ5D987/r1HcPUtw7hAtJCEM9M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=q0/WPzIRdzC/RdvlSecCwwjkR10WsEy5mQU2eIXFCs3aPv8kplfsKkm3r/UKmhAtsz6PB/S0aqmzxVAd2jA9CXa0M8QMN56RUvwXemkSSJBd53mIef0M4QJWt5m7z+7wioM1s0vEWqsXuyTOyz0Gn/urXgcWXnWNekivh2pajFo= 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=VQ+q2gMM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=F/4aTs6H; 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="VQ+q2gMM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="F/4aTs6H" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64742r3W3036600 for ; Thu, 7 May 2026 06:42:23 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= C4KLMY558TYgnElAbsXo7fOzEKP9ncLvusxHoHl7/Q8=; b=VQ+q2gMM9Ux3NzZF FzjnxQEgX9DFy9hqYRtGqukxh2aKC5PbUkCznQ/DlhTS2ojxzv4m23KDMGyevJF5 3FKMVIGH2qIko85CeO/2WA8dOo7TT86ZwIz2VPAeHz3tsZ7Sc6iDWSLxJJ38yvAM nzuVJwZog1mG9r4zcoppmvx0LzmCPzH02kV+NlBzRD9hdqkjUZkYp5BLAcv03yhK eWhJPd/XNzh8e7QplONUFuHxwryZSK+skptCvJCEt/C1aXfZDfNKNICSgC/EBhJN 5JyqFph3OH4xlEJsI+WXYOC2EG4euFWXYgAfKz8AsNWovTcGaWP/V0OKXaQ7dHEl eXrMPQ== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e05bf3jrj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:23 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50fba8d8c40so8778441cf.3 for ; Wed, 06 May 2026 23:42:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136143; x=1778740943; 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=C4KLMY558TYgnElAbsXo7fOzEKP9ncLvusxHoHl7/Q8=; b=F/4aTs6H+J1GOeZe8HifdSUI0FwM2Q4XMD2xfwgXjVwSODVYda51r6q9cDV7/fB53v an8FBWgjFD0E8FBLxHa3aMMDlyni8K14fcxVy2dubmkWlwMKpOD3tgals7edNuRkJ/ss 8fnXwb38d9nypkhZbOkD6Ns2I5f7baG37oA+9IfwMr4xdhhsCLtbPYoFMC00+cMcuK92 aLToHfcjoUJbeWK77JQCHS7lWfDJCmOCLNi5QMz+4dw/XNPm7D2tlqm9tNNhWDSY47vN BvA1vverpH7rRRzr44m2vtVRMqxkhC5zqKSBtSCGnzPp7AfCA5KOX9whHkQlxPApN2zN slLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136143; x=1778740943; 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=C4KLMY558TYgnElAbsXo7fOzEKP9ncLvusxHoHl7/Q8=; b=BdFjg92foROA6NduotJ910nv0k9CtDXHS8M2nxk07n2305IV9UK4YorAq+75P2I0i0 U4ykhN2kpRzN8lSdk95e5mFAOgN0rFTzp//t1OwYk7qys79j471y9zT7g2A1LbIM73zL PM+R2cRjnBrENUqSTTCQIYjbERHOiw9Cj4HdG8/nMg9RSEGeZsUXLor1q82XDSvlR2HB owzUbn+oC+A02o2MoOXMrBd4nHjN4AT5P9pfxkLDKRlaYx1EHsMKOFh3bHEkDfhFZFSz Mms/tD4RtPu4WAowrjmfibozFww7X/X+5i8AVJUrOyc2rqwmR1Q3JxGH1nJ2jsb0htIz iL+g== X-Forwarded-Encrypted: i=1; AFNElJ/CVm2Mtl5mnZbbnDdS7xHn19yPTyHg2DXBnm9vxvrQwOzKtfTdSxbiQUwEsPKYieA57I4OGv0US+bNw4Q=@vger.kernel.org X-Gm-Message-State: AOJu0YybRYCnpITnJtMrCYYFXFMa+aK8YE9f8j7Ob0anFZn16ZI9NSqf Gr0QAOdGSGz86O1uMvUdDJvPNjFzNelgGhz9+ae9Zs+effKvr1Mb8KUxwvH6azQrrkH9/7exteb xDplKEZcp4oKZra49BAehLp8OVWbG8iiWm/yB2fA7emnwq/WQhUtU+HDJF33gsCSKcJs= X-Gm-Gg: AeBDieuNL0vpuBVXXvOkQomyK9VEP4j5kxRtTwNyVzEskTzZlVQ3pd6LhOkhAJdEqLl D0o5n1eyi9MusESbeD6xa3lU7l0tg3p41Hn7tvmbjt+HbwfJTOZFnHmDUCaI7BBOiL0WnVF4p0w QWAmucnFc3aCyocvQV5n86bMBZjaN3iP01kdEIrZg+bxapvOwfCzGmEJ3iJ72ueZRYo6QYojsx6 u/U4afLBvG+WIovHn7TcX/Qb50db5eUwyPfQd5Or3ZxMoh1lPYtjledtHOeZDs8mKPItQLgrow6 l7f/B0xL+DDJxN+MeAML4q253jwmzIIriPCwUaIWQYxL45A39jOmN2RtYJzCf58HH3wYvCn2QV+ CgYiXfmI+XG+BCWwHqCjPuaoTvJu99fab0bsLQ3z9GHG5jRg0F1fpK2uK0YsDmYhD6gl65G7FNt C8fT6ttInzkykXfdQVrfU5aYZ5ngwQbQt2IofBW1uMq4mGc2cwX9SjdGUj X-Received: by 2002:a05:622a:6096:b0:50b:4b3c:7554 with SMTP id d75a77b69052e-51461be0cbcmr92210671cf.10.1778136142769; Wed, 06 May 2026 23:42:22 -0700 (PDT) X-Received: by 2002:a05:622a:6096:b0:50b:4b3c:7554 with SMTP id d75a77b69052e-51461be0cbcmr92210491cf.10.1778136142359; Wed, 06 May 2026 23:42:22 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:21 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:05 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-5-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2941; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=QxCGqIHVv5yEowFiMuTZ6xAme5VboAgh/OSRfsnG4Hg=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ9tmmnqlSEp5UE7gFt9FU8H71wEiO1dbXTQ jkjAVGFcDCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PQAKCRCLPIo+Aiko 1XpdCACC6mrJEqsscLzoZgPLf06Jbpjt8r9O37DC1OL9K7Ln2w7QO88M8yQDFx1g3wxmnrmKJeI 7eVKRRCDu9BuKyT9i//lp6BHPXFIGW/lfD37Y4/gizmVbQhCvanQNiABnyagYfty+CoPMRjyv5l ApfcPXQbPc7wLhsfO2w3T95HuHN5WAnQ+XhIaHcER7HAbTC1+V/h6STBiGgMFqmS78CebxFhc7I 9Tn1+ZFxTD77rN6ydttqWhkZXQjq8rpH9TVOcwXw9yRCNEMePek5FYddOswaFewBRRoN082fa2Z 6XfQ7MEHbQjxCiU59dyljf8P/I2eN4Id7SFvJeH3bRLqf2i6 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX5wjNlBLpLPB0 GUBmHCYSjujE2BqBuC1pdr8ag3P0UaANDmR9Uy6QpqpjJWu+ZKOUyDrS1MUwwgfgopNkrQWwPks QPN/HsZMYz8Siba3iKONYcWHa5JDwrDxX8nF/VnF1vJi8R79+bwxhKxEelWCENyaAd41TQn0gAK AESuCi88akBhcYquHibKwj9k831j9Ohqk/wpdwwHfh0SChmymL5PQTctoRzmpRwcZWUDLPskNd0 2ZIUJIVo8UYw4Do0TgX4SxnowQibIkI7W2MzW6GvMvhT1wyonw9WPce3XjNt4wrwkPRpvjS2/jH cXug/6L5vydJlBqiQQ4tkqecN37Hrlh5timM4OqhtD6/THb0V2g/kRIDAmigFT4acr9kRdmKOY3 +mDMWv9bEEgtgUY4CJUxBUxtDWCk6or+8f7cxzuksnpdzcsLRnVL6+KbOPIlepdmXTWpn4gCJ+6 C6M3bgUx/Auqdb8/Exg== X-Authority-Analysis: v=2.4 cv=PqmjqQM3 c=1 sm=1 tr=0 ts=69fc344f cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=S07ZqrrhDxmTjaDOwnEA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: 2AVrs0sJhaoXsMOm6T5oDC0ub1m-oLYw X-Proofpoint-ORIG-GUID: 2AVrs0sJhaoXsMOm6T5oDC0ub1m-oLYw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 adultscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 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 Signed-off-by: Dmitry Baryshkov Reviewed-by: Vikash Garodia Reviewed-by: Vishnu Reddy --- 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 Sat Jun 13 14:01: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 D4D0933F8B2 for ; Thu, 7 May 2026 06:42:26 +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=1778136149; cv=none; b=IXkM1WJ+w3pevSTTmEh9MsdVqY7WVG7ILoMr+pNJspFfu+b2hexf2tlNR6vjyltc5zlXYEqSf326fSSGqF9pBzS2AGQtL94wiumtDjbAjA/dJP0gXCdI53fB1PcT+Ns6av+JJf1FTHQpxr+eFkf4xpxzmpA6106Wi6lE/Bghs0s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136149; c=relaxed/simple; bh=7L8xHholksLr/J5idSuzkIoCG+5CGus1ErxlOMircNE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UKoE80wn9ae1igRdgVkpqxloKDiE4osFA7T4ZClZui/pJAmHpYOcu0cF9FqvCRzqpCf+WptmTRhI4pX+wx5fvPf99eFCpSM0+f54buIRQgHoRRy/dpT1BtOEY+6CvuBBAruPC7mYD2vckCwcQirD0QC9Oz6RpJ2MyGMg8mPzWPY= 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=ftVnXNLw; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WyY8djX5; 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="ftVnXNLw"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WyY8djX5" 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 647444jL151029 for ; Thu, 7 May 2026 06:42:26 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= GRdJBhxXKG6cF3d7XsY6Pd2XP1jNeNkL4RCXQhfKXgQ=; b=ftVnXNLwAcxTZvsw FxJcfhaoP+Rm71klZ+cd6ag9N4dinF8FCvQAEulK0sNnu3Mylwii6ba6wWB5zoiI 94AT+U0xtnL2UQ1gAOxQl0yaxL3K0seK74E//pASbjm4xraFr6yh9Txhi1oNBqXC 83m+7FRwuKnBQVYC8XSZqW7UwH8L8wl9SiKbNVfta6axnqhfJx9+WISC9DhAPlP0 1Wsxr2olmECYgEmz0aB+Zu+vOIN8IuP73p/cEXDxKYQ2zOZv53t0lAg10Dkzyssu wCFkVQp2zdu5PeGEg/ON4tyqpxJCs484ua7Ste+Ht7QYiM3F1FKQ/nW+EaC24XLN n81yaw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0kctrged-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:25 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50d9a6a853bso11403431cf.0 for ; Wed, 06 May 2026 23:42:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136145; x=1778740945; 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=GRdJBhxXKG6cF3d7XsY6Pd2XP1jNeNkL4RCXQhfKXgQ=; b=WyY8djX5UQVXFvM7CLPlhCqgH4zgIkap62zWN+gY5HFE25qtPbQVy66JycgiGbhIXc bAouPEfD6q/QiL1dwa5/9K/s+BElmAvZL8c0CymSvm1ad+kGlbOVo3Un7wm0NcXhMQT6 9aAC+lxc3fo6tz+Kc4KNXw19QzrHR2EIrE5gAQ/IMuRCbed7yU/Slb0XoIlcXVgIlDpF AZA+0sFNRUD7AEr+yylFMa7mXYdOdfWELCej9Fe5xmWOHbbQXLGrM/9/6svrl+Aa1zml +360zTIppL9sS/Ze9h5j/XqDk5yoog22oqYHi2xhd5dgfyMKVb/JXeya4C/9+DEQGOZz 20XQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136145; x=1778740945; 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=GRdJBhxXKG6cF3d7XsY6Pd2XP1jNeNkL4RCXQhfKXgQ=; b=hWuTjzYCsopZT0ZGn2h73l3hAd99YMdwfTjXgw0BWLikbUe4V/0gF+tzwainv99UxM tmRYj3RVKhzPQ4rc9W9a4GkeGngT56qasQ+58+AgGaa2uDssOd/ijhk0gfVNCCmLWaoS B8aEu1Rp4k5xNDCadCeP40d2t3araozYUYo+j+i8ZU+PMFHD2VxnXWSJnR4d6Lj83H5J bWuUKg/JotAaXcF/K150jHiTNpVZcsrjmpLWn3o01SdjU4CuhM1xMpG2uRoUKSyF/9+4 GlAAaDmeQX2352N2Y6L7Jh1mBDzaFU4A+3KYFTVfl0dSadxa6Hne5JtbFY1nqH/SgEHm vLqw== X-Forwarded-Encrypted: i=1; AFNElJ/+bgmGJQx73jJ8uG0Z70ARFg8pT4VRraiHSxNxy70WagTLLEi3iGKs1ijOtOI4WzmZTaYzkBhYDxdDF4I=@vger.kernel.org X-Gm-Message-State: AOJu0YxDAR7DY0x9SG6v84tD/SCFb/wVSyhUZAxUcTUMuoPJU0UtNAsp 8WWx3Qm1iT64gmilVor3nxfuaU9shvpj5+zL7MDgswkQh/d3E8LvM0hBjLlKCFse1LwV3/WcuXi eTHXOfkMkLwXjExrB2Lt7J78exsIR5GQPVr6aEICUA8Ejv2ofvNbkHKueyEfrXbg+Nek= X-Gm-Gg: AeBDiet3+xbY4BpfhjcCCikA2I9CY13EHDWYUY3CTEModEGzy9uteyNmOmQ7PikWkTm Sm0Va4+nKdfonma7X0j7MPzTP7L2CkvNaaS8RjLgKg4HRuFj0SYcr2PYLrKVtpW+xBO2BdVomi8 Nwf60ZdsgPAp9WGEvyzNCTCTeP39ml3kpEL5dr850W+3avP8L087B8wGjXJjwx961jUAcCfbwR0 ZqR0kgSZ5tFeK8iBhgWsU2VvEDprTYAktXeGxPQReluZ4igbGzYnhc+5BHcXYDkbZ1HgNmJT0Gi YLy5ZSySV7wnGtLIzmmCrCp6WkxHXco2w2jnEO1OAWv06ADUdPuHEvWeaoOIPyuusNR1PVCTuux DFGCIRincdwDp9+C5SeNAZgAkYD33JkPwAWs9q/8/+gKslv1TzKkZO5NPh3rPmaF1Tqcdg9Hfl6 CJI8c19o8+/5ivDlurCRTqIUZls0n8SUru3kEHUWh5fdNdpw== X-Received: by 2002:a05:622a:19aa:b0:50d:9b4a:e6f with SMTP id d75a77b69052e-51461be057cmr89098891cf.1.1778136145308; Wed, 06 May 2026 23:42:25 -0700 (PDT) X-Received: by 2002:a05:622a:19aa:b0:50d:9b4a:e6f with SMTP id d75a77b69052e-51461be057cmr89098541cf.1.1778136144864; Wed, 06 May 2026 23:42:24 -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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:23 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:06 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-6-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=6447; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=kvjyEAY0vC/1nZZAL450HsDlx2QzlbhCGbevXX9OZR0=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ+YfE9tbWXO/PDQIsikv5ZvO4nBnevElf/ccJXY+48czm 20WrHrXyWjMwsDIxSArpsjiU9AyNWZTctiHHVPrYQaxMoFMYeDiFICJ1Fax/08wywvfbDxd2+XB xKYGgZqwS5X61ZtY53jc7NYssAucu/xgdlPwWcG5rj0iyyyva0cHmfZfVPxR6Bwnm9wkZMURxmV iZNnoY/zD6eQDh/iwXdN8GmZXmD6+e2mngsOerZs8ZM7f+Bj8mCNI22+G3S02hy6ndIXp62xedG 9WVIrjXn2120srJX853+RYQZbW768FTZYLvj184KnPrYTws9NEqw/zMr8tOat+wX/aP5MnzVVn1 lRdXLT9db+BUtiKOWbN8+ymsu/MUdnIeS9ygoX/As4N0wO2LtnK4+h+7pWJgChXob3fq1fuB29s mZgS/ss5aNp/E6nrC6y+W2tlCRq2TVS9LfBl2mX/hqfXAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=XsPK/1F9 c=1 sm=1 tr=0 ts=69fc3451 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=6vpm4igQ2ooD_hm6sYAA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: YK15o56wrUNHP49BjzwVMd1BkW1p_n9D X-Proofpoint-ORIG-GUID: YK15o56wrUNHP49BjzwVMd1BkW1p_n9D X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX0lSSnqAoVdxt TTiXdQaIjnOnfW5thBypQe2Mij43IaRa2h9O/QbrmyTjnTOLTqaD4pugiGLfn3GadCLSOaVRMLF 8cxaZa3gmSqUYoHs8JapDUfYY3GGC9nQy9WzwS5O2hMfyRpSLNeiF6D/dtPCp5AglpWZa19R6Y3 1h0QtrgX93cuY9WKxNh21qN6AWIi0KjaePTujJ21akPLFNDt/2Pwd3u2cDEsTsv0MORM2YYDebZ VAn7RkBLZC+nW+9CSI3HoaqqWqQBfDzNgE0KRaCE2vUqP9D2QPdc0ZDx6jDuodpW7BO19Grc7E8 fKAUa8TR9UZBkMLqRTVDiQwdM8cdlbhXfzbxRiR00eFpES0Cw9FaQikSGprcOGfYRJCrkeAceLk j2lsTNB9xBDdGWCojzmk1u6QXVDZfcukVEsJ3N6NzCJa3SW7IlwXOvi9hdBcQTli8sEVGzNe6oB qamWaI7wkLAdjzV1Bsw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 From: Dikshita Agarwal For AR50LT core, the value of WRAPPER_INTR_STATUS_A2HWD_BMASK differs from the currently supported VPUs. In preparation for adding AR50LT support in subsequent patches, introduce a platform data field, wd_intr_mask, to capture the watchdog interrupt bitmask per platform. Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov Reviewed-by: Vikash Garodia Reviewed-by: Vishnu Reddy --- drivers/media/platform/qcom/iris/iris_platform_common.h | 1 + drivers/media/platform/qcom/iris/iris_platform_vpu2.c | 4 ++++ drivers/media/platform/qcom/iris/iris_platform_vpu3x.c | 6 ++++++ drivers/media/platform/qcom/iris/iris_vpu_common.c | 8 +++++--- drivers/media/platform/qcom/iris/iris_vpu_register_defines.h | 1 - 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 7acb073f7197..51d8faf6fd1a 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -283,6 +283,7 @@ struct iris_platform_data { u32 tz_cp_config_data_size; u32 num_vpp_pipe; bool no_aon; + u32 wd_intr_mask; u32 max_session_count; /* max number of macroblocks per frame supported */ u32 max_core_mbpf; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c b/driver= s/media/platform/qcom/iris/iris_platform_vpu2.c index 8259709ba203..238c7b17ed4f 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) + 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 829dc37b4058..6e63f279efbe 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c @@ -17,6 +17,8 @@ #include "iris_platform_sm8650.h" #include "iris_platform_sm8750.h" =20 +#define WRAPPER_INTR_STATUS_A2HWD_BMSK BIT(3) + const struct iris_firmware_desc iris_vpu30_p4_s6_gen2_desc =3D { .firmware_data =3D &iris_hfi_gen2_data, .get_vpu_buffer_size =3D iris_vpu_buf_size, @@ -106,6 +108,7 @@ const struct iris_platform_data qcs8300_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 2, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D ((4096 * 2176) / 256) * 4, .max_core_mbps =3D (((3840 * 2176) / 256) * 120), @@ -135,6 +138,7 @@ const struct iris_platform_data sm8550_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -172,6 +176,7 @@ const struct iris_platform_data sm8650_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -201,6 +206,7 @@ const struct iris_platform_data sm8750_data =3D { .tz_cp_config_data =3D tz_cp_config_vpu3, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index 59e4d68d042f..b8300195a43b 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -109,11 +109,11 @@ void iris_vpu_raise_interrupt(struct iris_core *core) =20 void iris_vpu_clear_interrupt(struct iris_core *core) { + u32 wd_intr_mask =3D core->iris_platform_data->wd_intr_mask; u32 intr_status, mask; =20 intr_status =3D readl(core->reg_base + WRAPPER_INTR_STATUS); - mask =3D (WRAPPER_INTR_STATUS_A2H_BMSK | - WRAPPER_INTR_STATUS_A2HWD_BMSK | + mask =3D (WRAPPER_INTR_STATUS_A2H_BMSK | wd_intr_mask | CTRL_INIT_IDLE_MSG_BMSK); =20 if (intr_status & mask) @@ -124,7 +124,9 @@ void iris_vpu_clear_interrupt(struct iris_core *core) =20 int iris_vpu_watchdog(struct iris_core *core, u32 intr_status) { - if (intr_status & WRAPPER_INTR_STATUS_A2HWD_BMSK) { + u32 wd_intr_mask =3D core->iris_platform_data->wd_intr_mask; + + if (intr_status & wd_intr_mask) { dev_err(core->dev, "received watchdog interrupt\n"); return -ETIME; } diff --git a/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h b= /drivers/media/platform/qcom/iris/iris_vpu_register_defines.h index 72168b9ffa73..4fffa094c52f 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_register_defines.h @@ -41,7 +41,6 @@ #define MSK_CORE_POWER_ON BIT(1) =20 #define WRAPPER_INTR_STATUS (WRAPPER_BASE_OFFS + 0x0C) -#define WRAPPER_INTR_STATUS_A2HWD_BMSK BIT(3) #define WRAPPER_INTR_STATUS_A2H_BMSK BIT(2) =20 #define WRAPPER_INTR_MASK (WRAPPER_BASE_OFFS + 0x10) --=20 2.47.3 From nobody Sat Jun 13 14:01: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 2130133D4F2 for ; Thu, 7 May 2026 06:42:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136150; cv=none; b=U+tUjsV3VdoZWD+wiAgWS3AURR6Lhuqd7yEGzn3WU34Cf9TmenxFwkp+C8fRsnFi750/BPXNPwb9I8g4y3UqyKFUn6IVQGkDP+koMARJmY8VvMWtzRgcIHlcwm83QI3q6dz35w6UaPPoZYixD2MFOHDXExm7NdtoeVplLCjM4Dk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136150; c=relaxed/simple; bh=ZdJc8AvhriTsIRcOHzN5auyXn7ecjHGNn9BjFnnyB7Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=O/jgHPFeRoCy85Jj4tBKYSmCgjn1WjWopQfqqJSMKQD3RY6cay8aKKwJuk4ovYsAj3Xpwvj598JHq3uJcdXvk+Gcy93/VuP8s+zdpCYrOEzLNrY01wC34W4KP7rix8PG3Y2q+KGrJyjNnl4YMne1l85NsjvGGaAaCP5QvlORnNA= 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=lDn7cQW2; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Jaf9cUiC; 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="lDn7cQW2"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Jaf9cUiC" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6475MRPJ3157859 for ; Thu, 7 May 2026 06:42:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= n5CVd+ehIx8O41kke6U0UyyBtCCOo+HF2cSNN8xWxJs=; b=lDn7cQW2+43TLeNw 0N7OZZTznVc4j/mU+LaQ7W4TmA5OLyJ0/sYsBNRJMeb2PHu7ImicMzhC8+rZ75zZ YsktBvSpTrfJ5Dv72v6hjy7EsBiipILe52UFYfseW+gN8jE2fBgzaXk5QaPDACJg 9koDw3bKJi2fvAQUW/6IEeboegxJO1ydAxESs7Y7JJcvDrdCgYDqwnN6Fkhs7p2l fJpk4ukXcEUqGOLE4KnpXhfEkUCs7tiHC9O6fq5Ih4Dv/tW2ThmlEvbKR48EaHwk DRIgU0qvEc1LjMOenmSJzmVnXz56c3xDgR/Z3N0xjnRgIP6xIjVD4UGiKNVCS345 n9Othw== 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 4e0mhf08pk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:27 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50fba8d8c40so8779101cf.3 for ; Wed, 06 May 2026 23:42:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136146; x=1778740946; 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=n5CVd+ehIx8O41kke6U0UyyBtCCOo+HF2cSNN8xWxJs=; b=Jaf9cUiCaDvTLe8PRMu7SnvV56Mxd3rQCj6+otsv6uyiWpxqM5NqZX/YVM37kGJu0X KL48PPUE1yxJH8lspc8CpNj391p8vkaRoO4GbzoHlLCQr2YLhGbhAB6QTS4NYPIFYB5v VOFlZfi1Bfnguaobh/+WFCC4Ggj5xMYMOH5yRcE7qRV6lBZ36Bz0htK+sFkAXmesyCyc cZuDSIv1RFrIr6iv8iWikICZf7AO/IBvzwyNgGl1styVVUoeyZmzTyuNpc2AnEsBSk60 zNWcctdBIGLjNjXQzwNu5jTa4M+lzrhpoYDiQKtj5wCUiBTSp4EvdlZA8QB+JMhKpzoV FFxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136146; x=1778740946; 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=n5CVd+ehIx8O41kke6U0UyyBtCCOo+HF2cSNN8xWxJs=; b=fvlmX9KHtIMSGBbVqbG1LqbPrg6ddTkGnBt2sJkkUh6ZDeMGWqTW3wZlYDPiTagiSg GSxd7uaQR3aPHvXD03dOBDZEG5GNmGcEqFSjqQtiZlV8WeKxb76PcQOK8Bj9TG4ASbWP f1UIzKmz9DAagiw3nC3KRMXbWTuKRNjtTegehJ9z1fn75PfNJF/NRWLUceFbY1rT+NuM xDkCIdTzE31hrKd99wnT6IchBIPhZK83JYdsEtVpTFCLWgE3io0AldqBacWtGkJ8yaen M+Z9KgsSwSHyYnfvLHhxhgCPnZyjEkKc0ouHlyShkWOOwDiCk0o1ZqyzpTa3aavxmvVp uGxg== X-Forwarded-Encrypted: i=1; AFNElJ/P6HBeRTtPsJwDLNsDBalDNoHFzXjKwJ1NhnH3y8oCIX91k5RTJVi/b9GjYo+uhR/Nnk/GwsFdgDX61i8=@vger.kernel.org X-Gm-Message-State: AOJu0YzvEXhb/RMPjyAW29eZvU+cxojhsk6EeBeSCYvZDaqrnsQB3LVy ncpTG9jnlBbCjwz4C85oxy8VjrE5uGTilMyDisqXgCMb4nQgJqfFqY7jy439pvzud7AHE2X7W8A AfZYaB48NvadAOH8UJX3mia7tBX3RSCuy/9FjgsbyUGKiWRP5PM5kNauSP/YMg+RAJug= X-Gm-Gg: AeBDietEpJ6ay4QHUsHEcPFKld/ARiY0tw1XsEK/M9AM0tMb3FqJ6x/h314ti9CYdov aEMGCg1aGmmG9VQLwRoUhFkvzE278SGi7jjy57uHi9f28fh2Eh0zygcnT9VQM0sy7A/J+prIcCU k3IPMjGfF0Me7Voik0A/tm2ksKXn6RRUB8ken4vz1573n1CmJg6Rz/mSqcAJK8ex+J3PfFOdpFR CIeQcES0lDX70ei6yJlky/M/h2PsclmRy3krkO/EYjX39+/m9HBE7EGgGBjg/WauwkdSRl2IQFo fW+Xf6kf8Hrk/LOsKeWxn0PO+ogqT6MXrL16m294sUS7O6Ei6hrboUvZIGsAt/zv+evMeiUXVf8 oHFxZjptkYZSz4qXidHV92HaWOLn2FKCyQCzbYYCIv01bsQlm4Sg4q2qF1asVyB3VexXgH/CHVL 8QY+pImUkSyt5z0aVwMNg7GvwfD2+zlFImPop5mCTBLPR+2w== X-Received: by 2002:a05:622a:6096:b0:50b:4b3c:7554 with SMTP id d75a77b69052e-51461be0cbcmr92212441cf.10.1778136146417; Wed, 06 May 2026 23:42:26 -0700 (PDT) X-Received: by 2002:a05:622a:6096:b0:50b:4b3c:7554 with SMTP id d75a77b69052e-51461be0cbcmr92212121cf.10.1778136145990; Wed, 06 May 2026 23:42:25 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:25 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:07 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-7-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4928; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=zj24yvnYxl+X+T0YGve2kbEBRN+/OwMEw/Rc6DepK9c=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ+O6y2ErTklv3WQVCfGPPv6sVS5EZ4DiBIr gLa0VTWoPaJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PgAKCRCLPIo+Aiko 1T74CACAxzhPNdSlvc/RIF7/l3ZLZ2yT13zNhMFIr92Azks21y2sy2Rzwse/nNCb+qiiOZg8Pqo PXArCCacGNbr9iKAiuVtbtxwH5/MfUsKXkmMvQ+VZQxk15DEOP+Wp+yv1GIEANK7+zfRFkA7qol QNgtMTycw7Cfti5XsAYKrmThvgLawgLKvpUVoIMcvrqKJocb2wythJC14z/0Rtrg1ZkuojASBF4 5ZDajfS15y12wti+yFMpQFSfZ9BrTKovWHpdMF2sd1KZWbuTnhN8u59m/U4YPfxkpjc+d78ZiHt 9GTQNRJ0XL6Y3xskjUH1uhALtgg43VNwtOdPyI/7IW3Chq4j X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfXzCBa858YsuR9 PgQNJT16+K6a+2HAd4Lvx7uw0AGCMebjyJxJfn7YYn/HRbSnwXnsMxYkZrk+3a+AE/RLnM23CKV kWOL2HmVM5w6WFGpluO27VdgFo48sY7AeNMUhN+H0T78adUJxt2IgHhLI4OcTExp/ZiTQBS3PFb bcK3BszRT4V+HJ3ShzXJGcSnyCCp0Xsa9I1BPX3spiFPRCbNCtm4Ds/0s2IU2rVgQPH/7kdZMqp xp7U/pRZhmLeaLRfZ9rE9J5dvW25Hmkej2+xzDFf/xQ4OhQERW0DL4U3kw1V+l6rI74n7srKAQx QTJ/KlxDsBt2p2kgVpBnoy+sMztEwR2f5rDa9XhLbRwgkr8RlNqXWJVUG/g5vb+bC5UGlNMoZQK j39mUkcJC4HW9vkO5RVUY7qJygC/yAhOwFs4HrzkccnVEw40KAy2MYRdjLM//I3DZdiJXMV28H5 rN6L8hazJyLPjsCmwRQ== X-Proofpoint-ORIG-GUID: dQYGWhFenkdjGWMaC2PV-C7tjiJy6Xpb X-Authority-Analysis: v=2.4 cv=SuagLvO0 c=1 sm=1 tr=0 ts=69fc3453 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=hZPXDZ8rEFHKWOVG6IQA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: dQYGWhFenkdjGWMaC2PV-C7tjiJy6Xpb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 adultscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 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 Signed-off-by: Dmitry Baryshkov Reviewed-by: Vikash Garodia --- drivers/media/platform/qcom/iris/iris_platform_common.h | 1 + drivers/media/platform/qcom/iris/iris_platform_vpu2.c | 2 ++ drivers/media/platform/qcom/iris/iris_platform_vpu3x.c | 4 ++++ drivers/media/platform/qcom/iris/iris_resources.c | 2 ++ 4 files changed, 9 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 51d8faf6fd1a..e1dc226066c1 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -284,6 +284,7 @@ struct iris_platform_data { u32 num_vpp_pipe; bool no_aon; u32 wd_intr_mask; + u32 icc_ib_multiplier; u32 max_session_count; /* max number of macroblocks per frame supported */ u32 max_core_mbpf; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu2.c b/driver= s/media/platform/qcom/iris/iris_platform_vpu2.c index 238c7b17ed4f..c7e6550e964a 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 6e63f279efbe..9cd438939e53 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu3x.c @@ -109,6 +109,7 @@ const struct iris_platform_data qcs8300_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 2, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D ((4096 * 2176) / 256) * 4, .max_core_mbps =3D (((3840 * 2176) / 256) * 120), @@ -139,6 +140,7 @@ const struct iris_platform_data sm8550_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -177,6 +179,7 @@ const struct iris_platform_data sm8650_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, @@ -207,6 +210,7 @@ const struct iris_platform_data sm8750_data =3D { .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_vpu3), .num_vpp_pipe =3D 4, .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 1, .max_session_count =3D 16, .max_core_mbpf =3D NUM_MBS_8K * 2, .max_core_mbps =3D ((7680 * 4320) / 256) * 60, diff --git a/drivers/media/platform/qcom/iris/iris_resources.c b/drivers/me= dia/platform/qcom/iris/iris_resources.c index 773f6548370a..caeaf199cef7 100644 --- a/drivers/media/platform/qcom/iris/iris_resources.c +++ b/drivers/media/platform/qcom/iris/iris_resources.c @@ -18,6 +18,7 @@ =20 int iris_set_icc_bw(struct iris_core *core, unsigned long icc_bw) { + u32 icc_ib_multiplier =3D core->iris_platform_data->icc_ib_multiplier; unsigned long bw_kbps =3D 0, bw_prev =3D 0; const struct icc_info *icc_tbl; int ret =3D 0, i; @@ -36,6 +37,7 @@ int iris_set_icc_bw(struct iris_core *core, unsigned long= icc_bw) return ret; =20 core->icc_tbl[i].avg_bw =3D bw_kbps; + core->icc_tbl[i].peak_bw =3D bw_kbps * icc_ib_multiplier; =20 core->power.icc_bw =3D bw_kbps; break; --=20 2.47.3 From nobody Sat Jun 13 14:01: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 A0764346A02 for ; Thu, 7 May 2026 06:42:29 +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=1778136154; cv=none; b=RfILA7nhGxvn6CKqsIw9GYeDFBMzJwb10qcwfxpms5Cw4nH//ykril+FmcM237oCfIwqaTqb1XnK2TJb/CnCp/5A2d5Nff5A0vuEkT4yVF1V2rWW6KLzJRh7jT0bJRPdgV8iTNoxkEA6AuYo3O9QXGipGWGPE3NTlZe7cMO5Lt4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136154; c=relaxed/simple; bh=9oShd0lxeYZuc1TmMkA1ib+fm0aaxdo95GxItjv0DYo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=C8XeGfWPxuq+dN+VopHuRIQHp+Qf5/DDYMY2beHHHpiLYn0o4VFym7fmiESG475LVm/g8g36a6lk8KYKHVB1zH3YD4hoZL5nGSurAv4sQqks6uLbSKY3HPW2I7y4vmp3eu6aE80eKfhHY2yvIwt1jDjJiSPldaFXNVXjWuB25P0= 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=KkcSCxZU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=dWOH34C1; 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="KkcSCxZU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="dWOH34C1" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6475MN693157738 for ; Thu, 7 May 2026 06:42:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 300UemiTb6OIGpMleRcRM+4rK//nXn1aRMrTuOv8PbU=; b=KkcSCxZUnVfAEb8F 4yhIz0Ll8ZSyBAVTJC6cvHJY/d8lAwoyPFppva65GZcZYZEZoi2tv3nnfZMLvDX0 iJC1x0XF+a2T1RzHiNEP9nNEj4tdPppnWfYDRjnGJb7Ol9sYMESCG/bPbtLYjzHy tp5uIhO6SSggUetMmFSG0TDiqQuPAN0zTolDsFi+CD2JVglOO2JPwhfx9txrbF2v /gjaG38hn04KDySmUHOHc3kjHBzWjq8AsNIcV/JCKQZDypTSavxNR2N6zzTI4pzN TLjj4E5wqUpLPnf88WL8FNT9ESpntMeHz6brnp01kZK+Gb2hl5iYyse6knJyNz7G wedihQ== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0mhf08pr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:28 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-8b5ceedb5c1so11624066d6.0 for ; Wed, 06 May 2026 23:42:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136148; x=1778740948; 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=300UemiTb6OIGpMleRcRM+4rK//nXn1aRMrTuOv8PbU=; b=dWOH34C1GtakmbbpEqGNC2jhsfCoiBZmF3TEsF5WHZNft7wHjFnfcp9EAd2kRUotvP bFVB2Stjj6zkSBiRcQm8hioE6fexfQhAH4ZL0SH2bxoPkxvdzxn6ngFr2+DzAfjZqGb/ 4s96i7bCGZx40m7end135+Y2PkfoqKKObAfzyp2HTeuDo3Kw8hMrSumviW+nS0qwiNzX PCwYa3KNDRTzLlMNaaw9gszHymousujegrvN4Lp7qIgZ/dICNlRORAFDmF9eZX2gpwzC Krsb8huW5ZfuMFKQ6vPATI9sYJ1W7yZ3Mw7XJ0XkoLbBJbQHRBJ0yhExZJE7FnO2FlBo xC6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136148; x=1778740948; 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=300UemiTb6OIGpMleRcRM+4rK//nXn1aRMrTuOv8PbU=; b=lesET5kfihPJb7TiypsmzpeuJqyW/CQrqjVcGHnDkzl/xHMK2hQWKSSaCu2YvhFj+I ihreamIx9hYbLtfUjvljSnhmg2p7vmhb7XDppVFRHCmhsmL+K9GCsI0qsiSTu4EckUXM d48wqQqz3keAZxfVGMcmU4LVw3/4+qrRH8b0/RbY/lQRBkLeYDCsHAf7F5NKjGh7KjPp 8Rvy32AQUteNMopUku+bTqspPAec0dj3sbpYiDRJaQA4wT8XlDw7+fX9Xz1SJ6UrenlR 9jnYi05SG1jAxZZeneaBMLRv7HDZuWF3YtEmNyB/Yi/BFgChfUQd8v4LdP2iGPJVFhNI ImDw== X-Forwarded-Encrypted: i=1; AFNElJ88sECo103wFdrrbXvGdEVuFY0AGC42QXf1UBa+188ATBt42e97IqvEncrzyLxQEEWVK6ERRmqclMTQDDM=@vger.kernel.org X-Gm-Message-State: AOJu0Yyo6l0zztDUTQWtwO2a0WGKN8d4rWjhi/ODiOPjv9YfqKrqGXqT ZMMNqO6apLxv/QrpFUUDgZFgOPeU1i9Hd8qOhorG2CIwcgaucDYGMXG29td32cbxjK10U8bZkXZ v07YJ+/Px2173l0BqY+vPBrNf+lvdS5b9Ps4Tvkj17dzH4YKL5bf/eacZXJfzB2ZI9QY= X-Gm-Gg: AeBDietVapAw/jqGcfQ1DDSEwsN8rT6VF35h1AY/ZS3O3IfGFNOHJAof4IiAf1/SLqM 1zhRISfB5rR7yMAyaQzKwMlIiTTlPyElaJym7mDPYZ6tjRcN8sG2THQst7mpbysYSwWMNH349KL x46E9hlhSjrw1c+Z/G1fCfwh4fS7yEX9mYYjxXRvIj0p+LBmlrv9ZjJnmGib46xPGMXtUKIOJWx qzDlgoh6eVhv4DNY2u4v70+gqrRqE5XOezuWL4LWA8vdG3xmW1gLjeHlwrEqk0AQvP3K7rtDhR2 E96S7fs5YNCvxaLhnFts+bi/T1xVWYBLNmej3yexHGE/qxwMT/f5/mcNyRtiAM4nJ6IV+g2tg8R Uo9iFCFpatpzeq6vnmY9aQ8sdOHUtYuhejZHmZ1ETk/Tu3cngRuPSY7xGNp5CHU/zYzXpyeiXTP sTJEcG/L96e+uvw4YbluRmoxarO/ZG3y3ZwldGiGLGP1kVfg== X-Received: by 2002:a05:622a:6204:b0:50e:5fe2:83aa with SMTP id d75a77b69052e-51461befdc1mr94387981cf.12.1778136147943; Wed, 06 May 2026 23:42:27 -0700 (PDT) X-Received: by 2002:a05:622a:6204:b0:50e:5fe2:83aa with SMTP id d75a77b69052e-51461befdc1mr94387721cf.12.1778136147520; Wed, 06 May 2026 23:42: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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:26 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:08 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-8-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1036; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=9oShd0lxeYZuc1TmMkA1ib+fm0aaxdo95GxItjv0DYo=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ+E88fbCRiyGMK955bjuiw2fsdCyCEHHF7R 7aLwQwisJGJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PgAKCRCLPIo+Aiko 1Y1zB/0ZN5oWIvaZjrlCAvAy5ojTx15Q+TzPU8LD5zkRYk1c85Qmp3OE+n5wDxfZPFil8CSLkms aIYy3SSN+VmlIPyDf/uCqD4imPZ/2sX0LcAjiT5C17B+N0j/PAjtFVBj0/n8VfOSoxzoiDuYnNq JejszHPwbMTTiDqlhmhGs7k4t6cXhj+wiVduxOynDywurFylGrSmNxF7Edhe38/WZ2MJZ2EVErH fVdlh+d6aqWG8Vo1qoGQPnpqNSdtokuyfPtGzdxaF0X1HfQx8OgSSdL0OHTUaELg4ddFhxNnJmT 6ijazendjw8O5HlWo2aPrAoGAjbdaHCf3a1UXROO54PFFOBj X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX40GCMqWnAq0N f96XSrX6IICsBMBCtZ5ehtBBfLvQ2U7aNzs3XbRr8B/y3PXKRbCuGTuIqtQqNXtMHJx5Y58AuhJ 3VBHHIUfZDSbYytVZlT4sSkdQcQV4SrZxHclJ62cRf/TmesdLlSQQzkFJW+TL3QcJJ7jdUADYpk bnxqIw68Bhv/mUZD9x7vsgBcbmTPpcd7H2AwZoztU1QRUFHMdc6BWAXBQ6z4tbwJEAJE0E5x6AF xDJLDY0lxPH8to/5JSAiMcNYkvve4+DIEiL7HyARMko8R32ypH404ASlPkRDTMsLFGJ8XZiHmPM r2YG11PpQyd8tsX2SkmpKy71wMiTvYFlAFMVkM+IG+t+kDzxWmKFUltyGRzbZyFGTUyymODko2f 6SA6l+jehflaCR/xeNRuKnn20uWL822c8HBFcxY1adDHl8LJM1zaLBNrYZUY0sdkzSHq9xd8O7b dBZOAa1vwzL6s+MnR/g== X-Proofpoint-ORIG-GUID: RHUaRKqta5weRxGowt62U5F9fZf9DY33 X-Authority-Analysis: v=2.4 cv=SuagLvO0 c=1 sm=1 tr=0 ts=69fc3454 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=9TuWGWrZIemhly9L:21 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=DRvvl89rPFtLv9ObwM0A:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-GUID: RHUaRKqta5weRxGowt62U5F9fZf9DY33 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 adultscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 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. Signed-off-by: Dmitry Baryshkov Reviewed-by: Vikash Garodia Reviewed-by: Vishnu Reddy --- drivers/media/platform/qcom/iris/iris_ctrls.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_ctrls.c b/drivers/media/= platform/qcom/iris/iris_ctrls.c index ef7adac3764d..f438dddc19ba 100644 --- a/drivers/media/platform/qcom/iris/iris_ctrls.c +++ b/drivers/media/platform/qcom/iris/iris_ctrls.c @@ -450,6 +450,9 @@ int iris_set_pipe(struct iris_inst *inst, enum platform= _inst_fw_cap_type cap_id) u32 work_route =3D inst->fw_caps[PIPE].value; u32 hfi_id =3D inst->fw_caps[cap_id].hfi_id; =20 + if (!hfi_id) + return 0; + return hfi_ops->session_set_property(inst, hfi_id, HFI_HOST_FLAGS_NONE, iris_get_port_info(inst, cap_id), --=20 2.47.3 From nobody Sat Jun 13 14:01: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 396E733F589 for ; Thu, 7 May 2026 06:42:32 +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=1778136153; cv=none; b=hFHlQ46wgFW+XHoCGwAMfmLaNoc3U6FpbSdm3J/YfRwEdtTLctRHAS0/MR9BErmL5KWU9zwpVPcDS7lOxBMngLE4DPAHUwGCmHxHrMtA/hvTDDali6s4hqxCx/OMkcHeEn/NXrqimG/ph3hwYUGmMD0QzMPcogvek0sdLoDDyiY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136153; c=relaxed/simple; bh=o3XqsC4SJ7IqrDgDbMC5Y6LAmP408Zs+Xm8uiMDGiL0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OV06tLSdgyT8pMiEngufbnJt4qcKwswHIpK766ij2qmI09HG671MF1S76x7SMX6rWsIfbGy/86rM0WHGe9SgRNMgqrGJDLI3nuHvzceC2jOosTnveKwd5fY3K0z2Etx7omRFryBlPqBW+ddIKYBUWwb0iuZmIQhXtLJpfWAqhSc= 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=IYCh8bcF; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=K0EPAnui; 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="IYCh8bcF"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="K0EPAnui" 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 6475wTUF1926223 for ; Thu, 7 May 2026 06:42:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= qskiMoOslweReL5wBxh+b06iXecSi2WY42VOu1Wld30=; b=IYCh8bcFDB9Ozj7J CkXUYbbQvJfLWvDplfGoxm0Ru7PYIHhRQTNNelIYtAYegsBk5ZKFxhflDix3hOPc t88rYyjjldeLdelqAtT0MHlO8RQniSpx8+kqLLhnqfI1kQdDzYi/dLNarzhKkDpO 9hqFrajBhKT1G2w20Zeemuh1bW+Ff5kHo+QxOHam1AMJP+T6QzAkdKQUdEBgMQz+ 82Nq+TTckvlH7nA/T5zQTfhVPRvVWTJHk4gBrsa5X+LWD/gyVp3jYPrXSGKtFGfE 653eEQNWAG1ogE4ZwRp/wYRhKY6CGJ9fnzL2vRdArTTY+vmvxC8pkJaQpFsTMwI6 KYAgag== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0n2g84yu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:31 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50f817c3240so6957021cf.1 for ; Wed, 06 May 2026 23:42:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136151; x=1778740951; 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=qskiMoOslweReL5wBxh+b06iXecSi2WY42VOu1Wld30=; b=K0EPAnui97DHqzsOKkqRX6KhbjcruaWuYJDzdPsTSi3Q80QRjGUnVcxd9nTO8zuSEt mGsUg++hri5xzIsbCJXVcYaIDg8zGXdzqD2RTr3kF9SdVjsWWr9QrOexa6MkmAYazsRS jXCFVG0ua9XWu8mvdCXrkho9AnItO51osOe7e+t4n1gEWGRM3m9RbkS7ND2X4ymmsMCw mGca3GKmlOhR5F0J1cY53Z5b1+n4v72TajwIRywrS6BT/+rYiQfBcsvxyJtZpbVSd8RM A1upiQMQQ+WRq63TcKzGjzNKxq+kWJVgefUa26gFit+9b60CRFmma9LptApiihYVuM1V 3tuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136151; x=1778740951; 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=qskiMoOslweReL5wBxh+b06iXecSi2WY42VOu1Wld30=; b=p/+zbAdKyQ3dE3Npk69a0eim3Ss2lnYWKjlzAhjIJxVzC5Szug63wRbu1UXkwvSp9w yrfcGHy1zWSMwRzgeAKED+NpuG038RBjlaHcaSmhsSlUyXrCXOw3GnnQ/DwBnW2RC/7a qOhe4+apDxlK9vCz7xFzhPByEnC9zNcZZ2Q0efSnZ+4EcqN2S8suNtLrKtlPuIUp6ETF SDnxGcs+Ns1hE6DCTwVevPfJfjkvQp3vFKaFABfmKBNioK5RjHeU8TjdkGhHeeNK+pmz B1fD21M8qIT1fyuM+yL4TKFVmIidB0NDjhTo/15xgGKYzyWABKIDjQu0ubFVsR8AkFsg nqFQ== X-Forwarded-Encrypted: i=1; AFNElJ/wxlOqdEHKmUwI73PkH8CvWr0noxU9OXjeVgA9n1fAPWf4dbX3fcTtt2KgYvAjKwJis3d4QZ7RU2FDoHI=@vger.kernel.org X-Gm-Message-State: AOJu0YwfS0QuQlI1jjyGFOUNUlBBkZy7Ak/V7llhMGPTZ/W1ioQhszPH 7D3Bl/7gYc3047qLGQHKksadMLet9U+R08QNJfSa/aZEJtKsKR/H/wXxTHL2wMNb/cVKERy9BlB R2OEU1ZKSlnVMHSpLdPhLpEeliqY1VZ+YoXEn/trwcpfIX8ekSQOgoRkipIHvuom3dfc= X-Gm-Gg: AeBDiesrP7TMQiObzClAmXcBfXBPYvgMSPI0kJLZfIP9jPrSd/LIk/O9i1KM+RhSY9p mxTsR26UIr/EdswJS9FT5wsd2XmTWT7Pgdmi5boMdxtxSWTY+o5p5Zvsi8OXoLIn3WCFbTVDRdc s6FFjw4Oe5cCOfJOp8RxOITiEyonYyg7kCF5tPr39rlQAlYZ8lTy4d/1AscKcmsq4x8Jb5BeY39 PeuZ9LWxmWJLrHyIZpAa9FSi2fSxLFI8qkfbbKaL06BtMhNmr2k99BBuZWNO4J9Q3vfozhf6Kx8 lWefmNTSKl4K4HmI9q9Xde1fGkDg0h3uLVbamMin4Dks/xDJZoVW7gDk+PIMgrGyziC9sAF1y8F QqAdF6BFyKwCU3vZVK2ygLIPIdnsXxFrVQxI7UOv+ZPJeN6r0yQk9kctBtApzEGyLlhoxZBQKiT gIFR3t7hlQyiL8MXSxGYt1rry5zUR+8sRzdn71CgQeKnV/kg== X-Received: by 2002:a05:622a:188f:b0:510:1543:31e4 with SMTP id d75a77b69052e-514621e9218mr92456001cf.59.1778136150595; Wed, 06 May 2026 23:42:30 -0700 (PDT) X-Received: by 2002:a05:622a:188f:b0:510:1543:31e4 with SMTP id d75a77b69052e-514621e9218mr92455661cf.59.1778136150098; Wed, 06 May 2026 23:42:30 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:28 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:09 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-9-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=8136; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=z72H4ImX+0JDWWXrPRrLSHAWz84g1C7cxTNXO8PfGB8=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ+fFE7D7JOmtHoDPhepk3lg3ImaXaGna8PS OhouYHwf26JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PgAKCRCLPIo+Aiko 1WFxB/0TAHJkf94Z0bk4VSSgauAjLpuPqrMLUlasGnFo/N05JqbIBJCi32lXhoL+vwZQnJBRj2m HU9v3Wn9KqReaOnC/Wht67xjhrIz1R88O/FCNYc0kfspJFTqzndFgS6b4m+X4Sboy/oT139uf6t vBE3QeH7gkgK4gNR9ZBo6jXLKf/TgLPCXDj1A7/zkAqcCEB8EbIVXgXFN0pfbRCxTbOfoM93ufI eRv4zDYLuhHlN0p3XX62ptfoxN+1wejRBDMoxQvsvzVe5AJFcDneFg1bELdWsYrthoDvIAVfMhi sdfHgiTy2roAQq/XyuaoPROW9ToixnGsdJLAqvznc1GdJT5d X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=Wv4b99fv c=1 sm=1 tr=0 ts=69fc3457 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=x0nZcyIE9sK-8O7Lov0A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-ORIG-GUID: x5uMIwt-TNBCQziJ9XGnF5FtT-BFVWWs X-Proofpoint-GUID: x5uMIwt-TNBCQziJ9XGnF5FtT-BFVWWs X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX7MaV9MQVTxLA inzQQj5paQw2HZJA6Fp4EvupusL8YxZKdKAGbBu7QKRixd68TFQ9qTSEn5sPhz371JLhtgyyfrT W+L7o2cIFnkt3OgEyfiByjSEzrVHMj3qMzNBHWJ3oy1e/o+F95mKCO9jkEfjflAbwh9l7XvFgwo ua7pNomHj2ZNM3Ha0PWhocBa+rkk8GximKZEmjNV0Jqp6eG5XGosu1tj8Mdpq9WzqOjRs8/AwI1 VJSkSEaC57DWhlPzYEwCLRM1uEWiX9Fva4ZcKvNmYBQed0PSRKrZhKO1iEuwXmv8WjFBlOxA5ku V8RNJyC1gmL6bV35b+VpJuJeeXyp+IzqAgGl0gm9bX02HQfN0BZHSz836R+bb+Zdr/XMm/WESGk 5gN/ASBtCU0nLHt6WcTkB6MfN9i+MDXFpAKJr6EY51GX3BElQLocH4ZWN9hNE/1kdeGFCIiyA6X DZpulc0XGacqLB9TAyg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 impostorscore=0 spamscore=0 phishscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 From: Dikshita Agarwal Add power sequence for ar5lt core. Add register handling for ar50lt by hooking up vpu op with ar50lt specific implemtation or resue from earlier generation wherever feasible. Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/Makefile | 1 + .../platform/qcom/iris/iris_platform_common.h | 2 + drivers/media/platform/qcom/iris/iris_vpu_ar50lt.c | 156 +++++++++++++++++= ++++ drivers/media/platform/qcom/iris/iris_vpu_common.c | 3 +- drivers/media/platform/qcom/iris/iris_vpu_common.h | 1 + 5 files changed, 162 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/plat= form/qcom/iris/Makefile index 48e415cbc439..f1b204b95694 100644 --- a/drivers/media/platform/qcom/iris/Makefile +++ b/drivers/media/platform/qcom/iris/Makefile @@ -26,6 +26,7 @@ qcom-iris-objs +=3D iris_buffer.o \ iris_vpu2.o \ iris_vpu3x.o \ iris_vpu4x.o \ + iris_vpu_ar50lt.o \ iris_vpu_buffer.o \ iris_vpu_common.o \ =20 diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index e1dc226066c1..4a0895bf5720 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -63,6 +63,7 @@ enum platform_clk_type { IRIS_VPP0_HW_CLK, IRIS_VPP1_HW_CLK, IRIS_APV_HW_CLK, + IRIS_THROTTLE_CLK, }; =20 struct platform_clk_data { @@ -283,6 +284,7 @@ struct iris_platform_data { u32 tz_cp_config_data_size; u32 num_vpp_pipe; bool no_aon; + bool no_rpmh; u32 wd_intr_mask; u32 icc_ib_multiplier; u32 max_session_count; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_ar50lt.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_ar50lt.c new file mode 100644 index 000000000000..688b57291a81 --- /dev/null +++ b/drivers/media/platform/qcom/iris/iris_vpu_ar50lt.c @@ -0,0 +1,156 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2026 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include +#include + +#include "iris_instance.h" +#include "iris_vpu_common.h" + +#include "iris_vpu_register_defines.h" + +#define WRAPPER_INTR_MASK_A2HVCODEC_BMSK_AR50LT BIT(3) + +#define WRAPPER_VCODEC0_CLOCK_CONFIG_AR50LT 0xb0080 + +#define CPU_CS_VCICMD 0xa0020 +#define CPU_CS_VCICMD_ARP_OFF 0x1 + +static void iris_vpu_ar50lt_set_preset_registers(struct iris_core *core) +{ + writel(0x0, core->reg_base + WRAPPER_VCODEC0_CLOCK_CONFIG_AR50LT); +} + +static void iris_vpu_ar50lt_interrupt_init(struct iris_core *core) +{ + writel(WRAPPER_INTR_MASK_A2HVCODEC_BMSK_AR50LT, core->reg_base + WRAPPER_= INTR_MASK); +} + +static void iris_vpu_ar50lt_disable_arp(struct iris_core *core) +{ + writel(CPU_CS_VCICMD_ARP_OFF, core->reg_base + CPU_CS_VCICMD); +} + +static int iris_vpu_ar50lt_power_off_controller(struct iris_core *core) +{ + iris_disable_unprepare_clock(core, IRIS_AHB_CLK); + iris_disable_unprepare_clock(core, IRIS_AXI_CLK); + iris_disable_unprepare_clock(core, IRIS_CTRL_CLK); + iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_CTRL_PO= WER_DOMAIN]); + + return 0; +} + +static void iris_vpu_ar50lt_power_off_hw(struct iris_core *core) +{ + dev_pm_genpd_set_hwmode(core->pmdomain_tbl->pd_devs[IRIS_HW_POWER_DOMAIN]= , false); + iris_disable_unprepare_clock(core, IRIS_THROTTLE_CLK); + iris_disable_unprepare_clock(core, IRIS_HW_AHB_CLK); + iris_disable_unprepare_clock(core, IRIS_HW_CLK); + iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_HW_POWE= R_DOMAIN]); +} + +static int iris_vpu_ar50lt_power_on_controller(struct iris_core *core) +{ + int ret; + + ret =3D iris_enable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_= CTRL_POWER_DOMAIN]); + if (ret) + return ret; + + ret =3D iris_prepare_enable_clock(core, IRIS_CTRL_CLK); + if (ret) + goto err_disable_power; + + ret =3D iris_prepare_enable_clock(core, IRIS_AXI_CLK); + if (ret && ret !=3D -ENOENT) + goto err_disable_ctrl_clock; + + ret =3D iris_prepare_enable_clock(core, IRIS_AHB_CLK); + if (ret) + goto err_disable_axi_clock; + + return 0; + +err_disable_axi_clock: + iris_disable_unprepare_clock(core, IRIS_AXI_CLK); +err_disable_ctrl_clock: + iris_disable_unprepare_clock(core, IRIS_CTRL_CLK); +err_disable_power: + iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_CTRL_PO= WER_DOMAIN]); + + return ret; +} + +static int iris_vpu_ar50lt_power_on_hw(struct iris_core *core) +{ + int ret; + + ret =3D iris_enable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_= HW_POWER_DOMAIN]); + if (ret) + return ret; + + ret =3D iris_prepare_enable_clock(core, IRIS_HW_CLK); + if (ret) + goto err_disable_power; + + ret =3D iris_prepare_enable_clock(core, IRIS_HW_AHB_CLK); + if (ret) + goto err_disable_hw_clock; + + ret =3D iris_prepare_enable_clock(core, IRIS_THROTTLE_CLK); + if (ret && ret !=3D -ENOENT) + goto err_disable_hw_ahb_clock; + + return 0; + +err_disable_hw_ahb_clock: + iris_disable_unprepare_clock(core, IRIS_HW_AHB_CLK); +err_disable_hw_clock: + iris_disable_unprepare_clock(core, IRIS_HW_CLK); +err_disable_power: + iris_disable_power_domains(core, core->pmdomain_tbl->pd_devs[IRIS_HW_POWE= R_DOMAIN]); + + return ret; +} + +static u64 iris_vpu_ar50lt_calc_freq(struct iris_inst *inst, size_t data_s= ize) +{ + struct platform_inst_caps *caps =3D inst->core->iris_platform_data->inst_= caps; + struct v4l2_format *inp_f =3D inst->fmt_src; + u32 mbs_per_second, mbpf, height, width; + unsigned long vpp_freq, vsp_freq; + u32 fps =3D DEFAULT_FPS; + + width =3D max(inp_f->fmt.pix_mp.width, inst->crop.width); + height =3D max(inp_f->fmt.pix_mp.height, inst->crop.height); + + mbpf =3D NUM_MBS_PER_FRAME(height, width); + mbs_per_second =3D mbpf * fps; + + vpp_freq =3D mbs_per_second * caps->mb_cycles_vpp; + + /* 21 / 20 is overhead factor */ + vpp_freq +=3D vpp_freq / 20; + vsp_freq =3D mbs_per_second * caps->mb_cycles_vsp; + + /* 10 / 7 is overhead factor */ + vsp_freq +=3D ((fps * data_size * 8) * 10) / 7; + + return max(vpp_freq, vsp_freq); +} + +const struct vpu_ops iris_vpu_ar50lt_ops =3D { + .power_off_hw =3D iris_vpu_ar50lt_power_off_hw, + .power_on_hw =3D iris_vpu_ar50lt_power_on_hw, + .power_off_controller =3D iris_vpu_ar50lt_power_off_controller, + .power_on_controller =3D iris_vpu_ar50lt_power_on_controller, + .calc_freq =3D iris_vpu_ar50lt_calc_freq, + .set_hwmode =3D iris_vpu_set_hwmode, + .set_preset_registers =3D iris_vpu_ar50lt_set_preset_registers, + .interrupt_init =3D iris_vpu_ar50lt_interrupt_init, + .disable_arp =3D iris_vpu_ar50lt_disable_arp, +}; diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.c index b8300195a43b..f3607c0ca847 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c @@ -97,7 +97,8 @@ int iris_vpu_boot_firmware(struct iris_core *core) } =20 writel(HOST2XTENSA_INTR_ENABLE, core->reg_base + CPU_CS_H2XSOFTINTEN); - writel(0x0, core->reg_base + CPU_CS_X2RPMH); + if (!core->iris_platform_data->no_rpmh) + writel(0x0, core->reg_base + CPU_CS_X2RPMH); =20 return 0; } diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_common.h index 71d96921ed37..f00e2de5fa53 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_common.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h @@ -13,6 +13,7 @@ extern const struct vpu_ops iris_vpu3_ops; extern const struct vpu_ops iris_vpu33_ops; extern const struct vpu_ops iris_vpu35_ops; extern const struct vpu_ops iris_vpu4x_ops; +extern const struct vpu_ops iris_vpu_ar50lt_ops; =20 struct vpu_ops { void (*power_off_hw)(struct iris_core *core); --=20 2.47.3 From nobody Sat Jun 13 14:01: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 B7932346AED for ; Thu, 7 May 2026 06:42:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136155; cv=none; b=K/XXwxxG+5Qi19qoQZYak35HCL48ha+rN5ll4VGnLdukm20s+JYQIHRkmQArnXW2K8c/8dRZdMtifPMB+RkvOpzB0dMI3xHk+PMGkPdHJ9UfSUPd0vs9TSr87NF9Y7dd/lSr2UagelvM38SAPRUVdg/5z1zozSh+wSajCSpMDl4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136155; c=relaxed/simple; bh=3LZBjFNjSvRhMK03ekSlXkVYlg7os/XFnLwP9MO6T5M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hPqJhSHGilJr9hNsYTTzQhieFqiypcvcre0ZjyXROaX7s7Hondm1j60N3lq7BTTBG7pkmQYJ3xC6djA1zYz0zxN/eOehMNLZzzRkIj8JPCCatIT0/MEar/vyBcHO8OHnbROS0p/eKnEJ3VimJa4IDQIa0P0wipzD3sOEL0a0Ubs= 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=lgRj7Rgx; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CqJMI+UW; 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="lgRj7Rgx"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CqJMI+UW" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6473eSDk026471 for ; Thu, 7 May 2026 06:42:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= kIs5lUio7E7YMx2NkuaANRPWVQRplvNz2SIkISpJQxI=; b=lgRj7RgxdAzUfk1J +BW9Ld/7zInlOOQd0xaxWnB8qfDaSNZWnhI+84B8hJ8O99kTXABUBZOZytNBw0cr Ay83KV060XZ6y0KY3wi6EiFmZnn4KmoSpUWASeVUv8aoa3mYhrDfrnFUjpJjY809 XIT4I5GJhKKow/huC6WWmf5QOMoK4Oni9Tzu/eRgOhjBYhxulfa4TULdfjMDZimG Ymt5+IxnMk6LaibVjlK3C50PGBOJoX1nbMkjngCSJHy2vyTYz5Ehf0knr8lMSz5A kBqEMJ6VpjbbZJfW8VM9PCIbOGwn4TNPGA/O4BfRP1B+4qKm907fdGeIBTuq8zeU /hue0g== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0k1t0huy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:32 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50d812c898cso11252491cf.1 for ; Wed, 06 May 2026 23:42:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136152; x=1778740952; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=kIs5lUio7E7YMx2NkuaANRPWVQRplvNz2SIkISpJQxI=; b=CqJMI+UWerh+WbgzXHdDjFMDL1NODL/njX5c8EwOYAgzSbt9MdzUBwX5ICGXOfmBCQ NyfOWYfALjX2XKSpuwX68cv6FHJSpE1SFCY3GD8w1jN5QDH3Xry2+ubKuFvNra7RO9Dh 5n/sJeW0tvezg9wTzgsq/m2RFl0420RGifFvsae9do379cwCWQzLjXWGUqN5XlwwEr3C K6DKxFk3nK6nl0M3Nb5orzG2VXmVWdkSbBh9o1Teh7+dE1iYJNa8/b8YR1arkTk/KQtp jEmJVu6FBKlrjoeio21HfOqfdh6BfxDWAVS12C4LSeRJYv7UdOSjjkXzeLnIz8gIToPz +gwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136152; x=1778740952; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=kIs5lUio7E7YMx2NkuaANRPWVQRplvNz2SIkISpJQxI=; b=Wi8HDRHajdX+IS8YtPCtwNH2nzJ6K4zYKlYXpYRThKiRlMQU27OMPZcYn2MwZmAanm V/2NFWa4cU3KvW/WkqWvDAbYbgHeFI/eKUWCzf96/XtpO8+GKoNfSfbzMGhJPkLH7RQL t8DjGCxF8t8/COBD/5/jxUVvKFrScqoB/q6E5W6ydcOvlk0dqqtTAEP/PyvLtaNdikwF /TfbHIsD3z2IsKIni8WxO7oHlzpqursJNeiIGn/RH4KdHPkhp0RVmrFSJGh9E7UED6Ni q5Zw3bnReO6fPZfKNX35iHBkoQ9lM6Rgk3DBuQonxNy3jngc7cOzRlxelx06OdcwSFjw OCGA== X-Forwarded-Encrypted: i=1; AFNElJ9feP45j0pcdNO0chPnQictS7l0q+nj5ZRvp/VvIg4zb3iSOyhqrnT2QHziUnCrHMutBTjXDGs9Mjw9EiM=@vger.kernel.org X-Gm-Message-State: AOJu0YwzpHBtvbeRy1bCV91Uolkz8LNR3Z0VhdQYoaANDeAasXvO/+WH o3+687kXo4dcMHeMjAC8H97IIrDC/ZhVqTsN+1R+QHWPHnrpWgyqxz4VkMnu4zgikqKRcxVgUSl UwIQlv+F1ryfi9YFfmRuvay9PQW9iPaYfN3XDpKVs+km+NVXI5S1TdT/wyY3ux9VVpYQ= X-Gm-Gg: AeBDies1wie5xTnryIb+ny3mFvbjHRFBnLf5VJ/pY5cH1yC6nIe4Xx38Wfk1jzgyJz7 iu3ERHIP4oRJfRMvbOzwiYMEt7i4WTGpFHFmHt7GLpoj+BXaYx9j5OW9WshMiF3arDpFf/279W/ 8Ewj6juowziGofuTvXANcIzB2u/MLCdAyf8UT/3dOBPlEBzFJSajO4enGLjIrmM//loU58b//hI ibJpFz1G5Nx+JK3cEAsvL/obLH5b/vpqL9/lVNXppYpw4KpdfgojP2rgxvRM0FxAp1tLhlCXNc3 QeDVLvwm5toUYl52s3vaaYqc6f56PZGQ3kmODdw9NMBq8+20Qv5JEcFJH0W0aFvQvZM+JNUaQNy ti80doGEAZI9XXeUC/BSl7R4WNAgTKzDlsyf8Lygo1NJEvziOpDnlkPL5yyATPC4mtJjGHIWRlT vQn+5cwflluD8zG1M4V/qwKyOglAd/f1YCRN0iBhTfIo1SrA== X-Received: by 2002:a05:622a:1181:b0:4f0:131f:66fe with SMTP id d75a77b69052e-514621f49f3mr91799871cf.59.1778136152166; Wed, 06 May 2026 23:42:32 -0700 (PDT) X-Received: by 2002:a05:622a:1181:b0:4f0:131f:66fe with SMTP id d75a77b69052e-514621f49f3mr91799581cf.59.1778136151720; Wed, 06 May 2026 23:42: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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:30 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:10 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-10-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=5660; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=3LZBjFNjSvRhMK03ekSlXkVYlg7os/XFnLwP9MO6T5M=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ+z5sEOUgtHL80c7YAFQiJ9xqfQZ1SbISqN eXFDrYwvbmJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PgAKCRCLPIo+Aiko 1YzSCACWCW6ngGwZlGy5EaXz9WiYjjQ91VKR/i6bdllpMVWYm4Hddfk06NvoDVdlQ+x15Czwthz XTF43orRNU00n4dwg+Jbk5vAIXQ3QyRPkNRWowch3cvqL5UryKHECzSC0qP7CQkzrBo5mqJjfFS 5tiJEF/WUMixONxSWXvkYdgg36/hiIy1+TxglV6aXZjdeYCeJnJJj3OqyCwYZs21JV0oBVS+4QE HNDw/BO2ZLjs9bD6/RKw7+M2PmxsWDz/lb1kQpRAHr4kW5HvpH8uSwYnihDuLwpNUSYqiStBQZM YAFW4TR1zGO4MxUP9q+jSFKHd5jxXBFpKtdKuztzjyec43Db X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=EoPiaycA c=1 sm=1 tr=0 ts=69fc3458 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=4y4YWC2vBVg0P_IM3hEA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-ORIG-GUID: OrTHjQEQRWrhBoakzFOZe--DRxiFJoYs X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX6IGL548jjcuH CUWO73pYPJ806D09q59wQUwVDXoF2igsmNqg6Duv8o+DEC0HicwcGyTK4xD6dKIF0pRjd5w+5Rv 8fEU+YNhH6bpbORUSmj4yT4qR01MWvSPJOvho41nNgxdejDp2o9Fn8s6EYjkSiqXbDyDjIZS86Z 3Gz9E/IHkCk0RernvqFS/UQ1euYb2net/2rvqeNtBV8B+s3qHNqnDNPyobqr3UkHbr6WnFx/wgx lttTp5q9EagM3j6FeiAfuttZ+pB2UrsYRUPZW+mKWz6jd9mXD17sVQKfVSwaDfawSqjxivi1nqT 83lrg7aDz/cW3YciKP7MhveudqbcUgJANZolf9juPIf5+SKHJE731/CyOylQ6qpx7uEJmz7MTZG yXmlevDAOahpQ1w8lPGFB+KNa5lTwsPCDkVhhfbdPmkNGVaBssmMdz9H2n9PE2SAdzLUK3H5OEv C5VmMWWwUUQgHqNc7lg== X-Proofpoint-GUID: OrTHjQEQRWrhBoakzFOZe--DRxiFJoYs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 AR50Lt with the Gen1 firmware requires host to read HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS property, otherwie it doesn't update internal data and fails the HFI_CMD_SESSION_LOAD_RESOURCES command. Implement minimal support for querying the properties from the firmware. Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_hfi_common.h | 1 + .../platform/qcom/iris/iris_hfi_gen1_command.c | 21 +++++++++++++++++= ++++ .../platform/qcom/iris/iris_hfi_gen1_defines.h | 15 +++++++++++++++ .../platform/qcom/iris/iris_hfi_gen1_response.c | 6 ++++++ 4 files changed, 43 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_common.h b/drivers/m= edia/platform/qcom/iris/iris_hfi_common.h index a27447eb2519..16099f9a25b6 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_common.h +++ b/drivers/media/platform/qcom/iris/iris_hfi_common.h @@ -121,6 +121,7 @@ struct iris_hfi_session_ops { int (*session_set_property)(struct iris_inst *inst, u32 packet_type, u32 flag, u32 plane, u32 payload_type, void *payload, u32 payload_size); + int (*session_get_property)(struct iris_inst *inst, u32 packet_type); int (*session_open)(struct iris_inst *inst); int (*session_start)(struct iris_inst *inst, u32 plane); int (*session_queue_buf)(struct iris_inst *inst, struct iris_buffer *buff= er); diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c b/dri= vers/media/platform/qcom/iris/iris_hfi_gen1_command.c index 83373862655f..4e17fa3c602f 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c @@ -1063,10 +1063,31 @@ static int iris_hfi_gen1_session_set_config_params(= struct iris_inst *inst, u32 p return 0; } =20 +static int iris_hfi_gen1_session_get_property(struct iris_inst *inst, u32 = packet_type) +{ + struct hfi_session_get_property_pkt pkt; + int ret; + + pkt.shdr.hdr.size =3D sizeof(pkt); + pkt.shdr.hdr.pkt_type =3D HFI_CMD_SESSION_GET_PROPERTY; + pkt.shdr.session_id =3D inst->session_id; + pkt.num_properties =3D 1; + pkt.data =3D packet_type; + + reinit_completion(&inst->completion); + + ret =3D iris_hfi_queue_cmd_write(inst->core, &pkt, pkt.shdr.hdr.size); + if (ret) + return ret; + + return iris_wait_for_session_response(inst, false); +} + static const struct iris_hfi_session_ops iris_hfi_gen1_session_ops =3D { .session_open =3D iris_hfi_gen1_session_open, .session_set_config_params =3D iris_hfi_gen1_session_set_config_params, .session_set_property =3D iris_hfi_gen1_session_set_property, + .session_get_property =3D iris_hfi_gen1_session_get_property, .session_start =3D iris_hfi_gen1_session_start, .session_queue_buf =3D iris_hfi_gen1_session_queue_buffer, .session_release_buf =3D iris_hfi_gen1_session_unset_buffers, diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h b/dri= vers/media/platform/qcom/iris/iris_hfi_gen1_defines.h index 42226ccee3d9..1b770e830c58 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h @@ -35,6 +35,7 @@ #define HFI_CMD_SESSION_EMPTY_BUFFER 0x211004 #define HFI_CMD_SESSION_FILL_BUFFER 0x211005 #define HFI_CMD_SESSION_FLUSH 0x211008 +#define HFI_CMD_SESSION_GET_PROPERTY 0x211009 #define HFI_CMD_SESSION_RELEASE_BUFFERS 0x21100b #define HFI_CMD_SESSION_RELEASE_RESOURCES 0x21100c #define HFI_CMD_SESSION_CONTINUE 0x21100d @@ -113,6 +114,7 @@ #define HFI_MSG_SESSION_FLUSH 0x221006 #define HFI_MSG_SESSION_EMPTY_BUFFER 0x221007 #define HFI_MSG_SESSION_FILL_BUFFER 0x221008 +#define HFI_MSG_SESSION_PROPERTY_INFO 0x221009 #define HFI_MSG_SESSION_RELEASE_RESOURCES 0x22100a #define HFI_MSG_SESSION_RELEASE_BUFFERS 0x22100c =20 @@ -186,6 +188,12 @@ struct hfi_session_set_property_pkt { u32 data[]; }; =20 +struct hfi_session_get_property_pkt { + struct hfi_session_hdr_pkt shdr; + u32 num_properties; + u32 data; +}; + struct hfi_sys_pc_prep_pkt { struct hfi_pkt_hdr hdr; }; @@ -525,6 +533,13 @@ struct hfi_msg_session_fbd_uncompressed_plane0_pkt { u32 data[]; }; =20 +struct hfi_msg_session_property_info_pkt { + struct hfi_session_hdr_pkt shdr; + u32 num_properties; + u32 property; + u8 data[]; +}; + struct hfi_msg_session_release_buffers_done_pkt { struct hfi_msg_session_hdr_pkt shdr; u32 num_buffers; diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c b/dr= ivers/media/platform/qcom/iris/iris_hfi_gen1_response.c index bfd7495bf44f..23fc7194b1e3 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c @@ -591,6 +591,10 @@ static const struct iris_hfi_gen1_response_pkt_info pk= t_infos[] =3D { .pkt =3D HFI_MSG_SESSION_RELEASE_BUFFERS, .pkt_sz =3D sizeof(struct hfi_msg_session_release_buffers_done_pkt), }, + { + .pkt =3D HFI_MSG_SESSION_PROPERTY_INFO, + .pkt_sz =3D sizeof(struct hfi_msg_session_property_info_pkt), + }, }; =20 static void iris_hfi_gen1_handle_response(struct iris_core *core, void *re= sponse) @@ -652,6 +656,8 @@ static void iris_hfi_gen1_handle_response(struct iris_c= ore *core, void *response iris_hfi_gen1_session_etb_done(inst, hdr); } else if (hdr->pkt_type =3D=3D HFI_MSG_SESSION_FILL_BUFFER) { iris_hfi_gen1_session_ftb_done(inst, hdr); + } else if (hdr->pkt_type =3D=3D HFI_MSG_SESSION_PROPERTY_INFO) { + complete(&inst->completion); } else { struct hfi_msg_session_hdr_pkt *shdr; =20 --=20 2.47.3 From nobody Sat Jun 13 14:01: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 793D535AC32 for ; Thu, 7 May 2026 06:42:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136160; cv=none; b=a1B81vRTInFWi8wjVUu6L9csO3BAM5km0IKfs3pAisdNSH9WhroHpjnLkMv28wAx4jfkr2CFaapDgsOi+UI6xriljpADWCcK+OigBBAfxxwM0O+iV6xZTJTbx+oN9rnVmYsTmpI4Y97pwjHXXc9vAK9zztziTlLGhlqdwtQ6b2g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136160; c=relaxed/simple; bh=51abVJLmqPXnrz/IkKiqyklTNSZTZj3V8WGdms5cxdg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QBHyLjpBZ+PJUGNDBoia37+33bFUkOMvqXIYyWWmSPNnWW4rv2VS0uMx6+WE7MwudyzQoa/jwQlMrx90sCxzriq1g78AQPgI4bxszrpSCSHXzeURE5hiCu57kGphn09tjvaJCebxgS+/8BtYZcvd8dUPPhE0VEJmLPbeO65rMWA= 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=fUzPpLSR; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=R6VJWXKy; 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="fUzPpLSR"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="R6VJWXKy" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6473ebs4026592 for ; Thu, 7 May 2026 06:42:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= yVW7PJDNqNGBBo4tUTiap+vPu+AjRGuVR1+5KXJSqK0=; b=fUzPpLSRqrvMJ+rc 0DaTs3ZDEaxIrzc1RwOOYGl/zeM9naFf2+ZYaXU8YGISzQ6jUCRa6nCXKsn6r7nx 7cSKwESeHAXZhDi8jfmIuxTkId/a218/R1BGoCUTPfsr3+c3UeYZvXPZdh77hbXu /3h58KJwEGyuRqssLAr0cJ68I8RwHn/FFeTxNl53tNcGHOibLkRQhzN+l4mJvdZZ OoafMlUi1PJKQsJ57nJQL8/B9EAKHwlb/0IIExbqVTnfanaLFCbr9vNc+60YCzry ZM+JuKXugNbqA9Mq2mjKu4TIva9rBLDQTPPTlXu2amU87j97dzM5mxb+G2vrun8m dPQ8bQ== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0k1t0hv6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:35 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b220c72bbso10825001cf.1 for ; Wed, 06 May 2026 23:42:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136155; x=1778740955; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=yVW7PJDNqNGBBo4tUTiap+vPu+AjRGuVR1+5KXJSqK0=; b=R6VJWXKyCpm6lH181R/EaTOi6u6pu2vfELAii4N/mcMxWqYfZDbEOvaDlkOEP1Rg2K RW6alGXqq5ZDLX6uFA82ZIBKJRs7TmRQBvjiCGAZjggrcrkQLAE2vM6RLBIU49SZ/p7X 2iw/JxVsTo8IFjPbmCdM7K2mAmTBvxsJpnt3OWYb8yET30lvBWB4PYyfvMAoB5OlVnAo viGaVaAgVIln8z0d7PlFTb8PvsnI99IZM0sX/PEGrlCiNYSPirVj7hTinUho4j2w6gkq qdB8IpJDItLlCUlmy24GGKuYE4KoT8Xw16PxLcnceSzyojT6f5U+emMJnw4Roh6Y2Pq8 H/8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136155; x=1778740955; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=yVW7PJDNqNGBBo4tUTiap+vPu+AjRGuVR1+5KXJSqK0=; b=SILtz0f135xmc+pexMY0eBRwInF3Y+pmsXWNps5dkt7DURapCH0Ud5q1HJ9kqLxHYR MZb1/EehP8PmwVrVHnxA5DUgVnuSc+RZgG8bbCCATYC1jesMkR+GQDSvv/FZwEujLo+H IvgGvudiLvjV8en1zzBzILgSJm3t1xx0kduduqXZ8NMcB34rpyspCCmJZo8QVRY6B5Us yJ1hoYM2AYWggxlJquQXHEOM8h2M90szdVERZdvCB0vk24ras2Wn42La2goAIbz+yZJZ sHi3AuKYZrDPhOYHsqdHOPVJzVAW6yE+ZNR0mWkTHPsmp6Sf03eAwKYheGGEpaih6hXm 1Jdw== X-Forwarded-Encrypted: i=1; AFNElJ+7pmCamWzWTzV/awijepw98MCphy4Tja9BrP2iHv1X3NKCWfs+GkF3wBPqEQfjc6GsOc5Q1FFLsM9XzKE=@vger.kernel.org X-Gm-Message-State: AOJu0YxTl2KZ9lid6bnAeG4vaygI1FxtTLQG5nMOmOv0nbDVl07CsQRq EaOvoVoi93N4OLjht35XrwL//1RlZbTCY32EmVh6qMyjNMLhGQk3V1zhiEcUEEXeBTZS5Cd64Yr d9m22g6RKT1P48S72vmYlOtuUmZ+guId+L0X+fNT/sCT31wkvWcLFiDW3WTWI4gdWzrw= X-Gm-Gg: AeBDiesQRVuDPyddBgEq13ZG4yz3+Q1LlGTB8KqYm3e8xwFhQ+o9+0I3QmLb8HhNYuw ciwZ+n5lrKIP7N3ZV4isBrddNq3m9r3snzgebOf3K9l2ddD5euUJzjO2NPIlK4KCa0Yho9W2roN icJvy4OniymZHbTdAxfBa6rGjZfbrItxQzouQp7cvuL+If5lShPOSPXpBNWLbHVau82qGhrHVnf wKlic053t8Zjb4CQS8FRf7E1bEHL7gH8SlXdPs2bYElif1l1SXuLFLnCfRD+nx9ALGSuPcQtFer ouXWiBbLCWR4ZisAdeeWpBdoMUBYsuaFIoIzE+A4MWoRXl27ZofpcpisxHOV++0BOgh72eiYchi ejUzotp7Nf5xdcBbbFvsKeoOtPxRGsjDCJAjnv6Mje2cok3Jx+Ckwp8l99+zbd3AegJAnBzc3N4 WSdjqB1dl6UvBEDbiUpymwCXFZFBHaHX4+OXG0E/X8vxLftQ== X-Received: by 2002:a05:622a:5a8d:b0:50f:bb01:9867 with SMTP id d75a77b69052e-51461e6a460mr83758751cf.25.1778136154751; Wed, 06 May 2026 23:42:34 -0700 (PDT) X-Received: by 2002:a05:622a:5a8d:b0:50f:bb01:9867 with SMTP id d75a77b69052e-51461e6a460mr83758411cf.25.1778136154310; Wed, 06 May 2026 23:42: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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:32 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:11 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-11-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=3369; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=51abVJLmqPXnrz/IkKiqyklTNSZTZj3V8WGdms5cxdg=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ+jdsV7MseOwQW66yLMscPcOnhnVEdBcQ8/ Ny43XpoBfqJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PgAKCRCLPIo+Aiko 1Ww4B/4mPa5QArsW8v3nUUEOi2w9G3VC53fCXjBZ1EptaHH760eARJhIKJmeMcfonukah8u/RT6 K4NgZvc3vvXU4ctgHBqqfRxtW5Mwkf+BWnXlmUJH3eICK+cXuHNsIhIqjjRAdlPXyve9U4/dcjL +KAzSrlKXNQKNAUaQ08eZpETKj7rgyzSSM19wRi/yreLPt92iwpJ9m1WJkzrJx+ZUwzOtFnWLjG aC5OYKf/CCiNxPa6XhaoE1T6fbN+vV9IZsRg7O8ZjG4G/411SipsL1UGsRcmLAEWkQaUKkM0WOw JFbPHWDM+bZxzTYeYyAOcIWXR4QaXLBuu6r/Yl66+xfwlfkh X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=EoPiaycA c=1 sm=1 tr=0 ts=69fc345b cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=_TRJU0tGboi39qq34nEA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-ORIG-GUID: n0WG-KyDFeiYxvzHEaYT_1QP2lsM7424 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX1rf/deTzGlbH fBgpidHwDymrA4gtFGgkiDFNltsDFUgOjTmg11XgwVb6l8UcLREbaazW49tQVTRRacCDqD93pDj Rd2la5da8JD8EjVsC7ReSkdF4tZpwZuvXdZnB4tJwZOCoQ8QvdkjBhFfTBTahRABuf4AgXLbyF3 icP4itwRPT+UzUGVV8JbEtcSBRtY5ErNiDXaubPkvjiv2rqjMKDTG0774pvyVgmd2d1RaFuvub7 g48mqdHMyk1+pzEzQISwiOOWw0BHIOQbKO/pzT6rAqS6Vnd2i8UKEjUH4/Dc1rKwhazcOqmv5f/ uySfSR3q+IF3CO5cDeEwm3CwbeE0XNN+ZfL4gc0Z7chmWOnF50Ac6oV01pjZ1PuOaidx1f1oOmQ Ozx0ziyKZIFaVM0/fH8GQHo9a/5HolUXw6RJ6FUjWCb03DTwCAfd89Zei90/qU/zXpi/oWzqFB3 Kf17nSUCvFZQI05cVrA== X-Proofpoint-GUID: n0WG-KyDFeiYxvzHEaYT_1QP2lsM7424 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 Upon receiving data for HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS the driver should update buffer sizes and counts from the received data. Implement corresponding functionality updating buffers data. This will be used for upcoming support of AR50Lt platforms with Gen1 firmware. Signed-off-by: Dmitry Baryshkov --- .../platform/qcom/iris/iris_hfi_gen1_response.c | 74 ++++++++++++++++++= +++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c b/dr= ivers/media/platform/qcom/iris/iris_hfi_gen1_response.c index 23fc7194b1e3..ee996eb1f41f 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c @@ -533,6 +533,78 @@ static void iris_hfi_gen1_session_ftb_done(struct iris= _inst *inst, void *packet) dev_err(core->dev, "error in ftb done\n"); } =20 +static enum iris_buffer_type iris_hfi_gen1_buf_type(struct iris_inst *inst= , u32 type) +{ + switch (type) { + case HFI_BUFFER_INPUT: + return BUF_INPUT; + case HFI_BUFFER_OUTPUT: + if (iris_split_mode_enabled(inst)) + return BUF_DPB; + return BUF_OUTPUT; + case HFI_BUFFER_OUTPUT2: + if (iris_split_mode_enabled(inst)) + return BUF_OUTPUT; + return BUF_DPB; + case HFI_BUFFER_INTERNAL_PERSIST_1: + return BUF_PERSIST; + case HFI_BUFFER_INTERNAL_SCRATCH: + return BUF_BIN; + case HFI_BUFFER_INTERNAL_SCRATCH_1: + return BUF_SCRATCH_1; + case HFI_BUFFER_INTERNAL_SCRATCH_2: + return BUF_SCRATCH_2; + case HFI_BUFFER_INTERNAL_PERSIST: + return BUF_ARP; + default: + return -EINVAL; + } +} + +static void iris_hfi_gen1_session_buffer_requirements(struct iris_inst *in= st, + void *data, size_t size) +{ + struct hfi_buffer_requirements *req; + + if (!size || size % sizeof(*req)) + return; + + for (req =3D data; size; size -=3D sizeof(*req), req++) { + enum iris_buffer_type type =3D iris_hfi_gen1_buf_type(inst, req->type); + + if (type =3D=3D -EINVAL) + continue; + + inst->buffers[type].min_count =3D req->hold_count; + inst->buffers[type].size =3D req->size; + + if (type =3D=3D BUF_OUTPUT) + inst->fw_min_count =3D req->count_actual; + } +} + +static void iris_hfi_gen1_session_property_info(struct iris_inst *inst, vo= id *packet) +{ + struct hfi_msg_session_property_info_pkt *pkt =3D packet; + + if (!pkt->num_properties) { + dev_err(inst->core->dev, "error, no properties\n"); + goto out; + } + + switch (pkt->property) { + case HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS: + iris_hfi_gen1_session_buffer_requirements(inst, pkt->data, + pkt->shdr.hdr.size - sizeof(*pkt)); + break; + default: + dev_warn(inst->core->dev, "unknown property id: %x\n", pkt->property); + } + +out: + complete(&inst->completion); +} + struct iris_hfi_gen1_response_pkt_info { u32 pkt; u32 pkt_sz; @@ -657,7 +729,7 @@ static void iris_hfi_gen1_handle_response(struct iris_c= ore *core, void *response } else if (hdr->pkt_type =3D=3D HFI_MSG_SESSION_FILL_BUFFER) { iris_hfi_gen1_session_ftb_done(inst, hdr); } else if (hdr->pkt_type =3D=3D HFI_MSG_SESSION_PROPERTY_INFO) { - complete(&inst->completion); + iris_hfi_gen1_session_property_info(inst, hdr); } else { struct hfi_msg_session_hdr_pkt *shdr; =20 --=20 2.47.3 From nobody Sat Jun 13 14:01: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 937EF35B654 for ; Thu, 7 May 2026 06:42:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136161; cv=none; b=trpCj6JfC41g5JiTMGMlnicOpHs1zOcryGGoC70NHMgjrRVqdT60nUtY/WVbjSd8evWlNym0KPLO4glmg4YfoJ+BBZk7sdD5ORTkEUafxCZGMTllwSReNQuJVNMEieVOBU2W6qolMhO7VKANVU1jUGpwfMg64ZmcvlmpkWeSTZg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136161; c=relaxed/simple; bh=qeBaiYI4ytb4S7VaKFur8z0FlxUh13kklSHUKNiweRA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VP5fwgQxVKsuTOdK0zr2Vfy1gA1I0axRPzm4vtDvmZd5gUfBcbwTLkEAyFc9q/12ezVKZMkXdinCPPl5MPPQa64dRglxnTjBYlX15o0jlbm+Ok3aHmg1F0zxgjlMR1iZc3cIUaotoPUP2oj28rp9w491kzU8Y8vPL+Vr79rnX6s= 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=You/z+jZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=dTX7/PjF; 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="You/z+jZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="dTX7/PjF" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64742r3a3036600 for ; Thu, 7 May 2026 06:42:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= yzXt35altDEfc7JhP4eER919icYTvh6XMdYjY45+opw=; b=You/z+jZq1gcuHO5 /ES15WjbQnUBHbqN7AR0Z32oi1VdKCFrbU1dOACqw0mCI9WDUer6XtErBjBMsBYS TsNWZAFAU37tWUSaarl2yiZp8frH2yre4PqWv0c83IuBzGOdHiTncYOogtz7jblb 8uHBjZr9fIeZReoiGKN9kfCFrz+l28UaXadGrxiSVpvJr2FVbIPKCTj7gTcUAMDX YOTJ3UoethQKTz+IW78GVTTDpPNj8oND5Eq+vAXBjJhsi04TYAWq4lgH9yyleqp4 stjwee1tbkQG/eYsai3rIB4TY9sRnv5qfJQhAJZLTOiKek5qhpPVogAMS+LlS11a kjs3Eg== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e05bf3jsk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:37 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50e575a50bcso6150261cf.0 for ; Wed, 06 May 2026 23:42:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136157; x=1778740957; 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=yzXt35altDEfc7JhP4eER919icYTvh6XMdYjY45+opw=; b=dTX7/PjFGyof0Wl5Oqb4efRONFCuRDCfu96a8tz7epQZ7kJZSGk/9PprlQKadjVi6Q 0RWBRTy40coReOhjbNqmNIt0peBIk9BhwL3P1sfF0U1bzyfTsyRhfdQzV/GbHO6QATsv zWJSt7Ck34LpQFTLhXQ3Pvu+9Y2ZJ17N2ybIG9n2wmtKI9Cou4KaE7aebhN/U58qfVna AW4TjFFlg1X1P33eS7rXfVpRLoSa3o8d3J0lEwRt/MBXBBxVF0tAKD+7JeMWnmOu2eaH RznI7TCdWJLFL4nrNtINwsrvFYvlrv7p2vs5qw951JG5jBZT6ISni4WqUo6wyemPLXIp NJwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136157; x=1778740957; 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=yzXt35altDEfc7JhP4eER919icYTvh6XMdYjY45+opw=; b=ZvNLLfNJDaJ6Tmh7UWHX02J/SKBD2eEaq32OS1iz95Dz/NQxvdWOHnFSnCd7yx1B+j QPt35H3KYGVyKmEpGos5D4QIxuO9xtZJeuyr94NObfpv7nzoRDv9xuGOp+XgFopcEZQ3 s8es+FI/GbnonCV+xggDVMClv67FFAPa64QH1y+9hW0JHLkMNkURKwZ/uT+/9WBsNTMd e9TD3Y2QNe2TEXukiKxODoyG1Yk5yM7I/YU0fTt2i6+xBzKjyl0YDNiqcuvr0sT1gknD E4GBJM7aYWXAykfQX8ajwkUgoFNOuJZACivgTIO9QJXBYbZFe3RhwiPYjp3PIHaNMdIU MdhA== X-Forwarded-Encrypted: i=1; AFNElJ//zKSHHYgp1GLUGfNGVXJOolIpL+9zVyO6x3/Ku2jv5tihQd0UBQvfFc3lBrdtQMZNCgji7QSP14aN3/w=@vger.kernel.org X-Gm-Message-State: AOJu0YzIQJM1Ap3wXXoTQXGAlk6MIWrT6/2HmwoQYdEVGqQlhlslShYN mUGrSmXxLaDGg9rcBwqCSTkgn9MkIJmXR3dFvx4Z0fwtDwLovuZNFwtd+MBl3juPtfKQPeHHLLZ fIXoaVM8X0FmjwxSOd4BMBT/Ryx2vONsbUnL+/tgPmG/nGQGbpMdyodQ4wQqXCmE9fPM= X-Gm-Gg: AeBDietT3mA2L1Ihiy24dSrY7ECqewChZNr34fVECM+Ncoz09ox4NmtXKQtas60Mez3 1m6Q/CX0YZ1Tih/UTrOchju/e769wWfa2TS9fbfavToNxDuwpXG4g35z/lXWcT71JHfdmn1d5+h ZXRcGUJEwKJk2kFAAG+bc0NGhRbZTxKlYGZm6iwm9/daItDPqueCOt4qVtqDafbgfiNXxEXUsCC JiaRmlFzkizVafLkkYaqZins7zowUEPVvAT0jQFbG9j0rVd0r1rpgck1tleFv8sn5lHBj3Dodgn EOazu3bPxmGQSncI4e5TG2RBHGNkQVKRBUe2kf0tQxQrCauXzxKZlnVZMaRI4Tr2naLpB3jq9B8 OFxRSb7uHZ9qF5O7GusqTS3dE7jEax1ageo4uACfLnf7w+2YInSQCcaXTTeaBhG5Rskp8zn866o n+JT4KwmAXZ196ag9u6yA9UjD/XKQJ36rwiWd/yBWVMokUqw== X-Received: by 2002:a05:622a:4ccc:b0:50d:97e8:939b with SMTP id d75a77b69052e-51461f9e47fmr98037281cf.36.1778136156407; Wed, 06 May 2026 23:42:36 -0700 (PDT) X-Received: by 2002:a05:622a:4ccc:b0:50d:97e8:939b with SMTP id d75a77b69052e-51461f9e47fmr98037041cf.36.1778136155837; Wed, 06 May 2026 23:42:35 -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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:34 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:12 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-12-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=17219; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=qeBaiYI4ytb4S7VaKFur8z0FlxUh13kklSHUKNiweRA=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ+KBJ7LIA0y9AkcRVGUXQWEwnTzlVNonbOI M312eXj0MeJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PgAKCRCLPIo+Aiko 1YgtB/4yyqXHCzOtT5N8JkPL+ipud4T1TkiQzDefQrhiXGiJwaPX5u5EkpFMd0v4MkqOQsY69kZ H7dygfbkAWbG8cJ4COSuh/oZhiY+9Vp/Ce42BEh6Bh2fzp06X36eGJ5ddKuy4d+0SEPWTo45CZQ 31tVkTWANNU5lYMw9vMtwGABqPUSUfz7gu3Hw0gVkCilHeK7jOcaH//izvd/QC5I2VY8+4i/xj4 Iqdr3Z9/yT44vSuBd1Lli3Ps1DGDq/Q70Avo3GfhftnFs9E/L5Ols3iOsrBYBGh5UOeKSEfD7iH wzPCQiIEfmD2PapXlljbG5q/bf6syi5kT+7P04OAXgRQPQ4z X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX/P75sMaV5FUM p84Zt+/GixOUmuauWyYzMAasW5HPp1dbJNGniLQ2d3AlBMnBh0KJZmKYeR9HQV7gXRL84r4tHfU xkFRnDukcXumi4lfW8d+wHZn/2TaCuGlWAmXRfOUcUFm0RjqfpmzdFTEIapyt5MNYhofm4IeftA XYs4A93bMXPEciRRJ/TDyCc8iyQAySXevPqRqxRadkyHdIf5qc+1igAl/r0wEZ5C1wprB0Z3okK +PrYw1I20S+VlrykdjO24Qp9HU4y8wlKPjf/B2x9lY0i3vfR89HFYvEKsF58c2I9ZOHKSWO62WQ QT8Fpj9ULci/VnEd/FUFMotQ9Z5ioJiAIVP8UK/qk4TJALpU/IEN63VzSvhkC70i1TAeg3eHZ0T EaKJkk67VTOygjNeYbbajo2Mv4nkw6+L3or877hLpI3j1WRiuIugOI3Uky8L4FyZxZ3zwVpFJRz UXbypueTCbhqku2FJyw== X-Authority-Analysis: v=2.4 cv=PqmjqQM3 c=1 sm=1 tr=0 ts=69fc345d cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=dOk1iDCBItVmpnauvPoA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: oThXLEEPbl93gspHC4aU5kVFJ81lW_-2 X-Proofpoint-ORIG-GUID: oThXLEEPbl93gspHC4aU5kVFJ81lW_-2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 adultscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 Port support for the AR50Lt video codec core (present for example on the Agatti platform) to the Iris driver. Unlike more recent cores this generation doesn't have the PIPE property (as it always has only one pipe). Also, unlike newer platforms, buffer sizes are requested from the firmware instead of being calculated by the driver. Co-developed-by: Dikshita Agarwal Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/Makefile | 1 + drivers/media/platform/qcom/iris/iris_hfi_gen1.c | 227 +++++++++++++++++= ++++ .../platform/qcom/iris/iris_platform_common.h | 6 + .../platform/qcom/iris/iris_platform_vpu_ar50lt.c | 111 ++++++++++ drivers/media/platform/qcom/iris/iris_probe.c | 4 + drivers/media/platform/qcom/iris/iris_vpu_buffer.c | 13 ++ drivers/media/platform/qcom/iris/iris_vpu_buffer.h | 1 + 7 files changed, 363 insertions(+) diff --git a/drivers/media/platform/qcom/iris/Makefile b/drivers/media/plat= form/qcom/iris/Makefile index f1b204b95694..bbd1f724963e 100644 --- a/drivers/media/platform/qcom/iris/Makefile +++ b/drivers/media/platform/qcom/iris/Makefile @@ -14,6 +14,7 @@ qcom-iris-objs +=3D iris_buffer.o \ iris_hfi_queue.o \ iris_platform_vpu2.o \ iris_platform_vpu3x.o \ + iris_platform_vpu_ar50lt.o \ iris_power.o \ iris_probe.o \ iris_resources.o \ diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c b/drivers/med= ia/platform/qcom/iris/iris_hfi_gen1.c index 60f51a1ba941..39f757b6e0a3 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1.c @@ -284,3 +284,230 @@ const struct iris_firmware_data iris_hfi_gen1_data = =3D { .enc_ip_int_buf_tbl =3D sm8250_enc_ip_int_buf_tbl, .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl), }; + +static struct platform_inst_fw_cap iris_inst_fw_cap_gen1_ar50lt_dec[] =3D { + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROPERTY_PARAM_WORK_MODE, + .set =3D iris_set_stage, + }, +}; + +static const struct platform_inst_fw_cap inst_fw_cap_gen1_ar50lt_enc[] =3D= { + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROPERTY_PARAM_WORK_MODE, + .set =3D iris_set_stage, + }, + { + .cap_id =3D PROFILE_H264, + .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH), + .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D PROFILE_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE), + .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D LEVEL_H264, + .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2), + .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D LEVEL_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D HEADER_MODE, + .min =3D V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, + .max =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) | + BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME), + .value =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .hfi_id =3D HFI_PROPERTY_CONFIG_VENC_SYNC_FRAME_SEQUENCE_HEADER, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_header_mode_gen1, + }, + { + .cap_id =3D BITRATE, + .min =3D BITRATE_MIN, + .max =3D BITRATE_MAX_AR50LT, + .step_or_mask =3D BITRATE_STEP, + .value =3D BITRATE_DEFAULT_AR50LT, + .hfi_id =3D HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_bitrate, + }, + { + .cap_id =3D BITRATE_MODE, + .min =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .max =3D V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) | + BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR), + .value =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_RATE_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_bitrate_mode_gen1, + }, + { + .cap_id =3D FRAME_SKIP_MODE, + .min =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .max =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) | + BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT), + .value =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + }, + { + .cap_id =3D FRAME_RC_ENABLE, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 1, + }, + { + .cap_id =3D GOP_SIZE, + .min =3D 0, + .max =3D (1 << 16) - 1, + .step_or_mask =3D 1, + .value =3D 30, + .set =3D iris_set_u32 + }, + { + .cap_id =3D ENTROPY_MODE, + .min =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .max =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) | + BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC), + .value =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_entropy_mode_gen1, + }, + { + .cap_id =3D MIN_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MIN_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP_HEVC, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MAX_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MAX_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP_HEVC, + .step_or_mask =3D 1, + .value =3D MAX_QP_HEVC, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, +}; + +static const u32 iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl[] =3D { + BUF_BIN, + BUF_SCRATCH_1, +}; + +const struct iris_firmware_data iris_hfi_gen1_ar50lt_data =3D { + .init_hfi_ops =3D &iris_hfi_gen1_sys_ops_init, + + .inst_fw_caps_dec =3D iris_inst_fw_cap_gen1_ar50lt_dec, + .inst_fw_caps_dec_size =3D ARRAY_SIZE(iris_inst_fw_cap_gen1_ar50lt_dec), + .inst_fw_caps_enc =3D inst_fw_cap_gen1_ar50lt_enc, + .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_gen1_ar50lt_enc), + + .dec_input_config_params_default =3D + sm8250_vdec_input_config_param_default, + .dec_input_config_params_default_size =3D + ARRAY_SIZE(sm8250_vdec_input_config_param_default), + .enc_input_config_params =3D sm8250_venc_input_config_param, + .enc_input_config_params_size =3D + ARRAY_SIZE(sm8250_venc_input_config_param), + + .dec_ip_int_buf_tbl =3D iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl, + .dec_ip_int_buf_tbl_size =3D ARRAY_SIZE(iris_hfi_gen2_ar50lt_dec_ip_int_b= uf_tbl), + .dec_op_int_buf_tbl =3D sm8250_dec_op_int_buf_tbl, + .dec_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_dec_op_int_buf_tbl), + + .enc_ip_int_buf_tbl =3D sm8250_enc_ip_int_buf_tbl, + .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8250_enc_ip_int_buf_tbl), +}; diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index 4a0895bf5720..f9763ea51c53 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -29,6 +29,10 @@ struct iris_inst; #define DEFAULT_QP 20 #define BITRATE_DEFAULT 20000000 =20 +#define BITRATE_MAX_AR50LT 100000000 +#define BITRATE_DEFAULT_AR50LT 20000000 +#define MIN_QP_8BIT_AR50LT 0 + enum stage_type { STAGE_1 =3D 1, STAGE_2 =3D 2, @@ -41,8 +45,10 @@ enum pipe_type { }; =20 extern const struct iris_firmware_data iris_hfi_gen1_data; +extern const struct iris_firmware_data iris_hfi_gen1_ar50lt_data; extern const struct iris_firmware_data iris_hfi_gen2_data; =20 +extern const struct iris_platform_data qcm2290_data; extern const struct iris_platform_data qcs8300_data; extern const struct iris_platform_data sc7280_data; extern const struct iris_platform_data sm8250_data; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c b/= drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c new file mode 100644 index 000000000000..76bebe012bd8 --- /dev/null +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c @@ -0,0 +1,111 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include "iris_core.h" +#include "iris_ctrls.h" +#include "iris_hfi_gen2.h" +#include "iris_hfi_gen2_defines.h" +#include "iris_platform_common.h" +#include "iris_vpu_buffer.h" +#include "iris_vpu_common.h" + +#define WRAPPER_INTR_STATUS_A2HWD_BMSK 0x10 + +const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen1_s6_desc =3D { + .firmware_data =3D &iris_hfi_gen1_ar50lt_data, + .get_vpu_buffer_size =3D iris_vpu_ar50lt_gen1_buf_size, + .fwname =3D "qcom/venus-6.0/venus.mbn", +}; + +static const u32 iris_fmts_ar50lt_dec[] =3D { + [IRIS_FMT_H264] =3D V4L2_PIX_FMT_H264, + [IRIS_FMT_HEVC] =3D V4L2_PIX_FMT_HEVC, + [IRIS_FMT_VP9] =3D V4L2_PIX_FMT_VP9, +}; + +static const struct bw_info iris_bw_table_dec_ar50lt[] =3D { + { ((1920 * 1080) / 256) * 60, 1564000, }, + { ((1920 * 1080) / 256) * 30, 791000, }, + { ((1280 * 720) / 256) * 60, 688000, }, + { ((1280 * 720) / 256) * 30, 347000, }, +}; + +static const struct icc_info iris_icc_info_ar50lt[] =3D { + { "cpu-cfg", 1000, 1000 }, + { "video-mem", 1000, 6500000 }, +}; + +static const char * const iris_pmdomain_table_ar50lt[] =3D { "venus", "vco= dec0" }; + +static const char * const iris_opp_pd_table_ar50lt[] =3D { "cx" }; + +static const struct platform_clk_data iris_clk_table_ar50lt[] =3D { + {IRIS_CTRL_CLK, "core" }, + {IRIS_AXI_CLK, "iface" }, + {IRIS_AHB_CLK, "bus" }, + {IRIS_HW_CLK, "vcodec0_core" }, + {IRIS_HW_AHB_CLK, "vcodec0_bus" }, + {IRIS_THROTTLE_CLK, "throttle" }, +}; + +static const char * const iris_opp_clk_table_ar50lt[] =3D { + "vcodec0_core", + NULL, +}; + +static const struct tz_cp_config tz_cp_config_ar50lt[] =3D { + { + .cp_start =3D 0, + .cp_size =3D 0x25800000, + .cp_nonpixel_start =3D 0x01000000, + .cp_nonpixel_size =3D 0x24800000, + }, +}; + +static struct platform_inst_caps platform_inst_cap_ar50lt =3D { + .min_frame_width =3D 128, + .max_frame_width =3D 1920, + .min_frame_height =3D 128, + .max_frame_height =3D 1920, + .max_mbpf =3D (1920 * 1088) / 256, + .mb_cycles_vpp =3D 440, + .mb_cycles_fw =3D 733003, + .mb_cycles_fw_vpp =3D 225975, + .num_comv =3D 0, + .max_frame_rate =3D 120, + .max_operating_rate =3D 120, +}; + +const struct iris_platform_data qcm2290_data =3D { + .firmware_desc_gen1 =3D &iris_vpu_ar50lt_p1_gen1_s6_desc, + .vpu_ops =3D &iris_vpu_ar50lt_ops, + .icc_tbl =3D iris_icc_info_ar50lt, + .icc_tbl_size =3D ARRAY_SIZE(iris_icc_info_ar50lt), + .bw_tbl_dec =3D iris_bw_table_dec_ar50lt, + .bw_tbl_dec_size =3D ARRAY_SIZE(iris_bw_table_dec_ar50lt), + .pmdomain_tbl =3D iris_pmdomain_table_ar50lt, + .pmdomain_tbl_size =3D ARRAY_SIZE(iris_pmdomain_table_ar50lt), + .opp_pd_tbl =3D iris_opp_pd_table_ar50lt, + .opp_pd_tbl_size =3D ARRAY_SIZE(iris_opp_pd_table_ar50lt), + .clk_tbl =3D iris_clk_table_ar50lt, + .clk_tbl_size =3D ARRAY_SIZE(iris_clk_table_ar50lt), + .opp_clk_tbl =3D iris_opp_clk_table_ar50lt, + /* Upper bound of DMA address range */ + .dma_mask =3D 0xe0000000 - 1, + .inst_iris_fmts =3D iris_fmts_ar50lt_dec, + .inst_iris_fmts_size =3D ARRAY_SIZE(iris_fmts_ar50lt_dec), + .inst_caps =3D &platform_inst_cap_ar50lt, + .tz_cp_config_data =3D tz_cp_config_ar50lt, + .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_ar50lt), + .num_vpp_pipe =3D 1, + .no_rpmh =3D true, + .wd_intr_mask =3D WRAPPER_INTR_STATUS_A2HWD_BMSK, + .icc_ib_multiplier =3D 2, + .max_session_count =3D 8, + .max_core_mbpf =3D ((1920 * 1088) / 256) * 4, + /* Concurrency: 1080p@30 decode + 1080p@30 encode */ + /* Concurrency: 3 * 1080p@30 decode */ + .max_core_mbps =3D (((1920 * 1088) / 256) * 90), +}; diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/= platform/qcom/iris/iris_probe.c index 7211d520eda3..070e09406d89 100644 --- a/drivers/media/platform/qcom/iris/iris_probe.c +++ b/drivers/media/platform/qcom/iris/iris_probe.c @@ -356,6 +356,10 @@ static const struct dev_pm_ops iris_pm_ops =3D { }; =20 static const struct of_device_id iris_dt_match[] =3D { + { + .compatible =3D "qcom,qcm2290-venus", + .data =3D &qcm2290_data, + }, { .compatible =3D "qcom,qcs8300-iris", .data =3D &qcs8300_data, diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.c index 9270422c1601..125fb2d6960d 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.c @@ -2135,6 +2135,19 @@ u32 iris_vpu4x_buf_size(struct iris_inst *inst, enum= iris_buffer_type buffer_typ return size; } =20 +u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type) +{ + const struct iris_hfi_session_ops *hfi_ops =3D inst->hfi_session_ops; + int ret; + + /* return 0 on error to let the driver cope */ + ret =3D hfi_ops->session_get_property(inst, HFI_PROPERTY_CONFIG_BUFFER_RE= QUIREMENTS); + if (ret) + return 0; + + return inst->buffers[buffer_type].size; +} + static u32 internal_buffer_count(struct iris_inst *inst, enum iris_buffer_type buffer_type) { diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.h b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.h index 8c0d6b7b5de8..1d07137c70cd 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.h +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.h @@ -288,6 +288,7 @@ static inline u32 size_av1d_qp(u32 frame_width, u32 fra= me_height) u32 iris_vpu_buf_size(struct iris_inst *inst, enum iris_buffer_type buffer= _type); u32 iris_vpu33_buf_size(struct iris_inst *inst, enum iris_buffer_type buff= er_type); u32 iris_vpu4x_buf_size(struct iris_inst *inst, enum iris_buffer_type buff= er_type); +u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *inst, enum iris_buffer= _type buffer_type); int iris_vpu_buf_count(struct iris_inst *inst, enum iris_buffer_type buffe= r_type); =20 #endif --=20 2.47.3 From nobody Sat Jun 13 14:01: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 4E487345CA3 for ; Thu, 7 May 2026 06:42:40 +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=1778136164; cv=none; b=J35Wg7oYAeQzcuqMVDmBNRyjy2Cna2cxPNnIQPGogaKzhGisjIkgrPzgTi4TBWwzg58/R6Oq5ZtiXAei9cMTKB5LfOkx/PnVxiSEIqHUmeTaGpxfoXtvamhEsRzTu6OUeyglWWjVVpNvUqDkJX3/08ivD9AD3QoT7AHbl3zVPCk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136164; c=relaxed/simple; bh=vyMUqCZboiukA6NPK4FsILHz2awArHKB5nwDAbcMm64=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OjCMlMObgnLmcYaLmyEVl3HNFOJiF4NOU9yFlGd6Az7B+ifQtOJ9mqI2+eAB2AV2cc4w71RGr+uSeCvS2M0cnC6/QrHryxO+A4l8bCLjwypuPwo0vZoCJshqgCVLJaHcp1fzAKJHnP0TeMjRLID1nyi1Pmk7rAHeNWyacq3ukOU= 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=S8Q1s6eD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SN5gxs0q; 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="S8Q1s6eD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SN5gxs0q" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6475MfhO3924169 for ; Thu, 7 May 2026 06:42:39 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= Tn+zEa/ik0YuxQGZzMSEqhogBnr7nadXIJESwVlp6/g=; b=S8Q1s6eDm0EoS0ET VtF12iLzeeGpzsnl3uaOkSUSQQyidA3EKuAxSRIHbkbtv/RBghNp8B1UU53XfHP1 iaLSL8Ry4K6chWPxscxrPwgMa/q4jwsmOf78s0YdWg31QVUdr7SwLLfdA5YBXCR4 3ipFVKKKO7ZObYJ2/eF4ax8z9U/L8fhDEuwf5CT6OD80b4AYvdLqcPLCR7Op4c+O aLJShqMMGpy/QcXVGFy8NvdTsbFs8335LzcXy+1N2ul47SIDgZd/pbbgyTqR5/TQ ejoOLKlWi6Zol5y0L9QbXB38tLMwyJv1q95cuxMAruuxf4B9MOLXTg1xJcaq/XAE RUUPwg== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0c889t3h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:39 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5147078691fso11437711cf.3 for ; Wed, 06 May 2026 23:42:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136158; x=1778740958; 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=Tn+zEa/ik0YuxQGZzMSEqhogBnr7nadXIJESwVlp6/g=; b=SN5gxs0qpl964cMnw2rrLydNjZ8f8u63B/0ZojoLkv0nWofBdi5Yx7FhF0jb+8rWJh 5rtE9tXB83RNiMloof7rKunKOdRFWpAGislGtCl2yciCZjeNU7wTxtvsar0rqrHrGAd+ cTktEeN6W87J9QaejCYxpelkWUKfSOF46iuL3Bf2p5ZDMlZQJj8iHQ589nEkOVsyfead Mbukr6frBs1QXViC0iblRgU8q7VQxjnF3mrtT8jV9OCU7o67pqGE48K+JFxHDCTsfeMr 7U3gNzTNvaT9x9XRZQbrOMUKRBV6PsuzN89bgX9qbDsAMKNvDwG/nFHJ2OBebuNYb5Ya DffA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136158; x=1778740958; 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=Tn+zEa/ik0YuxQGZzMSEqhogBnr7nadXIJESwVlp6/g=; b=D6BUKZHTZK974CWrMJyDDCGuBJhGjK1irEx7AzY+DuJXrck0dVg3pchF8QfYvnZlns h6h4ahrHCWQPYM1DEigi/so2Wz4QPi4fGgDFZKKcEuXXDxOzHPzrtFok19/nGAENu8rS ThDJYy6A6CAmWtx7RCdgn8esiJs0XInvQhlANgEzygGd9KLboqE1Vui9NmAZGLYiOLeG y6WAMbTNmKVSxG48LyryGliJY+GqKUvkb21HUkFpBufnCCzyMKRVVvwmUesmjr7HDzSf iEeoVrKtqCTHxmYR0HyLAyTk1m/WLbRpNTRl3W3RivDIz/34iLhApyx8frSS/sYeh5mU RQHQ== X-Forwarded-Encrypted: i=1; AFNElJ/zQPnqXT1cgRvP8r50tgw65c9nuvfNdvy7Fw3rxn2Jbm7fA9ijY0cqvmUOnGYTbRvorP6g+AU3rPTK+YA=@vger.kernel.org X-Gm-Message-State: AOJu0YwQq+VtDgz90Fym4SQS5gGXFvwWarC1c2gv6+CJRwde2DFh1mHY EHOS1jbahDOt5bbqDdt/IeC+Voj0vZxov7PKu+RYlvIBnFkyCxBnQ4vLly4OcGtwYnzq61aQvY0 BR7efDtQp3tJaidGVAG2TUgYF5nwNbWhURtnIbMczhtxv+poITD8bzGXfMH6IRn2YKSQ= X-Gm-Gg: AeBDiet/uynbvk3eA/n7u9NaMc7RB+HKxoZycrjHyBWCHBRhbgufYq0R7EoQiWK+44Z EoLm1M946HTI2YaCMzENZ3rqtZOoMdaysd0LEYdS/tbXKnXBZhRJ95dkqer5ZWtaV5yXCi8qXR3 OaLBqSeMT3XOSvbL5RTFBkfcEtsR4MKIZggaCaEeNhFX7HIOYJbPOFMbPPFxKW4E+Tqp5qzb/r+ fY3XhVA8fLJ6HaFhfJzpCUe5NNFgNQTgozav/y3ePnyoQP5dWVILlyUaf+PUnSQr7N+qWMKJ9iz i5f0v/kThmFgUqXNj+RNc4esTBCogwwLRxCea1KHvtLwn8T3vWA86rzVtQWDcbxhPOTsfjxCbT+ sBsVut76Q0uhLdRCG2VuLtf/d5XBIbYxtoWjYGFGCItke9DZxSIFTOo2PZsYTN4w4t79u0lM/2T tqhaXQQm48zoNRDgHd2SXsGXMwrnZU6x1nb7ywVm+EJVpvwA== X-Received: by 2002:a05:622a:4a05:b0:50f:b2e4:ebb with SMTP id d75a77b69052e-51461be0195mr103623141cf.10.1778136158264; Wed, 06 May 2026 23:42:38 -0700 (PDT) X-Received: by 2002:a05:622a:4a05:b0:50f:b2e4:ebb with SMTP id d75a77b69052e-51461be0195mr103622661cf.10.1778136157639; Wed, 06 May 2026 23:42:37 -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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:36 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:13 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-13-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=27276; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=Ra9OuKhJ/5K14vmLYSjybURPRBdvAhqS67rdpGUWv2c=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ/k17dqjEkmPTAHZLce9dyPbn04ktNmwluZ WfTy8YOkq6JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PwAKCRCLPIo+Aiko 1RagB/4wR2q2kwrDLSLUmdM3MD9vgpbgjQ5ckmu/tPlcfPJMCmbu4FOLiypiZ9K0oKIHPFqQR7g cSwOyJrz7N8EriNOqrTjbnENhT4wgI93HdjHC1mnrmnxdWWWB+jA0VD9bruMRegVeMIbwyQiWxY tAPHF9HvKXwxpMcxxnWwQVLb5WBHq9j+omHfhlqQ7Uuedt1KDfCqdUb1bGO2gel9f35Uz5PODaP +wVQbWv4y4tupTji/nDeasIQYp937GXPcBt0OLGT8LKtLC8WFSVE6cpOQEllpj0qCu0hhPffqr7 s8R449aXqEOKkg98ME54JYST8CHRCc0+EtFvq5ez8DOo2JW3 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: 54JFvwy9bkWNb_6VZAzyz81KmVw8KrtI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfXyC9CBYuGp1F0 Lt2N85+fndzc/z9jPTV4hPyhCpYpfQ6Tb1UEUqANaNmheCwgSSezSpy7OVcDL6VnWESuxlIHPoG BIIsPB0a7OMNnRoyQBbf5+0faRyIzjWPxRIIbu1D5QCFIjP2WEmQK/3xhp68796asM42FNYqT3w n3O3kg+j0q7M19YDt6QJbqTXkC0PAgu2J+Hny+7MtMTaTKZta3w6KOHBMtXuV3CHb/7n9sQbZiZ CkiZWa3CzT4aKEZzcRiqP7N4ZXCS+W+I0ZPb2AJsSYknyFy9bV/QLocKNBcpqmjV0s1Ubbrl76l JXCyU7KVz1G724Zixz6xbpQ2MANoxhDL1EKpk6pNFqvwOYNYvbVxmBumpv1B6JdLO1v4aYAfeTL umcGQ6o+CrqIbnuy3sUCILTUE/RhtnCwHr5Cn7Z8h22Lv0pw6wpah7bdEnLSNG8zGgIBPPR1xXG 3NQV/JRGmWSMJAMVYeQ== X-Proofpoint-GUID: 54JFvwy9bkWNb_6VZAzyz81KmVw8KrtI X-Authority-Analysis: v=2.4 cv=X8Zi7mTe c=1 sm=1 tr=0 ts=69fc345f cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=iravrUNok-SDL5gDNRIA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 spamscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 From: Dikshita Agarwal Introduces AR50LT buffer size calculation for both encoder and decoder. Reuse the buffer size calculation which are common, while adding the AR50LT specific ones separately. Signed-off-by: Dikshita Agarwal Signed-off-by: Dmitry Baryshkov --- drivers/media/platform/qcom/iris/iris_vpu_buffer.c | 401 +++++++++++++++++= ++++ drivers/media/platform/qcom/iris/iris_vpu_buffer.h | 37 ++ 2 files changed, 438 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.c index 125fb2d6960d..a1af3bca5dc9 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.c @@ -50,6 +50,32 @@ static u32 hfi_buffer_bin_h264d(u32 frame_width, u32 fra= me_height, u32 num_vpp_p return size_h264d_hw_bin_buffer(n_aligned_w, n_aligned_h, num_vpp_pipes); } =20 +static u32 size_h264d_hw_bin_buffer_ar50lt(u32 frame_width, u32 frame_heig= ht, u32 num_vpp_pipes) +{ + u32 size_yuv, size_bin_hdr, size_bin_res; + + size_yuv =3D ((frame_width * frame_height * 3) >> 1); + if (size_yuv <=3D 1920 * 1088 * 3 / 2) { + size_bin_hdr =3D size_yuv * H264_CABAC_HDR_RATIO_SM_TOT; + size_bin_res =3D size_yuv * H264_CABAC_RES_RATIO_SM_TOT; + } else { + size_bin_hdr =3D (size_yuv * 3) / 5; + size_bin_res =3D (size_yuv * 3) / 2; + } + size_bin_hdr =3D ALIGN(size_bin_hdr, DMA_ALIGNMENT); + size_bin_res =3D ALIGN(size_bin_res, DMA_ALIGNMENT); + + return size_bin_hdr + size_bin_res; +} + +static u32 hfi_buffer_bin_h264d_ar50lt(u32 frame_width, u32 frame_height, = u32 num_vpp_pipes) +{ + u32 n_aligned_h =3D ALIGN(frame_height, 16); + u32 n_aligned_w =3D ALIGN(frame_width, 16); + + return size_h264d_hw_bin_buffer_ar50lt(n_aligned_w, n_aligned_h, num_vpp_= pipes); +} + static u32 size_av1d_hw_bin_buffer(u32 frame_width, u32 frame_height, u32 = num_vpp_pipes) { u32 size_yuv, size_bin_hdr, size_bin_res; @@ -103,6 +129,21 @@ static u32 hfi_buffer_bin_vp9d(u32 frame_width, u32 fr= ame_height, u32 num_vpp_pi return _size * num_vpp_pipes; } =20 +static u32 hfi_buffer_bin_vp9d_ar50lt(u32 frame_width, u32 frame_height, u= 32 num_vpp_pipes) +{ + u32 size_yuv, size; + + size_yuv =3D ALIGN(frame_width, 16) * ALIGN(frame_height, 16) * 3 / 2; + size_yuv =3D ALIGN(size_yuv, DMA_ALIGNMENT); + + size =3D ALIGN(((((MAX(size_yuv, VPX_DECODER_FRAME_BIN_BUFFER_SIZE)) * 6)= / 5) / + num_vpp_pipes), DMA_ALIGNMENT) + + ALIGN((((MAX(size_yuv, VPX_DECODER_FRAME_BIN_BUFFER_SIZE)) * 4) / num_vp= p_pipes), + DMA_ALIGNMENT); + + return size * num_vpp_pipes; +} + static u32 hfi_buffer_bin_h265d(u32 frame_width, u32 frame_height, u32 num= _vpp_pipes) { u32 n_aligned_w =3D ALIGN(frame_width, 16); @@ -111,6 +152,32 @@ static u32 hfi_buffer_bin_h265d(u32 frame_width, u32 f= rame_height, u32 num_vpp_p return size_h265d_hw_bin_buffer(n_aligned_w, n_aligned_h, num_vpp_pipes); } =20 +static u32 size_h265d_hw_bin_buffer_ar50lt(u32 frame_width, u32 frame_heig= ht, u32 num_vpp_pipes) +{ + u32 size_yuv, size_bin_hdr, size_bin_res; + + size_yuv =3D ((frame_width * frame_height * 3) >> 1); + if (size_yuv <=3D ((BIN_BUFFER_THRESHOLD * 3) >> 1)) { + size_bin_hdr =3D size_yuv * H265_CABAC_HDR_RATIO_SM_TOT; + size_bin_res =3D size_yuv * H265_CABAC_RES_RATIO_SM_TOT; + } else { + size_bin_hdr =3D (size_yuv * 41) / 50; + size_bin_res =3D (size_yuv * 59) / 50; + } + size_bin_hdr =3D ALIGN(size_bin_hdr, DMA_ALIGNMENT); + size_bin_res =3D ALIGN(size_bin_res, DMA_ALIGNMENT); + + return size_bin_hdr + size_bin_res; +} + +static u32 hfi_buffer_bin_h265d_ar50lt(u32 frame_width, u32 frame_height, = u32 num_vpp_pipes) +{ + u32 n_aligned_w =3D ALIGN(frame_width, 16); + u32 n_aligned_h =3D ALIGN(frame_height, 16); + + return size_h265d_hw_bin_buffer_ar50lt(n_aligned_w, n_aligned_h, num_vpp_= pipes); +} + static u32 hfi_buffer_comv_h264d(u32 frame_width, u32 frame_height, u32 _c= omv_bufcount) { u32 frame_height_in_mbs =3D DIV_ROUND_UP(frame_height, 16); @@ -174,6 +241,14 @@ static u32 size_h264d_bse_cmd_buf(u32 frame_height) SIZE_H264D_BSE_CMD_PER_BUF; } =20 +static u32 size_h264d_bse_cmd_buf_ar50lt(u32 frame_height) +{ + u32 height =3D ALIGN(frame_height, 32); + + return min_t(u32, (DIV_ROUND_UP(height, 16) * 12), H264D_MAX_SLICE) * + SIZE_H264D_BSE_CMD_PER_BUF; +} + static u32 size_h265d_bse_cmd_buf(u32 frame_width, u32 frame_height) { u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * @@ -185,6 +260,18 @@ static u32 size_h265d_bse_cmd_buf(u32 frame_width, u32= frame_height) return _size; } =20 +static u32 size_h265d_bse_cmd_buf_ar50lt(u32 frame_width, u32 frame_height) +{ + u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * + (ALIGN(frame_height, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS)) * + NUM_HW_PIC_BUF, DMA_ALIGNMENT); + + _size =3D min_t(u32, _size, H265D_MAX_SLICE_AR50LT + 1); + _size =3D 2 * _size * SIZE_H265D_BSE_CMD_PER_BUF; + + return _size; +} + static u32 hfi_buffer_persist_h265d(u32 rpu_enabled) { return ALIGN((SIZE_SLIST_BUF_H265 * NUM_SLIST_BUF_H265 + @@ -195,6 +282,13 @@ static u32 hfi_buffer_persist_h265d(u32 rpu_enabled) DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_persist_h265d_ar50lt(void) +{ + return ALIGN((SIZE_SLIST_BUF_H265 * NUM_SLIST_BUF_H265 + + H265_NUM_TILE * sizeof(u32) + NUM_HW_PIC_BUF * SIZE_SEI_USERDATA), + DMA_ALIGNMENT); +} + static inline u32 hfi_iris3_vp9d_comv_size(void) { @@ -212,6 +306,13 @@ static u32 hfi_buffer_persist_vp9d(void) HDR10_HIST_EXTRADATA_SIZE; } =20 +static u32 hfi_buffer_persist_vp9d_ar50lt(void) +{ + return ALIGN(VP9_NUM_PROBABILITY_TABLE_BUF * VP9_PROB_TABLE_SIZE, DMA_ALI= GNMENT) + + ALIGN(hfi_iris3_vp9d_comv_size(), DMA_ALIGNMENT) + + ALIGN(MAX_SUPERFRAME_HEADER_LEN, DMA_ALIGNMENT); +} + static u32 size_h264d_vpp_cmd_buf(u32 frame_height) { u32 size, height =3D ALIGN(frame_height, 32); @@ -222,6 +323,16 @@ static u32 size_h264d_vpp_cmd_buf(u32 frame_height) return size > VPP_CMD_MAX_SIZE ? VPP_CMD_MAX_SIZE : size; } =20 +static u32 size_h264d_vpp_cmd_buf_ar50lt(u32 frame_height) +{ + u32 size, height =3D ALIGN(frame_height, 32); + + size =3D min_t(u32, (DIV_ROUND_UP(height, 16) * 12), H264D_MAX_SLICE) * + SIZE_H264D_VPP_CMD_PER_BUF; + + return size > VPP_CMD_MAX_SIZE ? VPP_CMD_MAX_SIZE : size; +} + static u32 hfi_buffer_persist_h264d(void) { return ALIGN(SIZE_SLIST_BUF_H264 * NUM_SLIST_BUF_H264 + @@ -230,6 +341,11 @@ static u32 hfi_buffer_persist_h264d(void) DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_persist_h264d_ar50lt(void) +{ + return ALIGN((SIZE_SLIST_BUF_H264 * NUM_SLIST_BUF_H264), DMA_ALIGNMENT); +} + static u32 hfi_buffer_persist_av1d(u32 max_width, u32 max_height, u32 tota= l_ref_count) { u32 comv_size, size; @@ -255,6 +371,17 @@ static u32 hfi_buffer_non_comv_h264d(u32 frame_width, = u32 frame_height, u32 num_ return ALIGN(size, DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_non_comv_h264d_ar50lt(u32 frame_width, u32 frame_hei= ght, u32 num_vpp_pipes) +{ + u32 size_bse =3D size_h264d_bse_cmd_buf_ar50lt(frame_height); + u32 size_vpp =3D size_h264d_vpp_cmd_buf_ar50lt(frame_height); + u32 size =3D ALIGN(size_bse, DMA_ALIGNMENT) + + ALIGN(size_vpp, DMA_ALIGNMENT) + + ALIGN(SIZE_HW_PIC(SIZE_H264D_HW_PIC_T), DMA_ALIGNMENT); + + return ALIGN(size, DMA_ALIGNMENT); +} + static u32 size_h265d_vpp_cmd_buf(u32 frame_width, u32 frame_height) { u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * @@ -269,6 +396,20 @@ static u32 size_h265d_vpp_cmd_buf(u32 frame_width, u32= frame_height) return _size; } =20 +static u32 size_h265d_vpp_cmd_buf_ar50lt(u32 frame_width, u32 frame_height) +{ + u32 _size =3D ALIGN(((ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZ= E_PELS) * + (ALIGN(frame_height, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS)) * + NUM_HW_PIC_BUF, DMA_ALIGNMENT); + _size =3D min_t(u32, _size, H265D_MAX_SLICE_AR50LT + 1); + _size =3D ALIGN(_size, 4); + _size =3D 2 * _size * SIZE_H265D_VPP_CMD_PER_BUF_AR50LT; + if (_size > VPP_CMD_MAX_SIZE) + _size =3D VPP_CMD_MAX_SIZE; + + return _size; +} + static u32 hfi_buffer_non_comv_h265d(u32 frame_width, u32 frame_height, u3= 2 num_vpp_pipes) { u32 _size_bse =3D size_h265d_bse_cmd_buf(frame_width, frame_height); @@ -285,6 +426,20 @@ static u32 hfi_buffer_non_comv_h265d(u32 frame_width, = u32 frame_height, u32 num_ return ALIGN(_size, DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_non_comv_h265d_ar50lt(u32 frame_width, u32 frame_hei= ght, u32 num_vpp_pipes) +{ + u32 _size_bse =3D size_h265d_bse_cmd_buf_ar50lt(frame_width, frame_height= ); + u32 _size_vpp =3D size_h265d_vpp_cmd_buf_ar50lt(frame_width, frame_height= ); + u32 _size =3D ALIGN(_size_bse, DMA_ALIGNMENT) + + ALIGN(_size_vpp, DMA_ALIGNMENT) + + ALIGN(2 * sizeof(u16) * + (ALIGN(frame_width, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS) * + (ALIGN(frame_height, LCU_MAX_SIZE_PELS) / LCU_MIN_SIZE_PELS), DMA_ALIGNM= ENT) + + ALIGN(SIZE_HW_PIC(SIZE_H265D_HW_PIC_T), DMA_ALIGNMENT); + + return ALIGN(_size, DMA_ALIGNMENT); +} + static u32 size_vpss_lb(u32 frame_width, u32 frame_height) { u32 opb_lb_wr_llb_y_buffer_size, opb_lb_wr_llb_uv_buffer_size; @@ -317,6 +472,13 @@ u32 size_h265d_lb_fe_top_data(u32 frame_width, u32 fra= me_height) (ALIGN(frame_width, 64) + 8) * 2; } =20 +static inline +u32 size_h265d_lb_fe_top_data_ar50lt(u32 frame_width, u32 frame_height) +{ + return ALIGN(MAX_FE_NBR_DATA_LUMA_LINE_BUFFER_SIZE * + (ALIGN(frame_width, 64) + 8), DMA_ALIGNMENT) * 2; +} + static inline u32 size_h265d_lb_fe_top_ctrl(u32 frame_width, u32 frame_height) { @@ -348,6 +510,17 @@ u32 size_h265d_lb_se_left_ctrl(u32 frame_width, u32 fr= ame_height) MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE)); } =20 +static inline +u32 size_h265d_lb_se_left_ctrl_ar50lt(u32 frame_width, u32 frame_height) +{ + return max_t(u32, ((frame_height + 16 - 1) / 8) * + MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE_AR50LT, + max_t(u32, ((frame_height + 32 - 1) / 8) * + MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE_AR50LT, + ((frame_height + 64 - 1) / 8) * + MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT)); +} + static inline u32 size_h265d_lb_pe_top_data(u32 frame_width, u32 frame_height) { @@ -355,6 +528,13 @@ u32 size_h265d_lb_pe_top_data(u32 frame_width, u32 fra= me_height) (ALIGN(frame_width, LCU_MIN_SIZE_PELS) / LCU_MIN_SIZE_PELS); } =20 +static inline +u32 size_h265d_lb_pe_top_data_ar50lt(u32 frame_width, u32 frame_height) +{ + return MAX_PE_NBR_DATA_LCU64_LINE_BUFFER_SIZE_AR50LT * + (ALIGN(frame_width, LCU_MIN_SIZE_PELS) / LCU_MIN_SIZE_PELS); +} + static inline u32 size_h265d_lb_vsp_top(u32 frame_width, u32 frame_height) { @@ -404,6 +584,29 @@ u32 hfi_buffer_line_h265d(u32 frame_width, u32 frame_h= eight, bool is_opb, u32 nu return ALIGN((_size + vpss_lb_size), DMA_ALIGNMENT); } =20 +static inline +u32 hfi_buffer_line_h265d_ar50lt(u32 frame_width, u32 frame_height, bool i= s_opb, u32 num_vpp_pipes) +{ + u32 size; + + size =3D ALIGN(size_h265d_lb_fe_top_data_ar50lt(frame_width, frame_height= ), DMA_ALIGNMENT) + + ALIGN(size_h265d_lb_fe_top_ctrl(frame_width, frame_height), DMA_ALIGNMEN= T) + + ALIGN(size_h265d_lb_fe_left_ctrl(frame_width, frame_height), + DMA_ALIGNMENT) * num_vpp_pipes + + ALIGN(size_h265d_lb_se_left_ctrl_ar50lt(frame_width, frame_height), + DMA_ALIGNMENT) * num_vpp_pipes + + ALIGN(size_h265d_lb_se_top_ctrl(frame_width, frame_height), DMA_ALIGNMEN= T) + + ALIGN(size_h265d_lb_pe_top_data_ar50lt(frame_width, frame_height), DMA_A= LIGNMENT) + + ALIGN(size_h265d_lb_vsp_top(frame_width, frame_height), DMA_ALIGNMENT) + + ALIGN(size_h265d_lb_vsp_left(frame_width, frame_height), + DMA_ALIGNMENT) * num_vpp_pipes + + ALIGN(size_h265d_lb_recon_dma_metadata_wr(frame_width, frame_height), + DMA_ALIGNMENT) * 4 + + ALIGN(size_h265d_qp(frame_width, frame_height), DMA_ALIGNMENT); + + return ALIGN(size, DMA_ALIGNMENT); +} + static inline u32 size_vpxd_lb_fe_left_ctrl(u32 frame_width, u32 frame_height) { @@ -438,6 +641,17 @@ u32 size_vpxd_lb_se_left_ctrl(u32 frame_width, u32 fra= me_height) MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE)); } =20 +static inline +u32 size_vpxd_lb_se_left_ctrl_ar50lt(u32 frame_width, u32 frame_height) +{ + return max_t(u32, ((frame_height + 15) >> 4) * + MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE_AR50LT, + max_t(u32, ((frame_height + 31) >> 5) * + MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE_AR50LT, + ((frame_height + 63) >> 6) * + MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE_AR50LT)); +} + static inline u32 size_vpxd_lb_recon_dma_metadata_wr(u32 frame_width, u32 frame_height) { @@ -492,6 +706,19 @@ u32 hfi_iris3_vp9d_lb_size(u32 frame_width, u32 frame_= height, u32 num_vpp_pipes) ALIGN(size_vp9d_qp(frame_width, frame_height), DMA_ALIGNMENT); } =20 +static inline +u32 hfi_ar50lt_vp9d_lb_size(u32 frame_width, u32 frame_height, u32 num_vpp= _pipes) +{ + return ALIGN(size_vpxd_lb_fe_left_ctrl(frame_width, frame_height), DMA_AL= IGNMENT) * + num_vpp_pipes + + ALIGN(size_vpxd_lb_se_left_ctrl_ar50lt(frame_width, frame_height), DMA_A= LIGNMENT) * + num_vpp_pipes + + ALIGN(size_vp9d_lb_vsp_top(frame_width, frame_height), DMA_ALIGNMENT) + + ALIGN(size_vpxd_lb_se_top_ctrl(frame_width, frame_height), DMA_ALIGNMENT= ) + + ALIGN(size_vp9d_lb_pe_top_data(frame_width, frame_height), DMA_ALIGNMENT= ) + + ALIGN(size_vp9d_lb_fe_top_data(frame_width, frame_height), DMA_ALIGNMENT= ); +} + static inline u32 hfi_buffer_line_vp9d(u32 frame_width, u32 frame_height, u32 _yuv_bufco= unt_min, bool is_opb, u32 num_vpp_pipes) @@ -507,6 +734,13 @@ u32 hfi_buffer_line_vp9d(u32 frame_width, u32 frame_he= ight, u32 _yuv_bufcount_mi return _lb_size + vpss_lb_size + 4096; } =20 +static inline +u32 hfi_buffer_line_vp9d_ar50lt(u32 frame_width, u32 frame_height, u32 _yu= v_bufcount_min, + bool is_opb, u32 num_vpp_pipes) +{ + return hfi_ar50lt_vp9d_lb_size(frame_width, frame_height, num_vpp_pipes); +} + static u32 hfi_buffer_line_h264d(u32 frame_width, u32 frame_height, bool is_opb, u32 num_vpp_pipes) { @@ -529,6 +763,25 @@ static u32 hfi_buffer_line_h264d(u32 frame_width, u32 = frame_height, return ALIGN((size + vpss_lb_size), DMA_ALIGNMENT); } =20 +static u32 hfi_buffer_line_h264d_ar50lt(u32 frame_width, u32 frame_height, + bool is_opb, u32 num_vpp_pipes) +{ + u32 size; + + size =3D ALIGN(size_h264d_lb_fe_top_data_ar50lt(frame_width), DMA_ALIGNME= NT) + + ALIGN(size_h264d_lb_fe_top_ctrl_ar50lt(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_fe_left_ctrl(frame_height), DMA_ALIGNMENT) * num_vpp= _pipes + + ALIGN(size_h264d_lb_se_top_ctrl_ar50lt(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_se_left_ctrl_ar50lt(frame_height), DMA_ALIGNMENT) * + num_vpp_pipes + + ALIGN(size_h264d_lb_pe_top_data_ar50lt(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_vsp_top(frame_width), DMA_ALIGNMENT) + + ALIGN(size_h264d_lb_recon_dma_metadata_wr(frame_height), DMA_ALIGNMENT) = * 2 + + ALIGN(size_h264d_qp(frame_width, frame_height), DMA_ALIGNMENT); + + return ALIGN(size, DMA_ALIGNMENT); +} + static u32 size_av1d_lb_opb_wr1_nv12_ubwc(u32 frame_width, u32 frame_heigh= t) { u32 size, y_width, y_width_a =3D 128; @@ -724,6 +977,23 @@ static u32 iris_vpu_dec_bin_size(struct iris_inst *ins= t) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_bin_size(struct iris_inst *inst) +{ + u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; + struct v4l2_format *f =3D inst->fmt_src; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_bin_h264d_ar50lt(width, height, num_vpp_pipes); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_bin_h265d_ar50lt(width, height, num_vpp_pipes); + else if (inst->codec =3D=3D V4L2_PIX_FMT_VP9) + return hfi_buffer_bin_vp9d_ar50lt(width, height, num_vpp_pipes); + + return 0; +} + static u32 iris_vpu_dec_comv_size(struct iris_inst *inst) { u32 num_comv =3D VIDEO_MAX_FRAME; @@ -767,6 +1037,18 @@ static u32 iris_vpu_dec_persist_size(struct iris_inst= *inst) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_persist_size(struct iris_inst *inst) +{ + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_persist_h264d_ar50lt(); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_persist_h265d_ar50lt(); + else if (inst->codec =3D=3D V4L2_PIX_FMT_VP9) + return hfi_buffer_persist_vp9d_ar50lt(); + + return 0; +} + static u32 iris_vpu_dec_dpb_size(struct iris_inst *inst) { if (iris_split_mode_enabled(inst)) @@ -790,6 +1072,21 @@ static u32 iris_vpu_dec_non_comv_size(struct iris_ins= t *inst) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_non_comv_size(struct iris_inst *inst) +{ + u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; + struct v4l2_format *f =3D inst->fmt_src; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_non_comv_h264d_ar50lt(width, height, num_vpp_pipes); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_non_comv_h265d_ar50lt(width, height, num_vpp_pipes); + + return 0; +} + static u32 iris_vpu_dec_line_size(struct iris_inst *inst) { u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; @@ -815,6 +1112,29 @@ static u32 iris_vpu_dec_line_size(struct iris_inst *i= nst) return 0; } =20 +static u32 iris_vpu_ar50lt_dec_line_size(struct iris_inst *inst) +{ + u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; + struct v4l2_format *f =3D inst->fmt_src; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + bool is_opb =3D false; + u32 out_min_count =3D inst->buffers[BUF_OUTPUT].min_count; + + if (iris_split_mode_enabled(inst)) + is_opb =3D true; + + if (inst->codec =3D=3D V4L2_PIX_FMT_H264) + return hfi_buffer_line_h264d_ar50lt(width, height, is_opb, num_vpp_pipes= ); + else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) + return hfi_buffer_line_h265d_ar50lt(width, height, is_opb, num_vpp_pipes= ); + else if (inst->codec =3D=3D V4L2_PIX_FMT_VP9) + return hfi_buffer_line_vp9d_ar50lt(width, height, out_min_count, is_opb, + num_vpp_pipes); + + return 0; +} + static u32 iris_vpu_dec_scratch1_size(struct iris_inst *inst) { return iris_vpu_dec_comv_size(inst) + @@ -822,6 +1142,13 @@ static u32 iris_vpu_dec_scratch1_size(struct iris_ins= t *inst) iris_vpu_dec_line_size(inst); } =20 +static u32 iris_vpu_ar50lt_dec_scratch1_size(struct iris_inst *inst) +{ + return iris_vpu_dec_comv_size(inst) + + iris_vpu_ar50lt_dec_non_comv_size(inst) + + iris_vpu_ar50lt_dec_line_size(inst); +} + static inline u32 iris_vpu_enc_get_bitstream_width(struct iris_inst *inst) { if (is_rotation_90_or_270(inst)) @@ -1410,6 +1737,15 @@ u32 hfi_buffer_dpb_enc(u32 frame_width, u32 frame_he= ight, bool is_ten_bit) return size; } =20 +static inline +u32 hfi_buffer_dpb_enc_ar50lt(u32 frame_width, u32 frame_height, bool is_t= en_bit) +{ + if (!is_ten_bit) + return size_enc_ref_buffer(frame_width, frame_height); + else + return size_enc_ten_bit_ref_buffer(frame_width, frame_height); +} + static u32 iris_vpu_enc_arp_size(struct iris_inst *inst) { return HFI_BUFFER_ARP_ENC; @@ -1434,6 +1770,16 @@ u32 hfi_buffer_vpss_enc(u32 dswidth, u32 dsheight, b= ool ds_enable, return 0; } =20 +static inline +u32 hfi_buffer_vpss_enc_ar50lt(u32 dswidth, u32 dsheight, bool ds_enable, + u32 blur, bool is_ten_bit) +{ + if (ds_enable || blur) + return hfi_buffer_dpb_enc_ar50lt(dswidth, dsheight, is_ten_bit); + + return 0; +} + static inline u32 hfi_buffer_scratch1_enc(u32 frame_width, u32 frame_heigh= t, u32 lcu_size, u32 num_ref, bool ten_bit, u32 num_vpp_pipes, @@ -1693,6 +2039,16 @@ static u32 iris_vpu_enc_vpss_size(struct iris_inst *= inst) return hfi_buffer_vpss_enc(width, height, ds_enable, 0, 0); } =20 +static u32 iris_vpu_ar50lt_enc_vpss_size(struct iris_inst *inst) +{ + u32 ds_enable =3D is_scaling_enabled(inst); + struct v4l2_format *f =3D inst->fmt_dst; + u32 height =3D f->fmt.pix_mp.height; + u32 width =3D f->fmt.pix_mp.width; + + return hfi_buffer_vpss_enc_ar50lt(width, height, ds_enable, 0, 0); +} + static inline u32 size_dpb_opb(u32 height, u32 lcu_size) { u32 max_tile_height =3D ((height + lcu_size - 1) / lcu_size) * lcu_size += 8; @@ -2148,6 +2504,51 @@ u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *= inst, enum iris_buffer_type return inst->buffers[buffer_type].size; } =20 +u32 iris_vpu_ar50lt_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 Sat Jun 13 14:01: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 10348345CAA for ; Thu, 7 May 2026 06:42:41 +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=1778136165; cv=none; b=rpb237Ve/it/tD8v2BI22XT0zWrkxGt9Q0/8wraCylsJLfT2IoWE5Rut/GlubOJTzmwAXMVncsmEsyTlWtukYK37MJ3Zgdo0P+gYOIhsR2yzITbBZFnwR3+F7t3lNrIqP2QmdoKQQXFEzheE+fx8Xzum6JOnnc/FLrIlI+84Akk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136165; c=relaxed/simple; bh=taNpXBTeuZ7DuXEhpL4nlAeMBepMp8PLLwW7Xig4jZg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=a2iKg4kUWrOeo/xI1CU9x/GMwZVoz6LQxQRQtfonDj+DbBiW19BwcWxbX9UbqraWBCbnDc735PBM+p5y7ocYpUoWGNtdTLwS0BSbEdIDJ4wcMaOnbkrpe4fsL1DGayMlLHqjoAlUhlrQPg9/SrP9SXa4tkUpNHHtbIXQmfAqH4M= 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=THXtDnKg; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=i2nWLFkd; 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="THXtDnKg"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="i2nWLFkd" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6475MIm53157321 for ; Thu, 7 May 2026 06:42:41 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= uMwTDgPiqtBZ5iOO+hgOHOg6+8/u30ea1aovrL93vMk=; b=THXtDnKgDnLJVwNh ez6TT0XPpOI6+rcdpj3L9Wsqw1zG92pQeh29TE7W9eIXxlD7IARwkU4mk2DiEX7R kORwvT1VVW0VRLX9T0DM73cml6jWqwJUl2TlKfX1V7QKcg7vV6bewLFjoqQRLe3e cDXxBHQcR0Eoj8nRyxmD7cajTpEFv64VtS6CcgwsdNKyAnjbK6d8OtCESfaUHg3s Atylnx+iiWJkCS9cnVIP+XL3+RQsx7EeTeiTPbW44JG6QZ0FC6ZGsA0RurWzxLMC z3XijKF3s9PqcwOk7mbZPVc13Mo21bLoFTKeigqT2wIYN6OHNvlBzo7lTGNvhDl/ h0jzAw== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0mhf08qj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:40 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50eb8bad331so14794901cf.0 for ; Wed, 06 May 2026 23:42:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136159; x=1778740959; 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=uMwTDgPiqtBZ5iOO+hgOHOg6+8/u30ea1aovrL93vMk=; b=i2nWLFkdj7aPpiKMto6h82yXCuxUepzcFNtS+b3jOWinO8s9Zkgre2dLJJRvYtLuXv Oju5bxX8gbv4zwloCgWhrD0c4F6C8fEmQURQdhqidpt1vbd5cNpZNXaOjm8GzC6A2gN8 0zE81GUmQmYJloGONywiChP4DTQSVPAmWIWv0MHV2fF1xc2TgaLSzp4346trFFyuF6zM 1V9a8K4jDlEmyVJPSy5CJSN8mulmPlP3/XX034dg6d5AzIKNukEkW+tVHVJydpuiqfAF i6btlpsueceulXK4Q/GmExJ6wAGIKgiMWsymMpHW+4QDXo/i9TJZmO+GN4E8ty0OKz0l YMsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136159; x=1778740959; 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=uMwTDgPiqtBZ5iOO+hgOHOg6+8/u30ea1aovrL93vMk=; b=RKOHscB0r6BekwY8XoTluTOskBtoz8LIeSWT51c3uLXjvWMdnFo5h04ceKQfluNE1N EbDK9iTTRpprJhQJxXGuuhSqjb9hjOBhaj/skytIfLbhU8sAWgpXTBBDXIVRRd8oNylg PjlOWjYmKWkke3qU22dpVbFEKIzFec+n1N9iInC6MnAdo1tlk5gP236AHKdj5NvUNZmN XkfJAEUuF2ronayEftmd0lYeW638eMh0a9B6cv2c77kI7/rHIM1sGdPlxI6u4yTFMO0i p7hnOXZW5/YmJ5GE2Ocno7IGfyX+vWHzeFyJnl462qzrqyBi2HJllgucy27AU2TOYcL4 ZpQA== X-Forwarded-Encrypted: i=1; AFNElJ8TU2bzpQvYDrhPpL0R2q3+Y+hoKfD2FVWO3nkpMBAIJ2I/ESf3Jmon1rCTjZMLyK21JDI5jmWgMSASGTs=@vger.kernel.org X-Gm-Message-State: AOJu0YwtoyjJ9Hr2HAENHPwwGWYQ7rpH95o8miSByoqs5Y9WV4tnzU/e UAfjOvzaCeVY8BwHnsIPewPpus07rHqG2VEYkkzd2LWCtcXY0llfyASVsW9J3IuTS4KbGYuHF5w rrfrWEbOlS9pNW3FS8MQ8lLpmSiBJ0XXWRP5lnmLqIaza2AbdV2XH9Y+lhfjdbUnKeFAU9VapYs 0= X-Gm-Gg: AeBDievO5MECfcOcpQpRo7aopemBbRxFvh81zp4ZgUixoyl3BnCulyCHacLh5KRw4li 61JrjrOERONEfy/e4pulEGx0J+QIqk3HLx6QiB6IpH039LX3ttjWVGb8q0Ob7MIpUOTmauvn2qL LnBIL3z82TQCHcdG10f9Qh/zeaQ+WRlFw0mArz4I7vHEcGpd5f+z4HUbTQl8/nzU3XcpSWCU70T dcJb4ts2xq26n02B5e0XuY4NVWksCQP15AgDhBp1/OoJddatHuQl+3IaeB0h2KFnpbRxIEQ1y9x 82JE8XLB5YdPnQEYhRXCTCsjRRiChsMNInJDqAVcvnBFvLWzIo5NFjje5xzGRFqeV825Vuj6+br +T0ww0gc+RqFArd9CCrhwS5wr/jUqt5XUQqFQ6OkS42SUjDOM9Bd0XLnM2+ANLXW/mrvYncMFjr xoEtUATNc8hwiGWpz1E4dX5NQ8ewxX3JuxPXbjnLDot43YQg== X-Received: by 2002:a05:622a:647:b0:50d:71aa:6b67 with SMTP id d75a77b69052e-514621d15e1mr92144401cf.53.1778136159389; Wed, 06 May 2026 23:42:39 -0700 (PDT) X-Received: by 2002:a05:622a:647:b0:50d:71aa:6b67 with SMTP id d75a77b69052e-514621d15e1mr92144111cf.53.1778136158834; Wed, 06 May 2026 23:42: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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:38 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:14 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-14-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=23308; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=UwP47CWvqNL5KKUU1zG3o91sGZOVaie0YljVRa4B08w=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ/uwKsV9OtJJmp7RXUrSkqBKgUwx3N/9zY5 d+OCtu/nI2JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PwAKCRCLPIo+Aiko 1dg8CACiPaBXGWD/AAqBPhszyec/sGWgTQ64bhbE7lTmYlup6LQ9pMv7/f7RkVFxaYq/mgYaZYf JhMUYhEZed00KPWiGbDspy1xIh2fUNVlGH+1im04zBhnLAZKMtNjXw4wkJMjNGmfarP/vV+bRY7 ewq8weu9LrHOMg4A6EgflHUp/xtdRgjoT12pxj8BTf1aaNeuW3Cnt4gxkrbg2YHX3xRXlQ8LW19 SeasR+7ITbgzl1qZR7Maw4humwMj0YRlavssHQ4MXH1BDisDVIjP5fbR3qebFVZBgB26co0/OsA COEGHavxOtj6Er4DEFDeFVilt6bX6AvnBP8zTia1BxsRQYN8 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX3iWWusLezIVe opec1MowS4v8/ws+dQnHHNm2f9DZXsR1270ESJaG3ql7DiSQUbdR9nVPR70ZydansZPahp6w9BR p4b6v0gFcGSk27FqDEaxmEWlt0Go7gNfiErTtAAIWJYrv66TUPl/7nhsKpCnjq1/dQ910ivuc7U qiZI9Kwpn60WnX5A166PUGbfp4oU0kiYBHepkpRN8ei/EGbNEroNWMp/m/3ZJZHiRRV4SqR2YXo vFF8VIk8uqK46dXusPRgfeyWS+rCc6rBYkrekNz/krQBjAd3yygkSeuu4MTcIGmhxRoeLQl2eON ennNCZR7VcKArZFw1mFUSbz6KvNCgIFbLKkIC6dLSSY0E0Swh9S+qbHdV/wGBpc6dx9Bj1Vw1Am RlUCTjhS3SzMVX8Ouzkz/mPSN6g1rShx0VpKijst/8CaT7Vw103CurcMIQTdcTkyPnKckqOPby/ Y6ug0EuAWAbpa+Ew9tg== X-Proofpoint-ORIG-GUID: 4ehxuoWBbB0w41g6XlK_Vj8f3zWNQ526 X-Authority-Analysis: v=2.4 cv=SuagLvO0 c=1 sm=1 tr=0 ts=69fc3461 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=nY4t4xlDbaqZbh1SrioA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: 4ehxuoWBbB0w41g6XlK_Vj8f3zWNQ526 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 adultscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 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 +- drivers/media/platform/qcom/iris/iris_vpu_buffer.c | 2 +- 4 files changed, 624 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c b/drivers/med= ia/platform/qcom/iris/iris_hfi_gen2.c index ce8490d64854..61061d17afe5 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2.c @@ -894,3 +894,616 @@ const struct iris_firmware_data iris_hfi_gen2_data = =3D { .enc_op_int_buf_tbl =3D sm8550_enc_op_int_buf_tbl, .enc_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_enc_op_int_buf_tbl), }; + +static const struct platform_inst_fw_cap inst_fw_cap_gen2_ar50lt_dec[] =3D= { + { + .cap_id =3D PROFILE_H264, + .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH), + .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D PROFILE_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE), + .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D PROFILE_VP9, + .min =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, + .max =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_VP9_PROFILE_0), + .value =3D V4L2_MPEG_VIDEO_VP9_PROFILE_0, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D LEVEL_H264, + .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2), + .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D LEVEL_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D LEVEL_VP9, + .min =3D V4L2_MPEG_VIDEO_VP9_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_VP9_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_VP9_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_VP9_LEVEL_4_1, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D TIER, + .min =3D V4L2_MPEG_VIDEO_HEVC_TIER_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_TIER_HIGH), + .value =3D V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, + .hfi_id =3D HFI_PROP_TIER, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_u32_enum, + }, + { + .cap_id =3D INPUT_BUF_HOST_MAX_COUNT, + .min =3D DEFAULT_MAX_HOST_BUF_COUNT, + .max =3D DEFAULT_MAX_HOST_BURST_BUF_COUNT, + .step_or_mask =3D 1, + .value =3D DEFAULT_MAX_HOST_BUF_COUNT, + .hfi_id =3D HFI_PROP_BUFFER_HOST_MAX_COUNT, + .flags =3D CAP_FLAG_INPUT_PORT, + .set =3D iris_set_u32, + }, + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROP_STAGE, + .set =3D iris_set_stage, + }, + { + .cap_id =3D POC, + .min =3D 0, + .max =3D 2, + .step_or_mask =3D 1, + .value =3D 1, + .hfi_id =3D HFI_PROP_PIC_ORDER_CNT_TYPE, + }, + { + .cap_id =3D CODED_FRAMES, + .min =3D CODED_FRAMES_PROGRESSIVE, + .max =3D CODED_FRAMES_PROGRESSIVE, + .step_or_mask =3D 0, + .value =3D CODED_FRAMES_PROGRESSIVE, + .hfi_id =3D HFI_PROP_CODED_FRAMES, + }, + { + .cap_id =3D BIT_DEPTH, + .min =3D BIT_DEPTH_8, + .max =3D BIT_DEPTH_8, + .step_or_mask =3D 1, + .value =3D BIT_DEPTH_8, + .hfi_id =3D HFI_PROP_LUMA_CHROMA_BIT_DEPTH, + }, + { + .cap_id =3D RAP_FRAME, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 1, + .hfi_id =3D HFI_PROP_DEC_START_FROM_RAP_FRAME, + .flags =3D CAP_FLAG_INPUT_PORT, + .set =3D iris_set_u32, + }, +}; + +static const struct platform_inst_fw_cap inst_fw_cap_gen2_ar50lt_enc[] =3D= { + { + .cap_id =3D PROFILE_H264, + .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH), + .value =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile, + }, + { + .cap_id =3D PROFILE_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) | + BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE), + .value =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .hfi_id =3D HFI_PROP_PROFILE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile, + }, + { + .cap_id =3D LEVEL_H264, + .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) | + BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2), + .value =3D V4L2_MPEG_VIDEO_H264_LEVEL_4_2, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_level, + }, + { + .cap_id =3D LEVEL_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) | + BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1), + .value =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1, + .hfi_id =3D HFI_PROP_LEVEL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_level, + }, + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROP_STAGE, + .set =3D iris_set_stage, + }, + { + .cap_id =3D HEADER_MODE, + .min =3D V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, + .max =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) | + BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME), + .value =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .hfi_id =3D HFI_PROP_SEQ_HEADER_MODE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_header_mode_gen2, + }, + { + .cap_id =3D PREPEND_SPSPPS_TO_IDR, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 0, + }, + { + .cap_id =3D BITRATE, + .min =3D 1, + .max =3D BITRATE_MAX_AR50LT, + .step_or_mask =3D 1, + .value =3D BITRATE_DEFAULT_AR50LT, + .hfi_id =3D HFI_PROP_TOTAL_BITRATE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_bitrate, + }, + { + .cap_id =3D BITRATE_PEAK, + .min =3D 1, + .max =3D BITRATE_MAX_AR50LT, + .step_or_mask =3D 1, + .value =3D BITRATE_DEFAULT_AR50LT, + .hfi_id =3D HFI_PROP_TOTAL_PEAK_BITRATE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_peak_bitrate, + }, + { + .cap_id =3D BITRATE_MODE, + .min =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .max =3D V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) | + BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR), + .value =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .hfi_id =3D HFI_PROP_RATE_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_bitrate_mode_gen2, + }, + { + .cap_id =3D FRAME_SKIP_MODE, + .min =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .max =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) | + BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT) | + BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT), + .value =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + }, + { + .cap_id =3D FRAME_RC_ENABLE, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 1, + }, + { + .cap_id =3D GOP_SIZE, + .min =3D 0, + .max =3D INT_MAX, + .step_or_mask =3D 1, + .value =3D 2 * DEFAULT_FPS - 1, + .hfi_id =3D HFI_PROP_MAX_GOP_FRAMES, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_u32, + }, + { + .cap_id =3D ENTROPY_MODE, + .min =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .max =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) | + BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC), + .value =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, + .hfi_id =3D HFI_PROP_CABAC_SESSION, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_entropy_mode_gen2, + }, + { + .cap_id =3D MIN_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROP_MIN_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_min_qp, + }, + { + .cap_id =3D MIN_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + .hfi_id =3D HFI_PROP_MIN_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_min_qp, + }, + { + .cap_id =3D MAX_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + .hfi_id =3D HFI_PROP_MAX_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_max_qp, + }, + { + .cap_id =3D MAX_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + .hfi_id =3D HFI_PROP_MAX_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_max_qp, + }, + { + .cap_id =3D I_FRAME_MIN_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D I_FRAME_MIN_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D P_FRAME_MIN_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D P_FRAME_MIN_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D B_FRAME_MIN_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D B_FRAME_MIN_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT_AR50LT, + }, + { + .cap_id =3D I_FRAME_MAX_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D I_FRAME_MAX_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D P_FRAME_MAX_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D P_FRAME_MAX_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D B_FRAME_MAX_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D B_FRAME_MAX_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + }, + { + .cap_id =3D I_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D I_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D P_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D P_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D B_FRAME_QP_H264, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D B_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT_AR50LT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D DEFAULT_QP, + .hfi_id =3D HFI_PROP_QP_PACKED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_frame_qp, + }, + { + .cap_id =3D INPUT_BUF_HOST_MAX_COUNT, + .min =3D DEFAULT_MAX_HOST_BUF_COUNT, + .max =3D DEFAULT_MAX_HOST_BURST_BUF_COUNT, + .step_or_mask =3D 1, + .value =3D DEFAULT_MAX_HOST_BUF_COUNT, + .hfi_id =3D HFI_PROP_BUFFER_HOST_MAX_COUNT, + .flags =3D CAP_FLAG_INPUT_PORT, + .set =3D iris_set_u32, + }, + { + .cap_id =3D OUTPUT_BUF_HOST_MAX_COUNT, + .min =3D DEFAULT_MAX_HOST_BUF_COUNT, + .max =3D DEFAULT_MAX_HOST_BURST_BUF_COUNT, + .step_or_mask =3D 1, + .value =3D DEFAULT_MAX_HOST_BUF_COUNT, + .hfi_id =3D HFI_PROP_BUFFER_HOST_MAX_COUNT, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_u32, + }, + { + .cap_id =3D IR_TYPE, + .min =3D V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM, + .max =3D V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM, + .step_or_mask =3D BIT(V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RAND= OM), + .value =3D V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + }, + { + .cap_id =3D IR_PERIOD, + .min =3D 0, + .max =3D INT_MAX, + .step_or_mask =3D 1, + .value =3D 0, + .flags =3D CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_ir_period, + }, +}; + +static const u32 iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl[] =3D { + BUF_BIN, + BUF_COMV, + BUF_NON_COMV, + BUF_LINE, +}; + +const struct iris_firmware_data iris_hfi_gen2_ar50lt_data =3D { + .init_hfi_ops =3D iris_hfi_gen2_sys_ops_init, + + .core_arch =3D VIDEO_ARCH_LX, + + .inst_fw_caps_dec =3D inst_fw_cap_gen2_ar50lt_dec, + .inst_fw_caps_dec_size =3D ARRAY_SIZE(inst_fw_cap_gen2_ar50lt_dec), + .inst_fw_caps_enc =3D inst_fw_cap_gen2_ar50lt_enc, + .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_gen2_ar50lt_enc), + .dec_input_config_params_default =3D + sm8550_vdec_input_config_params_default, + .dec_input_config_params_default_size =3D + ARRAY_SIZE(sm8550_vdec_input_config_params_default), + .dec_input_config_params_hevc =3D + sm8550_vdec_input_config_param_hevc, + .dec_input_config_params_hevc_size =3D + ARRAY_SIZE(sm8550_vdec_input_config_param_hevc), + .dec_input_config_params_vp9 =3D + sm8550_vdec_input_config_param_vp9, + .dec_input_config_params_vp9_size =3D + ARRAY_SIZE(sm8550_vdec_input_config_param_vp9), + .dec_output_config_params =3D + sm8550_vdec_output_config_params, + .dec_output_config_params_size =3D + ARRAY_SIZE(sm8550_vdec_output_config_params), + .enc_input_config_params =3D + sm8550_venc_input_config_params, + .enc_input_config_params_size =3D + ARRAY_SIZE(sm8550_venc_input_config_params), + .enc_output_config_params =3D + sm8550_venc_output_config_params, + .enc_output_config_params_size =3D + ARRAY_SIZE(sm8550_venc_output_config_params), + .dec_input_prop =3D sm8550_vdec_subscribe_input_properties, + .dec_input_prop_size =3D ARRAY_SIZE(sm8550_vdec_subscribe_input_propertie= s), + .dec_output_prop_avc =3D sm8550_vdec_subscribe_output_properties_avc, + .dec_output_prop_avc_size =3D + ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_avc), + .dec_output_prop_hevc =3D sm8550_vdec_subscribe_output_properties_hevc, + .dec_output_prop_hevc_size =3D + ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_hevc), + .dec_output_prop_vp9 =3D sm8550_vdec_subscribe_output_properties_vp9, + .dec_output_prop_vp9_size =3D + ARRAY_SIZE(sm8550_vdec_subscribe_output_properties_vp9), + .dec_ip_int_buf_tbl =3D iris_hfi_gen2_ar50lt_dec_ip_int_buf_tbl, + .dec_ip_int_buf_tbl_size =3D ARRAY_SIZE(iris_hfi_gen2_ar50lt_dec_ip_int_b= uf_tbl), + .dec_op_int_buf_tbl =3D sm8550_dec_op_int_buf_tbl, + .dec_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_dec_op_int_buf_tbl), + .enc_ip_int_buf_tbl =3D sm8550_enc_ip_int_buf_tbl, + .enc_ip_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_enc_ip_int_buf_tbl), + .enc_op_int_buf_tbl =3D sm8550_enc_op_int_buf_tbl, + .enc_op_int_buf_tbl_size =3D ARRAY_SIZE(sm8550_enc_op_int_buf_tbl), +}; diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/driv= ers/media/platform/qcom/iris/iris_platform_common.h index f9763ea51c53..e0c18780c045 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_common.h +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h @@ -47,6 +47,7 @@ enum pipe_type { extern const struct iris_firmware_data iris_hfi_gen1_data; extern const struct iris_firmware_data iris_hfi_gen1_ar50lt_data; extern const struct iris_firmware_data iris_hfi_gen2_data; +extern const struct iris_firmware_data iris_hfi_gen2_ar50lt_data; =20 extern const struct iris_platform_data qcm2290_data; extern const struct iris_platform_data qcs8300_data; diff --git a/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c b/= drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c index 76bebe012bd8..d2ee3039e35a 100644 --- a/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c +++ b/drivers/media/platform/qcom/iris/iris_platform_vpu_ar50lt.c @@ -13,12 +13,18 @@ =20 #define WRAPPER_INTR_STATUS_A2HWD_BMSK 0x10 =20 -const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen1_s6_desc =3D { +const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen1_desc =3D { .firmware_data =3D &iris_hfi_gen1_ar50lt_data, .get_vpu_buffer_size =3D iris_vpu_ar50lt_gen1_buf_size, .fwname =3D "qcom/venus-6.0/venus.mbn", }; =20 +const struct iris_firmware_desc iris_vpu_ar50lt_p1_gen2_s6_desc =3D { + .firmware_data =3D &iris_hfi_gen2_ar50lt_data, + .get_vpu_buffer_size =3D iris_vpu_ar50lt_gen2_buf_size, + .fwname =3D "qcom/vpu/ar50lt_p1_gen2_s6.mbn", +}; + static const u32 iris_fmts_ar50lt_dec[] =3D { [IRIS_FMT_H264] =3D V4L2_PIX_FMT_H264, [IRIS_FMT_HEVC] =3D V4L2_PIX_FMT_HEVC, @@ -79,7 +85,8 @@ static struct platform_inst_caps platform_inst_cap_ar50lt= =3D { }; =20 const struct iris_platform_data qcm2290_data =3D { - .firmware_desc_gen1 =3D &iris_vpu_ar50lt_p1_gen1_s6_desc, + .firmware_desc_gen1 =3D &iris_vpu_ar50lt_p1_gen1_desc, + .firmware_desc_gen2 =3D &iris_vpu_ar50lt_p1_gen2_s6_desc, .vpu_ops =3D &iris_vpu_ar50lt_ops, .icc_tbl =3D iris_icc_info_ar50lt, .icc_tbl_size =3D ARRAY_SIZE(iris_icc_info_ar50lt), diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.c index a1af3bca5dc9..e75684d6d97d 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.c @@ -2504,7 +2504,7 @@ u32 iris_vpu_ar50lt_gen1_buf_size(struct iris_inst *i= nst, enum iris_buffer_type return inst->buffers[buffer_type].size; } =20 -u32 iris_vpu_ar50lt_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) { const struct iris_vpu_buf_type_handle *buf_type_handle_arr =3D NULL; u32 size =3D 0, buf_type_handle_size =3D 0, i; --=20 2.47.3 From nobody Sat Jun 13 14:01: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 F015934AB17 for ; Thu, 7 May 2026 06:42:42 +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=1778136167; cv=none; b=YLMJNv/5Qnu+tB+MhYQD6X8iE61cHSxUbZf5Yko2SHY9iQZwSrl1NwZGCKtP3N60tg3v0XlvYvpRASOWVD844m6stMCndPYxFwtz1/AvCWddjqTkXOtX/99V9RWoV1BkuyxvP8fw2i3PS2qQNAFC9nlAMs1J31bM5LPfpMsyBcY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136167; c=relaxed/simple; bh=7mrNTGNij/w8YmbLMmlhfVsKgE6akwwy6krrm30/cgQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PwBxGFpyHNj2dnBbefjOfRSAl3hr7nqucUlbepb1fqsiLU5zGOvwylz2uUxG7sXTbRLWRTy9hVeAVQvBU9/AOBsw5I/VNao2qQOzXNpf/C4FKn7oPP9D4sYzDdb4SEMhu8gP/O9IfTtTDHjVUb9EHpdXdNb0/78SESeg0Pv0b9w= 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=A3evxDYd; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=b1Yy4m8T; 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="A3evxDYd"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="b1Yy4m8T" 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 6472BuBr258772 for ; Thu, 7 May 2026 06:42:42 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= rZRJ/JIYWoECFHr41NRyA/8b0IVqNJMdaNWLv7doTIA=; b=A3evxDYdy8+kDptb 0UGC4OLpMKQA2H9Uq7Mi0vbVyCUHdHCLdBOS1j57itIN9DaLYXWcpRveI8IlWwMo qhXMj/1Bs51xT8fK6UDulgOeQGFd4ghhdzqS91WiptW1DPlo9uqYD1CInit8G+hy WCG1jwV5P+YyZ2/NVuT2DdvZyOkIAFPTDfcHdeZ/6UVXqfXzxmbEwwelXGJqMtSq zN0zqJMXVLa4eB165s2p97RGDmDOUqnSTfHRAEU4S+NFH+guptEvGFrXn+5o/zdm mbva6WuTkLu+ldvtvxSRUMo9nZi+5YLLsdhpyXtMCYnXF4gYdDVC8eG4DsBa/4MT SeoUqQ== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0hr8rsvu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:42 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50d9a6a853bso11407221cf.0 for ; Wed, 06 May 2026 23:42:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136161; x=1778740961; 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=rZRJ/JIYWoECFHr41NRyA/8b0IVqNJMdaNWLv7doTIA=; b=b1Yy4m8T0CR82CzimcddyercIjc8vONNopKGGxvIfJo5I/KAFmrrUJ7e7tVKtp8J1K yaSIRmqIfJe5OYcI4ErNhb6P2Gqc1BXk/rADpU8ldl3Ptk6RBPgKhpw+snij9fsqlTv/ yfQvI0Q466WrKcF9tQamUgLnQRL0zMUVllGZpSJwBP0lfXx9IhDwEBXti3DOQs6wddEv nn2FxGkyOMjohzQTLGb7UDwJCFOiSGRjL0IckynJN6Y7FSsOMcHu6Qz6X8d5KBjoD8QG mDcWUUCNCUp3yToyjGCAaY0jH95i/TgrvPjVRmMH2skzM8mTUHXdGYGXHiDVjVHPuNMm aZpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136161; x=1778740961; 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=rZRJ/JIYWoECFHr41NRyA/8b0IVqNJMdaNWLv7doTIA=; b=cnyYdyN7hk9y5HIUNNLjrIrcFWfqJhH04UFTSRKAOSfyQYZWRbm6gmh7oTO5DuZB7g G0u40zPqWkMFX+UY46c58u1Bl8x0tA7+DnSuuzhYM2RGEOiqrNjG8RDCnIiFBnXcvrNa gkveNxOdikVAzkZciwgrunaS0XClOjrUy8R2UMcSTcBGMoyMvVnjmg0ldBDH8LHLRrVw yu0++SKa46P8nltbOvE+PqHpkBxljgh+oJFDSB3Uv1ouSASBcQBKT6RcW+qv3C91XIvU h5gNcmI9XMZe9noGvHVp56FAQAMPpugWhZKPm445FF8UY3u/R45X3mny+fyof8LyN5eW PFTQ== X-Forwarded-Encrypted: i=1; AFNElJ/axJTjr05Cdd05i+bFYzbUy31SEjHb5Bbu/7NH3SRdW3gbaUJ1e/NrCG3j/ikNdTWD4WXt/UsGMs5n/Zk=@vger.kernel.org X-Gm-Message-State: AOJu0YxF7dnxOvannE3MwGLFU/wGZ9gcVpldrYLlpWr1L8v7g5ws9P8e bEKFS/e0cZJ5A4XBTK6rFaP89VM+/Gr1AZSyV8JmBxGsTlv1vBolj7jJc2FxGyKOxRTtGKXHFRU P5sc6coEKHK9opVFnZnZu/6YjiAm+NL7T7KdMLjFP7gcl5/41bgriMutJsgM2dcfr+ec= X-Gm-Gg: AeBDiet5fx9MTJGCz/da5FD2yI/JiuOn+f4JHBZiVO59Wjp4+YU5pCSpf1S93gJr7I8 4P+i/0bN3U54e8aTa+uxhjBPB4S7CL/43D2RKThi8E52/pYt6Wy7sE7AiH+id95/uwgt5TxR9k8 Hby9ODt5XyCtW+1n2718r5nO7cWuwRfBo1bGf1aqDj0Au5prCX4v8WseLECGwLtKK1v6ZluztWS wtds/1YM7OgDmET4SWIL1K7LduZC8d/743+3nLEyAbxNmORt0kHTqz+OGXb06cIztg5ZD46cxx6 aKM40u9PBvJKHP3MoP4+IWFtyRDh/Mk6rNezxze8gt1vmciGPBmZM7DCDy4zbmG7MpIzGKMCj3x JDbqlIxm7qxFGWZEmbkPV0nPOjvGgLf0SQoMcQy964ABVgTBwlNxlMobapQenWks7hfTj2UnyHU tw9I72xmUqEGZKhxKnOYAmGK7+8wqPRX9jOCS6P5Gx+XyzUALUiJBojH1M X-Received: by 2002:a05:622a:1145:b0:50f:bdeb:1e47 with SMTP id d75a77b69052e-51461fcec8cmr89440331cf.44.1778136161146; Wed, 06 May 2026 23:42:41 -0700 (PDT) X-Received: by 2002:a05:622a:1145:b0:50f:bdeb:1e47 with SMTP id d75a77b69052e-51461fcec8cmr89440151cf.44.1778136160682; Wed, 06 May 2026 23:42:40 -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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:39 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:15 +0300 Subject: [PATCH 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: <20260507-iris-ar50lt-v1-15-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1724; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=7mrNTGNij/w8YmbLMmlhfVsKgE6akwwy6krrm30/cgQ=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ/U3gUnLVTXkqjSQKHBGEc8j6q7pFDgsHkN sNxehDcuZKJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PwAKCRCLPIo+Aiko 1Wh/B/9FEO/WyAAd+IMryE+i6kwlTRV3hcSbSnW4dadkEowqVHaIIc08JxcIvr7R2ZSed9zBOqd 2BUX+/f1G/JrmBAZxIK4M3Yg7erurIPCHW0ET6OwjwwOvoaLlH5rhW6N/Kg1I/bH1aAsYA7RTsk ZUhjWbwCFvuZPc/EMrsZPIhfkbFYmewwyvIubzP3ftQEEWRoMQfFomdoE4R2oCsP9ol6tJGNvZT MzHV5CuklqRZd3uibCip+jbQPMREdd73rFlQoKFM1CHWSC1H6Ej4SgctFh+q64ZWga4OTrnRFDq 9E6uBnhr3htHnK3/CGl+mc683J4Lpjp36Dvv1lYTjNbny+Sa X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: gubJBPIeUJ2JnAR5q-QYow0Uxlvhe70k X-Authority-Analysis: v=2.4 cv=caHiaHDM c=1 sm=1 tr=0 ts=69fc3462 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=TAcc6fXARiqENDJ69lsA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: gubJBPIeUJ2JnAR5q-QYow0Uxlvhe70k X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX4kuU9dq0XhTd RrmaKgn/JJZ1DvWydsPyNuRO4dzmGTaJ+MvjxmQ1dUeS27IWZaFiFGdWS2b4QkVC1dvt/ajFIpg jfIEJJB4Zkgw5ANBUyZjhlFE1+8I+lWBUNpDrQjD2B2UCFjbw7y1opQ2kqOjHZgSlCGCC9RD/Zh xXZeAoGf34IxYxggJArCgvMTjtFY18l0wHGODcDq5YF0grNpd768+4FlxAWdHOqjCByhnY8jAUh hC4jBoi4mil+K9vi7VHKqxNFy/z3XfqqChptIev7BXwJ9ATBl2FBU8yJcwzrmtP3ikz56NUPItW 0H2JOlwhq2blocsYd65lj8m//AZczu7+ypyV2qhcRaRdfxpSl+cNa9dzjRtxRc3l25vzuUmgX/v vNy+WU0O6cF7FdcLTUjjkC04GTqdRzuT+ZpbXaEeKnV+Zs2YxnjrzREYLt5i66D0TWdJl9kF2QB qcyrFN/Fi2QUT/8Subw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 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 247fb54bc00e..ea67e713a810 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -1074,7 +1074,6 @@ static const struct venus_resources sc7280_res =3D { .dec_nodename =3D "video-decoder", .enc_nodename =3D "video-encoder", }; -#endif =20 static const struct bw_tbl qcm2290_bw_table_dec[] =3D { { 352800, 597000, 0, 746000, 0 }, /* 1080p@30 + 720p@30 */ @@ -1125,12 +1124,15 @@ static const struct venus_resources qcm2290_res =3D= { .enc_nodename =3D "video-encoder", .min_fw =3D &min_fw, }; +#endif =20 static const struct of_device_id venus_dt_match[] =3D { { .compatible =3D "qcom,msm8916-venus", .data =3D &msm8916_res, }, { .compatible =3D "qcom,msm8996-venus", .data =3D &msm8996_res, }, { .compatible =3D "qcom,msm8998-venus", .data =3D &msm8998_res, }, +#if (!IS_ENABLED(CONFIG_VIDEO_QCOM_IRIS)) { .compatible =3D "qcom,qcm2290-venus", .data =3D &qcm2290_res, }, +#endif { .compatible =3D "qcom,sc7180-venus", .data =3D &sc7180_res, }, #if (!IS_ENABLED(CONFIG_VIDEO_QCOM_IRIS)) { .compatible =3D "qcom,sc7280-venus", .data =3D &sc7280_res, }, --=20 2.47.3 From nobody Sat Jun 13 14:01: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 C49E436B07C for ; Thu, 7 May 2026 06:42: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=1778136166; cv=none; b=piGXU7ZRncfl9vMA8wFM4U9/GnkhBDY4lKgTnzKlEWYv5cnuSFX6RNQjeJZEW3z9rJgeUqYw36edEH21ZrGmPsxmKbufzRvpUHSWv//kbovCTGRFZIE9TR+UX6qjF8WGtjlfdtpprxFIhlf+noxx1DD/K55IrU3EHKUeoYu3zpE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778136166; c=relaxed/simple; bh=UiyU2L5PBRVSZqnioCJ8UBKUuINJuvq+zilFpwfxTpk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NebMTSWWv/3+o6rNGhz+YzFnMnEFu1YsQMl0XvhoxdrfaiCkI9pOHTiZI0fo79rlGv14aLN8Zyyrw9Otrq2VjjJ+cVPRUr4sHgHhtHHKMzMiQUL23tTBHhZ+Lka9tg6ZcaUytbpNl6GLq8joBhP1XcOvA3NoSyxk4ZxWUdFtugs= 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=i/ckaxo4; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MJEo9JQX; 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="i/ckaxo4"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MJEo9JQX" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6475MJvq3157423 for ; Thu, 7 May 2026 06:42: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= uP/7DJbBJLezPmijpydT4H32rrWZ8zWH5pgO/YyQvYg=; b=i/ckaxo435Lj1oP0 fDNU/DOx4i5czp5xdt13JD/s/uJC+kyt5L0MWKucgvTAnPFLaJPK8vGKXhKST5J5 +W9P64RHEcyxCvVkgsWIxAVsddsvjQ0vHCaO76XDjvGM+x+BqwF6aEt1oQbFOF9o 3GSopI5+nnGWWH7RC/A3uca1iVaSHndmf5iKyJggb7m2qUdbd4X3+mDuCItixCsc 81isHHQ3pAzqorS+X+KPnMPGgW3JR+IQh35p2pROSEzyeimpF2XloukcWGBp1gEF 7TCbHzO52navw3mYw1PFkfA59pZt36/vOWSexPAoNB7C4S4FyD4i8xy8/bu9iTVk dYEG6A== 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 4e0mhf08qr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 07 May 2026 06:42:43 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-8eaee67d1bcso108725885a.0 for ; Wed, 06 May 2026 23:42:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778136163; x=1778740963; 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=uP/7DJbBJLezPmijpydT4H32rrWZ8zWH5pgO/YyQvYg=; b=MJEo9JQX0m602umPJR3pqx/WFDfXIDo+4h21hRNi1IUBxkaATFqeh8WWnn7t5gnm4H fIlncurcPfmZ3ZhwrQcGrfHTVLxWXJX2a1l7hBkiegvBiyB77+k0jjp/WrCiT0kanPpQ Z6Et7R+2XNccuiKXlE8i9syTNmdzGu3xtgMe4tJrYjo/g7rd27k6vfRbBYdYbXq+wodP 9W8ZWzn196OlL5PR/1gpr+ohe2yq54rwbR536RGxrEmMk/rLGkNgcm6nVrOhHtUWfTLA zs02BTEVT7Xf4yKjvZRzZO7yfEqe3JRocZ9cz88vETLZ1DegtjijSiVhYY8+RDu8zvpe OYaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778136163; x=1778740963; 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=uP/7DJbBJLezPmijpydT4H32rrWZ8zWH5pgO/YyQvYg=; b=kHl131vTzxo/Zu4lCMPLsqODb5w+fiunpNNVfkO+DdL6xt9YmhPpBpYl2tAjxYa2j8 Vy6kyTcuF8vk2kRYxziJTfcjmdqSYdxzWT4YCg+p7Ru9QZ7T8bKlBczzhyS0Eg8uDhh8 vN5gh6vuH4fasrvPKOung9B/BCUpUJPGHF8epN60tMNstEMoKuUdkIIxgE8N/9kpZ3FN 8H4tvKeNyK3du2B2Ac2V2prLYRLyObW9HRD0uy/mVR/JVf0F+m7Uf2fyWM52l+wBgCUN 2h0hpLYFxVUi0lbf9pF3uiHR3bAM/3XRtOqKLGrZMZlVrKt4vEXSvtjkN+/BdB2rLsut 5nfA== X-Forwarded-Encrypted: i=1; AFNElJ+rPGxhBvCs53e6ewm1zazfTkzkOTASorNShTMnjRk+a795Obuk1s+ymgh37yahm4dagRJMoJbUUfEze8I=@vger.kernel.org X-Gm-Message-State: AOJu0YzucowMpWcQwZSOEs8/1syUSeuJa+BlIoQxEIcz5FXU46lndV5e f3mFblc9YY+uYsFDUI23zaLcdsu5LH8wVPAOACtvffGSrRcvRc5jJlZEQPgo5S5OXcn0laxw6gG PVQRRYmTCP9cdnzqVDhbScJpuEQPuJWt32Kj3rbarHWPcCaax/2W0HbuMyyU96VWU7JU= X-Gm-Gg: AeBDietM3MOY38uOiCvAG0huwqUUBDA7wtw+nkSV+EhltqdJ7Ft0dFtTP7g5Esl8Ni9 1K4mW/h9yr8LyfIi1f30fL33pzvHdvF+91f3ycZGd4jeHQRDxDbWStBf9oD6TGee30J5qN0gAQY PIBD+7efRriGebfqHVrImtNkCguTMtK7TA9MLt86Oy0pQbAgKwdURPAxCHTB+1aU6RPAa1E8dZ0 piF52PArSz5vJ3JixZX+wyliPyVae9pxAbhNLlf8dqYKLkjybTXg38cXyKC+FKdN9eAnd2auu7k cClxDFrJsYXEK3eixLBjOj9thUgNO7zaXheAlmAJCxKOurOwWN9ebAuL9OCha2ooImenopCv95w 44qeA2olaJCtOsC/uisul7IEQdAfxTFCE+OqirNruYkvrsTMytb1Ur2Cc89Fgark8WKdcD2jeI5 RV9DVAuvn88JXet6srtSIptQQIRmffTHEslHsFZ72usjWiW0ZeBoKWc2uc X-Received: by 2002:a05:622a:4a16:b0:50f:817c:5d45 with SMTP id d75a77b69052e-51461c28aefmr85725891cf.23.1778136162829; Wed, 06 May 2026 23:42:42 -0700 (PDT) X-Received: by 2002:a05:622a:4a16:b0:50f:817c:5d45 with SMTP id d75a77b69052e-51461c28aefmr85725631cf.23.1778136162356; Wed, 06 May 2026 23:42: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-5a8722c2d43sm3334694e87.40.2026.05.06.23.42.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2026 23:42:41 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 07 May 2026 09:42:16 +0300 Subject: [PATCH 16/16] arm64: dts: qcom: agatti: add higher OPP levels 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: <20260507-iris-ar50lt-v1-16-d22cccedc3e2@oss.qualcomm.com> References: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> In-Reply-To: <20260507-iris-ar50lt-v1-0-d22cccedc3e2@oss.qualcomm.com> To: Vikash Garodia , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Dikshita Agarwal X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=986; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=pmRxEgr+Nvi2Lw0QP3FluQa801XHFjmueooI09g2R0s=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp/DQ/Xu+8kSqxX1D/qHs5fEXFlfc1f/wFfPghu /LGQY++7WKJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCafw0PwAKCRCLPIo+Aiko 1V4XB/45ZlAHeOn97WZC3jPb2WpiP1oqa4VW0qY9GdaVUo5HSeDsPkaJfhU3+Ya0a8bTg5wcAAz tx6lV197e8QI/hm0HhUpv8leK4ZJfqthPjBRJ35sTRKDJlXt/SVsYX8Aak07PUynBdGDp6uQTln wZDrd4DtSxaZAAg8OA9zEfHNlym9gDxl9YkFCFkvwxlGsD+ME0bBoOtPwdaGhGGGCQYeuhHuFnr S2OxmT6g26w65KKyhFAM4CnbhH519R+qOhrRvDL5aKYrqJmL37jVYpQ7eWQAYYgROGCva1JSDOz 4mIAv9g7X0eYe0S1rmFx+AoU4WCbOEnvD7i2P8KtswP+J7Zl X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA3MDA2MyBTYWx0ZWRfX88UOWLsiheta uPC6+I+m4lLc5oT71Y5qj62G5L5iAsVPNl2CPvu6C7BdzhBKlOpNVw2zu1UiRYVRKKP6erHFjcy dmA2Ftvp+rq1hfr2+LnHKsG+S7ZMbPV8mybIEKQ+SnYuV2En/418GMumqOLrPgqr6PykuqAXSz7 CNOJiowCtCdzgHznK/hYOBXgDergiMqDSyqAGlwHaldeEUuBI8rrqZ3NZ3d+dyXIRApz/y8VSHW 3iKyYwXlxKkJzJMoePbKAVsbklm/djgpAadZykppFSw5/Lr1+GK/be3bPZa+OUm6gBGNIAdOSg3 c6brQexv7FqIocfCce2TiB1x8JUXSXN94/NZKa8nQQodpOZSoPrQBFwkL6JAFowW+ioATFGi5kP YXcbClKvtVKj7Lq3e9VAUPcPdJe1WJuNLCeQN/jF3NvsPtVBKT5D9bJCmc3JWei5qtyFstbkdk2 ofHCb6vcxfNvTqI4ZJA== X-Proofpoint-ORIG-GUID: BRYmgcMi-Up9pukbV4-4AAoiUaTrg-NN X-Authority-Analysis: v=2.4 cv=SuagLvO0 c=1 sm=1 tr=0 ts=69fc3463 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=UHPahDyPz0TdaPj93UIA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-GUID: BRYmgcMi-Up9pukbV4-4AAoiUaTrg-NN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-06_02,2026-05-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 adultscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605070063 From: Dikshita Agarwal Add additional OPP entries for the Agatti platform to support higher operating frequencies as specified in the hardware documentation. Reviewed-by: Dmitry Baryshkov Signed-off-by: Dikshita Agarwal Reviewed-by: Konrad Dybcio --- arch/arm64/boot/dts/qcom/agatti.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/agatti.dtsi b/arch/arm64/boot/dts/qco= m/agatti.dtsi index 8a7337239b1e..fd40aa59878a 100644 --- a/arch/arm64/boot/dts/qcom/agatti.dtsi +++ b/arch/arm64/boot/dts/qcom/agatti.dtsi @@ -2455,6 +2455,16 @@ opp-240000000 { opp-hz =3D /bits/ 64 <240000000>; required-opps =3D <&rpmpd_opp_svs>; }; + + opp-300000000 { + opp-hz =3D /bits/ 64 <300000000>; + required-opps =3D <&rpmpd_opp_svs_plus>; + }; + + opp-384000000 { + opp-hz =3D /bits/ 64 <384000000>; + required-opps =3D <&rpmpd_opp_nom>; + }; }; }; =20 --=20 2.47.3