{"id":14783,"url":"https://patchwork.libcamera.org/api/1.1/covers/14783/?format=json","web_url":"https://patchwork.libcamera.org/cover/14783/","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":"<20211126003118.42356-1-djrscally@gmail.com>","date":"2021-11-26T00:31:13","name":"[libcamera-devel,0/5] 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/14783/mbox/","series":[{"id":2757,"url":"https://patchwork.libcamera.org/api/1.1/series/2757/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2757","date":"2021-11-26T00:31:13","name":"Enumerate CameraLens by following sensor's ancillary links","version":1,"mbox":"https://patchwork.libcamera.org/series/2757/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/14783/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 B9904BDB13\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 26 Nov 2021 00:31:30 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A3B8060494;\n\tFri, 26 Nov 2021 01:31:29 +0100 (CET)","from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com\n\t[IPv6:2a00:1450:4864:20::42f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A918B6011D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 26 Nov 2021 01:31:27 +0100 (CET)","by mail-wr1-x42f.google.com with SMTP id u18so14960407wrg.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 25 Nov 2021 16:31:27 -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\tb188sm4381455wmd.45.2021.11.25.16.31.26\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 25 Nov 2021 16:31:27 -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=\"LHF2ncm3\"; 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=pipgRkyNdN3zOdLgsOQQkNd8St+GO3v6G5ig4Ux9pEo=;\n\tb=LHF2ncm3Vw5a7cOyw1CmSkOycHt4nmbiVUtLi7imQE3mXIIsy69BWbrR7p+HyWjm+1\n\tT3GP+JYOoci/Tz9bUwRmPF0VUDAjf/T3WIMdFmkiaxmjo9tpqVv/L3TnuhUCqSsR6jCf\n\tY8RbKgACTNJ3pelcW5/mrDRLdZTvPc1Pv/U48FxkqKXQQvANWDjHrE6qIMU9uAxhoQVT\n\tdK96hz+z/2bS2dNGhdsvqmE6Yu/lqGo7mMXlyrD83iRmahfd35uM9znOz2Ieiq2bDlYd\n\tJnfdOhXlDPe56P1La7TyIOXrBJfircDnzMolFmeb4BZB0gAC+DHCu1mZHO0xklpFEDjG\n\tgMVQ==","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=pipgRkyNdN3zOdLgsOQQkNd8St+GO3v6G5ig4Ux9pEo=;\n\tb=e4NcBBCgnzD0H3ZYfn4C4OpBzvfX8AmRZAqSkw0+4W7nxaytte9yAUkLJW2p7N74Jp\n\t+Cs/w2T6DT+9Eoi8BeaGHugpZN8rfSQY7w1rVhP7waBm/NFQiDn2mqgifEQ9bKy6Rafy\n\tEg9NuUDpLIm27tGR1Kf21IzkTj1q65omXZJHciy4ENcft97VtstHjZW1CCLXWDB2/6IN\n\tm2fxIrVvHIuleKMh7CmGtRfsAdQxuOp20moYoLIPBjP1SSJI6J3ujsFXs+vEOYYMoQAK\n\todA/rszZ1jXISAhQ66Gaj8DQzgGxMXZGDW7y9yRSCjUZmZEAgWzMd6zwm+gjCSxfVYiW\n\tX1wA==","X-Gm-Message-State":"AOAM5308DJRVy1HfygDnnQIu0N6FaSMqoYd+nt0rh0SllKr936uFlQ2y\n\t015kLjW0RnbvwhzElNMmVmCSFbnfdRI=","X-Google-Smtp-Source":"ABdhPJwr5kHV711ymMen3ICUb6iCw4+4ilZ5OBRQh+rEiQNc0XLlO2hgRSEfeiwjEhXRYQQPlrDQ+Q==","X-Received":"by 2002:adf:8296:: with SMTP id\n\t22mr10349353wrc.581.1637886687345; \n\tThu, 25 Nov 2021 16:31:27 -0800 (PST)","From":"Daniel Scally <djrscally@gmail.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Fri, 26 Nov 2021 00:31:13 +0000","Message-Id":"<20211126003118.42356-1-djrscally@gmail.com>","X-Mailer":"git-send-email 2.25.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 0/5] 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 described in my series to\nlinux-media [0] to find VCMs connected to Sensors in libcamera. It's based on\ntop of a series from Han-Lin [1] and another from Kate Hsuan [2] (both of which\nseries are pretty neat, by the way)\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, replacing the matching\non driver/device names in Han-Lin's original series.\n\nWith the CameraLens available to carry out the controlling of the VCM, I have\npushed the controls to the pipeline handler and removed both all of that\nfunctionality (including the open()/close() of the VCM subdev) from Kate's\nwork instead.\n\nThanks\nDan\n\n[0] https://patchwork.linuxtv.org/project/linux-media/list/?series=6792\n[1] https://patchwork.libcamera.org/project/libcamera/list/?series=2743\n[2] https://patchwork.libcamera.org/project/libcamera/list/?series=2750\n\nDaniel Scally (5):\n  libcamera: Add support for ancillary links to MediaLink\n  libcamera: media_device: Handle ancillary links in populateLinks()\n  libcamera: ipu3-cio2: Discover VCMs through ancillary links\n  ipa: ipu3: Send lens controls to pipeline handler\n  ipa: ipu3: af: Remove v4l2 interaction from AF algorithm\n\n include/libcamera/internal/media_object.h | 10 +++++\n include/linux/media.h                     |  1 +\n src/ipa/ipu3/algorithms/af.cpp            | 29 +------------\n src/ipa/ipu3/algorithms/af.h              |  3 --\n src/ipa/ipu3/ipu3.cpp                     |  4 ++\n src/libcamera/media_device.cpp            | 52 ++++++++++++++++-------\n src/libcamera/media_object.cpp            | 24 ++++++++++-\n src/libcamera/pipeline/ipu3/cio2.cpp      | 45 +++++++++++---------\n 8 files changed, 101 insertions(+), 67 deletions(-)"}