Show a patch.

GET /api/patches/20735/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 20735,
    "url": "https://patchwork.libcamera.org/api/patches/20735/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/20735/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20240731183616.1977348-2-mzamazal@redhat.com>",
    "date": "2024-07-31T18:36:14",
    "name": "[v3,1/3] libcamera: simple: Log a missing sensor in a better way",
    "commit_ref": "06674004fb754afded78125aabc642dbf6ff9c84",
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "472fe7970d1f9e50de52f374ecfee83dae195e78",
    "submitter": {
        "id": 177,
        "url": "https://patchwork.libcamera.org/api/people/177/?format=api",
        "name": "Milan Zamazal",
        "email": "mzamazal@redhat.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/20735/mbox/",
    "series": [
        {
            "id": 4471,
            "url": "https://patchwork.libcamera.org/api/series/4471/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4471",
            "date": "2024-07-31T18:36:13",
            "name": "Fix misleading error messages",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/4471/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/20735/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/20735/checks/",
    "tags": {},
    "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 63065BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 31 Jul 2024 18:36:36 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 14BDD63378;\n\tWed, 31 Jul 2024 20:36:36 +0200 (CEST)",
            "from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A03336198E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 31 Jul 2024 20:36:33 +0200 (CEST)",
            "from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-166-K9P66E-YMeK5TbdOzAQ_kQ-1;\n\tWed, 31 Jul 2024 14:36:29 -0400",
            "from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id 33A7F1955F3B; Wed, 31 Jul 2024 18:36:28 +0000 (UTC)",
            "from nuthatch.redhat.com (unknown [10.45.224.46])\n\tby mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 421C4300018D; Wed, 31 Jul 2024 18:36:25 +0000 (UTC)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"HHfMXpEp\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1722450992;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=13QK6JJ/aJcw7c2awxA4fwKa3RpFH6UUr5Y/xzcC1NE=;\n\tb=HHfMXpEppyyIocBblJP5f8kjHMLO6Mb7fIs8Ixxfpi3u4bvdsDwd4GMWGpOonxeIkEbMHl\n\t1NbgT7f3Em+oRr1d7c3w215wmzoBcLs9tlrHNfOFgF6qf9UsoBDFJr/BAfyi+U4FgEWiZu\n\tfWMk6WMIcnPuoVDEVuhLpJBUCpGw0pU=",
        "X-MC-Unique": "K9P66E-YMeK5TbdOzAQ_kQ-1",
        "From": "Milan Zamazal <mzamazal@redhat.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Milan Zamazal <mzamazal@redhat.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>",
        "Subject": "[PATCH v3 1/3] libcamera: simple: Log a missing sensor in a better\n\tway",
        "Date": "Wed, 31 Jul 2024 20:36:14 +0200",
        "Message-ID": "<20240731183616.1977348-2-mzamazal@redhat.com>",
        "In-Reply-To": "<20240731183616.1977348-1-mzamazal@redhat.com>",
        "References": "<20240731183616.1977348-1-mzamazal@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.4",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain; charset=\"US-ASCII\"; x-default=true",
        "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": "SimplePipelineHandler::match may be called several times for different\npipeline configurations.  Not all of these calls must succeed.  For\nexample, for TI AM69 board with a single camera attached, the following\nerror is reported in the log even when libcamera works fine:\n\n  ERROR SimplePipeline simple.cpp:1558 No sensor found\n\nThis is because a sensor is found for /dev/media0 but not for\n/dev/media1.  The error is harmless in such a case and only confuses\nusers who may think no camera is detected at all.  Let's change the\nerror to info and add the device node to the message to indicate the\nerror is specific to the given media only.  It's up to the callers to\nreport a fatal error condition if libcamera cannot work due to no\nmatching pipeline configuration.\n\nSigned-off-by: Milan Zamazal <mzamazal@redhat.com>\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/libcamera/pipeline/simple/simple.cpp | 4 +++-\n 1 file changed, 3 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp\nindex c050966a..9910900e 100644\n--- a/src/libcamera/pipeline/simple/simple.cpp\n+++ b/src/libcamera/pipeline/simple/simple.cpp\n@@ -1547,10 +1547,12 @@ bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)\n \t/* Locate the sensors. */\n \tstd::vector<MediaEntity *> sensors = locateSensors();\n \tif (sensors.empty()) {\n-\t\tLOG(SimplePipeline, Error) << \"No sensor found\";\n+\t\tLOG(SimplePipeline, Info) << \"No sensor found for \" << media_->deviceNode();\n \t\treturn false;\n \t}\n \n+\tLOG(SimplePipeline, Debug) << \"Sensor found for \" << media_->deviceNode();\n+\n \t/*\n \t * Create one camera data instance for each sensor and gather all\n \t * entities in all pipelines.\n",
    "prefixes": [
        "v3",
        "1/3"
    ]
}