From patchwork Fri Nov 19 11:09:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 14646 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 14326BDB13 for ; Fri, 19 Nov 2021 11:10:15 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5E4776037A; Fri, 19 Nov 2021 12:10:14 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="dNECUEKT"; dkim-atps=neutral Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 43409600B5 for ; Fri, 19 Nov 2021 12:10:11 +0100 (CET) Received: by mail-wr1-x42e.google.com with SMTP id n29so17455732wra.11 for ; Fri, 19 Nov 2021 03:10:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JSnUEG9AqNj3Cw1dNOiZSq5GWEtcZ8uIXXmDrXNrGwI=; b=dNECUEKTVl1hRzO2XCey2NORUcvQJEobPK/Y2R5WisgfhyVTSmeti+J0Z9Asf+mi0p vNbWNd6Z3OTwTPTfgf/i+qxct/pQrUTPFEsnAMeeYxuP5bg0ryI0YSTVzeMyzUdqJSGb C1R2gQykmyu/HImeTbq//Dcg2ebejPyZiQgcqP7SKjitM1la2K08mJeW6WfIG4lFFBpr SeSJDg75R2QhjVAlzbmPH1DdXhKzoHHs3vKsRMb5dL0/8RDv/DWEC47oNMKED1T3RzUT L8sps+LqaV4bKQ06jTxKAWiEVuk00lETJmdrt+UDmLkhmLW4w2A+sPtKXPA+4AbxpCWf +Vxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JSnUEG9AqNj3Cw1dNOiZSq5GWEtcZ8uIXXmDrXNrGwI=; b=g4xESAa4Hq6LYyZVOpJtbEqkH+oEVVg8GdnbUPAk8ULHwI1/y/CcnZ0wXdJyu/03be nvhWQ0q9R1IFPvc2c0lvnhmlEUhQW7Uyk3EyAhuKz2Srd9NzY448lmt99s/ZoaPpyjJj mihrNDqGCglh5vDj4vNuqj2h22o9VmvNJk2q0IMKPl5cYovFASpYr9Erh5DTwG4Xh3WO BhXIXSVozOmKtQbKzdn/J88kRF2UxKxweR0kRYmnvfYAE/ilzWrknyktuO3TqTKjeTFP XK4dE16wPNzsfma67ad6CkHoGU0QGJBGujKZiuoCpadLDrjzWuMLPrN3eB6Ae2TSdd5f pQNA== X-Gm-Message-State: AOAM532x8lczhJe0LFFI1Y2cWmxmI5ElkXjN6Vm9a1oIvGwFAgm+QBDZ LSap5EN5xrmY7443DEQzX0xxcBjVpluYIaWw X-Google-Smtp-Source: ABdhPJyxZgIkDFLa8CO6oPm4/Q5JXCbwVdXF88nbkHSEOWJmADbbiUThyUKrXlgLymzTJSbMkZYsBA== X-Received: by 2002:a05:6000:52:: with SMTP id k18mr6147120wrx.192.1637320210405; Fri, 19 Nov 2021 03:10:10 -0800 (PST) Received: from naush-laptop.pitowers.org ([2a00:1098:3142:14:bad1:6339:b276:e376]) by smtp.gmail.com with ESMTPSA id o5sm2596486wrx.83.2021.11.19.03.10.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Nov 2021 03:10:07 -0800 (PST) From: Naushir Patuck To: libcamera-devel@lists.libcamera.org Date: Fri, 19 Nov 2021 11:09:53 +0000 Message-Id: <20211119110955.3137585-1-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 1/3] pipeline: raspberrypi: Split out device enumeration and camera registration 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" Split out PipelineHandlerRPi::match() so that media device enumeration and acquisition is separated from camera registration. The former logic remains in PipelineHandlerRPi::match(), whereas the latter logic is moved into a new PipelineHandlerRPi::registerCameras() member function. Signed-off-by: Naushir Patuck Reviewed-by: Laurent Pinchart --- src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp index 4f6c699a4379..9aa7e9eef5e7 100644 --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp @@ -311,6 +311,7 @@ private: return static_cast(camera->_d()); } + bool registerCameras(); int queueAllBuffers(Camera *camera); int prepareBuffers(Camera *camera); void freeBuffers(Camera *camera); @@ -1010,6 +1011,11 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator) if (!isp_) return false; + return registerCameras(); +} + +bool PipelineHandlerRPi::registerCameras() +{ std::unique_ptr data = std::make_unique(this); if (!data->dmaHeap_.isValid()) return false; From patchwork Fri Nov 19 11:09:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 14647 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 85D1CBDB13 for ; Fri, 19 Nov 2021 11:10:16 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D849A6038C; Fri, 19 Nov 2021 12:10:14 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="Z4a8NX8V"; dkim-atps=neutral Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D197E60233 for ; Fri, 19 Nov 2021 12:10:12 +0100 (CET) Received: by mail-wm1-x32d.google.com with SMTP id 137so4600346wma.1 for ; Fri, 19 Nov 2021 03:10:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lg6hLkZF5C4o5pvhsXfDsmOyV/0MVmZT0N0mZ4xVufk=; b=Z4a8NX8VZthVpYNo+myqDiXH9sijSiTZOb2+nRCFQEe5ugYwVbpXYPgAAQZrZlXmC7 T6HliBUz29UKEUw855V37q8VuC9HbOYroWUahcrG64A0u7LCrbPhu3e4nLI3LO9yAhW/ wAEAHYhZm5WefUJv56bsn0yQGFSs9WEJUBynqamPMeg481V9+ni13MmlMrRQeU0KIVdh 7AxFgvjt/XRZMEEmw5XvzniGtmlzD11mGlUloCml/kM6ika+jvkEQycsk9uZFlxXRvR0 VVtUxCarp2Q0xPyk9BH+2zqPA+u6bYbOEdd8w92JeQ2ZZQduFIQn52rDa1Q3wOen7/Ld 0Y5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lg6hLkZF5C4o5pvhsXfDsmOyV/0MVmZT0N0mZ4xVufk=; b=qoufVv0LokM817HftAjIsUuZdKhGZkvV59MacC66ECkn/usvZIARxSg6LM29Tneen3 rgRubDjaR//umtoBCz//NcVdUgLxUxZ9k5RGchIZ//AbdOCd9OwIgKN+lLhEsvHxsP7r 64MidzMfLJegDHK8zu6IjvxVx8BToDt8SvkruHYev6NWHS5SZWwXB4SA7M6QCj3r6mho ZNTQQE2EuD4Tyr3XLSfY99L92KQGsZ3rcG/6aruePJClbnHvwzMAe9NR0NkCru80/851 bwl5E5UrefcsA1/W/DqnG6Gbgk5QLGUlYdGSYdGmACY7qc4CWV7p+R0Dali6yzKoiwqA tA2A== X-Gm-Message-State: AOAM5315mcL36ZXQoe2V8tapkJrg2NCpqNcqr9qSs8dwdOqIu3Y2t3kC GmT3UwaDaNbj5687CW+uKuB/HW8sBaB4Z9ew X-Google-Smtp-Source: ABdhPJzDowZtO5edeIYqLrjYTjFXT4iB6VU58vugf4CYoGUHCEEavIXhF22Sww1fr0x/JO/J4RNOgg== X-Received: by 2002:a05:600c:35c8:: with SMTP id r8mr5891314wmq.8.1637320212061; Fri, 19 Nov 2021 03:10:12 -0800 (PST) Received: from naush-laptop.pitowers.org ([2a00:1098:3142:14:bad1:6339:b276:e376]) by smtp.gmail.com with ESMTPSA id o5sm2596486wrx.83.2021.11.19.03.10.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Nov 2021 03:10:11 -0800 (PST) From: Naushir Patuck To: libcamera-devel@lists.libcamera.org Date: Fri, 19 Nov 2021 11:09:54 +0000 Message-Id: <20211119110955.3137585-2-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211119110955.3137585-1-naush@raspberrypi.com> References: <20211119110955.3137585-1-naush@raspberrypi.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 2/3] pipeline: raspberrypi: Allow registration of multiple cameras 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" Expand the pipeline handler camera registration to correctly handle multiple cameras attached to the platform. For example, Raspberry Pi Compute Module platforms have two camera connectors, and this change would allow the user to select either of the two cameras to run. There are associated kernel driver changes for both Unicam and the ISP needed to correctly advertise multiple media devices and nodes for multi-camera usage: https://github.com/raspberrypi/linux/pull/4140 https://github.com/raspberrypi/linux/pull/4709 However, this change is backward compatible with kernel builds that do not have these changes for standard single camera usage. Signed-off-by: Naushir Patuck --- .../pipeline/raspberrypi/raspberrypi.cpp | 112 ++++++++++++------ 1 file changed, 77 insertions(+), 35 deletions(-) diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp index 9aa7e9eef5e7..8ed2ebcaafe7 100644 --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp @@ -311,7 +311,8 @@ private: return static_cast(camera->_d()); } - bool registerCameras(); + int registerCameras(MediaDevice *unicam, MediaDevice *isp, + const std::string &unicamIdStr, const std::string &ispIdStr); int queueAllBuffers(Camera *camera); int prepareBuffers(Camera *camera); void freeBuffers(Camera *camera); @@ -993,49 +994,87 @@ int PipelineHandlerRPi::queueRequestDevice(Camera *camera, Request *request) bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator) { - DeviceMatch unicam("unicam"); - DeviceMatch isp("bcm2835-isp"); + unsigned int numCameras = 0; - unicam.add("unicam-image"); + /* + * String of indexes to append to the entity names when searching for + * the Unican media devices. The first string is empty (un-indexed) to + * to maintain backward compatability with old versions of the Unicam + * kernel driver that did not advertise instance indexes. + */ + for (const std::string &unicamIdStr : { "", "0", "1" }) { + MediaDevice *unicamDevice; - isp.add("bcm2835-isp0-output0"); /* Input */ - isp.add("bcm2835-isp0-capture1"); /* Output 0 */ - isp.add("bcm2835-isp0-capture2"); /* Output 1 */ - isp.add("bcm2835-isp0-capture3"); /* Stats */ + DeviceMatch unicam("unicam"); + unicam.add("unicam" + unicamIdStr + "-image"); + unicamDevice = acquireMediaDevice(enumerator, unicam); - unicam_ = acquireMediaDevice(enumerator, unicam); - if (!unicam_) - return false; + if (!unicamDevice) + continue; - isp_ = acquireMediaDevice(enumerator, isp); - if (!isp_) - return false; + for (const std::string &ispIdStr : { "0", "1" }) { + MediaDevice *ispDevice; + int ret; + + DeviceMatch isp("bcm2835-isp"); + isp.add("bcm2835-isp" + ispIdStr + "-output0"); /* Input */ + isp.add("bcm2835-isp" + ispIdStr + "-capture1"); /* Output 0 */ + isp.add("bcm2835-isp" + ispIdStr + "-capture2"); /* Output 0 */ + isp.add("bcm2835-isp" + ispIdStr + "-capture3"); /* Stats */ + ispDevice = acquireMediaDevice(enumerator, isp); + + if (!ispDevice) + continue; + + ret = registerCameras(unicamDevice, ispDevice, unicamIdStr, ispIdStr); + if (ret) { + LOG(RPI, Error) << "Failed to register camera: " << ret; + ispDevice->release(); + unicamDevice->release(); + } else + numCameras++; - return registerCameras(); + break; + } + } + + return !!numCameras; } -bool PipelineHandlerRPi::registerCameras() +int PipelineHandlerRPi::registerCameras(MediaDevice *unicam, MediaDevice *isp, + const std::string &unicamIdStr, + const std::string &ispIdStr) { std::unique_ptr data = std::make_unique(this); + if (!data->dmaHeap_.isValid()) - return false; + return -ENOMEM; + + MediaEntity *unicamImage = unicam->getEntityByName("unicam" + unicamIdStr + "-image"); + MediaEntity *ispOutput0 = isp->getEntityByName("bcm2835-isp" + ispIdStr + "-output0"); + MediaEntity *ispCapture1 = isp->getEntityByName("bcm2835-isp" + ispIdStr + "-capture1"); + MediaEntity *ispCapture2 = isp->getEntityByName("bcm2835-isp" + ispIdStr + "-capture2"); + MediaEntity *ispCapture3 = isp->getEntityByName("bcm2835-isp" + ispIdStr + "-capture3"); + + if (!unicamImage || !ispOutput0 || !ispCapture1 || !ispCapture2 || !ispCapture3) + return -ENOENT; /* Locate and open the unicam video streams. */ - data->unicam_[Unicam::Image] = RPi::Stream("Unicam Image", unicam_->getEntityByName("unicam-image")); + data->unicam_[Unicam::Image] = RPi::Stream("Unicam Image", unicamImage); /* An embedded data node will not be present if the sensor does not support it. */ - MediaEntity *embeddedEntity = unicam_->getEntityByName("unicam-embedded"); - if (embeddedEntity) { - data->unicam_[Unicam::Embedded] = RPi::Stream("Unicam Embedded", embeddedEntity); + MediaEntity *unicamEmbedded = unicam->getEntityByName("unicam" + unicamIdStr + "-embedded"); + if (unicamEmbedded) { + data->unicam_[Unicam::Embedded] = RPi::Stream("Unicam Embedded", unicamEmbedded); data->unicam_[Unicam::Embedded].dev()->bufferReady.connect(data.get(), &RPiCameraData::unicamBufferDequeue); } /* Tag the ISP input stream as an import stream. */ - data->isp_[Isp::Input] = RPi::Stream("ISP Input", isp_->getEntityByName("bcm2835-isp0-output0"), true); - data->isp_[Isp::Output0] = RPi::Stream("ISP Output0", isp_->getEntityByName("bcm2835-isp0-capture1")); - data->isp_[Isp::Output1] = RPi::Stream("ISP Output1", isp_->getEntityByName("bcm2835-isp0-capture2")); - data->isp_[Isp::Stats] = RPi::Stream("ISP Stats", isp_->getEntityByName("bcm2835-isp0-capture3")); + data->isp_[Isp::Input] = RPi::Stream("ISP Input", ispOutput0, true); + data->isp_[Isp::Output0] = RPi::Stream("ISP Output0", ispCapture1); + data->isp_[Isp::Output1] = RPi::Stream("ISP Output1", ispCapture2); + data->isp_[Isp::Stats] = RPi::Stream("ISP Stats", ispCapture3); /* Wire up all the buffer connections. */ data->unicam_[Unicam::Image].dev()->frameStart.connect(data.get(), &RPiCameraData::frameStarted); @@ -1046,7 +1085,7 @@ bool PipelineHandlerRPi::registerCameras() data->isp_[Isp::Stats].dev()->bufferReady.connect(data.get(), &RPiCameraData::ispOutputDequeue); /* Identify the sensor. */ - for (MediaEntity *entity : unicam_->entities()) { + for (MediaEntity *entity : unicam->entities()) { if (entity->function() == MEDIA_ENT_F_CAM_SENSOR) { data->sensor_ = std::make_unique(entity); break; @@ -1054,23 +1093,23 @@ bool PipelineHandlerRPi::registerCameras() } if (!data->sensor_) - return false; + return -EINVAL; if (data->sensor_->init()) - return false; + return -EINVAL; data->sensorFormats_ = populateSensorFormats(data->sensor_); ipa::RPi::SensorConfig sensorConfig; if (data->loadIPA(&sensorConfig)) { LOG(RPI, Error) << "Failed to load a suitable IPA library"; - return false; + return -EINVAL; } - if (sensorConfig.sensorMetadata ^ !!embeddedEntity) { + if (sensorConfig.sensorMetadata ^ !!unicamEmbedded) { LOG(RPI, Warning) << "Mismatch between Unicam and CamHelper for embedded data usage!"; sensorConfig.sensorMetadata = false; - if (embeddedEntity) + if (unicamEmbedded) data->unicam_[Unicam::Embedded].dev()->bufferReady.disconnect(); } @@ -1091,12 +1130,12 @@ bool PipelineHandlerRPi::registerCameras() for (auto stream : data->streams_) { if (stream->dev()->open()) - return false; + continue; } if (!data->unicam_[Unicam::Image].dev()->caps().hasMediaController()) { LOG(RPI, Error) << "Unicam driver does not use the MediaController, please update your kernel!"; - return false; + return -EINVAL; } /* @@ -1158,7 +1197,7 @@ bool PipelineHandlerRPi::registerCameras() if (!bayerFormat.isValid()) { LOG(RPI, Error) << "No Bayer format found"; - return false; + return -EINVAL; } data->nativeBayerOrder_ = bayerFormat.order; @@ -1178,7 +1217,10 @@ bool PipelineHandlerRPi::registerCameras() Camera::create(std::move(data), id, streams); registerCamera(std::move(camera)); - return true; + LOG(RPI, Info) << "Registered camera " << id + << " to instances \"unicam" << unicamIdStr << "\"" + << " and \"isp" << ispIdStr << "\""; + return 0; } int PipelineHandlerRPi::queueAllBuffers(Camera *camera) From patchwork Fri Nov 19 11:09:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 14648 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 21B44BDB13 for ; Fri, 19 Nov 2021 11:10:18 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D333160376; Fri, 19 Nov 2021 12:10:17 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="X942DvJl"; dkim-atps=neutral Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1ED87600B5 for ; Fri, 19 Nov 2021 12:10:14 +0100 (CET) Received: by mail-wr1-x42f.google.com with SMTP id d24so17568006wra.0 for ; Fri, 19 Nov 2021 03:10:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PN3DCfgGpvrincKp8qjYTXfagYjL3rVJtucQdzIRi1U=; b=X942DvJlmftO0+BCC7SJUjRahIFuK6jyUcWSjnRXaY3ucmk2xyWm7ysdJl+DpRjQff IlB1z99sWD2fNHJGitTvqt4eH7+GZFP8B6Dk8YP7NiV7qRHO/CilnbDXQdAWP4ebtDx9 AzGak6ggBcuoEnJq5jEhK+qIxZ6cOKqXL5RCXqukyJ3pjBMnpbZo2lxnSz4EAEaIL+K7 6JfW9XMs8X2Imnb31WDsc7sqCeh6Fw7y3U39/N7Yv0kps/hM13RM4PLTnDpV1y5m364V YxvChf6OMyDGoNIXJfnVVZGk5WUl3TFaKFvSY/MDvv29TGLcV+MS6PnGap1vHefeaNnf XVxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=PN3DCfgGpvrincKp8qjYTXfagYjL3rVJtucQdzIRi1U=; b=cJS8glmHzvn2K4pqeiuKxTBILQ4ugT0J27IwML/lld9uivEzkNW6vlFa7/N6+jq7wq 1XUvJOV/RKu53B6qdm+hGfYWsAdJEiJuYSNqmQb/wvtoknUQ+irVSrvl7iOEzHCqNX8M BDSEyEF5OE1VLElx/Zt0YdBwbCmB6n1MZHmqkWAeJxcug1gUL6BtXW6Sz7YCCJst+3KZ IfC5eIky5gu24e7yS7DuCjIIBoFG79VAGFv06vLAT080s50lZu5aq3vgk9QXxRhbMsEY fg46ayNbttAfVdnoE48UPjgJ1iHf4xIE0c9L5nSCOfYsQ9yPCRxrHIdoRmJ4fZ5/7wOS N7Bw== X-Gm-Message-State: AOAM531wxpzfCuj0jlJV+qJ3fw9iGLT2DZuLGBiBTAZ93uym1APiC+0d R34+1lguGV132Aq701qslcXzOCV09NYL0GhG X-Google-Smtp-Source: ABdhPJz7374IU0qdLxX3eMjLX8ZNur4J/wmS/WLDtcEkubEc+mF4VBYY02CIWedeQetJRa4risjZoQ== X-Received: by 2002:adf:fe8e:: with SMTP id l14mr6277665wrr.177.1637320213501; Fri, 19 Nov 2021 03:10:13 -0800 (PST) Received: from naush-laptop.pitowers.org ([2a00:1098:3142:14:bad1:6339:b276:e376]) by smtp.gmail.com with ESMTPSA id o5sm2596486wrx.83.2021.11.19.03.10.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Nov 2021 03:10:12 -0800 (PST) From: Naushir Patuck To: libcamera-devel@lists.libcamera.org Date: Fri, 19 Nov 2021 11:09:55 +0000 Message-Id: <20211119110955.3137585-3-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211119110955.3137585-1-naush@raspberrypi.com> References: <20211119110955.3137585-1-naush@raspberrypi.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 3/3] pipeline: raspberrypi: Remove unused member variables 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" Remove unused member variables from class PipelineHandlerRPi. Signed-off-by: Naushir Patuck --- src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp index 8ed2ebcaafe7..d47306bdfec9 100644 --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp @@ -317,9 +317,6 @@ private: int prepareBuffers(Camera *camera); void freeBuffers(Camera *camera); void mapBuffers(Camera *camera, const RPi::BufferMap &buffers, unsigned int mask); - - MediaDevice *unicam_; - MediaDevice *isp_; }; RPiCameraConfiguration::RPiCameraConfiguration(const RPiCameraData *data) @@ -510,7 +507,7 @@ CameraConfiguration::Status RPiCameraConfiguration::validate() } PipelineHandlerRPi::PipelineHandlerRPi(CameraManager *manager) - : PipelineHandler(manager), unicam_(nullptr), isp_(nullptr) + : PipelineHandler(manager) { }