{"id":26087,"url":"https://patchwork.libcamera.org/api/1.1/covers/26087/?format=json","web_url":"https://patchwork.libcamera.org/cover/26087/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260204203726.1820226-1-faizel.kb@gmail.com>","date":"2026-02-04T20:37:23","name":"[v3,0/3] media: vimc: Add timing controls for fps config","submitter":{"id":258,"url":"https://patchwork.libcamera.org/api/1.1/people/258/?format=json","name":"Faizel K B","email":"faizel.kb@gmail.com"},"mbox":"https://patchwork.libcamera.org/cover/26087/mbox/","series":[{"id":5771,"url":"https://patchwork.libcamera.org/api/1.1/series/5771/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5771","date":"2026-02-04T20:37:23","name":"media: vimc: Add timing controls for fps config","version":3,"mbox":"https://patchwork.libcamera.org/series/5771/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/26087/comments/","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 8C5F7BD78E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  4 Feb 2026 20:38:10 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A494C62040;\n\tWed,  4 Feb 2026 21:38:09 +0100 (CET)","from mail-pl1-x632.google.com (mail-pl1-x632.google.com\n\t[IPv6:2607:f8b0:4864:20::632])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4E34461FBF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  4 Feb 2026 21:38:07 +0100 (CET)","by mail-pl1-x632.google.com with SMTP id\n\td9443c01a7336-2a8fbd09b09so380115ad.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 04 Feb 2026 12:38:07 -0800 (PST)","from FAIZEL-KB.. ([2001:569:5999:dc00:876b:c389:85e5:7957])\n\tby smtp.googlemail.com with ESMTPSA id\n\td9443c01a7336-2a933974884sm31136955ad.83.2026.02.04.12.38.02\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 04 Feb 2026 12:38:04 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"X0BORybN\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20230601; t=1770237485; x=1770842285;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=a7T21dYj2jzVmcoQ827qdO5MM8xkWFryIH9pkRGT7qg=;\n\tb=X0BORybNJIjcYH9MAQbQweVdpWCu/aKWadOQT7ZySuDyiI2vwnjRIbiSUu9epH+iyr\n\tkRY23J3Gxh6/1qbOZUlfrw1kmhsA7H7SZrBV8QPeRFcEwNdfh1z17H5GOcWUKa3TxEFy\n\tCs4jb7fKeZuUp3vGloA1hxHfZguL1JZWMYKJStrBYmCRqTe4MYCyPi/a2/IzfUyV3P+W\n\tElKMdSeZzMua/2igvGW78iq6YCDsu1/eBhUOR2wr7J38ovTGL7Gg1UI334DCN5nJv+PI\n\tas6qYzg986oTRI+Dt4rj0H+Dw0xNao43NCv8uUuuf2eWeWtDr4OTpBRa3V3eI2ofQjHU\n\tbGVA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1770237485; x=1770842285;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=a7T21dYj2jzVmcoQ827qdO5MM8xkWFryIH9pkRGT7qg=;\n\tb=GU8YCZjiI70cBTlAEHTNVlS2XArOJcbWGNmpmPrStK/dQs76P/w5olGEHphAjVUkUw\n\tV5CcqB2ikFHbWV7KS4WEQvoMceg4Y5HIjN12TOlWTPsQaMucBXK5E5e9Ty3rFu99UVjJ\n\tnQat+4hqNSMc2SoM/xvR5KbbbGcXRk0BjOju9YpYkbgQ2/pXTp4yo0+0f1fRdKGHv/8L\n\t5LOrZoYuf8VwP1ICoWRtRixXp35AyvwH9sO+XDiYOrP6d+PWi2IjtwTKGpeMxxzRib1Y\n\tSU3VcZ2Aa5xnDWsvtx62RXb0IlUIE6o8o3u/4YOyd7TjHSoMNoE1HxXqM7o1tCdzlUv8\n\tNxyg==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCWzij43yZPt9GozTXXzAjZfPMA2vKTyr7VKsA/tVFJjd6wgIvFpfa1CQwNA7yGVmSIyCifW1qsWypd2O5dRnsk=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YxZrylR/sj3N8fHhGlFomQyOJSGJ9luc9s7WKg9KKqz25QsKOjl\n\teWhO35kNUZu4i72Z/9YDduhI1DXidE7esOU2aMpLL4KSroQX+Fbv+AVq","X-Gm-Gg":"AZuq6aJhm5199cRlSTohKNO1/uqwHLMc+FPSQe7al2C9K1C2YRd+lspSufuRCl3foRA\n\tUpd/SKqrSC38SsvNa7qrtBDRqdjfsmIrP1XrArsAVl3yy/z+DgxNuAOTAGDyP9B+lBAE+jSif1S\n\tRjyOORhGemp0hs6+8L4/LXcdOsrZ65w+Qq7Doxji5ieFnH5tYtTZ7qSZdBVUk/HnrL/zWn3HgAY\n\tXmOb3/ZEYmYyK2TDSXKvI/f3eL3S3fmOxqZfSULEWpMdrfx+8zW24vl0tf7IMJKfwMmxj3WPfbo\n\tcuAx3oV6ckb/PR0w0Cj+/8QywR2pkhX8FI2NVS0LIQ0gqoabA5QQsT5YIzaXz4/nu3Tqh0D8j1Y\n\t04T8aqCG+4SEiPZCKLxPye41VCjeVSq26iidA1cBx3orf1ogoERqa7+PVRJCVL84IAF8pbS4HWp\n\tDVhxeu5MveYRC2YCjjTSF2huFAjEdmBu4casfIKrDDDezQ","X-Received":"by 2002:a17:902:e54d:b0:2a7:8bf3:5674 with SMTP id\n\td9443c01a7336-2a933ad47bdmr27761795ad.0.1770237485477; \n\tWed, 04 Feb 2026 12:38:05 -0800 (PST)","From":"Faizel K B <faizel.kb@gmail.com>","To":"Shuah Khan <skhan@linuxfoundation.org>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlinux-media@vger.kernel.org","Cc":"Mauro Carvalho Chehab <mchehab@kernel.org>,\n\tlibcamera-devel@lists.libcamera.org, Faizel K B <faizel.kb@gmail.com>","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","Content-Transfer-Encoding":"8bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Control frame timing of vimc sensor by adding support for V4L2 timing\ncontrols (VBLANK, HBLANK, PIXEL_RATE). PIXEL_RATE and HBLANK are fixed as\nreadonly with default values. VBLANK is configurable.\n\nFirst version patch attempted to implement direct frame rate control as\nfraction. vimc sensor should have controls like real sensor to control the\nframerate.\n\nChanges in v3:\n- Fixed 64-bit division on 32-bit architectures in vimc_calc_vblank()\n  Reported-by: kernel test robot <lkp@intel.com>\n  Closes: https://lore.kernel.org/oe-kbuild-all/202602031319.6Nd13RwV-lkp@intel.com/\n  Closes: https://lore.kernel.org/oe-kbuild-all/202602031452.JzAaJ8BU-lkp@intel.com/\n- Used do_div() for portable 64-bit division\n- Link to v2: https://lore.kernel.org/linux-media/20260202194645.1287757-1-faizel.kb@gmail.com/\n\nChanges in v2:\n- Changed the patch subject to indicate timing control.\n- Removed 'v4l2_fract' element from sensor struct\n- Removed frameinterval functions for vimc_sensor_pad_ops\n- Added PIXEL_RATE,HBLANK,VBLANK V4L2 Controls\n- Added fps delay calculation based on timing controls\n- Default PIXEL_RATE as 160 MHz. HBLANK as 800\n- Default fps 30 for resolution up to 1920 * 1080 (2,073,600 pixels)\n  above which the fps is 10 (PIXEL_RATE must be changed to support\n  higher resolutions).\n- Link to v1: https://lore.kernel.org/linux-media/cr4tjjlq53ezux7lzrusy4wb7ji26trwkipfkjl33kwv6z4ut7@r6hvuzki66bj/\n\nExample usage:\n  # Set vblank as 1000\n  v4l2-ctl -d /dev/v4l-subdev0 --set-ctrl=vertical_blanking=1000\n\n  # Capture and verify frame rate.\n  # Real framerate depends on the CPU performance\n\n  yavta /dev/video2 --capture=100\n\nFaizel K B (3):\n  media: vimc: sensor: Move vimc_sensor_device to common header\n  media: vimc: sensor: Add pixel_rate,vblank and hblank configuration\n  media: vimc: streamer: Apply sensor frame rate in streamer thread\n\n drivers/media/test-drivers/vimc/vimc-common.h |  41 +++++++\n drivers/media/test-drivers/vimc/vimc-sensor.c | 114 ++++++++++++++----\n .../media/test-drivers/vimc/vimc-streamer.c   |  33 ++++-\n 3 files changed, 160 insertions(+), 28 deletions(-)\n\n\nbase-commit: c824345288d11e269ce41b36c105715bc2286050"}