{"id":24721,"url":"https://patchwork.libcamera.org/api/covers/24721/?format=json","web_url":"https://patchwork.libcamera.org/cover/24721/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/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":"<20251023105651.78395-1-isaac.scott@ideasonboard.com>","date":"2025-10-23T10:56:47","name":"[0/4] libcamera: controls: Add support for camera module identifiers","submitter":{"id":215,"url":"https://patchwork.libcamera.org/api/people/215/?format=json","name":"Isaac Scott","email":"isaac.scott@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/24721/mbox/","series":[{"id":5518,"url":"https://patchwork.libcamera.org/api/series/5518/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5518","date":"2025-10-23T10:56:47","name":"libcamera: controls: Add support for camera module identifiers","version":1,"mbox":"https://patchwork.libcamera.org/series/5518/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/24721/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 22848C3259\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 23 Oct 2025 10:57:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B3DFD607CD;\n\tThu, 23 Oct 2025 12:57:04 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 268BE607B3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 23 Oct 2025 12:57:03 +0200 (CEST)","from isaac-ThinkPad-T16-Gen-2.infra.iob\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 55539591;\n\tThu, 23 Oct 2025 12:55:18 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"OxQkvI8q\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1761216918;\n\tbh=nrPCtTTkGB41ijchyicSqlU+1bna/kzlGO/Ugrm9L/c=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=OxQkvI8qvL+joxLCA5LtyGnOBXHUSe89rYyNuCkjhh58uy8CRuLIZcEWdMJspiUIF\n\tF6yUQUuRzrjX7bx/WhYp5TfPi0tu5r6EvJbPB4mss/uott0WyoPoTtKVPiHtEN5vdd\n\tZgSSGWoJMNSYtIVkbgxBSggW+F68SmZNgOpYWDtk=","From":"Isaac Scott <isaac.scott@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Isaac Scott <isaac.scott@ideasonboard.com>","Subject":"[PATCH 0/4] libcamera: controls: Add support for camera module\n\tidentifiers","Date":"Thu, 23 Oct 2025 11:56:47 +0100","Message-ID":"<20251023105651.78395-1-isaac.scott@ideasonboard.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":"Introduce support for the V4L2_CID_CAMERA_MODULE_IDENTIFIER control,\nalong with support for string control payloads.\n\nDifferent camera modules can include the same underlying camera sensor,\nbut require different parameters to be used when applying algorithms\nsuch as LSC and CCM. This means they would need their own tuning file,\nwhich in turn would need their camera_sensor_helper.\n\nTo avoid code duplication, we can query a string control containing the\nSKU of a camera module, and search for a tuning file pertaining to that\nexact unique camera module, as opposed to applying the potentially\nincorrect base sensor tuning file. If the control is not implemented by\nthe camera's driver, we can fall back to the tuning file for the model\nof sensor.\n\nThis series also includes a rework of searching for tuning files to take\nan initializer_list instead of two strings, meaning a pipeline handlers\ncan pass as many 'fallback' tuning file paths as they like.\n\nIsaac Scott (4):\n  libcamera: v4l2: Support string control payloads\n  libcamera: controls: Add CAMERA_MODULE_IDENTIFIER\n  ipa_proxy: Rework configurationFile to take variable numbers of paths\n  sensor: camera_sensor_legacy: Get module identifier from control\n\n include/libcamera/controls.h                  |  3 +-\n include/libcamera/internal/camera_sensor.h    |  2 +\n include/libcamera/internal/ipa_proxy.h        |  7 ++-\n include/libcamera/internal/v4l2_subdevice.h   |  2 +\n include/linux/v4l2-controls.h                 |  2 +\n src/libcamera/controls.cpp                    | 11 +++--\n src/libcamera/ipa_proxy.cpp                   | 48 ++++++++++++-------\n src/libcamera/pipeline/ipu3/ipu3.cpp          |  2 +-\n src/libcamera/pipeline/mali-c55/mali-c55.cpp  |  4 +-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp      | 11 +++--\n src/libcamera/pipeline/vimc/vimc.cpp          |  2 +-\n src/libcamera/property_ids_core.yaml          |  8 ++++\n src/libcamera/sensor/camera_sensor.cpp        | 10 ++++\n src/libcamera/sensor/camera_sensor_legacy.cpp |  5 ++\n src/libcamera/sensor/camera_sensor_raw.cpp    |  4 ++\n src/libcamera/software_isp/software_isp.cpp   |  2 +-\n src/libcamera/v4l2_device.cpp                 | 28 +++++++++++\n src/libcamera/v4l2_subdevice.cpp              | 34 +++++++++++++\n test/ipa/ipa_interface_test.cpp               |  2 +-\n 19 files changed, 153 insertions(+), 34 deletions(-)"}