From patchwork Wed Feb 4 20:37:23 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: 26087 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 8C5F7BD78E for ; Wed, 4 Feb 2026 20:38:10 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id A494C62040; Wed, 4 Feb 2026 21:38:09 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="X0BORybN"; dkim-atps=neutral Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4E34461FBF for ; Wed, 4 Feb 2026 21:38:07 +0100 (CET) Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2a8fbd09b09so380115ad.2 for ; Wed, 04 Feb 2026 12:38:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770237485; x=1770842285; 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=a7T21dYj2jzVmcoQ827qdO5MM8xkWFryIH9pkRGT7qg=; b=X0BORybNJIjcYH9MAQbQweVdpWCu/aKWadOQT7ZySuDyiI2vwnjRIbiSUu9epH+iyr kRY23J3Gxh6/1qbOZUlfrw1kmhsA7H7SZrBV8QPeRFcEwNdfh1z17H5GOcWUKa3TxEFy Cs4jb7fKeZuUp3vGloA1hxHfZguL1JZWMYKJStrBYmCRqTe4MYCyPi/a2/IzfUyV3P+W ElKMdSeZzMua/2igvGW78iq6YCDsu1/eBhUOR2wr7J38ovTGL7Gg1UI334DCN5nJv+PI as6qYzg986oTRI+Dt4rj0H+Dw0xNao43NCv8uUuuf2eWeWtDr4OTpBRa3V3eI2ofQjHU bGVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770237485; x=1770842285; 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=a7T21dYj2jzVmcoQ827qdO5MM8xkWFryIH9pkRGT7qg=; b=GU8YCZjiI70cBTlAEHTNVlS2XArOJcbWGNmpmPrStK/dQs76P/w5olGEHphAjVUkUw V5CcqB2ikFHbWV7KS4WEQvoMceg4Y5HIjN12TOlWTPsQaMucBXK5E5e9Ty3rFu99UVjJ nQat+4hqNSMc2SoM/xvR5KbbbGcXRk0BjOju9YpYkbgQ2/pXTp4yo0+0f1fRdKGHv/8L 5LOrZoYuf8VwP1ICoWRtRixXp35AyvwH9sO+XDiYOrP6d+PWi2IjtwTKGpeMxxzRib1Y SU3VcZ2Aa5xnDWsvtx62RXb0IlUIE6o8o3u/4YOyd7TjHSoMNoE1HxXqM7o1tCdzlUv8 Nxyg== X-Forwarded-Encrypted: i=1; AJvYcCWzij43yZPt9GozTXXzAjZfPMA2vKTyr7VKsA/tVFJjd6wgIvFpfa1CQwNA7yGVmSIyCifW1qsWypd2O5dRnsk=@lists.libcamera.org X-Gm-Message-State: AOJu0YxZrylR/sj3N8fHhGlFomQyOJSGJ9luc9s7WKg9KKqz25QsKOjl eWhO35kNUZu4i72Z/9YDduhI1DXidE7esOU2aMpLL4KSroQX+Fbv+AVq X-Gm-Gg: AZuq6aJhm5199cRlSTohKNO1/uqwHLMc+FPSQe7al2C9K1C2YRd+lspSufuRCl3foRA Upd/SKqrSC38SsvNa7qrtBDRqdjfsmIrP1XrArsAVl3yy/z+DgxNuAOTAGDyP9B+lBAE+jSif1S RjyOORhGemp0hs6+8L4/LXcdOsrZ65w+Qq7Doxji5ieFnH5tYtTZ7qSZdBVUk/HnrL/zWn3HgAY XmOb3/ZEYmYyK2TDSXKvI/f3eL3S3fmOxqZfSULEWpMdrfx+8zW24vl0tf7IMJKfwMmxj3WPfbo cuAx3oV6ckb/PR0w0Cj+/8QywR2pkhX8FI2NVS0LIQ0gqoabA5QQsT5YIzaXz4/nu3Tqh0D8j1Y 04T8aqCG+4SEiPZCKLxPye41VCjeVSq26iidA1cBx3orf1ogoERqa7+PVRJCVL84IAF8pbS4HWp DVhxeu5MveYRC2YCjjTSF2huFAjEdmBu4casfIKrDDDezQ X-Received: by 2002:a17:902:e54d:b0:2a7:8bf3:5674 with SMTP id d9443c01a7336-2a933ad47bdmr27761795ad.0.1770237485477; Wed, 04 Feb 2026 12:38:05 -0800 (PST) Received: from FAIZEL-KB.. ([2001:569:5999:dc00:876b:c389:85e5:7957]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a933974884sm31136955ad.83.2026.02.04.12.38.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Feb 2026 12:38:04 -0800 (PST) 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 v3 0/3] media: vimc: Add timing controls for fps config Date: Wed, 4 Feb 2026 12:37:23 -0800 Message-ID: <20260204203726.1820226-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: c824345288d11e269ce41b36c105715bc2286050