From patchwork Thu Mar 12 23:16:13 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Faizel K B X-Patchwork-Id: 26279 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 2BE37BDCC1 for ; Thu, 12 Mar 2026 23:17:16 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 6508462675; Fri, 13 Mar 2026 00:17:15 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="k7i6eh03"; dkim-atps=neutral Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 052E8620FA for ; Fri, 13 Mar 2026 00:17:12 +0100 (CET) Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2ae4e8dfaf8so855305ad.0 for ; Thu, 12 Mar 2026 16:17:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773357431; x=1773962231; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=jurnWtA9StuzZVJhN53xyykHE0SNK77Z7bUoT00rjeA=; b=k7i6eh035jC/lfPTgw6QK6arytXvhyCTdNz/9qOIGZlbzsp9I+CTaQCug99IGZX96n vpDU3ifb+GXNmCNL1qivv0euqoZZY4atT4JJhB4tCA5U8WkSdZOIiPyyLxWiNd6/Diuk m12a2ixHKN7BZW/aWZuxuF4SAccU9/9Wwg6svuI8n8woPI56AC7E6VTyYa5y8KAeHnSE sUXk24OjKZ9dA/51ZyCm9IOgwcwy3NaahHRYEwltpNwDxKSIrkf739DfTh6PbgqvhDK5 oH472YMgSbWy70OTtNWumLLgONj3pkYYmOw9KVyhVhA0CyciyC+KZaov/uWwRC6Bp7k1 L5LQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773357431; x=1773962231; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jurnWtA9StuzZVJhN53xyykHE0SNK77Z7bUoT00rjeA=; b=tA/FlGZyv2AHfMBPWk0TsVV8GTbl5wOqTz75mV8el5Ol/RQCMZxl7kuEC4y7zVv3PT KX3NwnkQCJxKJGGFQVeZNzLuw35xDSPbmfuOWsz3Vf4GW4RR4Z3rBdK7PfVG1E6P6ySs 5wXxjDb8q4U2TTKUcDfSpTH0Naa3gR1XOuHsTrH+Oo5ZmOlHj/82PRgQRYoRgPwHHQko K/vIgCuKibnmPaxcXJ3MwXYVtCITsqMo0EUoKoAUdUkiHLHbNT+oqk7TGbsHE1BzRfDY xrDhUPcBm/se3obBKL9cYMtZK7QaEGA+V86t0rDSmE8YdxF8X381plh260C899x95++i bvqw== X-Forwarded-Encrypted: i=1; AJvYcCXYsuWAZwVz1kCsLcfLM4rOJ+g91x4vYjbET6ZEgpDcIR3vgaNfDX6JEctVQ5rVGpocRdneMTmLUj++5+gJoEA=@lists.libcamera.org X-Gm-Message-State: AOJu0Yw7aBmAE69/Yu6+gcvFSqedbBrWjns6BlsZEpcDy18wi2h9JJX9 z08AGS0RQIvfynpOUqGwwyQpHq/MIuXxAIP1ogBT5f7HECs8KDchdBIa X-Gm-Gg: ATEYQzwJBC2Y28HimwBXDoYzFSYP+ED5FxCjOxLl5l7DA2+394fAifZ6/gNovf79SnR CrBZ8VJMOloCD9GAV7XxzGgDYuiEs9idsRzG2K/SUXqpODXTKSPMa9AMNlD9OpNPhRfdmYposwA W4hUu5KQjZdKN0gBXAEhiaUzJ5/wiCFr4Ugy2GEy5iJsHhmJCqRqvCB7PzpUBe6PJb32LQpSNbJ u03Yh+gG1T7Ws8yuB/pPZIMKSK/YLiEyt8iDyvbrNU4YBBSE1C1ijH3/GUwDHFF6wytKUZlokJd xye6xekccYMRy7PYB5JSVhKqRVUv4IthuaacnPOjGuPlvHT1PV1ZLKX27cyr3uXkypTpf4e4HMu KwhySRTwJaQPdS7F7bcLQCe2iKUq/qeNsJk/0iZRRY6dojBU2EM4OgXmeM23ZY4vYM+ODeE9oO0 Y7vb0MZlIhbTNhEwO5T6M8sP1I0Z1jm8MViv9nyPld1Ehj2LK+AYOg+K4= X-Received: by 2002:a17:902:f546:b0:2ae:3b4f:e5b3 with SMTP id d9443c01a7336-2aecaa3f126mr7188265ad.4.1773357431134; Thu, 12 Mar 2026 16:17:11 -0700 (PDT) Received: from FAIZEL-KB.. ([2001:569:5b64:e100:3685:315:53bf:61fc]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2aece81cde8sm619395ad.70.2026.03.12.16.17.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Mar 2026 16:17:10 -0700 (PDT) From: Faizel K B To: Shuah Khan , Laurent Pinchart , Kieran Bingham , linux-media@vger.kernel.org Cc: Mauro Carvalho Chehab , libcamera-devel@lists.libcamera.org, Faizel K B Subject: [PATCH RESEND v3 0/3] media: vimc: Add timing controls for fps config Date: Thu, 12 Mar 2026 16:16:13 -0700 Message-ID: <20260312231616.3590215-1-faizel.kb@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Control frame timing of vimc sensor by adding support for V4L2 timing controls (VBLANK, HBLANK, PIXEL_RATE). PIXEL_RATE and HBLANK are fixed as readonly with default values. VBLANK is configurable. First version patch attempted to implement direct frame rate control as fraction. vimc sensor should have controls like real sensor to control the framerate. Changes in v3: - Fixed 64-bit division on 32-bit architectures in vimc_calc_vblank() Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202602031319.6Nd13RwV-lkp@intel.com/ Closes: https://lore.kernel.org/oe-kbuild-all/202602031452.JzAaJ8BU-lkp@intel.com/ - Used do_div() for portable 64-bit division - Link to v2: https://lore.kernel.org/linux-media/20260202194645.1287757-1-faizel.kb@gmail.com/ Changes in v2: - Changed the patch subject to indicate timing control. - Removed 'v4l2_fract' element from sensor struct - Removed frameinterval functions for vimc_sensor_pad_ops - Added PIXEL_RATE,HBLANK,VBLANK V4L2 Controls - Added fps delay calculation based on timing controls - Default PIXEL_RATE as 160 MHz. HBLANK as 800 - Default fps 30 for resolution up to 1920 * 1080 (2,073,600 pixels) above which the fps is 10 (PIXEL_RATE must be changed to support higher resolutions). - Link to v1: https://lore.kernel.org/linux-media/cr4tjjlq53ezux7lzrusy4wb7ji26trwkipfkjl33kwv6z4ut7@r6hvuzki66bj/ Example usage: # Set vblank as 1000 v4l2-ctl -d /dev/v4l-subdev0 --set-ctrl=vertical_blanking=1000 # Capture and verify frame rate. # Real framerate depends on the CPU performance yavta /dev/video2 --capture=100 Faizel K B (3): media: vimc: sensor: Move vimc_sensor_device to common header media: vimc: sensor: Add pixel_rate,vblank and hblank configuration media: vimc: streamer: Apply sensor frame rate in streamer thread drivers/media/test-drivers/vimc/vimc-common.h | 41 +++++++ drivers/media/test-drivers/vimc/vimc-sensor.c | 114 ++++++++++++++---- .../media/test-drivers/vimc/vimc-streamer.c | 33 ++++- 3 files changed, 160 insertions(+), 28 deletions(-) base-commit: f505e978d1a0442adbbde48aed38c084ddea6d6e