From patchwork Mon Feb 2 19:46:42 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: 26079 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 28648C3226 for ; Mon, 2 Feb 2026 19:47:05 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 6965361FFA; Mon, 2 Feb 2026 20:47:04 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="FGtRjEth"; dkim-atps=neutral Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 48EC261FEE for ; Mon, 2 Feb 2026 20:47:03 +0100 (CET) Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-823be54d49cso184716b3a.3 for ; Mon, 02 Feb 2026 11:47:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770061621; x=1770666421; 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=gKBywhbyvsHsK4xxnZ8wMlQDheLCuBl8QbDKL7rhuJ4=; b=FGtRjEthqiXRmsOkr/1d/itCc2EkX9qjov37mm9/G4/AGOgEboKTpXOn1LJ8u8QgKK 4l6ZQ0uB6IJlkTezE4eKqdGkvgQutCXZyCuvNfcrHQ7h7IrB2ounsVG0BO7ohqPKrTQL jItGKeHHJ/FfELJfSGlmt4DeaRaaykrNdAb+sHvi6637ecOAvhM8b4ocOaCGY0qnhtY1 y0ujCzPJEwoJfewqkkPipIzHMkhjuYLdLXxXg+wq9aN5c5vJkr6dSE7W0CRcWnwbrtCy p/L/1rAtACKyI3K0aH6BD3E8LBmYC2YKVn9EcdNAp05gQoC2GdoE9FL2wlt/fugpn7l5 qiyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770061621; x=1770666421; 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=gKBywhbyvsHsK4xxnZ8wMlQDheLCuBl8QbDKL7rhuJ4=; b=GTg50Flsube4pgnoAXnwUyPSOXe/dbagqEMl2Wou6Y/cV5C0/Xpc/nJ3ksKHdpayIb XDdlqmwvDlZmcQzksD+FtXIWNIGAWmbxhx0ZD1ejH4P9m52TM7tm6Q9sZnKl+KVGe1rP 4sIoHEx5qS7M8MpYsj7g5Xj/HOZTXKlQ7ntbgtqyI+YlawGldWKtXqDyE2ZAGPJ6XgSR 8sxXRnE8alOZ0KE0in//mPGu27PesLn9Dm2lqA4aj+0R3blSZO2lAHscYkaVCXNFsgih YYhDAIunNSByZCpU/2jfPfesnayguigCkxQBvj1CSun5gs00eIa6AR6UDxVDcDAz6MAS cBqQ== X-Forwarded-Encrypted: i=1; AJvYcCXM+5JhCZ7Yuxyl6nHuMbLTm8zbdrC3wM3x3r7DmKwY+VWGZwGJj/aZnXvLLwGSQ+pby/RSFsQcHZg7HRmvWRs=@lists.libcamera.org X-Gm-Message-State: AOJu0YzH/UH3dAi+1ppa15qRANgx3aAOvUtKbEBQInbVO4cq3vs+RFlx 7gCY7LjI2V8f1wsbV/xDvN2Kn7QWzAV15lR5tqj9gA6T9t6lY0GdKIDI X-Gm-Gg: AZuq6aLwqq5RocUEjD+VJatHkhKd2DwqiDUFdeIJCX8NuytMR/+Cfx4odxeuRyfT/gO fDLoHnrKUeGs0XXKBZQlAQ+BN8rIeqVNUhr6yVIGxzh5MOkddwH/qH511c+Vnm5FyCjlFmhJ+6z Ao7JsbWYPseFKg1D5J3mRo9t0RwVvlVHjP1rl6WLWtRvQFX+Wrm7FTuPZM6vw+4UsX0yy/WsCEg wDtyvf8xpUgeJobTtcEWKmdHlGWvasIl46BivPinjFVa573kz3RW2HsL870sgdRSMlpKYBYt9cy Ts6X3buDVdMz3XHXLM5GZ+PWNPw5HBe6qmLmBYNlvkQoA/HjyHs7MoSKOknjnNQur+k6nPXo23U gUTJX0JOCEgpFAhQH3AX+mjByzxZQUPpkX4OJiW7Z8q6AVCVTE6AS7AjQB73yRJfkhqmQwEx0nH slLvXj/y3lM+1KrxVo7zHo/1xZSVy3o6RbBMNyXdmn9/o= X-Received: by 2002:a05:6a00:bd13:b0:823:f55:b061 with SMTP id d2e1a72fcca58-823ab726087mr9422719b3a.3.1770061621542; Mon, 02 Feb 2026 11:47:01 -0800 (PST) Received: from FAIZEL-KB.. ([2001:569:5999:dc00:af0:4465:b482:1e01]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-82379b1bc68sm16667416b3a.2.2026.02.02.11.47.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Feb 2026 11:47:00 -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 v2 0/3] media: vimc: Add timing controls for fps config Date: Mon, 2 Feb 2026 11:46:42 -0800 Message-ID: <20260202194645.1287757-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. - Link to v1: https://lore.kernel.org/linux-media/cr4tjjlq53ezux7lzrusy4wb7ji26trwkipfkjl33kwv6z4ut7@r6hvuzki66bj/ 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). 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 | 108 +++++++++++++----- .../media/test-drivers/vimc/vimc-streamer.c | 33 +++++- 3 files changed, 154 insertions(+), 28 deletions(-) base-commit: c824345288d11e269ce41b36c105715bc2286050