{"id":9183,"url":"https://patchwork.libcamera.org/api/1.1/covers/9183/?format=json","web_url":"https://patchwork.libcamera.org/cover/9183/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20200804161358.1628962-1-niklas.soderlund@ragnatech.se>","date":"2020-08-04T16:13:49","name":"[libcamera-devel,v7,0/9] libcamera: Generate unique and stable camera IDs","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/1.1/people/5/?format=json","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"mbox":"https://patchwork.libcamera.org/cover/9183/mbox/","series":[{"id":1190,"url":"https://patchwork.libcamera.org/api/1.1/series/1190/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1190","date":"2020-08-04T16:13:49","name":"libcamera: Generate unique and stable camera IDs","version":7,"mbox":"https://patchwork.libcamera.org/series/1190/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/9183/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 16CC6BD87A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  4 Aug 2020 16:14:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7E26160550;\n\tTue,  4 Aug 2020 18:14:21 +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 DE41860545\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  4 Aug 2020 18:14:19 +0200 (CEST)","from bismarck.berto.se (p54ac52a8.dip0.t-ipconnect.de\n\t[84.172.82.168]) by bin-vsp-out-03.atm.binero.net (Halon) with ESMTPA\n\tid 82cb9de9-d66d-11ea-b48b-0050569116f7;\n\tTue, 04 Aug 2020 18:14:17 +0200 (CEST)"],"X-Halon-ID":"82cb9de9-d66d-11ea-b48b-0050569116f7","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,  4 Aug 2020 18:13:49 +0200","Message-Id":"<20200804161358.1628962-1-niklas.soderlund@ragnatech.se>","X-Mailer":"git-send-email 2.28.0","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH v7 0/9] libcamera: Generate unique and\n\tstable camera IDs","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. This version is a complete rewrite of previous \nversions and centers around on firmware descriptions. Biggest chance in \nthis version is that the UVC ides are reworked from scratch.\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    \\_SB_.PCI0.I2C2.CAM0\n    \\_SB_.PCI0.I2C4.CAM1\n- raspberrypi\n    base/soc/i2c0mux/i2c@1/imx219@10\n- rkisp1\n    base/i2c@ff160000/camera@36\n    base/i2c@ff160000/camera@3c\n- uvcvideo\n    \\_SB_.PCI0.RP05.PXSX-2.1.1:1.0-0ac8:3420\n    \\_SB_.PCI0.RP05.PXSX-2.4:1.0-046d:0843\n- vimc\n    platform:vimc Sensor B\n\nNiklas Söderlund (9):\n  libcamera: sysfs: Add new namespace to interact with sysfs\n  libcamera: sysfs: Add method to lookup firmware ID\n  libcamera: v4l2_device: Add method to lookup device path\n  libcamera: camera_sensor: Generate a sensor ID\n  libcamera: camera_sensor: Add accessors for sensor ID\n  libcamera: pipelines: Use sensor ID as camera name\n  libcamera: pipeline: uvcvideo: Generate unique camera names\n  libcamera: camera: Rename name() to id()\n  libcamera: camera_manager: Enforce unique camera IDs\n\n include/libcamera/camera.h                    |   6 +-\n include/libcamera/internal/camera_sensor.h    |   4 +\n include/libcamera/internal/meson.build        |   1 +\n include/libcamera/internal/sysfs.h            |  24 ++++\n include/libcamera/internal/v4l2_device.h      |   1 +\n src/android/camera_device.cpp                 |   4 +-\n src/cam/main.cpp                              |   8 +-\n src/gstreamer/gstlibcameraprovider.cpp        |   4 +-\n src/gstreamer/gstlibcamerasrc.cpp             |   6 +-\n src/libcamera/camera.cpp                      |  40 ++++---\n src/libcamera/camera_controls.cpp             |   2 +-\n src/libcamera/camera_manager.cpp              |  20 ++--\n src/libcamera/camera_sensor.cpp               |  48 ++++++++\n src/libcamera/framebuffer_allocator.cpp       |   2 +-\n src/libcamera/meson.build                     |   1 +\n src/libcamera/pipeline/ipu3/ipu3.cpp          |  12 +-\n .../pipeline/raspberrypi/raspberrypi.cpp      |   7 +-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  16 +--\n src/libcamera/pipeline/simple/simple.cpp      |   2 +-\n src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  |  77 ++++++++++++-\n src/libcamera/pipeline/vimc/vimc.cpp          |   4 +-\n src/libcamera/sysfs.cpp                       | 105 ++++++++++++++++++\n src/libcamera/v4l2_device.cpp                 |  28 +++++\n src/qcam/dng_writer.cpp                       |   4 +-\n src/qcam/main_window.cpp                      |  18 +--\n src/v4l2/v4l2_camera_proxy.cpp                |   2 +-\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/pipeline/ipu3/ipu3_pipeline_test.cpp     |   2 +-\n test/pipeline/rkisp1/rkisp1_pipeline_test.cpp |   2 +-\n test/serialization/serialization_test.h       |   2 +-\n 36 files changed, 381 insertions(+), 85 deletions(-)\n create mode 100644 include/libcamera/internal/sysfs.h\n create mode 100644 src/libcamera/sysfs.cpp"}