{"id":15407,"url":"https://patchwork.libcamera.org/api/1.1/covers/15407/?format=json","web_url":"https://patchwork.libcamera.org/cover/15407/","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":"<20220303234956.1463551-1-djrscally@gmail.com>","date":"2022-03-03T23:49:47","name":"[libcamera-devel,v5,0/9] Enumerate CameraLens by following sensor's ancillary links","submitter":{"id":90,"url":"https://patchwork.libcamera.org/api/1.1/people/90/?format=json","name":"Daniel Scally","email":"djrscally@gmail.com"},"mbox":"https://patchwork.libcamera.org/cover/15407/mbox/","series":[{"id":2950,"url":"https://patchwork.libcamera.org/api/1.1/series/2950/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2950","date":"2022-03-03T23:49:47","name":"Enumerate CameraLens by following sensor's ancillary links","version":5,"mbox":"https://patchwork.libcamera.org/series/2950/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/15407/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 21AF4BE08A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  3 Mar 2022 23:50:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2BA0361168;\n\tFri,  4 Mar 2022 00:50:14 +0100 (CET)","from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com\n\t[IPv6:2a00:1450:4864:20::32d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ED26B601FF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  4 Mar 2022 00:50:11 +0100 (CET)","by mail-wm1-x32d.google.com with SMTP id\n\tm42-20020a05600c3b2a00b00382ab337e14so5072012wms.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 03 Mar 2022 15:50:11 -0800 (PST)","from localhost.localdomain\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net. [86.13.91.161])\n\tby smtp.gmail.com with ESMTPSA id\n\ty4-20020adff144000000b001f022290737sm3079779wro.6.2022.03.03.15.50.10\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 03 Mar 2022 15:50:10 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"i+6fmFLf\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;\n\th=from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=BNH+tKsaAlHOijEprGYrkBllN+NwpP5o2z8hbEXXQcQ=;\n\tb=i+6fmFLfApAHcDR9iqMvwFRe4JCZ/JEoT9ghyOZct5pBavbqi3CiveZ+8OBnR3OA0a\n\tPisJRA51sWKoH5IfqSlNBuHQfYKDSjjk17Csd4TgbJ4SXOX7WKrRXOMEY7wZa8fs/ten\n\txr4qrM5kLuWqXy2oMwvLyJr6w/PiwJQxcDDzshsmGzYu9yv4pKUMuwh4ByBFY1V/+oe2\n\tseZTyQ/5zp+cTtmMs1Mza+7sFjv1ApQRijA9tQyTjraGcLd1A0izdWfKQ48gSb3YXVka\n\tFhXLcIstZMljwbPedkowZnwRIHsOtDfxlIFsZuNgbvW5ZzNb2P+DRBdaOjrYklCn/aTL\n\tIvvg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=BNH+tKsaAlHOijEprGYrkBllN+NwpP5o2z8hbEXXQcQ=;\n\tb=BfMcm1jAZBcSAG3a0lMon4EfEVlmLGnLJG0dDatyLkqUnsJYbxpzWJWQRlZfIDlRiZ\n\t1khojKjt63c9/hK4HWaR1mUhlPo1/8ni7pxJHXeYtCIRxXRPcbrC6kAoF+FwA+oMfSsW\n\tbPwCIO1oUeb/2nvxufOZkf43iJ7J1Ihkt2DyTFCCPKnh8OFLvowYjKfxvUprcK21telt\n\tyJ0+Mo3jswCSJJHuLXLAlBDumQiDnH9v2/5b8fiunN+3//PcHd0zpDR6brLykwcDZudd\n\tbn6qoy5kocGmQZq322c/62evcqZAKP+V/fJVdKLinEgEvsKLDDoaDmi3sQTgRIS+hhnr\n\tqYRg==","X-Gm-Message-State":"AOAM533s1OxanAZp2gQ5Fssi6HEPCgHPcaf5HrI8lyvWCpw9h8WWqrD7\n\t9pJEAN7wSceA9ViyaooB0GM3bJOVf5rd9Q==","X-Google-Smtp-Source":"ABdhPJwj5mHOzUf/qUxGRXEMzjPOb2P9GDVygYXkZOHKPnSnBqM2EW3Cphq29AHzZa+7dPPy7jP7ag==","X-Received":"by 2002:a1c:f003:0:b0:37b:d5fc:5c9e with SMTP id\n\ta3-20020a1cf003000000b0037bd5fc5c9emr5620862wmb.154.1646351411440; \n\tThu, 03 Mar 2022 15:50:11 -0800 (PST)","From":"Daniel Scally <djrscally@gmail.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Thu,  3 Mar 2022 23:49:47 +0000","Message-Id":"<20220303234956.1463551-1-djrscally@gmail.com>","X-Mailer":"git-send-email 2.25.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v5 0/9] Enumerate CameraLens by following\n\tsensor's ancillary links","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hello All\n\nThis series is an attempt at making the incoming VCM support a little more\nagnostic, by following the new style of media links to find VCMs connected to\nSensors in libcamera. This is based on top of master, plus Kate's v8 [1]\n\nThe general principle of the new links is an entity to entity link which will\nbe connected by the kernel between a sensor's entity and an entity for a VCM\ndevice, where those entities have a fwnode match based on the \"lens-focus\"\nproperty against the sensor. These links are then discovered by libcamera and\nfollowed to create an instance of the CameraLens class.\n\nWith the CameraLens available to carry out the controlling of the VCM, I have\npushed the controls to the pipeline handler.\n\nThanks\nDan\n\n[1] https://lists.libcamera.org/pipermail/libcamera-devel/2022-February/029029.html\n\nDaniel Scally (9):\n  libcamera: Add members to MediaEntity to support ancillary entities\n  include: linux: Add MEDIA_LNK_FL_ANCILLARY_LINK\n  libcamera: media_device: Handle ancillary links in populateLinks()\n  libcamera: camera_sensor: Discover VCMs through ancillary links\n  libcamera: camera_lens: Add function to fetch subdev controls\n  libcamera: ipa: Add lens control member to ipu3 ipa interface\n  libcamera: ipa: Rename ctrls_ member\n  libcamera: ipu3: Pass lens controls to config info\n  ipa: ipu3: Send lens controls to pipeline handler\n\n include/libcamera/internal/camera_lens.h   |  4 ++\n include/libcamera/internal/camera_sensor.h |  1 +\n include/libcamera/internal/media_object.h  |  4 ++\n include/libcamera/ipa/ipu3.mojom           |  1 +\n include/linux/media.h                      |  1 +\n src/ipa/ipu3/ipu3.cpp                      | 30 ++++++----\n src/libcamera/camera_lens.cpp              | 11 ++++\n src/libcamera/camera_sensor.cpp            | 40 ++++++++++++++\n src/libcamera/media_device.cpp             | 64 ++++++++++++++++------\n src/libcamera/media_object.cpp             | 15 +++++\n src/libcamera/pipeline/ipu3/ipu3.cpp       |  5 ++\n 11 files changed, 149 insertions(+), 27 deletions(-)"}