From patchwork Fri Jan 3 05:41:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 2488 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2CFA8605E4 for ; Fri, 3 Jan 2020 06:41:30 +0100 (CET) Received: from neptunite.amanokami.net (unknown [96.44.9.94]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 7AC73A3C; Fri, 3 Jan 2020 06:41:29 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1578030089; bh=1wASivwnxnU3iV+3L4L+AzqzX/e/OiDAnamuv0xKi1k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OnvYbe77R2+36Cg1GHo7j29o005bngK4w/Q6Qr1bTGkYxzjiRXaz+lB3zjAG/5bPb in4G3A3euxVqgfgPpO9YGI96bSGqZMvXTeG5eF9oLDJ/sQid4pvPmfkOkA1OQECciZ KuBdrNTGZMaLW5qxwoQyUSeOcH+V83uDHh7zpfcU= From: Paul Elder To: libcamera-devel@lists.libcamera.org Date: Fri, 3 Jan 2020 00:41:19 -0500 Message-Id: <20200103054120.30979-4-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200103054120.30979-1-paul.elder@ideasonboard.com> References: <20200103054120.30979-1-paul.elder@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v5 3/4] libcamera: pipeline_handler: uvcvideo: register all Cameras along with a devnum 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-List-Received-Date: Fri, 03 Jan 2020 05:41:30 -0000 This patch depends on patch "libcamera: pipeline: uvcvideo: Fix crash when default entity is not found". Register all UVC Cameras along with their device numbers, to eventually allow the V4L2 compatibility layer to match against it. Signed-off-by: Paul Elder Reviewed-by: Laurent Pinchart Reviewed-by: Jacopo Mondi --- Changes in v5: - rebased on "libcamera: pipeline: uvcvideo: Fix crash when default entity is not found" No change in v4 New in v3 --- src/libcamera/pipeline/uvcvideo.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp index 8d7f7ea7..662b2462 100644 --- a/src/libcamera/pipeline/uvcvideo.cpp +++ b/src/libcamera/pipeline/uvcvideo.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include @@ -294,6 +295,7 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator) return false; std::unique_ptr data = utils::make_unique(this); + dev_t devnum = 0; /* Locate and initialise the camera data with the default video node. */ const std::vector &entities = media->entities(); @@ -309,10 +311,12 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator) if (data->init(*entity)) return false; + devnum = makedev((*entity)->deviceMajor(), (*entity)->deviceMinor()); + /* Create and register the camera. */ std::set streams{ &data->stream_ }; std::shared_ptr camera = Camera::create(this, media->model(), streams); - registerCamera(std::move(camera), std::move(data)); + registerCamera(std::move(camera), std::move(data), devnum); /* Enable hot-unplug notifications. */ hotplugMediaDevice(media);