Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/819201/?format=api
{ "id": 819201, "url": "http://patchwork.ozlabs.org/api/patches/819201/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20170927141524.5920-4-wd@denx.de/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170927141524.5920-4-wd@denx.de>", "list_archive_url": null, "date": "2017-09-27T14:15:22", "name": "[U-Boot,3/5] Revert \"scripts/dtc: Update to upstream version v1.4.4-50-gfe50bd1ecc1d\"", "commit_ref": null, "pull_url": null, "state": "rejected", "archived": false, "hash": "5fe0524998eacbf2d3f1390d726b3a95904133a4", "submitter": { "id": 387, "url": "http://patchwork.ozlabs.org/api/people/387/?format=api", "name": "Wolfgang Denk", "email": "wd@denx.de" }, "delegate": { "id": 3651, "url": "http://patchwork.ozlabs.org/api/users/3651/?format=api", "username": "trini", "first_name": "Tom", "last_name": "Rini", "email": "trini@ti.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20170927141524.5920-4-wd@denx.de/mbox/", "series": [ { "id": 5381, "url": "http://patchwork.ozlabs.org/api/series/5381/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=5381", "date": "2017-09-27T14:15:19", "name": "REVERT Follow the Linux Kernel in building dtc as needed", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/5381/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/819201/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/819201/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)", "Received": [ "from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2Kpd3s3Mz9t3x\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 28 Sep 2017 00:24:57 +1000 (AEST)", "by lists.denx.de (Postfix, from userid 105)\n\tid 3FFC7C21E3A; Wed, 27 Sep 2017 14:24:56 +0000 (UTC)", "from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id D25DBC21D5B;\n\tWed, 27 Sep 2017 14:24:07 +0000 (UTC)", "by lists.denx.de (Postfix, from userid 105)\n\tid 77FE9C21C58; Wed, 27 Sep 2017 14:23:42 +0000 (UTC)", "from mail-out.m-online.net (mail-out.m-online.net [212.18.0.9])\n\tby lists.denx.de (Postfix) with ESMTPS id B1201C21C51\n\tfor <u-boot@lists.denx.de>; Wed, 27 Sep 2017 14:23:39 +0000 (UTC)", "from frontend01.mail.m-online.net (unknown [192.168.8.182])\n\tby mail-out.m-online.net (Postfix) with ESMTP id 3y2Kn73xtJz1qqyj\n\tfor <u-boot@lists.denx.de>; Wed, 27 Sep 2017 16:23:39 +0200 (CEST)", "from localhost (dynscan1.mnet-online.de [192.168.6.70])\n\tby mail.m-online.net (Postfix) with ESMTP id 3y2Kn73q89z1r0x2\n\tfor <u-boot@lists.denx.de>; Wed, 27 Sep 2017 16:23:39 +0200 (CEST)", "from mail.mnet-online.de ([192.168.8.182])\n\tby localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new,\n\tport 10024) with ESMTP id K4Nt2rKUt4Ne for <u-boot@lists.denx.de>;\n\tWed, 27 Sep 2017 16:23:28 +0200 (CEST)", "from janitor.denx.de (unknown [62.91.23.180])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby mail.mnet-online.de (Postfix) with ESMTPSA\n\tfor <u-boot@lists.denx.de>; Wed, 27 Sep 2017 16:23:28 +0200 (CEST)", "by janitor.denx.de (Postfix, from userid 119)\n\tid 39928F84; Wed, 27 Sep 2017 16:23:28 +0200 (CEST)", "from gemini.denx.de (gemini.denx.de [10.4.0.2])\n\tby janitor.denx.de (Postfix) with ESMTPS id 302BB482;\n\tWed, 27 Sep 2017 16:15:34 +0200 (CEST)", "by gemini.denx.de (Postfix, from userid 500)\n\tid D619F1203A3; Wed, 27 Sep 2017 16:15:33 +0200 (CEST)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-0.7 required=5.0 tests=KHOP_BIG_TO_CC,\n\tRCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3,\n\tRCVD_IN_MSPIKE_WL autolearn=unavailable\n\tautolearn_force=no version=3.4.0", "X-Virus-Scanned": "amavisd-new at mnet-online.de", "X-Auth-Info": "RnrhF50e75z8A79I2s+VUEn8Y3vHKLnRHNOvtSKVJ4I=", "From": "Wolfgang Denk <wd@denx.de>", "To": "u-boot@lists.denx.de", "Date": "Wed, 27 Sep 2017 16:15:22 +0200", "Message-Id": "<20170927141524.5920-4-wd@denx.de>", "X-Mailer": "git-send-email 2.13.5", "In-Reply-To": "<20170927141524.5920-1-wd@denx.de>", "References": "<1506263222-7080-1-git-send-email-trini@konsulko.com>\n\t<20170927141524.5920-1-wd@denx.de>", "MIME-Version": "1.0", "X-Mailman-Approved-At": "Wed, 27 Sep 2017 14:24:05 +0000", "Cc": "Prafulla Wadaskar <prafulla@marvell.com>,\n\tVipin Kumar <vk.vipin@gmail.com>, \n\tAlexey Brodkin <alexey.brodkin@synopsys.com>,\n\tPantelis Antoniou <panto@antoniou-consulting.com>,\n\tJoe Hershberger <joe.hershberger@ni.com>,\n\tPrzemyslaw Marczak <p.marczak@samsung.com>,\n\tKim Phillips <kim.phillips@freescale.com>,\n\tJagan Teki <jteki@openedev.com>, \n\tStefan Roese <sr@denx.de>, Marek Vasut <marex@denx.de>,\n\tTom Rini <trini@konsulko.com>, Angelo Dureghello <angelo@sysam.it>,\n\tMacpaul Lin <macpaul@andestech.com>,\n\tAndre Przywara <andre.przywara@arm.com>, \n\tSonic Zhang <sonic.adi@gmail.com>, Scott Wood <scottwood@freescale.com>, \n\tKyungmin Park <kmpark@infradead.org>,\n\tHuan Wang <alison.wang@freescale.com>, \n\tVagrant Cascadian <vagrant@debian.org>, Tom Warren <TWarren@nvidia.com>, \n\tYork Sun <yorksun@freescale.com>", "Subject": "[U-Boot] [PATCH 3/5] Revert \"scripts/dtc: Update to upstream\n\tversion v1.4.4-50-gfe50bd1ecc1d\"", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.18", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<http://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>" }, "content": "This reverts commit 2d4c2259930b91fe5e7a2f92db32c03fe640ed60.\n\nThis patch is part of a series which has never been reviewed and\nhas not been generally accepted by the community.\n\nSigned-off-by: Wolfgang Denk <wd@denx.de>\n\nCc: Albert Aribaud <albert.u.boot@aribaud.net>\nCc: Alexander Graf <agraf@suse.de>\nCc: Alexey Brodkin <alexey.brodkin@synopsys.com>\nCc: Anatolij Gustschin <agust@denx.de>\nCc: Andre Przywara <andre.przywara@arm.com>,\nCc: Andreas Bießmann <andreas.devel@googlemail.com>\nCc: Angelo Dureghello <angelo@sysam.it>\nCc: Bin Meng <bmeng.cn@gmail.com>\nCc: Daniel Hellstrom <daniel@gaisler.com>\nCc: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>\nCc: Heiko Schocher <hs@denx.de>\nCc: Heinrich Schuchardt <xypron.debian@gmx.de>\nCc: Huan Wang <alison.wang@freescale.com>\nCc: Jagan Teki <jteki@openedev.com>\nCc: Joe Hershberger <joe.hershberger@ni.com>\nCc: Kim Phillips <kim.phillips@freescale.com>\nCc: Kyungmin Park <kmpark@infradead.org>\nCc: Lukasz Majewski <lukma@denx.de>\nCc: Macpaul Lin <macpaul@andestech.com>\nCc: Marek Vasut <marek.vasut@gmail.com>\nCc: Marek Vasut <marex@denx.de>\nCc: Masahiro Yamada <yamada.masahiro@socionext.com>\nCc: Michal Simek <monstr@monstr.eu>\nCc: Minkyu Kang <mk7.kang@samsung.com>\nCc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>\nCc: Pantelis Antoniou <panto@antoniou-consulting.com>\nCc: Prafulla Wadaskar <prafulla@marvell.com>\nCc: Przemyslaw Marczak <p.marczak@samsung.com>\nCc: Robert Nelson <robertcnelson@gmail.com>\nCc: Scott Wood <scottwood@freescale.com>\nCc: Simon Glass <sjg@chromium.org>\nCc: Sonic Zhang <sonic.adi@gmail.com>\nCc: Stanislav Galabov <sgalabov@gmail.com>\nCc: Stefan Roese <sr@denx.de>\nCc: Stefano Babic <sbabic@denx.de>\nCc: Stephen Warren <swarren@wwwdotorg.org>\nCc: Thomas Chou <thomas@wytron.com.tw>\nCc: Tom Rini <trini@konsulko.com>\nCc: Tom Warren <TWarren@nvidia.com>\nCc: u-boot@lists.denx.de\nCc: Vagrant Cascadian <vagrant@debian.org>\nCc: Vipin Kumar <vk.vipin@gmail.com>\nCc: York Sun <yorksun@freescale.com>\n---\n scripts/dtc/checks.c | 231 ------------------------------------\n scripts/dtc/dtc.c | 2 +-\n scripts/dtc/dtc.h | 6 -\n scripts/dtc/libfdt/fdt_empty_tree.c | 1 +\n scripts/dtc/libfdt/fdt_ro.c | 4 +-\n scripts/dtc/libfdt/fdt_rw.c | 24 +---\n scripts/dtc/libfdt/fdt_sw.c | 16 +--\n scripts/dtc/libfdt/fdt_wip.c | 4 +-\n scripts/dtc/libfdt/libfdt.h | 68 +----------\n scripts/dtc/livetree.c | 3 +-\n scripts/dtc/version_gen.h | 2 +-\n 11 files changed, 16 insertions(+), 345 deletions(-)", "diff": "diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c\nindex afabf64337..38f548e582 100644\n--- a/scripts/dtc/checks.c\n+++ b/scripts/dtc/checks.c\n@@ -681,229 +681,6 @@ static void check_ranges_format(struct check *c, struct dt_info *dti,\n }\n WARNING(ranges_format, check_ranges_format, NULL, &addr_size_cells);\n \n-static const struct bus_type pci_bus = {\n-\t.name = \"PCI\",\n-};\n-\n-static void check_pci_bridge(struct check *c, struct dt_info *dti, struct node *node)\n-{\n-\tstruct property *prop;\n-\tcell_t *cells;\n-\n-\tprop = get_property(node, \"device_type\");\n-\tif (!prop || !streq(prop->val.val, \"pci\"))\n-\t\treturn;\n-\n-\tnode->bus = &pci_bus;\n-\n-\tif (!strneq(node->name, \"pci\", node->basenamelen) &&\n-\t !strneq(node->name, \"pcie\", node->basenamelen))\n-\t\tFAIL(c, dti, \"Node %s node name is not \\\"pci\\\" or \\\"pcie\\\"\",\n-\t\t\t node->fullpath);\n-\n-\tprop = get_property(node, \"ranges\");\n-\tif (!prop)\n-\t\tFAIL(c, dti, \"Node %s missing ranges for PCI bridge (or not a bridge)\",\n-\t\t\t node->fullpath);\n-\n-\tif (node_addr_cells(node) != 3)\n-\t\tFAIL(c, dti, \"Node %s incorrect #address-cells for PCI bridge\",\n-\t\t\t node->fullpath);\n-\tif (node_size_cells(node) != 2)\n-\t\tFAIL(c, dti, \"Node %s incorrect #size-cells for PCI bridge\",\n-\t\t\t node->fullpath);\n-\n-\tprop = get_property(node, \"bus-range\");\n-\tif (!prop) {\n-\t\tFAIL(c, dti, \"Node %s missing bus-range for PCI bridge\",\n-\t\t\t node->fullpath);\n-\t\treturn;\n-\t}\n-\tif (prop->val.len != (sizeof(cell_t) * 2)) {\n-\t\tFAIL(c, dti, \"Node %s bus-range must be 2 cells\",\n-\t\t\t node->fullpath);\n-\t\treturn;\n-\t}\n-\tcells = (cell_t *)prop->val.val;\n-\tif (fdt32_to_cpu(cells[0]) > fdt32_to_cpu(cells[1]))\n-\t\tFAIL(c, dti, \"Node %s bus-range 1st cell must be less than or equal to 2nd cell\",\n-\t\t\t node->fullpath);\n-\tif (fdt32_to_cpu(cells[1]) > 0xff)\n-\t\tFAIL(c, dti, \"Node %s bus-range maximum bus number must be less than 256\",\n-\t\t\t node->fullpath);\n-}\n-WARNING(pci_bridge, check_pci_bridge, NULL,\n-\t&device_type_is_string, &addr_size_cells);\n-\n-static void check_pci_device_bus_num(struct check *c, struct dt_info *dti, struct node *node)\n-{\n-\tstruct property *prop;\n-\tunsigned int bus_num, min_bus, max_bus;\n-\tcell_t *cells;\n-\n-\tif (!node->parent || (node->parent->bus != &pci_bus))\n-\t\treturn;\n-\n-\tprop = get_property(node, \"reg\");\n-\tif (!prop)\n-\t\treturn;\n-\n-\tcells = (cell_t *)prop->val.val;\n-\tbus_num = (fdt32_to_cpu(cells[0]) & 0x00ff0000) >> 16;\n-\n-\tprop = get_property(node->parent, \"bus-range\");\n-\tif (!prop) {\n-\t\tmin_bus = max_bus = 0;\n-\t} else {\n-\t\tcells = (cell_t *)prop->val.val;\n-\t\tmin_bus = fdt32_to_cpu(cells[0]);\n-\t\tmax_bus = fdt32_to_cpu(cells[0]);\n-\t}\n-\tif ((bus_num < min_bus) || (bus_num > max_bus))\n-\t\tFAIL(c, dti, \"Node %s PCI bus number %d out of range, expected (%d - %d)\",\n-\t\t node->fullpath, bus_num, min_bus, max_bus);\n-}\n-WARNING(pci_device_bus_num, check_pci_device_bus_num, NULL, ®_format, &pci_bridge);\n-\n-static void check_pci_device_reg(struct check *c, struct dt_info *dti, struct node *node)\n-{\n-\tstruct property *prop;\n-\tconst char *unitname = get_unitname(node);\n-\tchar unit_addr[5];\n-\tunsigned int dev, func, reg;\n-\tcell_t *cells;\n-\n-\tif (!node->parent || (node->parent->bus != &pci_bus))\n-\t\treturn;\n-\n-\tprop = get_property(node, \"reg\");\n-\tif (!prop) {\n-\t\tFAIL(c, dti, \"Node %s missing PCI reg property\", node->fullpath);\n-\t\treturn;\n-\t}\n-\n-\tcells = (cell_t *)prop->val.val;\n-\tif (cells[1] || cells[2])\n-\t\tFAIL(c, dti, \"Node %s PCI reg config space address cells 2 and 3 must be 0\",\n-\t\t\t node->fullpath);\n-\n-\treg = fdt32_to_cpu(cells[0]);\n-\tdev = (reg & 0xf800) >> 11;\n-\tfunc = (reg & 0x700) >> 8;\n-\n-\tif (reg & 0xff000000)\n-\t\tFAIL(c, dti, \"Node %s PCI reg address is not configuration space\",\n-\t\t\t node->fullpath);\n-\tif (reg & 0x000000ff)\n-\t\tFAIL(c, dti, \"Node %s PCI reg config space address register number must be 0\",\n-\t\t\t node->fullpath);\n-\n-\tif (func == 0) {\n-\t\tsnprintf(unit_addr, sizeof(unit_addr), \"%x\", dev);\n-\t\tif (streq(unitname, unit_addr))\n-\t\t\treturn;\n-\t}\n-\n-\tsnprintf(unit_addr, sizeof(unit_addr), \"%x,%x\", dev, func);\n-\tif (streq(unitname, unit_addr))\n-\t\treturn;\n-\n-\tFAIL(c, dti, \"Node %s PCI unit address format error, expected \\\"%s\\\"\",\n-\t node->fullpath, unit_addr);\n-}\n-WARNING(pci_device_reg, check_pci_device_reg, NULL, ®_format, &pci_bridge);\n-\n-static const struct bus_type simple_bus = {\n-\t.name = \"simple-bus\",\n-};\n-\n-static bool node_is_compatible(struct node *node, const char *compat)\n-{\n-\tstruct property *prop;\n-\tconst char *str, *end;\n-\n-\tprop = get_property(node, \"compatible\");\n-\tif (!prop)\n-\t\treturn false;\n-\n-\tfor (str = prop->val.val, end = str + prop->val.len; str < end;\n-\t str += strnlen(str, end - str) + 1) {\n-\t\tif (strneq(str, compat, end - str))\n-\t\t\treturn true;\n-\t}\n-\treturn false;\n-}\n-\n-static void check_simple_bus_bridge(struct check *c, struct dt_info *dti, struct node *node)\n-{\n-\tif (node_is_compatible(node, \"simple-bus\"))\n-\t\tnode->bus = &simple_bus;\n-}\n-WARNING(simple_bus_bridge, check_simple_bus_bridge, NULL, &addr_size_cells);\n-\n-static void check_simple_bus_reg(struct check *c, struct dt_info *dti, struct node *node)\n-{\n-\tstruct property *prop;\n-\tconst char *unitname = get_unitname(node);\n-\tchar unit_addr[17];\n-\tunsigned int size;\n-\tuint64_t reg = 0;\n-\tcell_t *cells = NULL;\n-\n-\tif (!node->parent || (node->parent->bus != &simple_bus))\n-\t\treturn;\n-\n-\tprop = get_property(node, \"reg\");\n-\tif (prop)\n-\t\tcells = (cell_t *)prop->val.val;\n-\telse {\n-\t\tprop = get_property(node, \"ranges\");\n-\t\tif (prop && prop->val.len)\n-\t\t\t/* skip of child address */\n-\t\t\tcells = ((cell_t *)prop->val.val) + node_addr_cells(node);\n-\t}\n-\n-\tif (!cells) {\n-\t\tif (node->parent->parent && !(node->bus == &simple_bus))\n-\t\t\tFAIL(c, dti, \"Node %s missing or empty reg/ranges property\", node->fullpath);\n-\t\treturn;\n-\t}\n-\n-\tsize = node_addr_cells(node->parent);\n-\twhile (size--)\n-\t\treg = (reg << 32) | fdt32_to_cpu(*(cells++));\n-\n-\tsnprintf(unit_addr, sizeof(unit_addr), \"%\"PRIx64, reg);\n-\tif (!streq(unitname, unit_addr))\n-\t\tFAIL(c, dti, \"Node %s simple-bus unit address format error, expected \\\"%s\\\"\",\n-\t\t node->fullpath, unit_addr);\n-}\n-WARNING(simple_bus_reg, check_simple_bus_reg, NULL, ®_format, &simple_bus_bridge);\n-\n-static void check_unit_address_format(struct check *c, struct dt_info *dti,\n-\t\t\t\t struct node *node)\n-{\n-\tconst char *unitname = get_unitname(node);\n-\n-\tif (node->parent && node->parent->bus)\n-\t\treturn;\n-\n-\tif (!unitname[0])\n-\t\treturn;\n-\n-\tif (!strncmp(unitname, \"0x\", 2)) {\n-\t\tFAIL(c, dti, \"Node %s unit name should not have leading \\\"0x\\\"\",\n-\t\t node->fullpath);\n-\t\t/* skip over 0x for next test */\n-\t\tunitname += 2;\n-\t}\n-\tif (unitname[0] == '0' && isxdigit(unitname[1]))\n-\t\tFAIL(c, dti, \"Node %s unit name should not have leading 0s\",\n-\t\t node->fullpath);\n-}\n-WARNING(unit_address_format, check_unit_address_format, NULL,\n-\t&node_name_format, &pci_bridge, &simple_bus_bridge);\n-\n /*\n * Style checks\n */\n@@ -975,14 +752,6 @@ static struct check *check_table[] = {\n \t&addr_size_cells, ®_format, &ranges_format,\n \n \t&unit_address_vs_reg,\n-\t&unit_address_format,\n-\n-\t&pci_bridge,\n-\t&pci_device_reg,\n-\t&pci_device_bus_num,\n-\n-\t&simple_bus_bridge,\n-\t&simple_bus_reg,\n \n \t&avoid_default_addr_size,\n \t&obsolete_chosen_interrupt_controller,\ndiff --git a/scripts/dtc/dtc.c b/scripts/dtc/dtc.c\nindex 5ed873c72a..f5eed9d72c 100644\n--- a/scripts/dtc/dtc.c\n+++ b/scripts/dtc/dtc.c\n@@ -31,7 +31,7 @@ int reservenum;\t\t/* Number of memory reservation slots */\n int minsize;\t\t/* Minimum blob size */\n int padsize;\t\t/* Additional padding to blob */\n int alignsize;\t\t/* Additional padding to blob accroding to the alignsize */\n-int phandle_format = PHANDLE_EPAPR;\t/* Use linux,phandle or phandle properties */\n+int phandle_format = PHANDLE_BOTH;\t/* Use linux,phandle or phandle properties */\n int generate_symbols;\t/* enable symbols & fixup support */\n int generate_fixups;\t\t/* suppress generation of fixups on symbol support */\n int auto_label_aliases;\t\t/* auto generate labels -> aliases */\ndiff --git a/scripts/dtc/dtc.h b/scripts/dtc/dtc.h\nindex 409db76c94..403b79deab 100644\n--- a/scripts/dtc/dtc.h\n+++ b/scripts/dtc/dtc.h\n@@ -31,7 +31,6 @@\n #include <ctype.h>\n #include <errno.h>\n #include <unistd.h>\n-#include <inttypes.h>\n \n #include <libfdt_env.h>\n #include <fdt.h>\n@@ -136,10 +135,6 @@ struct label {\n \tstruct label *next;\n };\n \n-struct bus_type {\n-\tconst char *name;\n-};\n-\n struct property {\n \tbool deleted;\n \tchar *name;\n@@ -166,7 +161,6 @@ struct node {\n \tint addr_cells, size_cells;\n \n \tstruct label *labels;\n-\tconst struct bus_type *bus;\n };\n \n #define for_each_label_withdel(l0, l) \\\ndiff --git a/scripts/dtc/libfdt/fdt_empty_tree.c b/scripts/dtc/libfdt/fdt_empty_tree.c\nindex f2ae9b77c2..f72d13b1d1 100644\n--- a/scripts/dtc/libfdt/fdt_empty_tree.c\n+++ b/scripts/dtc/libfdt/fdt_empty_tree.c\n@@ -81,3 +81,4 @@ int fdt_create_empty_tree(void *buf, int bufsize)\n \n \treturn fdt_open_into(buf, buf, bufsize);\n }\n+\ndiff --git a/scripts/dtc/libfdt/fdt_ro.c b/scripts/dtc/libfdt/fdt_ro.c\nindex 08de2cce67..3d00d2eee0 100644\n--- a/scripts/dtc/libfdt/fdt_ro.c\n+++ b/scripts/dtc/libfdt/fdt_ro.c\n@@ -60,7 +60,7 @@ static int _fdt_nodename_eq(const void *fdt, int offset,\n {\n \tconst char *p = fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1);\n \n-\tif (!p)\n+\tif (! p)\n \t\t/* short match */\n \t\treturn 0;\n \n@@ -327,7 +327,7 @@ const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,\n \tconst struct fdt_property *prop;\n \n \tprop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp);\n-\tif (!prop)\n+\tif (! prop)\n \t\treturn NULL;\n \n \treturn prop->data;\ndiff --git a/scripts/dtc/libfdt/fdt_rw.c b/scripts/dtc/libfdt/fdt_rw.c\nindex 5c3a2bb0bc..3fd5847377 100644\n--- a/scripts/dtc/libfdt/fdt_rw.c\n+++ b/scripts/dtc/libfdt/fdt_rw.c\n@@ -207,7 +207,7 @@ static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name,\n \tint err;\n \n \t*prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);\n-\tif (!*prop)\n+\tif (! (*prop))\n \t\treturn oldlen;\n \n \tif ((err = _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),\n@@ -269,8 +269,8 @@ int fdt_set_name(void *fdt, int nodeoffset, const char *name)\n \treturn 0;\n }\n \n-int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,\n-\t\t\t int len, void **prop_data)\n+int fdt_setprop(void *fdt, int nodeoffset, const char *name,\n+\t\tconst void *val, int len)\n {\n \tstruct fdt_property *prop;\n \tint err;\n@@ -283,22 +283,8 @@ int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,\n \tif (err)\n \t\treturn err;\n \n-\t*prop_data = prop->data;\n-\treturn 0;\n-}\n-\n-int fdt_setprop(void *fdt, int nodeoffset, const char *name,\n-\t\tconst void *val, int len)\n-{\n-\tvoid *prop_data;\n-\tint err;\n-\n-\terr = fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data);\n-\tif (err)\n-\t\treturn err;\n-\n \tif (len)\n-\t\tmemcpy(prop_data, val, len);\n+\t\tmemcpy(prop->data, val, len);\n \treturn 0;\n }\n \n@@ -337,7 +323,7 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name)\n \tFDT_RW_CHECK_HEADER(fdt);\n \n \tprop = fdt_get_property_w(fdt, nodeoffset, name, &len);\n-\tif (!prop)\n+\tif (! prop)\n \t\treturn len;\n \n \tproplen = sizeof(*prop) + FDT_TAGALIGN(len);\ndiff --git a/scripts/dtc/libfdt/fdt_sw.c b/scripts/dtc/libfdt/fdt_sw.c\nindex 2bd15e7aef..6a804859fd 100644\n--- a/scripts/dtc/libfdt/fdt_sw.c\n+++ b/scripts/dtc/libfdt/fdt_sw.c\n@@ -220,7 +220,7 @@ static int _fdt_find_add_string(void *fdt, const char *s)\n \treturn offset;\n }\n \n-int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp)\n+int fdt_property(void *fdt, const char *name, const void *val, int len)\n {\n \tstruct fdt_property *prop;\n \tint nameoff;\n@@ -238,19 +238,7 @@ int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp)\n \tprop->tag = cpu_to_fdt32(FDT_PROP);\n \tprop->nameoff = cpu_to_fdt32(nameoff);\n \tprop->len = cpu_to_fdt32(len);\n-\t*valp = prop->data;\n-\treturn 0;\n-}\n-\n-int fdt_property(void *fdt, const char *name, const void *val, int len)\n-{\n-\tvoid *ptr;\n-\tint ret;\n-\n-\tret = fdt_property_placeholder(fdt, name, len, &ptr);\n-\tif (ret)\n-\t\treturn ret;\n-\tmemcpy(ptr, val, len);\n+\tmemcpy(prop->data, val, len);\n \treturn 0;\n }\n \ndiff --git a/scripts/dtc/libfdt/fdt_wip.c b/scripts/dtc/libfdt/fdt_wip.c\nindex 5e85919862..6aaab39992 100644\n--- a/scripts/dtc/libfdt/fdt_wip.c\n+++ b/scripts/dtc/libfdt/fdt_wip.c\n@@ -82,7 +82,7 @@ int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,\n \tint proplen;\n \n \tpropval = fdt_getprop(fdt, nodeoffset, name, &proplen);\n-\tif (!propval)\n+\tif (! propval)\n \t\treturn proplen;\n \n \tif (proplen != len)\n@@ -107,7 +107,7 @@ int fdt_nop_property(void *fdt, int nodeoffset, const char *name)\n \tint len;\n \n \tprop = fdt_get_property_w(fdt, nodeoffset, name, &len);\n-\tif (!prop)\n+\tif (! prop)\n \t\treturn len;\n \n \t_fdt_nop_region(prop, len + sizeof(*prop));\ndiff --git a/scripts/dtc/libfdt/libfdt.h b/scripts/dtc/libfdt/libfdt.h\nindex 7f83023ee1..9e71bb9e03 100644\n--- a/scripts/dtc/libfdt/libfdt.h\n+++ b/scripts/dtc/libfdt/libfdt.h\n@@ -143,9 +143,7 @@\n /* Low-level functions (you probably don't need these) */\n /**********************************************************************/\n \n-#ifndef SWIG /* This function is not useful in Python */\n const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen);\n-#endif\n static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)\n {\n \treturn (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);\n@@ -212,6 +210,7 @@ int fdt_next_subnode(const void *fdt, int offset);\n /**********************************************************************/\n /* General functions */\n /**********************************************************************/\n+\n #define fdt_get_header(fdt, field) \\\n \t(fdt32_to_cpu(((const struct fdt_header *)(fdt))->field))\n #define fdt_magic(fdt)\t\t\t(fdt_get_header(fdt, magic))\n@@ -355,10 +354,8 @@ int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size);\n * useful for finding subnodes based on a portion of a larger string,\n * such as a full path.\n */\n-#ifndef SWIG /* Not available in Python */\n int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,\n \t\t\t const char *name, int namelen);\n-#endif\n /**\n * fdt_subnode_offset - find a subnode of a given node\n * @fdt: pointer to the device tree blob\n@@ -394,9 +391,7 @@ int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);\n * Identical to fdt_path_offset(), but only consider the first namelen\n * characters of path as the path name.\n */\n-#ifndef SWIG /* Not available in Python */\n int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen);\n-#endif\n \n /**\n * fdt_path_offset - find a tree node by its full path\n@@ -555,12 +550,10 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt,\n * Identical to fdt_get_property(), but only examine the first namelen\n * characters of name for matching the property name.\n */\n-#ifndef SWIG /* Not available in Python */\n const struct fdt_property *fdt_get_property_namelen(const void *fdt,\n \t\t\t\t\t\t int nodeoffset,\n \t\t\t\t\t\t const char *name,\n \t\t\t\t\t\t int namelen, int *lenp);\n-#endif\n \n /**\n * fdt_get_property - find a given property in a given node\n@@ -631,10 +624,8 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,\n *\t\t-FDT_ERR_BADSTRUCTURE,\n *\t\t-FDT_ERR_TRUNCATED, standard meanings\n */\n-#ifndef SWIG /* This function is not useful in Python */\n const void *fdt_getprop_by_offset(const void *fdt, int offset,\n \t\t\t\t const char **namep, int *lenp);\n-#endif\n \n /**\n * fdt_getprop_namelen - get property value based on substring\n@@ -647,7 +638,6 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset,\n * Identical to fdt_getprop(), but only examine the first namelen\n * characters of name for matching the property name.\n */\n-#ifndef SWIG /* Not available in Python */\n const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,\n \t\t\t\tconst char *name, int namelen, int *lenp);\n static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,\n@@ -657,7 +647,6 @@ static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,\n \treturn (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,\n \t\t\t\t\t\t namelen, lenp);\n }\n-#endif\n \n /**\n * fdt_getprop - retrieve the value of a given property\n@@ -718,10 +707,8 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset);\n * Identical to fdt_get_alias(), but only examine the first namelen\n * characters of name for matching the alias name.\n */\n-#ifndef SWIG /* Not available in Python */\n const char *fdt_get_alias_namelen(const void *fdt,\n \t\t\t\t const char *name, int namelen);\n-#endif\n \n /**\n * fdt_get_alias - retrieve the path referenced by a given alias\n@@ -1119,12 +1106,10 @@ int fdt_size_cells(const void *fdt, int nodeoffset);\n * of the name. It is useful when you want to manipulate only one value of\n * an array and you have a string that doesn't end with \\0.\n */\n-#ifndef SWIG /* Not available in Python */\n int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,\n \t\t\t\t\tconst char *name, int namelen,\n \t\t\t\t\tuint32_t idx, const void *val,\n \t\t\t\t\tint len);\n-#endif\n \n /**\n * fdt_setprop_inplace - change a property's value, but not its size\n@@ -1154,10 +1139,8 @@ int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,\n *\t-FDT_ERR_BADSTRUCTURE,\n *\t-FDT_ERR_TRUNCATED, standard meanings\n */\n-#ifndef SWIG /* Not available in Python */\n int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,\n \t\t\tconst void *val, int len);\n-#endif\n \n /**\n * fdt_setprop_inplace_u32 - change the value of a 32-bit integer property\n@@ -1314,22 +1297,6 @@ static inline int fdt_property_cell(void *fdt, const char *name, uint32_t val)\n {\n \treturn fdt_property_u32(fdt, name, val);\n }\n-\n-/**\n- * fdt_property_placeholder - add a new property and return a ptr to its value\n- *\n- * @fdt: pointer to the device tree blob\n- * @name: name of property to add\n- * @len: length of property value in bytes\n- * @valp: returns a pointer to where where the value should be placed\n- *\n- * returns:\n- *\t0, on success\n- *\t-FDT_ERR_BADMAGIC,\n- *\t-FDT_ERR_NOSPACE, standard meanings\n- */\n-int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp);\n-\n #define fdt_property_string(fdt, name, str) \\\n \tfdt_property(fdt, name, str, strlen(str)+1)\n int fdt_end_node(void *fdt);\n@@ -1449,37 +1416,6 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,\n \t\tconst void *val, int len);\n \n /**\n- * fdt_setprop _placeholder - allocate space for a property\n- * @fdt: pointer to the device tree blob\n- * @nodeoffset: offset of the node whose property to change\n- * @name: name of the property to change\n- * @len: length of the property value\n- * @prop_data: return pointer to property data\n- *\n- * fdt_setprop_placeholer() allocates the named property in the given node.\n- * If the property exists it is resized. In either case a pointer to the\n- * property data is returned.\n- *\n- * This function may insert or delete data from the blob, and will\n- * therefore change the offsets of some existing nodes.\n- *\n- * returns:\n- *\t0, on success\n- *\t-FDT_ERR_NOSPACE, there is insufficient free space in the blob to\n- *\t\tcontain the new property value\n- *\t-FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag\n- *\t-FDT_ERR_BADLAYOUT,\n- *\t-FDT_ERR_BADMAGIC,\n- *\t-FDT_ERR_BADVERSION,\n- *\t-FDT_ERR_BADSTATE,\n- *\t-FDT_ERR_BADSTRUCTURE,\n- *\t-FDT_ERR_BADLAYOUT,\n- *\t-FDT_ERR_TRUNCATED, standard meanings\n- */\n-int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,\n-\t\t\t int len, void **prop_data);\n-\n-/**\n * fdt_setprop_u32 - set a property to a 32-bit integer\n * @fdt: pointer to the device tree blob\n * @nodeoffset: offset of the node whose property to change\n@@ -1798,10 +1734,8 @@ int fdt_delprop(void *fdt, int nodeoffset, const char *name);\n * creating subnodes based on a portion of a larger string, such as a\n * full path.\n */\n-#ifndef SWIG /* Not available in Python */\n int fdt_add_subnode_namelen(void *fdt, int parentoffset,\n \t\t\t const char *name, int namelen);\n-#endif\n \n /**\n * fdt_add_subnode - creates a new node\ndiff --git a/scripts/dtc/livetree.c b/scripts/dtc/livetree.c\nindex aecd27875f..3673de07e4 100644\n--- a/scripts/dtc/livetree.c\n+++ b/scripts/dtc/livetree.c\n@@ -478,8 +478,7 @@ struct node *get_node_by_path(struct node *tree, const char *path)\n \tp = strchr(path, '/');\n \n \tfor_each_child(tree, child) {\n-\t\tif (p && (strlen(child->name) == p-path) &&\n-\t\t\t\tstrneq(path, child->name, p-path))\n+\t\tif (p && strneq(path, child->name, p-path))\n \t\t\treturn get_node_by_path(child, p+1);\n \t\telse if (!p && streq(path, child->name))\n \t\t\treturn child;\ndiff --git a/scripts/dtc/version_gen.h b/scripts/dtc/version_gen.h\nindex b5ed715ecc..859564e8b4 100644\n--- a/scripts/dtc/version_gen.h\n+++ b/scripts/dtc/version_gen.h\n@@ -1 +1 @@\n-#define DTC_VERSION \"DTC 1.4.4-gfe50bd1e\"\n+#define DTC_VERSION \"DTC 1.4.4\"\n", "prefixes": [ "U-Boot", "3/5" ] }