From patchwork Fri Oct 23 10:58:18 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jai Luthra X-Patchwork-Id: 28580 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 2266FC324C for ; Fri, 23 Oct 2026 10:59:38 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D22D068FC4; Fri, 23 Oct 2026 12:59:37 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="L23bZ2Is"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id E614B68FAB for ; Fri, 23 Oct 2026 12:59:36 +0200 (CEST) Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:59f6:be2b:2877:6bc4:392]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id A3AF11CF5; Fri, 23 Oct 2026 12:57:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1792753048; bh=MtKUxehNNCYd5U/ICeFqfiVe3+MklLaDpozIX4qK3xY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=L23bZ2Is+glqeaiArbZHJdgnEgN4h0cZjkkh4IVBSvsKkSZnIHl3ICObiCVbsB14m lSyP7H7o1uQBzUwqBjt63qkSpeIUvAjk2UUHKny1KU0xfaMPvBLC21dBbw9rlzp8VS 3bTmzkwoxxmIzOaOu0VZyK2TbVmquuhlZfv/Z/jU= From: Jai Luthra Date: Fri, 23 Oct 2026 16:28:18 +0530 Subject: [PATCH WIP RFC 10/26] libcamera: camera_sensor_raw: Check for CONFIG_MODEL MIME-Version: 1.0 Message-Id: <20261023-b4-raw-model-v1-10-eadb9948901b@ideasonboard.com> References: <20261023-b4-raw-model-v1-0-eadb9948901b@ideasonboard.com> In-Reply-To: <20261023-b4-raw-model-v1-0-eadb9948901b@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Laurent Pinchart , Kieran Bingham , Sakari Ailus , Naushir Patuck , Jai Luthra X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1295; i=jai.luthra@ideasonboard.com; h=from:subject:message-id; bh=MtKUxehNNCYd5U/ICeFqfiVe3+MklLaDpozIX4qK3xY=; b=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBq2z3Mx3IL7y9LxhaKyy10DtI8qwz08QAv2RkrS LQpjFr7CeGJAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCats9zAAKCRBD3pH5JJpx RWqDD/sESZZNBAZExyYmBmtU6f98iAqi5qJfHrJwiQg2CPjonayc9n67sbHNvwduiodoM4+0aUn kX0I92GacLxjuOh0jICjW1IMDVXCJcaIN5akbitVf6spCe2wmp1XYTNiQDWluvh3wCHd2O0YgoE 6WFPSYZbBarFhNzWWo8xotPYQH2rIY5LMJB7J/UgA2fsbmzv4meQcxRhPT76jJaly3yPrSFb5WJ xS77PSD73U7RZE/xvL9p+ldaimXs6aKMRZmkq3YMG6pO77aGBHxWVF2FI4713Gx5oiFBjADbka3 b8XmiP+6YeBprNZcIxPP29yopDyO5Mvx+2L08bF0TQvzem1L+6v12rz+xGJJ7Z2wnMdYskO7MOm ksa37yXi4wbmU1BOc2RInEwRKBG14bD6hNplPVlbMHTMYpUTJsheUBWlWKdeuT3qqGM75vSRQPh keL2sTRV3cg0pj7SHV6MFS2LiVCsmQIWLzxuAIYat+1p+D+g2ruDTRg3l0f1Rr7c2rHyRa2aROb OAZ1XBly7E1cxYjUapH/5diWn4OvYIZYNNEEvbenD3SFdiDos3yISxV3bk0kMkG+go6++X7QcAi hGEezima+7qdrOqSr6vSKUDek5daNox2gO5+9LcJ7+HI/8KAwYS3wqiURE+GRBcZTReP0fox04s usNBAf/rb1G5D3Q== X-Developer-Key: i=jai.luthra@ideasonboard.com; a=openpgp; fpr=4DE0D818E5D575E8D45AAFC543DE91F9249A7145 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" Query the V4L2_CID_CONFIG_MODEL control on the sensor sub-device, and only match it with the CameraRawSensor class if the COMMON_RAW_SENSOR bit is set. Signed-off-by: Jai Luthra --- src/libcamera/sensor/camera_sensor_raw.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/libcamera/sensor/camera_sensor_raw.cpp b/src/libcamera/sensor/camera_sensor_raw.cpp index 29ea9406ad0d..d8874a7c5e1a 100644 --- a/src/libcamera/sensor/camera_sensor_raw.cpp +++ b/src/libcamera/sensor/camera_sensor_raw.cpp @@ -241,6 +241,23 @@ std::optional CameraSensorRaw::init() if (ret) return { ret }; + /* Ensure CONFIG_MODEL is set to COMMON_RAW_SENSOR */ + ControlList configModel = subdev_->getControls({ { V4L2_CID_CONFIG_MODEL } }); + if (configModel.empty()) { + LOG(CameraSensor, Debug) + << entity_->name() << ": control " + << "V4L2_CID_CONFIG_MODEL not available"; + return { 0 }; + } + + int32_t model = configModel.get(V4L2_CID_CONFIG_MODEL).get(); + if (!(model & V4L2_CONFIG_MODEL_COMMON_RAW_SENSOR)) { + LOG(CameraSensor, Debug) + << entity_->name() + << ": Common raw sensor model not supported"; + return { 0 }; + } + /* * 1. Identify the pads. */