From patchwork Fri Feb 20 22:16:32 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rui Wang X-Patchwork-Id: 26219 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 416B3C31E9 for ; Fri, 20 Feb 2026 22:17:01 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0B91962287; Fri, 20 Feb 2026 23:16:58 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="VFxVFjAZ"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 82DC262271 for ; Fri, 20 Feb 2026 23:16:55 +0100 (CET) Received: from rui-Precision-7560.tail5b760b.ts.net (unknown [209.216.103.65]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id BC5D5371; Fri, 20 Feb 2026 23:16:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1771625761; bh=8dZW7fY38FjRivg92D/ZB/b9tj+rzvrN4ZWHuhS96aY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VFxVFjAZ31cEQtbOc4StNF20ozhLi22hKFlj3SbHOmdb6uKSOMl/ecieGvUUqMr4m RpAWC7W4EKWbl5gNS3YRRt2vz8uoSiewstzVKSHXPMiAl3nrWnAT5vhLsuprngIh9/ GxeaYt1Mn9R2q9kRGcG2L58nxbTXeKMrvbWHWMUM= From: Rui Wang To: libcamera-devel@lists.libcamera.org Cc: Rui Wang Subject: [PATCH v2 3/7] libcamera: Add rkisp1 vendor control definitions Date: Fri, 20 Feb 2026 17:16:32 -0500 Message-ID: <20260220221636.216353-4-rui.wang@ideasonboard.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260220221636.216353-1-rui.wang@ideasonboard.com> References: <20260220221636.216353-1-rui.wang@ideasonboard.com> 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" -Add rkisp1 control in meson. -Define rkisp1 filter controls in a new control_ids_rkisp1.yaml. -Reserve the rkisp1 vendor range in control_ranges.yaml. Signed-off-by: Rui Wang --- include/libcamera/meson.build | 1 + src/libcamera/control_ids_rkisp1.yaml | 151 ++++++++++++++++++++++++++ src/libcamera/control_ranges.yaml | 4 +- 3 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 src/libcamera/control_ids_rkisp1.yaml diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build index 30ea76f9..3fd7ef94 100644 --- a/include/libcamera/meson.build +++ b/include/libcamera/meson.build @@ -39,6 +39,7 @@ controls_map = { 'draft': 'control_ids_draft.yaml', 'rpi/pisp': 'control_ids_rpi.yaml', 'rpi/vc4': 'control_ids_rpi.yaml', + 'rkisp1': 'control_ids_rkisp1.yaml', }, 'properties': { diff --git a/src/libcamera/control_ids_rkisp1.yaml b/src/libcamera/control_ids_rkisp1.yaml new file mode 100644 index 00000000..1fe92e45 --- /dev/null +++ b/src/libcamera/control_ids_rkisp1.yaml @@ -0,0 +1,151 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +# +# Copyright (C) 2026, Ideas On Board +# +# RkISP1 specific control definitions +--- +vendor: rkisp1 +controls: + # --- RkISP1 Filter controls --- + - FilterEnable: + type: int32_t + direction: inout + description: | + Enable or disable the Filter processing. + When disabled (false) the hardware filter is forced off regardless of + filter mode selection. When enabled (true) the algorithm may + program parameters and adapt them from manual mode overrides. + Reported in metadata as an int32_t. + enum: + - name: FilterEnableOff + value: 0 + description: The filter is disabled. + - name: FilterEnableOn + value: 1 + description: The filter is enabled. + + - FilterFacSh0: + type: int32_t + direction: inout + description: | + Sets the fac_sh0 sharpness factor. + Value maps to hardware filter register (typically 0..63). + minimum: 0 + maximum: 63 + + - FilterFacSh1: + type: int32_t + direction: inout + description: | + Sets the fac_sh1 sharpness factor. + Value maps to hardware filter register (typically 0..63). + minimum: 0 + maximum: 63 + + - FilterFacMid: + type: int32_t + direction: inout + description: | + Sets the fac_mid sharpness factor. + Value maps to hardware filter register (typically 0..63). + minimum: 0 + maximum: 63 + + - FilterFacBl0: + type: int32_t + direction: inout + description: | + Sets the fac_bl0 sharpness factor. + Value maps to hardware filter register (typically 0..63). + minimum: 0 + maximum: 63 + + - FilterFacBl1: + type: int32_t + direction: inout + description: | + Sets the fac_bl1 sharpness factor. + Value maps to hardware filter register (typically 0..63). + minimum: 0 + maximum: 63 + + - FilterThreshSh0: + type: int32_t + direction: inout + description: | + Sets the thresh_sh0 denoise threshold. + Value maps to hardware threshold register (typically 0..255). + minimum: 0 + maximum: 255 + + - FilterThreshSh1: + type: int32_t + direction: inout + description: | + Sets the thresh_sh1 denoise threshold. + Value maps to hardware threshold register (typically 0..255). + minimum: 0 + maximum: 255 + + - FilterThreshBl0: + type: int32_t + direction: inout + description: | + Sets the thresh_bl0 denoise threshold. + Value maps to hardware threshold register (typically 0..255). + minimum: 0 + maximum: 255 + + - FilterThreshBl1: + type: int32_t + direction: inout + description: | + Sets the thresh_bl1 denoise threshold. + Value maps to hardware threshold register (typically 0..255). + minimum: 0 + maximum: 255 + + - FilterDenoiseMode: + type: int32_t + direction: inout + description: | + Sets the denoise mode for the filter. + Value maps to hardware mode register (typically 0..255). + minimum: 0 + maximum: 255 + + - FilterDenoiseLumWeight: + type: int32_t + direction: inout + description: | + Sets the luminance weight for denoise. + Value maps to hardware lum_weight register (typically 0..255). + minimum: 0 + maximum: 255 + + - FilterDenoiseGreenStage1: + type: int32_t + direction: inout + description: | + Sets the green stage 1 filter for denoise. + Value maps to hardware grn_stage1 register (typically 0..7). + minimum: 0 + maximum: 7 + + - FilterDenoiseChrVMode: + type: int32_t + direction: inout + description: | + Sets the chroma vertical mode for denoise. + Value maps to hardware chr_v_mode register (typically 0..3). + minimum: 0 + maximum: 3 + + - FilterDenoiseChrHMode: + type: int32_t + direction: inout + description: | + Sets the chroma horizontal mode for denoise. + Value maps to hardware chr_h_mode register (typically 0..3). + minimum: 0 + maximum: 3 diff --git a/src/libcamera/control_ranges.yaml b/src/libcamera/control_ranges.yaml index 6752eb98..4964894b 100644 --- a/src/libcamera/control_ranges.yaml +++ b/src/libcamera/control_ranges.yaml @@ -15,6 +15,8 @@ ranges: rpi: 20000 # Controls for debug metadata debug: 30000 - # Next range starts at 40000 + # Rockchip ISP1 vendor controls + rkisp1: 40000 + # Next range starts at 50000 ...