From nobody Mon Feb 9 11:29:31 2026 Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5718432C95B for ; Tue, 23 Dec 2025 10:03:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766484188; cv=none; b=WRtUFQW7IVOv41MbQC+jncpoHZWMkVnEuLtEoBgthAueiByJMQYlgQ6yjW/yapgZgrQoFw8Mc+YHoyuVq82f6QvK4NJJQsjzeekZEQsulRc1KZfvxmBS82f8D66B7aIAvUJ+HHWocn6CBD5w+YlkmoFkzewEgubqI5MGZZ76KJY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766484188; c=relaxed/simple; bh=ASfJiTL1q6DVJolR1J49qe+02Q0L4hQQW/yS4XZqnOQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sdNrUymemnoPXUNZlAGz75NaI2WJ2UcHVo+bAtXY6oX1CASuzVr0/HEZ9IDc4DhUqaNE1TzNwzVrUdOP0eFD+UMR0sjjiKgFmHfRYf0zIm/PFeOT5xPHccozWtKuP9yuitlGB2Vyt5jFYS4/BzlCaqWke6O4B/QbOBqg5YWN9Gg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=CvGaeNAC; arc=none smtp.client-ip=209.85.167.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="CvGaeNAC" Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-59581e32163so5712654e87.1 for ; Tue, 23 Dec 2025 02:03:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1766484181; x=1767088981; 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=hNHRxnSnE8voMM72m011bJb2yQG4C90b65WjUVIP41I=; b=CvGaeNACxFbRNNbMnIdwJRvY9R3oAUxSAtJUt5V7bo+h7p+hcuUn/FQt9L3AZocHwT ZITB3DwXnkd4U0JP/lLHHb4s5n4t7ckw1lM/GZpUPfkJmq7g84K7dvMrW8GRdedHWB7Y zFCHEFveR9SpqiWk+B7HA6Zabnp3olVI4NALM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766484182; x=1767088982; 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=hNHRxnSnE8voMM72m011bJb2yQG4C90b65WjUVIP41I=; b=OWKYGCb7ChMcle+WFkANCEe0SCUr5EGmkJHxCtAJc/AhzkBW3m5GMKKmmWQ7uqU9+u oAdEVr4NUtubbr1yolZmRcA58dYrVJrPImKxmjybXKqavc7LYrMIcLb4oarZYRcyaYZW awFX0gcS1uWEOUokSdW8KBV/QhN6Ty9zhucGlrNid/scFUFQKUjuR/3dzMXx6MPioUY+ IFubYss2XB1MdGgY5XMHvwbNMHj4LffFw6aB1J2yCkIiO0tMiCnY4ATED7ZI5OYbR/r2 1D5Zs0JR98lspqExPN0TG+PJYtAEyqAeiDH3iQmxHxgmuUh7PAm3KaoueDIjRIrFBFko Iuhg== X-Forwarded-Encrypted: i=1; AJvYcCXl/TJ2+7wRR1gVBWvxIby2LDDN7V1e04hvptBwXB3qgv3GWV0AvUOJViLn17fWzYhYJ7pewrlTLA+Xv9E=@vger.kernel.org X-Gm-Message-State: AOJu0YyFUQWWngrms0Fvkipr1AfCu/wuKX4YuC967xN9Q0MVhBzojbGg 9j3gGlKGuRtQUspstTY17b9cwzu+n9OBFTVyx//8pnMEsuiWhQhLG/VHIKcrpEaghw== X-Gm-Gg: AY/fxX7QGjDfpJkjClu6WtFcff2Rf4GPff6b+SwAiI9zDnZr3Vbq66SldCcRkFJzhG5 H5EuFqq8qnfglhNnhf6nHAVuM4Aocy/cMCXzR3gNohwo9e7NyXzzCQxIElzWXi9FJezB9XVOUja jiesKTsovMLcw44vLoGTanKDaVgePye9m/PbrksTziQYgLGmXivqLWHyizsSp5wDxw/W2ni9Go/ zQDzdV7OrASlVxx/GRbZM+FWYb5JokGwBvj458XBR/vusZSqwzn++S27o9jqVlX53Yacwvh/Pdi kqft4UyR7DAn0CMPHr8nMd0Rz+ypqRsG/WDyeNRe1+Aq20ygHwyv0lhxWsBQL/He9bEiZWr4gKu Ljzs/RgKg/LAM+K4LZcjmtqYH4NZIeCyZbZwn7lYhkgryI62xhFPekmSk9F1TgVv+YX9Keb6cbH VhnicSQ1NpAuoZk7T4D7ofrnYsxSNYohk9cr+zw9+tDWTI+v+nuxwXI0AT1nf9/EoSFFV9nQ== X-Google-Smtp-Source: AGHT+IGNtNheNogZqw0341pm7gPXzJ8uyXpjG5TDNVfW1wZ6fEI74LDfk1NPk65WaE3b21JIBKcnSQ== X-Received: by 2002:a05:6512:10d5:b0:594:2dbb:723a with SMTP id 2adb3069b0e04-59a17d5da8bmr5427175e87.39.1766484181553; Tue, 23 Dec 2025 02:03:01 -0800 (PST) Received: from ribalda.c.googlers.com (165.173.228.35.bc.googleusercontent.com. [35.228.173.165]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-59a185ea248sm3891990e87.43.2025.12.23.02.03.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Dec 2025 02:03:00 -0800 (PST) From: Ricardo Ribalda Date: Tue, 23 Dec 2025 10:02:58 +0000 Subject: [PATCH v3 2/2] media: iris: Fix fps 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: <20251223-warnings-6-19-v3-2-e8f56cb204ec@chromium.org> References: <20251223-warnings-6-19-v3-0-e8f56cb204ec@chromium.org> In-Reply-To: <20251223-warnings-6-19-v3-0-e8f56cb204ec@chromium.org> To: Keke Li , Jacopo Mondi , Daniel Scally , Hans Verkuil , Laurent Pinchart , Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab Cc: Sakari Ailus , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Ricardo Ribalda X-Mailer: b4 0.14.2 iris_venc_s_param() uses do_div to divide two 64 bits operators, this is wrong. Luckily for us, both of the operators fit in 32 bits, so we can use a normal division. Now that we are at it, mark the fps smaller than 1 as invalid, the code does not seem to handle them properly. The following cocci warning is fixed with this patch: ./platform/qcom/iris/iris_venc.c:378:1-7: WARNING: do_div() does a 64-by-32= division, please consider using div64_u64 instead Fixes: 4ff586ff28e3 ("media: iris: Add support for G/S_PARM for encoder vid= eo device") Reviewed-by: Dikshita Agarwal Signed-off-by: Ricardo Ribalda --- drivers/media/platform/qcom/iris/iris_venc.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_venc.c b/drivers/media/p= latform/qcom/iris/iris_venc.c index 5830eba93c68b27fa9db87bac63a691eaca338d2..0ed5018f9fe3326f5bcc1678e85= 4589c65e8a954 100644 --- a/drivers/media/platform/qcom/iris/iris_venc.c +++ b/drivers/media/platform/qcom/iris/iris_venc.c @@ -382,8 +382,7 @@ int iris_venc_s_param(struct iris_inst *inst, struct v4= l2_streamparm *s_parm) struct v4l2_fract *timeperframe =3D NULL; u32 default_rate =3D DEFAULT_FPS; bool is_frame_rate =3D false; - u64 us_per_frame, fps; - u32 max_rate; + u32 fps, max_rate; =20 int ret =3D 0; =20 @@ -405,23 +404,19 @@ int iris_venc_s_param(struct iris_inst *inst, struct = v4l2_streamparm *s_parm) timeperframe->denominator =3D default_rate; } =20 - us_per_frame =3D timeperframe->numerator * (u64)USEC_PER_SEC; - do_div(us_per_frame, timeperframe->denominator); - - if (!us_per_frame) + fps =3D timeperframe->denominator / timeperframe->numerator; + if (!fps) return -EINVAL; =20 - fps =3D (u64)USEC_PER_SEC; - do_div(fps, us_per_frame); if (fps > max_rate) { ret =3D -ENOMEM; goto reset_rate; } =20 if (is_frame_rate) - inst->frame_rate =3D (u32)fps; + inst->frame_rate =3D fps; else - inst->operating_rate =3D (u32)fps; + inst->operating_rate =3D fps; =20 if ((s_parm->type =3D=3D V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE && vb2_is_stre= aming(src_q)) || (s_parm->type =3D=3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE && vb2_is_str= eaming(dst_q))) { --=20 2.52.0.358.g0dd7633a29-goog