From nobody Tue Apr 7 20:08:59 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 405EF410D18 for ; Fri, 27 Feb 2026 14:12:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772201549; cv=none; b=ikvAGx0xbsDq4MBV1wu3TLU/5M0jdUbbBmItKXNvMMCpO4VG/CfGvlk/UUahX+QDU7dJXVjwYUeFfdakKd8vADnQ/I7rlp9HrtKBx5LgFDDnABizRo48Mi8a5DLGZYimqKJy/y8QPQ7wtAHrGuFLvXFKmpB1AqHDqllNNdC9V+0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772201549; c=relaxed/simple; bh=4cpK+rYSKMeDiyBq3UdtWW7Lob7DBlHMDZuSeWAVS50=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=icx+xpR0YdYAy5K0WOf7yY4wHHv1YSg8IEetwdG0lTKSS73BjQSBuZnUpN2ZwQh97u+2wyKzFWw5x8plU/ijviIwrb5h5encZnWjHMtIquUbSdcHY5fGxVTGhqt64jKxZdIcIw2Un0hK2E+sIYO4wXwdrxsr9Uv16g7GQcV0w/M= 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=QbPqp2ll; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JMHCO3+2; 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="QbPqp2ll"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JMHCO3+2" 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 61RBilf12663754 for ; Fri, 27 Feb 2026 14:12: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= +XJtZ8JERmoHl90VOho+Ves1mxqLVsGuyUf8eQ5EWEA=; b=QbPqp2lliuebePFr j1Pm47ToXDjuk2g9Uy8Tq0WQ6+LMO2fGnOA09rhk3UrD2qMSGpW0xjRfihzmJMUX ZLuHBPkVw96exgl7EUcfd0WWfIDiyqr6pmC29Q39idf7zrF/3fytdjXOEkmZ0/Ar 0m9cjdG37S2TEgMVabnVp9RQPrQambmCaopQRKANBh8chzaz8YNVnA2MU3r0SDqJ zvCdDMPTEW+yg2hiYIOq3ni35KoAcj0+O1G4Nu5f3WHOREB5iB8V1L13MTA3W8jT 71UJIvMzgFpglQ/tzNrM8lTW15aNtK/oukw5Zb7tl5VzG0AZzBtV9rLKWDQx0Cn7 YGvkDA== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ck43r9t1u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Feb 2026 14:12:27 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2adef9d486bso21007895ad.2 for ; Fri, 27 Feb 2026 06:12:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772201547; x=1772806347; 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=+XJtZ8JERmoHl90VOho+Ves1mxqLVsGuyUf8eQ5EWEA=; b=JMHCO3+2BaCRfeq1TVU7t7AvtUm0HwrgKUTZmwDRelAum30fYQ8R9/ho44WBn05K7B w2wGfa+qvOT9YauGwGZalWysvx71l9lOoWeVfs4tgbX5rXY3LKHZ5ulei7pUhzQ946yS nMVvhj0fL4z++xUUXZyjewJ/fvm+rZG/yBMJ5WttBvLjAqHr1/KboBGTEbHjXOy/XIgT QueeAJcqCXo4XUbryJRUZSLShw4/t2RMeqR0P6MrslRC5SRzbyo66qj2VvCgElyEw4tF Dzr8r5KufaQD+3JZOZHlbixelxHJXbjk5199gEfmarI/PUqPrgMCODLGLkDSwpyPbHuK jwWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772201547; x=1772806347; 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=+XJtZ8JERmoHl90VOho+Ves1mxqLVsGuyUf8eQ5EWEA=; b=v8UXBF5A92YV+Br08jsHY5eS2jROcWU4QP8fPqxx928TgSIry6gRomdCOVQRw/BY7Y dyMFNlKvUwgnU/ji2/c04rvv8tf0Ot2Wgqon9gdt2igohACtamNYMCUygd6NYTvdsJC0 Arbt6Zf5QenL9Wi8pclogVAs9Y72R2yFOdZtslrxt+b6n3McO/NDdXiU2oKx0pj1DOf7 cZ8Kfdp2yziGWEUqRxYeujdVGXE73HEhPGgJi5DNpmG4cTHqSpph5kq46twTX959Q3VC whJmQOOnmHAVGoi4ZQoVaqyEP0Rtt9QNFLZpoy/BXsp00fyShLZeBlphJVkjPU+KuTlG hvBw== X-Forwarded-Encrypted: i=1; AJvYcCWUfFXA/su+EQIS/Q3UPw4ajEM5kg9esdVIO1dOTSyC0+jHpFP7sn4LQqzyes4AVjyGOwWZdzIQsO1FYEA=@vger.kernel.org X-Gm-Message-State: AOJu0YyYgLE8shwdX5woC0nddEf+WUDjDSDusyNq/QU+BlL4cvT3CAX3 S+7D2/VhHIhM2VMdo4HnYpi0/XBzjoGyzitXBY+V7jN5pFdetUTz17sZ4j1eigybT8j51/zyAYf vdNG5VuZVAa6yArEb0UY5jyTRjgYp0reDr8MprjvhNH1mPXWdZEKdKXDATPS/xpM9qGM= X-Gm-Gg: ATEYQzyi+WOe0cpanfTyncXJIxq8nUFfV8RpIxlYX3QDX0jmOHiiFObNQjRSoYuxDk9 AL10Fyslr96zhE6wxTs3LpEdDLp36/x/ya0OXFP0ykOpepHm6G2I9LM0EaWuA3nTKKIW30HzTn8 pI9iL99v3aaM8jyJKvWvSpJTKDNzdKyPYTaNyjikJJtmlgjGhao45ue+VoPvIsO0IE2y9bOofTP vDd+VReKqMwChDLMEF7GnLV5KzGBXAMQhTjADW7/SKTg/U0v6Gt2c5DT/ljjLWXFy7qZy9XqLrR fjf4fENPRqhyziZkfQczM13ajg8Ghd09L0psxPkXsqui2bEzW+zjnsdjWBBkdEOAir/eoSjfUX0 ChdKbUR/vw+SAxTZgNuPcYKSYZsfhKSckEkdtR7h5ggQeVKZb5didD4Yo X-Received: by 2002:a17:903:1ae8:b0:2ad:ba04:40d3 with SMTP id d9443c01a7336-2ae2e419166mr28838765ad.24.1772201546715; Fri, 27 Feb 2026 06:12:26 -0800 (PST) X-Received: by 2002:a17:903:1ae8:b0:2ad:ba04:40d3 with SMTP id d9443c01a7336-2ae2e419166mr28838415ad.24.1772201546192; Fri, 27 Feb 2026 06:12:26 -0800 (PST) Received: from hu-vgarodia-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2adfb5c183bsm60960865ad.24.2026.02.27.06.12.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 06:12:25 -0800 (PST) From: Vikash Garodia Date: Fri, 27 Feb 2026 19:41:22 +0530 Subject: [PATCH v2 6/7] media: iris: add iris4 specific H265 line buffer calculation 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: <20260227-kaanapali-iris-v2-6-850043ac3933@oss.qualcomm.com> References: <20260227-kaanapali-iris-v2-0-850043ac3933@oss.qualcomm.com> In-Reply-To: <20260227-kaanapali-iris-v2-0-850043ac3933@oss.qualcomm.com> To: Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Saravana Kannan , Joerg Roedel , Will Deacon , Robin Murphy , Stefan Schmidt , Hans Verkuil , Krzysztof Kozlowski , Vishnu Reddy , Hans Verkuil Cc: linux-arm-msm@vger.kernel.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, iommu@lists.linux.dev, Bryan O'Donoghue , Vikash Garodia X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772201499; l=4313; i=vikash.garodia@oss.qualcomm.com; s=20241104; h=from:subject:message-id; bh=4cpK+rYSKMeDiyBq3UdtWW7Lob7DBlHMDZuSeWAVS50=; b=BUknAXG+k+86NFxEHwE9YE7QULGUx4cd71iL+7BDqbDgKfbc2uMwUqNcyto4ytlqfXZ6fLPuK Gw/mcauF2+yBXckzNPGrhfLNxiqFNOwzbiyamBwOk4QW+IJ4rbpEeam X-Developer-Key: i=vikash.garodia@oss.qualcomm.com; a=ed25519; pk=LY9Eqp4KiHWxzGNKGHbwRFEJOfRCSzG/rxQNmvZvaKE= X-Proofpoint-ORIG-GUID: 2-1vPxlZgi8aqQ_a1F7FSfrOk-Fh9zyn X-Proofpoint-GUID: 2-1vPxlZgi8aqQ_a1F7FSfrOk-Fh9zyn X-Authority-Analysis: v=2.4 cv=DOqCIiNb c=1 sm=1 tr=0 ts=69a1a64b cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=MVHsPVnmqsIq8L41Ef0A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI3MDEyNSBTYWx0ZWRfXz9w4gKIDFjnF 2CvShhghDtBtLZh3+g6otQrC83cQnkUMfAr08PeFNE1KjmB+mkn/iqQQduxjWUolQO0m61gstmF tGVtKHMlxb2apvLkAIEa1UkSGtSrbMk7jyUWV4CwQlDNXO1usYfNiZ1YVF/c5nMP55YsNAbypbi 8xl7yRak7pfRf/YVWzzjz0E6x9WFtUdalPf5FDlDvQ+irVsTrJqXVd8eSJpEjNUIGhNf4CQKmNh SFgD8Eb0hZiYXZfHE4xFY6Q3RhbAn6ERJcDW7hsM22qfbFllnkTlIE2EyNf7x1MEQ4Jbnulaj8O z4sqeKyS5HjFb9ySLnjLH9CPsceSwnBUTQ7VLzQ/sZANbVUzenbo+WqU5uXDTP9ImiD0qJ4GnBP acVCQitYNbpKOJ4BvcyXxNhVc5seTVMhH/BawYTi4eUdzc+jVpamkwsRo5hLH+SYTpDdUPCxpnj qHmy5paN3iqwNs4xP3A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-27_02,2026-02-27_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 malwarescore=0 adultscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602270125 The H265 decoder line buffer size calculation for iris4 (VPU4) was previously reusing the iris3 formula. While this works for most resolutions, certain configurations require a larger buffer size on iris4, causing firmware errors during decode. This resolves firmware failures seen with specific test vectors on kaanapali (iris4), and fixes the following failing fluster tests - PICSIZE_C_Bossen_1 - WPP_E_ericsson_MAIN_2 Co-developed-by: Vishnu Reddy Signed-off-by: Vishnu Reddy Signed-off-by: Vikash Garodia --- drivers/media/platform/qcom/iris/iris_vpu_buffer.c | 51 ++++++++++++++++++= +++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c b/drivers/m= edia/platform/qcom/iris/iris_vpu_buffer.c index 9270422c16019ba658ee8813940cb9110ad030a1..a4d599c49ce9052b609b9cedf65= f669ba78b5407 100644 --- a/drivers/media/platform/qcom/iris/iris_vpu_buffer.c +++ b/drivers/media/platform/qcom/iris/iris_vpu_buffer.c @@ -1755,6 +1755,55 @@ static u32 hfi_vpu4x_buffer_line_vp9d(u32 frame_widt= h, u32 frame_height, u32 _yu return lb_size + dpb_obp_size; } =20 +static u32 hfi_vpu4x_buffer_line_h265d(u32 frame_width, u32 frame_height, = bool is_opb, + u32 num_vpp_pipes) +{ + u32 num_lcu_per_pipe, fe_left_lb, se_left_lb, vsp_left_lb, top_lb, qp_siz= e, + dpb_obp =3D 0, lcu_size =3D 16; + + num_lcu_per_pipe =3D (DIV_ROUND_UP(frame_height, lcu_size) / num_vpp_pipe= s) + + (DIV_ROUND_UP(frame_height, lcu_size) % num_vpp_pipes); + + fe_left_lb =3D ALIGN((DMA_ALIGNMENT * num_lcu_per_pipe), DMA_ALIGNMENT) * + FE_LFT_CTRL_LINE_NUMBERS; + fe_left_lb +=3D ALIGN((DMA_ALIGNMENT * 2 * num_lcu_per_pipe), DMA_ALIGNME= NT) * + FE_LFT_DB_DATA_LINE_NUMBERS; + fe_left_lb +=3D ALIGN((DMA_ALIGNMENT * num_lcu_per_pipe), DMA_ALIGNMENT); + fe_left_lb +=3D ALIGN((DMA_ALIGNMENT * 2 * num_lcu_per_pipe), DMA_ALIGNME= NT); + fe_left_lb +=3D ALIGN((DMA_ALIGNMENT * 8 * num_lcu_per_pipe), DMA_ALIGNME= NT) * + FE_LFT_LR_DATA_LINE_NUMBERS; + + if (is_opb) + dpb_obp =3D size_dpb_opb(frame_height, lcu_size) * num_vpp_pipes; + + se_left_lb =3D max_t(u32, (ALIGN(frame_height, BUFFER_ALIGNMENT_16_BYTES)= >> 3) * + MAX_SE_NBR_CTRL_LCU16_LINE_BUFFER_SIZE, + max_t(u32, (ALIGN(frame_height, BUFFER_ALIGNMENT_32_BYTES) >> 3) * + MAX_SE_NBR_CTRL_LCU32_LINE_BUFFER_SIZE, + (ALIGN(frame_height, BUFFER_ALIGNMENT_64_BYTES) >> 3) * + MAX_SE_NBR_CTRL_LCU64_LINE_BUFFER_SIZE)); + + vsp_left_lb =3D ALIGN(DIV_ROUND_UP(frame_height, BUFFER_ALIGNMENT_64_BYTE= S) * + H265_NUM_TILE_ROW, DMA_ALIGNMENT); + + top_lb =3D ALIGN((DMA_ALIGNMENT * DIV_ROUND_UP(frame_width, lcu_size)), D= MA_ALIGNMENT) * + FE_TOP_CTRL_LINE_NUMBERS; + top_lb +=3D ALIGN(DMA_ALIGNMENT * 2 * DIV_ROUND_UP(frame_width, lcu_size)= , DMA_ALIGNMENT) * + FE_TOP_DATA_LUMA_LINE_NUMBERS; + top_lb +=3D ALIGN(DMA_ALIGNMENT * 2 * (DIV_ROUND_UP(frame_width, lcu_size= ) + 1), + DMA_ALIGNMENT) * FE_TOP_DATA_CHROMA_LINE_NUMBERS; + top_lb +=3D ALIGN(ALIGN(frame_width, BUFFER_ALIGNMENT_64_BYTES) * 2, DMA_= ALIGNMENT); + top_lb +=3D ALIGN(ALIGN(frame_width, BUFFER_ALIGNMENT_64_BYTES) * 6, DMA_= ALIGNMENT); + top_lb +=3D size_h265d_lb_vsp_top(frame_width, frame_height); + + qp_size =3D size_h265d_qp(frame_width, frame_height); + + return ((ALIGN(dpb_obp, DMA_ALIGNMENT) + ALIGN(se_left_lb, DMA_ALIGNMENT)= + + ALIGN(vsp_left_lb, DMA_ALIGNMENT)) * num_vpp_pipes) + + ALIGN(fe_left_lb, DMA_ALIGNMENT) + ALIGN(top_lb, DMA_ALIGNMENT) + + ALIGN(qp_size, DMA_ALIGNMENT); +} + static u32 iris_vpu4x_dec_line_size(struct iris_inst *inst) { u32 num_vpp_pipes =3D inst->core->iris_platform_data->num_vpp_pipe; @@ -1770,7 +1819,7 @@ static u32 iris_vpu4x_dec_line_size(struct iris_inst = *inst) if (inst->codec =3D=3D V4L2_PIX_FMT_H264) return hfi_buffer_line_h264d(width, height, is_opb, num_vpp_pipes); else if (inst->codec =3D=3D V4L2_PIX_FMT_HEVC) - return hfi_buffer_line_h265d(width, height, is_opb, num_vpp_pipes); + return hfi_vpu4x_buffer_line_h265d(width, height, is_opb, num_vpp_pipes); else if (inst->codec =3D=3D V4L2_PIX_FMT_VP9) return hfi_vpu4x_buffer_line_vp9d(width, height, out_min_count, is_opb, num_vpp_pipes); --=20 2.34.1