Show a cover letter.

GET /api/covers/2008479/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2008479,
    "url": "http://patchwork.ozlabs.org/api/covers/2008479/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/cover/20241108143600.756224-1-herve.codina@bootlin.com/",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/projects/28/?format=api",
        "name": "Linux PCI development",
        "link_name": "linux-pci",
        "list_id": "linux-pci.vger.kernel.org",
        "list_email": "linux-pci@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20241108143600.756224-1-herve.codina@bootlin.com>",
    "list_archive_url": null,
    "date": "2024-11-08T14:35:53",
    "name": "[v2,0/6] Add support for the PCI host bridge device-tree node creation.",
    "submitter": {
        "id": 81983,
        "url": "http://patchwork.ozlabs.org/api/people/81983/?format=api",
        "name": "Herve Codina",
        "email": "herve.codina@bootlin.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/cover/20241108143600.756224-1-herve.codina@bootlin.com/mbox/",
    "series": [
        {
            "id": 431925,
            "url": "http://patchwork.ozlabs.org/api/series/431925/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=431925",
            "date": "2024-11-08T14:35:53",
            "name": "Add support for the PCI host bridge device-tree node creation.",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/431925/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2008479/comments/",
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-16327-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-pci@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=bootlin.com header.i=@bootlin.com header.a=rsa-sha256\n header.s=gm1 header.b=ZhyO61ff;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org;\n envelope-from=linux-pci+bounces-16327-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com\n header.b=\"ZhyO61ff\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=217.70.183.200",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=bootlin.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=bootlin.com"
        ],
        "Received": [
            "from am.mirrors.kernel.org (am.mirrors.kernel.org\n [IPv6:2604:1380:4601:e00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4XlM291YrWz1xyM\n\tfor <incoming@patchwork.ozlabs.org>; Sat,  9 Nov 2024 01:36:17 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (wormhole.subspace.kernel.org\n [52.25.139.140])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby am.mirrors.kernel.org (Postfix) with ESMTPS id D28BC1F2607C\n\tfor <incoming@patchwork.ozlabs.org>; Fri,  8 Nov 2024 14:36:14 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7FD941F4701;\n\tFri,  8 Nov 2024 14:36:09 +0000 (UTC)",
            "from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net\n [217.70.183.200])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 8B7261F12FD;\n\tFri,  8 Nov 2024 14:36:05 +0000 (UTC)",
            "by mail.gandi.net (Postfix) with ESMTPA id 28C8320008;\n\tFri,  8 Nov 2024 14:36:03 +0000 (UTC)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1731076569; cv=none;\n b=k2BImEwCrNXm3e1rLI3Wv4CEsNvMjuaWcOeVPlhH2sKEs/IAG4rZXSxNsiru7pLRjcg8ry09M5CGVzUKIQumR3pmqoH+1SZgxzmkaxhvu5lHfEwJknGVb0Rg6ULzVmfg5HicpKFTtxL4eicX0/Qc4Lf6RX4DVGMDSbbddisprA0=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1731076569; c=relaxed/simple;\n\tbh=BgKcz9L2ts5PvR9+5uwub0a+ugZVC/vGXTZMum44wMA=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type;\n b=rJ5Ty26DTGvWORLjTfnL9g6KWALkci7e8meBrnC8WOwK0MtBpPwi38oBU6ojKvwv3SOJYXFcFWUr5Gana8UCxFj6ugTf5CX6z7Z7oolNz8xaaDUbT5XPs2yKEBknypfFY9doTQPYXMSZjuIc5wh1x7mZCJicF9DPLEXXkO9hY7Y=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=bootlin.com;\n spf=pass smtp.mailfrom=bootlin.com;\n dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com\n header.b=ZhyO61ff; arc=none smtp.client-ip=217.70.183.200",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1;\n\tt=1731076564;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\t to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\t content-transfer-encoding:content-transfer-encoding;\n\tbh=39PhuNNlTUkyPBAcnLEBVhfzRUsBonILfFfD3PYHodI=;\n\tb=ZhyO61ffrbRWuH/9QMUF5Pf0ZeE395/y2VPtTeQrnv2Wx0ZpZpxHCfwQNDYyzbcYTcxK7E\n\tcdqMKxARttYqcMbz9h30K6dnU7uTpekEA6EswwQDYlMrP0W0NM38y2lSZEjZ6BuPh8dgHH\n\tZRprefWjaCl+5XMNtAs+6rOk2YRobSeKSCD+pm2ZIGvmkqqy2LBJcVjXI5T9JBUEobZqWd\n\tLpWax32JQcEXDc9eCixyNhVcwmldjU6RkMFvarbbCSfmTH9hku2An3n6RIEU7Yk9kyyTcF\n\tdMZWy57L3luT6W+vnPgxGNK/GYipYJN/qybFAE1wuRYAOc6g0AG9y+1D9isVcA==",
        "From": "Herve Codina <herve.codina@bootlin.com>",
        "To": "Greg Kroah-Hartman <gregkh@linuxfoundation.org>,\n\t\"Rafael J. Wysocki\" <rafael@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tSaravana Kannan <saravanak@google.com>,\n\tBjorn Helgaas <bhelgaas@google.com>,\n\tLizhi Hou <lizhi.hou@amd.com>",
        "Cc": "linux-kernel@vger.kernel.org,\n\tdevicetree@vger.kernel.org,\n\tlinux-pci@vger.kernel.org,\n\tAllan Nielsen <allan.nielsen@microchip.com>,\n\tHoratiu Vultur <horatiu.vultur@microchip.com>,\n\tSteen Hegelund <steen.hegelund@microchip.com>,\n\tThomas Petazzoni <thomas.petazzoni@bootlin.com>,\n\tHerve Codina <herve.codina@bootlin.com>",
        "Subject": "[PATCH v2 0/6] Add support for the PCI host bridge device-tree node\n creation.",
        "Date": "Fri,  8 Nov 2024 15:35:53 +0100",
        "Message-ID": "<20241108143600.756224-1-herve.codina@bootlin.com>",
        "X-Mailer": "git-send-email 2.46.2",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-pci@vger.kernel.org",
        "List-Id": "<linux-pci.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-GND-Sasl": "herve.codina@bootlin.com"
    },
    "content": "Hi,\n\nThis series adds support for creating a device-tree node for the PCI\nhost bridge on non device-tree based system.\n\nCreating device-tree nodes for PCI devices and PCI-PCI bridges already\nexists upstream. It was added in commit 407d1a51921e (\"PCI: Create\ndevice tree node for bridge\"). Created device-tree nodes need a parent\nnode to be attached to. For the first level devices, on device-tree\nbased system, this parent node (i.e. the PCI host bridge) is described\nin the base device-tree. The PCI bus related to this bridge (PCI root\nbus) inherit of the PCI host bridge device-tree node.\n\nThe LAN966x PCI device driver was recently accepted [1] and relies on\nthis feature.\n\nOn system where the base hardware is not described by a device-tree, the\nPCI host bridge to which first level created PCI devices need to be\nattach to does not exist. This is the case for instance on ACPI\ndescribed systems such as x86.\n\nThis series goal is to handle this case.\n\nIn order to have the PCI host bridge device-tree node available even\non x86, this top level node is created (if not already present) based on\ninformation computed by the PCI core. It follows the same mechanism as\nthe one used for PCI devices device-tree node creation.\n\nAs for device-tree based system, the PCI root bus handled by the PCI\nhost bridge inherit of this created node.\n\nIn order to have this feature available, a number of changes are needed:\n  - Patch 1 and 2: Introduce and use device_{add,remove}_of_node().\n    This function will also be used in the root PCI bus node creation.\n\n  - Patch 3 and 4: Improve existing functions to reuse them in the root\n    PCI bus node creation.\n\n  - Patch 5: Set #address-cells and #size-cells in the empty device-tree\n    root node.\n\n  - Patch 6: The PCI host bridge device-tree node creation itself.\n\nWith those modifications, the LAN966x PCI device is working on x86 systems\nand all device-tree kunit tests (including the of_unittest_pci_node test)\npass successfully with the following command:\n  qemu-system-x86_64 -machine q35 -nographic \\\n    -kernel arch/x86_64/boot/bzImage --append console=ttyS0 \\\n    -device pcie-root-port,port=0x10,chassis=9,id=pci.9,bus=pcie.0,multifunction=on,addr=0x3 \\\n    -device pcie-root-port,port=0x11,chassis=10,id=pci.10,bus=pcie.0,addr=0x3.0x1 \\\n    -device x3130-upstream,id=pci.11,bus=pci.9,addr=0x0 \\\n    -device xio3130-downstream,port=0x0,chassis=11,id=pci.12,bus=pci.11,multifunction=on,addr=0x0 \\\n    -device i82801b11-bridge,id=pci.13,bus=pcie.0,addr=0x4 \\\n    -device pci-bridge,chassis_nr=14,id=pci.14,bus=pci.13,addr=0x0 \\\n    -device pci-testdev,bus=pci.12,addr=0x0\n\n[1] https://lore.kernel.org/lkml/7512cbb7911b8395d926e9e9e390fbb55ce3aea9.camel@pengutronix.de/\n\nCompare to previous iteration, this v2 series mainly:\n  - Adds #address-cells/#size-cells in the empty root DT node.\n  - Creates the device-tree node for the PCI root bridge and reuses it\n    for the PCI root bus instead of just creating it for the PCI root\n    bus.\n\nBest regards,\nHervé Codina\n\nChanges v1 -> v2\n  v1: https://lore.kernel.org/lkml/20241104172001.165640-1-herve.codina@bootlin.com/\n\n  - Patch 1\n    Remove Cc: stable\n\n  - Patch 2\n    Remove Fixup tag and Cc: stable\n\n  - Patches 3 and 4\n    No changes\n\n  - Patch 5\n    Add #address-cells/#size-cells in the empty root DT node instead of\n    updating default values for x86.\n    Update commit log and commit title.\n\n  - Patch 6\n    Create device-tree node for the PCI host bridge and reuse it for\n    the PCI root bus. Rename functions accordingly.\n    Use \"pci\" instead of \"pci-root\" for the PCI host bridge node name.\n    Use \"res->start - windows->offset\" for the PCI bus addresses.\n    Update commit log and commit title.\n\nHerve Codina (6):\n  driver core: Introduce device_{add,remove}_of_node()\n  PCI: of: Use device_{add,remove}_of_node() to attach of_node to\n    existing device\n  PCI: of_property: Add support for NULL pdev in of_pci_set_address()\n  PCI: of_property: Constify parameter in of_pci_get_addr_flags()\n  of: Add #address-cells/#size-cells in the device-tree root empty node\n  PCI: of: Create device-tree PCI host bridge node\n\n drivers/base/core.c       |  52 +++++++++++++++++\n drivers/of/empty_root.dts |   8 ++-\n drivers/pci/of.c          |  98 +++++++++++++++++++++++++++++++-\n drivers/pci/of_property.c | 114 ++++++++++++++++++++++++++++++++++++--\n drivers/pci/pci.h         |   6 ++\n drivers/pci/probe.c       |   2 +\n drivers/pci/remove.c      |   2 +\n include/linux/device.h    |   2 +\n 8 files changed, 276 insertions(+), 8 deletions(-)"
}