{"id":9034,"url":"https://patchwork.libcamera.org/api/covers/9034/?format=json","web_url":"https://patchwork.libcamera.org/cover/9034/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200728003058.2871461-1-niklas.soderlund@ragnatech.se>","date":"2020-07-28T00:30:52","name":"[libcamera-devel,v2,0/6] libcamera: Generate unique and stable camera names","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/?format=json","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"mbox":"https://patchwork.libcamera.org/cover/9034/mbox/","series":[{"id":1155,"url":"https://patchwork.libcamera.org/api/series/1155/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1155","date":"2020-07-28T00:30:52","name":"libcamera: Generate unique and stable camera names","version":2,"mbox":"https://patchwork.libcamera.org/series/1155/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/9034/comments/","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id E5754BD86F\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 28 Jul 2020 00:31:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 070BF616FF;\n\tTue, 28 Jul 2020 02:31:18 +0200 (CEST)","from bin-mail-out-06.binero.net (bin-mail-out-06.binero.net\n\t[195.74.38.229])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E78DE6053C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 28 Jul 2020 02:31:16 +0200 (CEST)","from bismarck.berto.se (p4fca2eca.dip0.t-ipconnect.de\n\t[79.202.46.202]) by bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA\n\tid a0eef688-d069-11ea-933e-005056917a89;\n\tTue, 28 Jul 2020 02:31:11 +0200 (CEST)"],"X-Halon-ID":"a0eef688-d069-11ea-933e-005056917a89","Authorized-sender":"niklas@soderlund.pp.se","From":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","To":"libcamera-devel@lists.libcamera.org","Date":"Tue, 28 Jul 2020 02:30:52 +0200","Message-Id":"<20200728003058.2871461-1-niklas.soderlund@ragnatech.se>","X-Mailer":"git-send-email 2.27.0","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH v2 0/6] libcamera: Generate unique and\n\tstable camera names","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hello,\n\nThis series aims to make and enforce unique camera names that are static \nbetween system resets while keeping them user-friendly and adding more \ninformation describing where the cameras are located in the system.  \nThis v2 is a complete rewrite of v1 (libcamera: camera: Add camera ID) \nof this series that centered around bus information instead of this v2 \nthat focus more on user friendly names. \n\nThe weakness in this series is that not a lot of platforms describe the \nrather new location and rotation properties in their devicetree/ACPI.  \nThis leads to issues that can be observed below where both cameras on \nthe ipu3 and rkisp1 platforms are reported to be located on the front \nwhile in reality one is located on the front and the other on the back.  \nThis is not a shortcoming of this series however and will solve itself \nonce the platforms gets update firmware or when CameraSensor learns to \nread this information from configuration files (or by some other means).\n\nPatch 3/6 also needs more work to query the device enumerator for the \nsysfs path instead of building a path that assumes the standard naming \nschema. This is a implementation detail and I think it's more important \nto get speedy feedback on the over all approach of the series.\n\nBefore this series camera names on different systems looked like this (I \ndo not have access to a simple pipeline device):\n\n- ipu3\n    ov13858 8-0010\n    ov5670 10-0036\n- raspberrypi\n    imx219\n- rkisp1\n    ov5695 7-0036\n    ov2685 7-003c\n- uvcvideo\n    Venus USB2.0 Camera: Venus USB2\n    Logitech Webcam C930e\n- vimc\n    VIMC Sensor B\n\nWith this series applied camera names on the same systems:\n\n- ipu3\n    ov13858 location front (PipelineHandlerIPU3)\n    ov5670 location front (PipelineHandlerIPU3)\n- raspberrypi\n    imx219 location front (PipelineHandlerRPi)\n- rkisp1\n    ov5695 location front (PipelineHandlerRkISP1)\n    ov2685 location front (PipelineHandlerRkISP1)\n- uvcvideo\n    Venus USB2.0 Camera: Venus USB2 on bus 3:9 (PipelineHandlerUVC)\n    Logitech Webcam C930e on bus 3:4 serial 9F8F445E (PipelineHandlerUVC)\n- vimc\n    Sensor B location front (PipelineHandlerVimc)\n\nNiklas Söderlund (6):\n  libcamera: camera: Append pipeline name to camera name\n  libcamera: camera: Generate camera name from a CameraSensor\n  libcamera: v4l2_device: Add method to lookup device path\n  libcamera: media_device: Expose media device serial number\n  libcamera: pipeline: uvcvideo: Generate unique camera names\n  libcamera: camera_manager: Enforce unique camera names\n\n include/libcamera/camera.h                    |  5 +++\n include/libcamera/internal/media_device.h     |  2 +\n include/libcamera/internal/v4l2_device.h      |  1 +\n src/libcamera/camera.cpp                      | 42 ++++++++++++++++++-\n src/libcamera/camera_manager.cpp              |  6 +--\n src/libcamera/media_device.cpp                |  7 ++++\n src/libcamera/pipeline/ipu3/ipu3.cpp          | 12 +++---\n .../pipeline/raspberrypi/raspberrypi.cpp      |  3 +-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  2 +-\n src/libcamera/pipeline/simple/simple.cpp      |  2 +-\n src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  | 41 +++++++++++++++++-\n src/libcamera/pipeline/vimc/vimc.cpp          |  4 +-\n src/libcamera/v4l2_device.cpp                 | 24 +++++++++++\n test/camera/buffer_import.cpp                 |  2 +-\n test/camera/capture.cpp                       |  2 +-\n test/camera/configuration_default.cpp         |  2 +-\n test/camera/configuration_set.cpp             |  2 +-\n test/camera/statemachine.cpp                  |  2 +-\n test/controls/control_info_map.cpp            |  2 +-\n test/controls/control_list.cpp                |  2 +-\n test/serialization/serialization_test.h       |  2 +-\n 21 files changed, 142 insertions(+), 25 deletions(-)"}