From mboxrd@z Thu Jan 1 00:00:00 1970 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 146B125F7A5 for ; Tue, 7 Jul 2026 09:09:25 +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=1783415367; cv=none; b=WEPWpUkhvONppVgo77onELa0J4dwKyxQXO1NEebhJNZnt4a1WPnWd6X+hry3p+fIQLRdnTeFFX5CH44UGIRKlI71ANsVu1teExlFD6VglYfJYG4ZVx8L2jNfp6b7KSqVbgBDa8CHuiqdX/AhbnRvuM9uSJBqKk0nHOgSKH0ml0c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783415367; c=relaxed/simple; bh=ZjIq8ms6DgPyFt63proaPZOnpHgwcqJnrRTOark6I68=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=KWZtEES1lvuWGcfPzZeIqVscpbs4BxTRjH7cq1n+9SXIXkIe3yrlj1wfxg5taHtT5IoYKtbXwFjC2BbEAs0JH/8phGWpLfjQpU3FlzXY6T7GZuAt1dvtwZk6/V99u1xNCeXxX4yievLqjnTv4kctS9G62N6ftPmhMY181v+4jLE= 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=n4mRFohz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Tlzf6A0N; 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="n4mRFohz"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Tlzf6A0N" 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 6678E7Fa3184227 for ; Tue, 7 Jul 2026 09:09:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 9hAjrt5nnoYq/p1FQyjrhb8o2fPRkgaWySDGjphpGK0=; b=n4mRFohze28BMRTr 2rqL9m2tfUtPuZf5lRG2nAxBTJKe11YMAFBbLoKS6JubHX1DQ3ZB7Ixf+ELa7jyv 6ubg3fmiYVwcDIzDdEmahQERgYwLHAeYB+lZs/AvxZpgLPkc12xDlw1JUys1LGSF P71Y3FWQSQvoVH5f+Zatpbcgj7eg3tSP8PUpkFBduVIO+7ssU4UlwNUGIlpvmDLs 16c7CIfXKuHCd7gWnze18skZChzy31cgLcWGV8XYloOuqQsRFqLzuit47faQISgk 5Ku5ltz/kRMTDvk7tHLaWw+ezRho/BPYZJbJlf6tdZ9cveMlR1KraGdKq96bpu7S ihFplw== Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f8v3t8p19-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 07 Jul 2026 09:09:24 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-c860544c077so11072223a12.3 for ; Tue, 07 Jul 2026 02:09:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783415364; x=1784020164; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=9hAjrt5nnoYq/p1FQyjrhb8o2fPRkgaWySDGjphpGK0=; b=Tlzf6A0N/WjX0uI2wlEujyW0pSnIpnaVyzH4ts8pkqcUJBrhKJj3QufIzCexLNr7Rl adKXQjfc3u8dczf9Enaktf6c5ffR8IVpDVHWLo6vJhTYZBBFMQsyMKBPLwGUOtDwZD2u n4h14wkPGRky9AomVLoqSwUtQElAMD/ALgKI9zFRWMdPW0MteN/F70rkiVgT4MImZZZ6 ipWNL46Rgd0M/xzi01R2p1A/+7XHtQhqobSdt+aeHURyCekXA23Ly2rMlGQqozbMSMye oOsDkKhVbuk13/EzMrFEL5DhvD0X8B2zzw3Vi80iABs9MBYzQh35mDbOhX+XLD2ZUk5F 8YTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783415364; x=1784020164; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=9hAjrt5nnoYq/p1FQyjrhb8o2fPRkgaWySDGjphpGK0=; b=nKIKseFOM0CGgSrH7coNMua9yHiOHyGPUtqYqh+gNseniWa27SQV0r327wbwMq4CEA lslW4C81wkay4EO9PV7Aj2sTnTdKiz4kP7dUx7rzqwUzniG7Vie1wPsUP0Ok3W81UmNr WBakbQDr12EhSIpEe2vou1bhkGk7GNn7/gOfKsO1i91X+2T2n3Jpcf2PiuUPyXPmq8eO k6idQxHAMB9mpeerhNakiRbyC64BC4ccGd5GRTpv254yjk1L0dXdOWAXOQpypXRS7pq6 eaq6kXPXCmTP/9br4FypbfUlr+vXtOkZ1mhPfS/j1uetY8nIBtbon0WBwKjl8OYsr+xU djEA== X-Forwarded-Encrypted: i=1; AHgh+Rr97lMUayCD5sQt53wbKQJ5QJzRw7R0l+0fNEoTNmXlga67+D9m+OwddkQiWrx+et9wMCkUomoLJB67f2g=@vger.kernel.org X-Gm-Message-State: AOJu0YxeUNf+2xyBGv9zukUp+/pQx88WrLAFp5MO9TkA8Omlye56P0YN HrRf5ZAWBGImvF98PEkYydAC9l3ehAEi9MdMsNX447C0oBJFCDqse++2KT+V0FaMHz/DZmHto1z qKkrMwke4kWW3pOPjylFWgqFewbtzNPHJzRN4wdFf3RiNOEKJSTKCCIzYrRAhPYEiMcw= X-Gm-Gg: AfdE7cnt9cJVBU46UGOmcLe8kLCRtLu8JNnXalgNIgJyJnxx5miL1x62LTTPyrljFkI Y6PRZhJVz17BDapPkyfvpP46c++xwgiUbSr2IzA5ue1ooKD+QrLStDKtpQ6IJ8hZpqYORW9AYON hVU2KvrUEkpx9f0F4FVUpTrO85ZLFCI4OcGjRXQi0fLBUWfCeybb1LYfFit9MFGSOdJeUyO4Ehn 79OYQPWGSErnwor9YyzXcElGg5l3CFDXxpKrmtg4YUQd1mqi4g/qJwdAJpKo71rTpKp/2dGgLar MyLq/HbVUAdVUrgJwP57bAe6jrLOIzINSQURpbOg6AZGxupnSPCGKW0+Pc+UecCakaAZu8yeXsg Ss4N+AQx0XyGSPlkECx3gplwGSd1+3Q7UGxm8F525ZC91 X-Received: by 2002:a05:6a21:3997:b0:3c0:9c1b:d0b8 with SMTP id adf61e73a8af0-3c09c1bd3famr2563325637.67.1783415363238; Tue, 07 Jul 2026 02:09:23 -0700 (PDT) X-Received: by 2002:a05:6a21:3997:b0:3c0:9c1b:d0b8 with SMTP id adf61e73a8af0-3c09c1bd3famr2563284637.67.1783415362738; Tue, 07 Jul 2026 02:09:22 -0700 (PDT) Received: from [10.204.101.214] ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13b659c865asm6435355c88.11.2026.07.07.02.09.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Jul 2026 02:09:21 -0700 (PDT) Message-ID: <77aca547-1afd-494d-a2ec-35ba9b4d37f5@oss.qualcomm.com> Date: Tue, 7 Jul 2026 14:39:16 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/2] media: iris: disable time-delta-based rate control for VBR To: Vishnu Reddy , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , Dmitry Baryshkov , Neil Armstrong Cc: Bryan O'Donoghue , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Gourav Kumar References: <20260707-qc10c_fix_and_disable_time_delta_based_rc-v1-0-33fa130bc535@oss.qualcomm.com> <20260707-qc10c_fix_and_disable_time_delta_based_rc-v1-2-33fa130bc535@oss.qualcomm.com> Content-Language: en-US From: Vikash Garodia In-Reply-To: <20260707-qc10c_fix_and_disable_time_delta_based_rc-v1-2-33fa130bc535@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Proofpoint-GUID: EveSxzyWy_zHZrAQeGEN30IExu8F3AhU X-Proofpoint-ORIG-GUID: EveSxzyWy_zHZrAQeGEN30IExu8F3AhU X-Authority-Analysis: v=2.4 cv=HqVG3UTS c=1 sm=1 tr=0 ts=6a4cc244 cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=Ce3FUQhJh8VfwZ4kZc0A:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDA4OCBTYWx0ZWRfX43v2YLtiES7v 8c/FsWahFZyxuc7fecocRzQS/rgNZUHLCUYbCvTSRBtviB2PhTjexPVf9e/SMlYeiw31wTMKEEL 8bSQuuqgT+bf1CKoOWMibhJQqmTMUp3WSfY7Pfy1vF+tqMdYrXbDE5HPQ/79tWuWl42QgHakBM7 h5pXGd6i96ovevsHE9/JkAAoaA98Ky6Sp2kPHkoBVGcLTrmIgofw/9WTDL4Zw9MT+MtTPoj0SaV QMc0SpsP8sqjNvPHMiNcBxQ19nU1tGNlxfZG+Zwz1/O9R2ERfxS5leciJlg8KZZSTNXP5rzKt8k VORBZCixRLfhJZK2oaaDjKgJN9kFW2Pxs/pyCMcnBMuuPTfTI+rkxTgLWZyruSfAvj3MQxkiBJT sH91bERC25IMj5WiVOYGmPKKfl9cJXWtkP2qwzVAt8lpvDYgUJlfawapOya5jqTXW99HMeHMiMQ hHwuUQ2/leh/2OAWspQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDA4OCBTYWx0ZWRfX+5SEOa4u2ee7 yxfUZus5j9eJpAqWIPATQwsILY2rVHmSohQkk4sWwd1C8eyEqTvPfxq86fk7s2tkvTcVU65Bj61 nmrdDpDWlAeNvs/SdobMnVnfDK4hvC4= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-07_02,2026-07-06_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607070088 On 7/7/2026 12:05 PM, Vishnu Reddy wrote: > From: Gourav Kumar > > The iris encoder driver was not sending > HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL to the firmware during encoder > initialization. Without this property, the firmware defaults to > time-delta-based rate control (enabled), which calculates the output > bitrate from actual frame timing rather than following the configured > bitrate target. > > This caused variable bitrate (VBR) encoding to produce ~5x configured > bitrate. For example, with video_bitrate=896000 (896 Kbps), the output > is ~4.4 Mbps instead of the expected ~896 Kbps. > > Time-delta-based rate control is designed for variable frame rate (VFR) > scenarios where the encoder adapts to actual frame timing. However, when > an application explicitly configures a bitrate target, the firmware must > follow that target regardless of frame timing. > same here, we can drop the new empty lines > Fix this by adding the TIME_DELTA_BASED_RC capability with a default value > of 0 (disabled) and sending HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL = 0 to > the firmware during stream-on, allowing the firmware to use the configured > bitrate as the target. > > Signed-off-by: Gourav Kumar > Signed-off-by: Vishnu Reddy > --- > drivers/media/platform/qcom/iris/iris_ctrls.c | 19 +++++++++++++++++++ > drivers/media/platform/qcom/iris/iris_ctrls.h | 1 + > drivers/media/platform/qcom/iris/iris_hfi_gen2.c | 10 ++++++++++ > .../media/platform/qcom/iris/iris_hfi_gen2_defines.h | 1 + > .../media/platform/qcom/iris/iris_platform_common.h | 1 + > 5 files changed, 32 insertions(+) > > diff --git a/drivers/media/platform/qcom/iris/iris_ctrls.c b/drivers/media/platform/qcom/iris/iris_ctrls.c > index 10e33b8a73f6..f6136e655b98 100644 > --- a/drivers/media/platform/qcom/iris/iris_ctrls.c > +++ b/drivers/media/platform/qcom/iris/iris_ctrls.c > @@ -1477,6 +1477,25 @@ int iris_set_layer_bitrate(struct iris_inst *inst, enum platform_inst_fw_cap_typ > &bitrate, sizeof(u32)); > } > > +int iris_set_time_delta_based_rc(struct iris_inst *inst, enum platform_inst_fw_cap_type cap_id) > +{ > + const struct iris_hfi_session_ops *hfi_ops = inst->hfi_session_ops; > + u32 hfi_id = inst->fw_caps[cap_id].hfi_id; > + u32 value = inst->fw_caps[cap_id].value; > + > + /* > + * Disable time-delta-based rate control (value = 0). > + * This overrides the firmware's default (enabled), ensuring the > + * firmware uses the configured bitrate target rather than calculating > + * bitrate from frame timing. > + */ > + return hfi_ops->session_set_property(inst, hfi_id, > + HFI_HOST_FLAGS_NONE, > + iris_get_port_info(inst, cap_id), > + HFI_PAYLOAD_U32, > + &value, sizeof(u32)); > +} > + > int iris_set_properties(struct iris_inst *inst, u32 plane) > { > const struct iris_hfi_session_ops *hfi_ops = inst->hfi_session_ops; > diff --git a/drivers/media/platform/qcom/iris/iris_ctrls.h b/drivers/media/platform/qcom/iris/iris_ctrls.h > index 3c462ec9190b..10e046722ad3 100644 > --- a/drivers/media/platform/qcom/iris/iris_ctrls.h > +++ b/drivers/media/platform/qcom/iris/iris_ctrls.h > @@ -47,6 +47,7 @@ int iris_set_layer_type(struct iris_inst *inst, enum platform_inst_fw_cap_type c > int iris_set_layer_count_gen1(struct iris_inst *inst, enum platform_inst_fw_cap_type cap_id); > int iris_set_layer_count_gen2(struct iris_inst *inst, enum platform_inst_fw_cap_type cap_id); > int iris_set_layer_bitrate(struct iris_inst *inst, enum platform_inst_fw_cap_type cap_id); > +int iris_set_time_delta_based_rc(struct iris_inst *inst, enum platform_inst_fw_cap_type cap_id); > int iris_set_properties(struct iris_inst *inst, u32 plane); > > #endif > diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2.c > index acc0ed8adda1..d119ad599c31 100644 > --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c > +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2.c > @@ -416,6 +416,16 @@ static const struct platform_inst_fw_cap inst_fw_cap_sm8550_enc[] = { targets other than the one using inst_fw_cap_sm8550_enc ? > .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, > .set = iris_set_bitrate_mode_gen2, > }, > + { > + .cap_id = TIME_DELTA_BASED_RC, > + .min = 0, > + .max = 1, > + .step_or_mask = 1, > + .value = 0, > + .hfi_id = HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL, > + .flags = CAP_FLAG_OUTPUT_PORT, > + .set = iris_set_time_delta_based_rc, > + }, > { > .cap_id = FRAME_SKIP_MODE, > .min = V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, > diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h b/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h > index 776b21cd11b2..8766d9e49611 100644 > --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h > +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h > @@ -67,6 +67,7 @@ enum hfi_rate_control { > }; > > #define HFI_PROP_RATE_CONTROL 0x0300012a > +#define HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL 0x0300012b > #define HFI_PROP_QP_PACKED 0x0300012e > #define HFI_PROP_MIN_QP_PACKED 0x0300012f > #define HFI_PROP_MAX_QP_PACKED 0x03000130 > diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h > index c9256f2323dc..99dc6d5c72ba 100644 > --- a/drivers/media/platform/qcom/iris/iris_platform_common.h > +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h > @@ -183,6 +183,7 @@ enum platform_inst_fw_cap_type { > LAYER3_BITRATE_HEVC, > LAYER4_BITRATE_HEVC, > LAYER5_BITRATE_HEVC, > + TIME_DELTA_BASED_RC, > INST_FW_CAP_MAX, > }; > > Regards, Vikash