Show a patch.

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

{
    "id": 20867,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/20867/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/20867/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/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": "<20240809145304.537551-7-dan.scally@ideasonboard.com>",
    "date": "2024-08-09T14:53:03",
    "name": "[6/7] Documentation: Expand introductory content on docs.rst",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "d681fee713469b0580f4cb70e661e0067335e431",
    "submitter": {
        "id": 156,
        "url": "https://patchwork.libcamera.org/api/1.1/people/156/?format=api",
        "name": "Dan Scally",
        "email": "dan.scally@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/20867/mbox/",
    "series": [
        {
            "id": 4507,
            "url": "https://patchwork.libcamera.org/api/1.1/series/4507/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4507",
            "date": "2024-08-09T14:52:57",
            "name": "Documentation improvements",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/4507/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/20867/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/20867/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 029E4C324E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  9 Aug 2024 14:53:32 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5E1A6633CB;\n\tFri,  9 Aug 2024 16:53:32 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5F20663394\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  9 Aug 2024 16:53:21 +0200 (CEST)",
            "from mail.ideasonboard.com\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1AEF2B7E;\n\tFri,  9 Aug 2024 16:52:27 +0200 (CEST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"uWtQ7OTf\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1723215147;\n\tbh=eebjkyPAXBkaW+fuc1VOWTvQ9ym2eDZVluqugpRanvg=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=uWtQ7OTfqIbIpirILx/xmV9Nq5zPcelHaRGWrC1a/qCNv6aGqwEhSY60oAa93nn25\n\tSo+1esxO4pe2lynq00p+av7exWjNCiAwLY2I+GkRbhd/qAjlTB4GYEY2RZU7J6PhJb\n\tetf8xn3t0ZYzZF4mRXmjaEd+ESBS3sfNv3OzEcOU=",
        "From": "Daniel Scally <dan.scally@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Daniel Scally <dan.scally@ideasonboard.com>",
        "Subject": "[PATCH 6/7] Documentation: Expand introductory content on docs.rst",
        "Date": "Fri,  9 Aug 2024 15:53:03 +0100",
        "Message-Id": "<20240809145304.537551-7-dan.scally@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20240809145304.537551-1-dan.scally@ideasonboard.com>",
        "References": "<20240809145304.537551-1-dan.scally@ideasonboard.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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": "docs.rst is the landing page for the documentation from the libcamera\nwebsite, but isn't particularly introductory. Move much of the content\nfrom guides/introduction.rst to docs.rst and expand on it - this will serve as\nthe new introductory page. Reformat the other section headers in docs.rst so\nthey're a match. Remove guides/introduction.rst.\n\nSigned-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n---\n Documentation/c55.svg                    | 175 +++++++++++++++++++++++\n Documentation/docs.rst                   | 128 ++++++++++++++++-\n Documentation/documentation-contents.rst |   1 -\n Documentation/guides/introduction.rst    |  78 ----------\n Documentation/index.rst                  |   1 -\n 5 files changed, 296 insertions(+), 87 deletions(-)\n create mode 100644 Documentation/c55.svg\n delete mode 100644 Documentation/guides/introduction.rst",
    "diff": "diff --git a/Documentation/c55.svg b/Documentation/c55.svg\nnew file mode 100644\nindex 00000000..9dbd52bb\n--- /dev/null\n+++ b/Documentation/c55.svg\n@@ -0,0 +1,175 @@\n+<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n+<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n+ \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n+<!-- Generated by graphviz version 2.43.0 (0)\n+ -->\n+<!-- Title: board Pages: 1 -->\n+<svg width=\"484pt\" height=\"530pt\"\n+ viewBox=\"0.00 0.00 483.50 530.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n+<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 526)\">\n+<title>board</title>\n+<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-526 479.5,-526 479.5,4 -4,4\"/>\n+<!-- n00000001 -->\n+<g id=\"node1\" class=\"node\">\n+<title>n00000001</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M20.5,-316.5C20.5,-316.5 133.5,-316.5 133.5,-316.5 139.5,-316.5 145.5,-322.5 145.5,-328.5 145.5,-328.5 145.5,-388.5 145.5,-388.5 145.5,-394.5 139.5,-400.5 133.5,-400.5 133.5,-400.5 20.5,-400.5 20.5,-400.5 14.5,-400.5 8.5,-394.5 8.5,-388.5 8.5,-388.5 8.5,-328.5 8.5,-328.5 8.5,-322.5 14.5,-316.5 20.5,-316.5\"/>\n+<text text-anchor=\"middle\" x=\"77\" y=\"-385.3\" font-family=\"Times,serif\" font-size=\"14.00\"> </text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"8.5,-377.5 145.5,-377.5 \"/>\n+<text text-anchor=\"middle\" x=\"77\" y=\"-362.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali&#45;c55 tpg</text>\n+<text text-anchor=\"middle\" x=\"77\" y=\"-347.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l&#45;subdev0</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"8.5,-339.5 145.5,-339.5 \"/>\n+<text text-anchor=\"middle\" x=\"77\" y=\"-324.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+</g>\n+<!-- n00000003 -->\n+<g id=\"node2\" class=\"node\">\n+<title>n00000003</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M210.5,-195.5C210.5,-195.5 323.5,-195.5 323.5,-195.5 329.5,-195.5 335.5,-201.5 335.5,-207.5 335.5,-207.5 335.5,-267.5 335.5,-267.5 335.5,-273.5 329.5,-279.5 323.5,-279.5 323.5,-279.5 210.5,-279.5 210.5,-279.5 204.5,-279.5 198.5,-273.5 198.5,-267.5 198.5,-267.5 198.5,-207.5 198.5,-207.5 198.5,-201.5 204.5,-195.5 210.5,-195.5\"/>\n+<text text-anchor=\"middle\" x=\"232.5\" y=\"-264.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"266.5,-256.5 266.5,-279.5 \"/>\n+<text text-anchor=\"middle\" x=\"301\" y=\"-264.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"198.5,-256.5 335.5,-256.5 \"/>\n+<text text-anchor=\"middle\" x=\"267\" y=\"-241.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali&#45;c55 isp</text>\n+<text text-anchor=\"middle\" x=\"267\" y=\"-226.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l&#45;subdev1</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"198.5,-218.5 335.5,-218.5 \"/>\n+<text text-anchor=\"middle\" x=\"221\" y=\"-203.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"243.5,-195.5 243.5,-218.5 \"/>\n+<text text-anchor=\"middle\" x=\"266.5\" y=\"-203.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"289.5,-195.5 289.5,-218.5 \"/>\n+<text text-anchor=\"middle\" x=\"312.5\" y=\"-203.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n+</g>\n+<!-- n00000001&#45;&gt;n00000003 -->\n+<g id=\"edge1\" class=\"edge\">\n+<title>n00000001:port0&#45;&gt;n00000003:port0</title>\n+<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M147,-327.5C153.23,-327.5 151.15,-320.9 155,-316 169.96,-296.96 169.41,-275.56 186.85,-269.92\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"187.58,-273.36 197,-268.5 186.61,-266.42 187.58,-273.36\"/>\n+</g>\n+<!-- n00000009 -->\n+<g id=\"node3\" class=\"node\">\n+<title>n00000009</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M182,-74.5C182,-74.5 306,-74.5 306,-74.5 312,-74.5 318,-80.5 318,-86.5 318,-86.5 318,-146.5 318,-146.5 318,-152.5 312,-158.5 306,-158.5 306,-158.5 182,-158.5 182,-158.5 176,-158.5 170,-152.5 170,-146.5 170,-146.5 170,-86.5 170,-86.5 170,-80.5 176,-74.5 182,-74.5\"/>\n+<text text-anchor=\"middle\" x=\"207\" y=\"-143.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"244,-135.5 244,-158.5 \"/>\n+<text text-anchor=\"middle\" x=\"281\" y=\"-143.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"170,-135.5 318,-135.5 \"/>\n+<text text-anchor=\"middle\" x=\"244\" y=\"-120.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali&#45;c55 resizer fr</text>\n+<text text-anchor=\"middle\" x=\"244\" y=\"-105.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l&#45;subdev2</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"170,-97.5 318,-97.5 \"/>\n+<text text-anchor=\"middle\" x=\"244\" y=\"-82.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n+</g>\n+<!-- n00000003&#45;&gt;n00000009 -->\n+<g id=\"edge2\" class=\"edge\">\n+<title>n00000003:port1&#45;&gt;n00000009:port0</title>\n+<path fill=\"none\" stroke=\"black\" stroke-width=\"2\" d=\"M221,-195C221,-181.86 212.79,-177.8 208.95,-168.92\"/>\n+<polygon fill=\"black\" stroke=\"black\" stroke-width=\"2\" points=\"212.36,-168.14 207,-159 205.49,-169.49 212.36,-168.14\"/>\n+</g>\n+<!-- n00000003&#45;&gt;n00000009 -->\n+<g id=\"edge3\" class=\"edge\">\n+<title>n00000003:port2&#45;&gt;n00000009:port2</title>\n+<path fill=\"none\" stroke=\"black\" stroke-width=\"2\" d=\"M266,-195C266,-181.73 274.79,-177.84 278.91,-168.96\"/>\n+<polygon fill=\"black\" stroke=\"black\" stroke-width=\"2\" points=\"282.38,-169.51 281,-159 275.53,-168.07 282.38,-169.51\"/>\n+</g>\n+<!-- n0000000d -->\n+<g id=\"node4\" class=\"node\">\n+<title>n0000000d</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M12,-74.5C12,-74.5 140,-74.5 140,-74.5 146,-74.5 152,-80.5 152,-86.5 152,-86.5 152,-146.5 152,-146.5 152,-152.5 146,-158.5 140,-158.5 140,-158.5 12,-158.5 12,-158.5 6,-158.5 0,-152.5 0,-146.5 0,-146.5 0,-86.5 0,-86.5 0,-80.5 6,-74.5 12,-74.5\"/>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-143.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"0,-135.5 152,-135.5 \"/>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-120.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali&#45;c55 resizer ds</text>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-105.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l&#45;subdev3</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"0,-97.5 152,-97.5 \"/>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-82.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n+</g>\n+<!-- n00000003&#45;&gt;n0000000d -->\n+<g id=\"edge4\" class=\"edge\">\n+<title>n00000003:port1&#45;&gt;n0000000d:port0</title>\n+<path fill=\"none\" stroke=\"black\" stroke-width=\"2\" d=\"M197,-206.5C170.51,-206.5 176.57,-180.43 161,-159 160.2,-157.9 159.66,-156.73 159.25,-155.57\"/>\n+<polygon fill=\"black\" stroke=\"black\" stroke-width=\"2\" points=\"161.89,-153.26 153,-147.5 156.36,-157.55 161.89,-153.26\"/>\n+</g>\n+<!-- n0000001c -->\n+<g id=\"node5\" class=\"node\">\n+<title>n0000001c</title>\n+<polygon fill=\"yellow\" stroke=\"black\" points=\"475.5,-135.5 336.5,-135.5 336.5,-97.5 475.5,-97.5 475.5,-135.5\"/>\n+<text text-anchor=\"middle\" x=\"406\" y=\"-120.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali&#45;c55 3a stats</text>\n+<text text-anchor=\"middle\" x=\"406\" y=\"-105.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/video3</text>\n+</g>\n+<!-- n00000003&#45;&gt;n0000001c -->\n+<g id=\"edge5\" class=\"edge\">\n+<title>n00000003:port3&#45;&gt;n0000001c</title>\n+<path fill=\"none\" stroke=\"black\" d=\"M337,-206.5C368.55,-206.5 387.74,-171.13 397.62,-144.99\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"400.94,-146.11 400.96,-135.51 394.33,-143.78 400.94,-146.11\"/>\n+</g>\n+<!-- n00000010 -->\n+<g id=\"node6\" class=\"node\">\n+<title>n00000010</title>\n+<polygon fill=\"yellow\" stroke=\"black\" points=\"293,-38 195,-38 195,0 293,0 293,-38\"/>\n+<text text-anchor=\"middle\" x=\"244\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">mali&#45;c55 fr</text>\n+<text text-anchor=\"middle\" x=\"244\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/video0</text>\n+</g>\n+<!-- n00000009&#45;&gt;n00000010 -->\n+<g id=\"edge6\" class=\"edge\">\n+<title>n00000009:port1&#45;&gt;n00000010</title>\n+<path fill=\"none\" stroke=\"black\" d=\"M244,-74C244,-65.79 244,-56.87 244,-48.69\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"247.5,-48.49 244,-38.49 240.5,-48.49 247.5,-48.49\"/>\n+</g>\n+<!-- n00000014 -->\n+<g id=\"node7\" class=\"node\">\n+<title>n00000014</title>\n+<polygon fill=\"yellow\" stroke=\"black\" points=\"125,-38 27,-38 27,0 125,0 125,-38\"/>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">mali&#45;c55 ds</text>\n+<text text-anchor=\"middle\" x=\"76\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/video1</text>\n+</g>\n+<!-- n0000000d&#45;&gt;n00000014 -->\n+<g id=\"edge7\" class=\"edge\">\n+<title>n0000000d:port1&#45;&gt;n00000014</title>\n+<path fill=\"none\" stroke=\"black\" d=\"M76,-74C76,-65.79 76,-56.87 76,-48.69\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"79.5,-48.49 76,-38.49 72.5,-48.49 79.5,-48.49\"/>\n+</g>\n+<!-- n00000018 -->\n+<g id=\"node8\" class=\"node\">\n+<title>n00000018</title>\n+<polygon fill=\"yellow\" stroke=\"black\" points=\"475.5,-377.5 318.5,-377.5 318.5,-339.5 475.5,-339.5 475.5,-377.5\"/>\n+<text text-anchor=\"middle\" x=\"397\" y=\"-362.3\" font-family=\"Times,serif\" font-size=\"14.00\">mali&#45;c55 3a params</text>\n+<text text-anchor=\"middle\" x=\"397\" y=\"-347.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/video2</text>\n+</g>\n+<!-- n00000018&#45;&gt;n00000003 -->\n+<g id=\"edge8\" class=\"edge\">\n+<title>n00000018&#45;&gt;n00000003:port4</title>\n+<path fill=\"none\" stroke=\"black\" d=\"M393.36,-339.49C387.61,-316.23 374.19,-277.78 347.14,-269.93\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"347.39,-266.43 337,-268.5 346.42,-273.36 347.39,-266.43\"/>\n+</g>\n+<!-- n00000030 -->\n+<g id=\"node9\" class=\"node\">\n+<title>n00000030</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M175.5,-316.5C175.5,-316.5 288.5,-316.5 288.5,-316.5 294.5,-316.5 300.5,-322.5 300.5,-328.5 300.5,-328.5 300.5,-388.5 300.5,-388.5 300.5,-394.5 294.5,-400.5 288.5,-400.5 288.5,-400.5 175.5,-400.5 175.5,-400.5 169.5,-400.5 163.5,-394.5 163.5,-388.5 163.5,-388.5 163.5,-328.5 163.5,-328.5 163.5,-322.5 169.5,-316.5 175.5,-316.5\"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-385.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"163.5,-377.5 300.5,-377.5 \"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-362.3\" font-family=\"Times,serif\" font-size=\"14.00\">lte&#45;csi2&#45;rx</text>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-347.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l&#45;subdev4</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"163.5,-339.5 300.5,-339.5 \"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-324.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n+</g>\n+<!-- n00000030&#45;&gt;n00000003 -->\n+<g id=\"edge9\" class=\"edge\">\n+<title>n00000030:port1&#45;&gt;n00000003:port0</title>\n+<path fill=\"none\" stroke=\"black\" d=\"M232,-316C232,-304 232,-298.75 232,-290.12\"/>\n+<polygon fill=\"black\" stroke=\"black\" points=\"235.5,-290 232,-280 228.5,-290 235.5,-290\"/>\n+</g>\n+<!-- n00000035 -->\n+<g id=\"node10\" class=\"node\">\n+<title>n00000035</title>\n+<path fill=\"green\" stroke=\"black\" d=\"M175.5,-437.5C175.5,-437.5 288.5,-437.5 288.5,-437.5 294.5,-437.5 300.5,-443.5 300.5,-449.5 300.5,-449.5 300.5,-509.5 300.5,-509.5 300.5,-515.5 294.5,-521.5 288.5,-521.5 288.5,-521.5 175.5,-521.5 175.5,-521.5 169.5,-521.5 163.5,-515.5 163.5,-509.5 163.5,-509.5 163.5,-449.5 163.5,-449.5 163.5,-443.5 169.5,-437.5 175.5,-437.5\"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-506.3\" font-family=\"Times,serif\" font-size=\"14.00\"> </text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"163.5,-498.5 300.5,-498.5 \"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-483.3\" font-family=\"Times,serif\" font-size=\"14.00\">imx415 1&#45;001a</text>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-468.3\" font-family=\"Times,serif\" font-size=\"14.00\">/dev/v4l&#45;subdev5</text>\n+<polyline fill=\"none\" stroke=\"black\" points=\"163.5,-460.5 300.5,-460.5 \"/>\n+<text text-anchor=\"middle\" x=\"232\" y=\"-445.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n+</g>\n+<!-- n00000035&#45;&gt;n00000030 -->\n+<g id=\"edge10\" class=\"edge\">\n+<title>n00000035:port0&#45;&gt;n00000030:port0</title>\n+<path fill=\"none\" stroke=\"black\" stroke-width=\"2\" d=\"M232,-437C232,-425 232,-419.75 232,-411.12\"/>\n+<polygon fill=\"black\" stroke=\"black\" stroke-width=\"2\" points=\"235.5,-411 232,-401 228.5,-411 235.5,-411\"/>\n+</g>\n+</g>\n+</svg>\ndiff --git a/Documentation/docs.rst b/Documentation/docs.rst\nindex d65b2b4f..c495fa61 100644\n--- a/Documentation/docs.rst\n+++ b/Documentation/docs.rst\n@@ -14,12 +14,87 @@ Documentation\n \n    API <api-html/index>\n \n-API\n-===\n+What is libcamera exactly?\n+==========================\n+\n+libcamera is an open source complex camera support library for Linux. The\n+library interfaces with Linux kernel uAPIs implemented by device drivers and\n+provides an intuitive API to developers in order to simplify the complexity\n+involved in capturing images from complex cameras on Linux systems.\n+\n+What's a \"complex camera\"?\n+==========================\n+\n+A modern \"camera\" tends to infact be several different pieces of hardware which\n+must all be controlled together in order to capture images. For example the\n+pipeline might consist of a camera sensor which actually records the data, a\n+receiver which accepts those data transmitted from the camera sensor and an\n+image signal processor which processes those data into a useful image in an\n+accepted format. The Linux kernel handles these multimedia devices through the\n+'Linux media' subsystem and provides a set of APIs (application programming\n+interfaces) known collectively as V4L2 (`Video for Linux 2`_) and the\n+`Media Controller`_ API which provide an interface to interact and control media\n+devices.\n+\n+.. _Video for Linux 2: https://www.linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/v4l/v4l2.html\n+.. _Media Controller: https://www.linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/mediactl/media-controller.html\n+\n+Included in this subsystem are drivers for camera sensors, CSI2 (Camera\n+Serial Interface) receivers, and ISPs (Image Signal Processors)\n+\n+The usage of these drivers to provide a functioning camera stack is a\n+responsibility that lies in userspace which is commonly implemented separately\n+by vendors without a common architecture or API for application developers. This\n+adds a lot of complexity to the task, particularly when considering that the\n+differences in hardware pipelines and their representation in the kernel's APIs\n+often necessitates bespoke handling.\n+\n+What is libcamera for?\n+======================\n \n-The libcamera API is extensively documented using Doxygen. The :ref:`API\n-nightly build <api>` contains the most up-to-date API documentation, built from\n-the latest master branch.\n+libcamera provides a complete camera stack for Linux based systems to abstract\n+the configuration of hardware and image control algorithms required to obtain\n+desirable results from the camera through the kernel's APIs, reducing those\n+operations to a simple and consistent method for developers. In short instead of\n+having to deal with this:\n+\n+.. figure:: c55.svg\n+\n+You can instead simply deal with this::\n+\n+  >>> import libcamera as lc\n+  >>> camera_manager = lc.CameraManager.singleton()\n+  [0:15:59.582029920] [504]  INFO Camera camera_manager.cpp:313 libcamera v0.3.0+182-01e57380\n+  >>> for camera in camera_manager.cameras:\n+  ...     print(f' - {camera.id}')\n+  ...\n+   - mali-c55 tpg\n+   - imx415 1-001a\n+\n+And the library handles the rest for you. These documentary pages give more\n+information on the internal workings of libcamera (and the kernel camera stack\n+that lies behind it) as well as guidance on using libcamera in an application or\n+extending the library with support for your hardware (through the pipeline\n+handler and IPA module writer's guides).\n+\n+How should I use it?\n+====================\n+\n+There are a few ways you might want to use libcamera, depending on your\n+application. It's always possible to use the library directly of course, and you\n+can find detailed information on how to do so in the\n+:doc:`application writer's guide <guides/application-developer>`. It may be more\n+appropriate to use one of the frameworks with libcamera support. For example an\n+application powering an embedded media device incorporating capture, encoding\n+and streaming of both video and audio might benefit from using `gstreamer`_ (for\n+which libcamera provides a plugin). Similarly an application for user-facing\n+devices like a laptop would likely benefit accessing cameras through the XDG\n+camera portal and `pipewire`_, which brings the advantages of resource sharing\n+(multiple applications accessing the stream at the same time) and access\n+control.\n+\n+.. _gstreamer: https://gstreamer.freedesktop.org/\n+.. _pipewire: https://pipewire.org/\n \n libcamera Architecture\n ======================\n@@ -177,7 +252,7 @@ Helpers and Support Classes\n \n \n V4L2 Compatibility Layer\n-------------------------\n+========================\n \n V4L2 compatibility is achieved through a shared library that traps all\n accesses to camera devices and routes them to libcamera to emulate high-level\n@@ -190,7 +265,7 @@ designed for video conferencing.\n \n \n Android Camera HAL\n-------------------\n+==================\n \n Camera support for Android is achieved through a generic Android\n camera HAL implementation on top of libcamera. The HAL will implement internally\n@@ -200,3 +275,42 @@ support.\n The Android camera HAL implementation will initially target the\n LIMITED hardware level, with support for the FULL level then being gradually\n implemented.\n+\n+Platform Support\n+================\n+\n+The library currently supports the following hardware platforms specifically\n+with dedicated pipeline handlers:\n+\n+   -  Arm Mali-C55 (mali-c55)\n+   -  Intel IPU3 (ipu3)\n+   -  Rockchip RK3399 (rkisp1)\n+   -  RaspberryPi 3 and 4 (rpi/vc4)\n+\n+Furthermore, generic platform support is provided for the following:\n+\n+   -  USB video device class cameras (uvcvideo)\n+   -  iMX7, Allwinner Sun6i (simple)\n+   -  Virtual media controller driver for test use cases (vimc)\n+\n+Licensing\n+=========\n+\n+The libcamera core, is covered by the `LGPL-2.1-or-later`_ license. Pipeline\n+Handlers are a part of the libcamera code base and need to be contributed\n+upstream by device vendors. IPA modules included in libcamera are covered by a\n+free software license, however third-parties may develop IPA modules outside of\n+libcamera and distribute them under a closed-source license, provided they do\n+not include source code from the libcamera project.\n+\n+The libcamera project itself contains multiple libraries, applications and\n+utilities. Licenses are expressed through SPDX tags in text-based files that\n+support comments, and through the .reuse/dep5 file otherwise. A copy of all\n+licenses are stored in the LICENSES directory, and a full summary of the\n+licensing used throughout the project can be found in the COPYING.rst document.\n+\n+Applications which link dynamically against libcamera and use only the public\n+API are an independent work of the authors and have no license restrictions\n+imposed upon them from libcamera.\n+\n+.. _LGPL-2.1-or-later: https://spdx.org/licenses/LGPL-2.1-or-later.html\ndiff --git a/Documentation/documentation-contents.rst b/Documentation/documentation-contents.rst\nindex dedf390c..114c11ac 100644\n--- a/Documentation/documentation-contents.rst\n+++ b/Documentation/documentation-contents.rst\n@@ -10,7 +10,6 @@\n    * :doc:`/environment_variables`\n    * :doc:`/feature_requirements`\n    * :doc:`/guides/application-developer`\n-   * :doc:`/guides/introduction`\n    * :doc:`/guides/ipa`\n    * :doc:`/guides/pipeline-handler`\n    * :doc:`/guides/tracing`\ndiff --git a/Documentation/guides/introduction.rst b/Documentation/guides/introduction.rst\ndeleted file mode 100644\nindex e419eb9d..00000000\n--- a/Documentation/guides/introduction.rst\n+++ /dev/null\n@@ -1,78 +0,0 @@\n-.. SPDX-License-Identifier: CC-BY-SA-4.0\n-\n-.. include:: ../documentation-contents.rst\n-\n-Developers guide to libcamera\n-=============================\n-\n-The Linux kernel handles multimedia devices through the 'Linux media' subsystem\n-and provides a set of APIs (application programming interfaces) known\n-collectively as V4L2 (`Video for Linux 2`_) and the `Media Controller`_ API\n-which provide an interface to interact and control media devices.\n-\n-Included in this subsystem are drivers for camera sensors, CSI2 (Camera\n-Serial Interface) receivers, and ISPs (Image Signal Processors)\n-\n-The usage of these drivers to provide a functioning camera stack is a\n-responsibility that lies in userspace which is commonly implemented separately\n-by vendors without a common architecture or API for application developers.\n-\n-libcamera provides a complete camera stack for Linux based systems to abstract\n-functionality desired by camera application developers and process the\n-configuration of hardware and image control algorithms required to obtain\n-desirable results from the camera.\n-\n-.. _Video for Linux 2: https://www.linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/v4l/v4l2.html\n-.. _Media Controller: https://www.linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/mediactl/media-controller.html\n-\n-\n-In this developers guide the current `Platform Support`_ is detailed, as well as\n-an overview of the `Licensing`_ requirements of the project.\n-\n-This introduction is followed by a walkthrough tutorial to newcomers wishing to\n-support a new platform with the `Pipeline Handler Writers Guide`_ and for those\n-looking to make use of the libcamera native API an `Application Writers Guide`_\n-provides a tutorial of the key APIs exposed by libcamera.\n-\n-.. _Pipeline Handler Writers Guide: pipeline-handler.html\n-.. _Application Writers Guide: application-developer.html\n-\n-.. TODO: Correctly link to the other articles of the guide\n-\n-Platform Support\n-----------------\n-\n-The library currently supports the following hardware platforms specifically\n-with dedicated pipeline handlers:\n-\n-   -  Intel IPU3 (ipu3)\n-   -  Rockchip RK3399 (rkisp1)\n-   -  RaspberryPi 3 and 4 (rpi/vc4)\n-\n-Furthermore, generic platform support is provided for the following:\n-\n-   -  USB video device class cameras (uvcvideo)\n-   -  iMX7, Allwinner Sun6i (simple)\n-   -  Virtual media controller driver for test use cases (vimc)\n-\n-Licensing\n----------\n-\n-The libcamera core, is covered by the `LGPL-2.1-or-later`_ license. Pipeline\n-Handlers are a part of the libcamera code base and need to be contributed\n-upstream by device vendors. IPA modules included in libcamera are covered by a\n-free software license, however third-parties may develop IPA modules outside of\n-libcamera and distribute them under a closed-source license, provided they do\n-not include source code from the libcamera project.\n-\n-The libcamera project itself contains multiple libraries, applications and\n-utilities. Licenses are expressed through SPDX tags in text-based files that\n-support comments, and through the .reuse/dep5 file otherwise. A copy of all\n-licenses are stored in the LICENSES directory, and a full summary of the\n-licensing used throughout the project can be found in the COPYING.rst document.\n-\n-Applications which link dynamically against libcamera and use only the public\n-API are an independent work of the authors and have no license restrictions\n-imposed upon them from libcamera.\n-\n-.. _LGPL-2.1-or-later: https://spdx.org/licenses/LGPL-2.1-or-later.html\ndiff --git a/Documentation/index.rst b/Documentation/index.rst\nindex 59416906..6d7d2ca3 100644\n--- a/Documentation/index.rst\n+++ b/Documentation/index.rst\n@@ -17,7 +17,6 @@\n    Application Writer's Guide <guides/application-developer>\n    Camera Sensor Model <camera-sensor-model>\n    Camera Stack <camera_stack>\n-   Developer Guide <guides/introduction>\n    Environment variables <environment_variables>\n    Feature Requirements <feature_requirements>\n    IPA Writer's guide <guides/ipa>\n",
    "prefixes": [
        "6/7"
    ]
}