From patchwork Tue Nov 21 14:53:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 19215 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 54B2DC3220 for ; Tue, 21 Nov 2023 14:53:55 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 74FD7629BC; Tue, 21 Nov 2023 15:53:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1700578434; bh=u6ZI9HWMrOjIvEpr5QnSak8zUxNQWrtxuDGz17aEBK8=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=E1bYbp4KBVRXUiRmgWSotr1d1gDVNBeSW4hyodpFa7yOHE3IPex9UPXpyDQw1FTKv y319MSH4fDqD+r0G7FtApFUf7HgEgJt7ISp/zJM4I0cGwK5i2wOJlspGPsb15n3Imh pe5406YO6NAC0/2uoMFT0yfkWwA7zkxrkc3i+DmZYOfA7njHBHwXiLFJ94kAF8f46u Rx6gGL3HvTwufPyDGj3PyRY0/qTIpqqhPw+em9rR0Cud2Hcra7PFntWZv0yC/No8ra gdwPKJiQwFRQzfhkCLOXIc+EptN1XsCEgFRTj38W3RSoNPfRn9B23/EDxX7XN51u9l J48abk4zbU1kA== Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2732B61DAE for ; Tue, 21 Nov 2023 15:53:53 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="RFpprgCO"; dkim-atps=neutral Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-40b2ddab817so645185e9.3 for ; Tue, 21 Nov 2023 06:53:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1700578432; x=1701183232; 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=pR7OkBvxNTxT1d3PH0B6f17mB8gpssf39zY6+miM7zc=; b=RFpprgCOkc8kf3Zd75ynRg7+zJ1MjE2h2eiHUdJPBUUSygeEzeGCOPVGTTSqwbTKpG AtVtAi4gTyPGwzIe4dicv40nFJtUkc3hrEgm+ucVOTa16ln+GZFYN+XD5UjdRNv1J7jT AsLbSXzIMshtpyJIcMQs7rIdEYsXr7jacObx3Xo3OAcJXMm/+vo2ay16XMK2PT/PeezE p3/+bnxwY8jX5vo1kc+UE2CxuEZ7dh1GRUrM8tgxwA+w9a3iE5rk1iG2Q6Qpn/sDn9eX 9loWKr+oK4mn38JUzYqjjHzLV2hZ/I5hLihbbFrDk5YKVgS77lGHduz7EQjFewTmklhZ Cntg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700578432; x=1701183232; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pR7OkBvxNTxT1d3PH0B6f17mB8gpssf39zY6+miM7zc=; b=ldBu1k+0tjXVxKoVYi/nFy9M1mIbv9uGXc8Vg8aGbIoXEUNr2xfQ7V6gRZe7t6y7uS lfhp4fhhrqIFAc4DXRyuB6qr7gaMJlP1ii5zQdIffOOFAwk4a2YNCdiFoaxufVWZn8if QJHU0Lc0Il63cxOSE+Fn9NcYpnCDitFVpFk0XZjEoCyHeR5eMXJNkLs/7MrIHIqeir8k ++WUfCZn6iFq5p9wX1x8KerV0bPuNSpv/1KHbi3yJ0YMmEYk+yzcAZF2r9iNWSq6Ayxr EthdzC5GCRdcX4P/levRwtCQ58ot4eX90uoobflRQg7KsFYUUfYeu+MM7Q0DaJ5eDNzg 4qkg== X-Gm-Message-State: AOJu0YzxUFEi0HXCcoPUkgZ1fCBq0odQog9uleBrGoOZ9ONK1qBMoGpo IXHZ5uB0rnIvKdpemQeQhPbLQe2WhkjVDWRDLo1dZw== X-Google-Smtp-Source: AGHT+IH12C1qchHflAld5R2gLMyXIFRiBeog5RqBtHke9ouRe0BlnBJW6JobHbZHNhoyHkYtg0tRtw== X-Received: by 2002:a05:600c:314f:b0:409:85d:5a6e with SMTP id h15-20020a05600c314f00b00409085d5a6emr8975082wmo.29.1700578432170; Tue, 21 Nov 2023 06:53:52 -0800 (PST) Received: from localhost.localdomain ([93.93.133.154]) by smtp.gmail.com with ESMTPSA id h18-20020a05600c351200b004063ea92492sm17570968wmq.22.2023.11.21.06.53.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 06:53:51 -0800 (PST) To: libcamera-devel@lists.libcamera.org Date: Tue, 21 Nov 2023 14:53:44 +0000 Message-Id: <20231121145350.5956-1-naush@raspberrypi.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 0/6] Vendor controls and properties 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: , X-Patchwork-Original-From: Naushir Patuck via libcamera-devel From: Naushir Patuck Reply-To: Naushir Patuck Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Hi, Here's version 2 of the vendor controls series. The biggest change from version 1 is how we define vendor controls. As requested, all controls in a particular YAML file now belong to one specific vendor. I've also incorporated all of Laurent's preliminary suggestions into the patches. Thanks, Naush Naushir Patuck (6): controls: Add vendor control/property support to generation scripts controls: Update argument handling for controls generation scripts controls: build: Allow separate vendor control YAML files libcamera: control: Add vendor control id range reservation libcamera: controls: Use vendor tags for draft controls and properties documentation: Document vendor specific control and properties handling Documentation/guides/pipeline-handler.rst | 52 ++++ include/libcamera/control_ids.h.in | 6 +- include/libcamera/meson.build | 61 ++++- include/libcamera/property_ids.h.in | 8 +- meson.build | 2 + src/ipa/rpi/common/ipa_base.cpp | 2 +- src/ipa/rpi/vc4/vc4.cpp | 2 +- src/libcamera/control_ids.cpp.in | 16 +- src/libcamera/control_ids.yaml | 233 +---------------- src/libcamera/control_ids_draft.yaml | 240 ++++++++++++++++++ src/libcamera/control_ids_rpi.yaml | 16 ++ src/libcamera/control_ranges.yaml | 18 ++ src/libcamera/meson.build | 22 +- src/libcamera/property_ids.cpp.in | 16 +- src/libcamera/property_ids.yaml | 34 +-- src/libcamera/property_ids_draft.yaml | 39 +++ src/py/libcamera/gen-py-controls.py | 78 +++--- src/py/libcamera/meson.build | 28 +- src/py/libcamera/py_controls_generated.cpp.in | 6 +- .../libcamera/py_properties_generated.cpp.in | 4 +- utils/gen-controls.py | 164 ++++++++---- 21 files changed, 643 insertions(+), 404 deletions(-) create mode 100644 src/libcamera/control_ids_draft.yaml create mode 100644 src/libcamera/control_ids_rpi.yaml create mode 100644 src/libcamera/control_ranges.yaml create mode 100644 src/libcamera/property_ids_draft.yaml