From patchwork Wed Nov 7 22:31:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 150457 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp93225ljp; Wed, 7 Nov 2018 14:32:08 -0800 (PST) X-Google-Smtp-Source: AJdET5fzXV1Th6XI2C15O+QUaIWom8g31HPSBxjesj01ZYOWut7HfiPLNRl+h3ps5RvBXRQ0WHSR X-Received: by 2002:a63:ce56:: with SMTP id r22-v6mr1766319pgi.217.1541629928230; Wed, 07 Nov 2018 14:32:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541629928; cv=none; d=google.com; s=arc-20160816; b=ikvBhjdmjg3PrUqJfrRDg8QOGuRgEllMuUncOrt42isQEECECRTnPMub4uezOsCzJv qccPj3RmYHP10q6uCFRvy9vJe3BgB8erB0bimQdmiFZ3AjsAB4OPJk4HCliSvlUGsd/n UVMgh+Y32hX2QIBiBeQfhQ9cU7JuMGFyYjeW4KOMTKvPDBxqYvhqHlx4ByRluVNlJVFs VfayrxufczzerIOFGp2esx/TbzmJEVtn/KXiEatsOOetvT6o6oJ7J7sDaSOs2GUj3ysb T4bF78S20i2JGTwcCs/TWGd8OjpYzkkFMfgNiRSIlX6d6ic8e0T1eOBVsgZxGlB6aXB6 F9ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=5GWY0d7dwqs0Irw9FyRHcmXB22q6QSmhdPht17rramM=; b=cldghMEV9/w/brl0Rousx0ipWgFL50IhcHNSNIgUgxTbm8OGAAZEtvzkQePjgt7tv5 Y7du1MQqzIcqW8vVnuOyGmR03t6evMi+0WQ7DJKS6+CUcAcsYTWoR4AU5t1RAA4PgUBO BcZnRYdOpNbW7t0WrCoUpguy0slvAzYStJe1PnzLULeuhMxUyYidXvAJGvLubi774BXt HLu2kOh+N8pwtVWzA0P2ss7UQlhO/ujTf19MH6no2wXEvO3dh5rwHB1cQh6HPT2kCg8P dtFqTkNR+0IF/JP9WbZt3Bd/TLHQsoPKAnbfeO0bMlOf3KI7jk1OpD1IsO8cFh9nxQmV N71w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v189si1770741pgb.398.2018.11.07.14.32.07; Wed, 07 Nov 2018 14:32:08 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728359AbeKHIEd (ORCPT + 32 others); Thu, 8 Nov 2018 03:04:33 -0500 Received: from mail-oi1-f196.google.com ([209.85.167.196]:44849 "EHLO mail-oi1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728184AbeKHIEb (ORCPT ); Thu, 8 Nov 2018 03:04:31 -0500 Received: by mail-oi1-f196.google.com with SMTP id k19-v6so15245483oic.11; Wed, 07 Nov 2018 14:32:03 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5GWY0d7dwqs0Irw9FyRHcmXB22q6QSmhdPht17rramM=; b=TKb0x9OO31FAzCN/9FETR/UScEZQiS4Oyw6KgCYKDOrft3MhLZXqlLsQ4eSE4NoVaI VnYtp8tzUCC+5RT65JNm0xOYKkYauwIU8WGlN6rudsUw1PuISYtEGc/2CeHTh4AQhUqf 8s3w2+ALpIMitE7NABrQJVkEztuVhHEv1zLMNdzPxaHrobcuUKMXRTC4GDqQbDMVtsYS Z2sPUjc6WQGKeI57oqdFRW4lw6w/blnVq1qQsylE/N/6ClroT4zRGUcYNJX+FjCBsG7A 52SlM3eic3JDhEv5zZtNfoge52KQYbyUwNOsB7PONPD+Wm6qIhZt0aFAdRvyom2cW7Fj tXuw== X-Gm-Message-State: AGRZ1gJFcfcFQItxnYfyPhG6+8UoSiNPYa7QF+vu7XP8SC3KYpDztRSj QLPr+3mXI8gq+/3m9+kBXQ== X-Received: by 2002:aca:4dd4:: with SMTP id a203-v6mr1304165oib.168.1541629922633; Wed, 07 Nov 2018 14:32:02 -0800 (PST) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id f9sm750959oth.17.2018.11.07.14.32.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Nov 2018 14:32:01 -0800 (PST) From: Rob Herring To: "David S. Miller" Cc: Frank Rowand , linux-kernel@vger.kernel.org, sparclinux@vger.kernel.org Subject: [PATCH 8/8] sparc: Use device_type helpers to access the node type Date: Wed, 7 Nov 2018 16:31:51 -0600 Message-Id: <20181107223151.14991-9-robh@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181107223151.14991-1-robh@kernel.org> References: <20181107223151.14991-1-robh@kernel.org> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Remove directly accessing device_node.type pointer and use the accessors instead. This will eventually allow removing the type pointer. Replace the open coded iterating over child nodes with for_each_child_of_node() while we're here. Cc: "David S. Miller" Cc: sparclinux@vger.kernel.org Signed-off-by: Rob Herring --- arch/sparc/kernel/of_device_32.c | 4 ++-- arch/sparc/kernel/pci.c | 9 ++------- arch/sparc/kernel/process_32.c | 2 +- arch/sparc/kernel/prom_32.c | 20 +++++++------------- arch/sparc/kernel/prom_64.c | 24 +++++++++--------------- arch/sparc/kernel/prom_irqtrans.c | 2 +- arch/sparc/kernel/reboot.c | 3 ++- arch/sparc/kernel/vio.c | 7 ++----- 8 files changed, 26 insertions(+), 45 deletions(-) -- 2.19.1 diff --git a/arch/sparc/kernel/of_device_32.c b/arch/sparc/kernel/of_device_32.c index dc5b1b0ec659..ee4841a96058 100644 --- a/arch/sparc/kernel/of_device_32.c +++ b/arch/sparc/kernel/of_device_32.c @@ -22,7 +22,7 @@ static int of_bus_pci_match(struct device_node *np) { - if (!strcmp(np->type, "pci") || !strcmp(np->type, "pciex")) { + if (of_node_is_type(np, "pci") || of_node_is_type(np, "pciex")) { /* Do not do PCI specific frobbing if the * PCI bridge lacks a ranges property. We * want to pass it through up to the next @@ -107,7 +107,7 @@ static unsigned long of_bus_sbus_get_flags(const u32 *addr, unsigned long flags) static int of_bus_ambapp_match(struct device_node *np) { - return !strcmp(np->type, "ambapp"); + return of_node_is_type(np, "ambapp"); } static void of_bus_ambapp_count_cells(struct device_node *child, diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c index 377113ae9a6a..bcfec6a85d23 100644 --- a/arch/sparc/kernel/pci.c +++ b/arch/sparc/kernel/pci.c @@ -267,7 +267,6 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, struct dev_archdata *sd; struct platform_device *op; struct pci_dev *dev; - const char *type; u32 class; dev = pci_alloc_dev(bus); @@ -286,13 +285,9 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, if (of_node_name_eq(node, "ebus")) of_propagate_archdata(op); - type = of_get_property(node, "device_type", NULL); - if (type == NULL) - type = ""; - if (ofpci_verbose) pci_info(bus," create device, devfn: %x, type: %s\n", - devfn, type); + devfn, of_node_get_device_type(node)); dev->sysdata = node; dev->dev.parent = bus->bridge; @@ -340,7 +335,7 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, /* a PCI-PCI bridge */ dev->hdr_type = PCI_HEADER_TYPE_BRIDGE; dev->rom_base_reg = PCI_ROM_ADDRESS1; - } else if (!strcmp(type, "cardbus")) { + } else if (of_node_is_type(node, "cardbus")) { dev->hdr_type = PCI_HEADER_TYPE_CARDBUS; } else { dev->hdr_type = PCI_HEADER_TYPE_NORMAL; diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c index d9662cf7e648..26cca65e9246 100644 --- a/arch/sparc/kernel/process_32.c +++ b/arch/sparc/kernel/process_32.c @@ -110,7 +110,7 @@ void machine_restart(char * cmd) void machine_power_off(void) { if (auxio_power_register && - (strcmp(of_console_device->type, "serial") || scons_pwroff)) { + (!of_node_is_type(of_console_device, "serial") || scons_pwroff)) { u8 power_register = sbus_readb(auxio_power_register); power_register |= AUXIO_POWER_OFF; sbus_writeb(power_register, auxio_power_register); diff --git a/arch/sparc/kernel/prom_32.c b/arch/sparc/kernel/prom_32.c index f2835cddf362..42d7f2a7da6d 100644 --- a/arch/sparc/kernel/prom_32.c +++ b/arch/sparc/kernel/prom_32.c @@ -182,14 +182,14 @@ static void __init __build_path_component(struct device_node *dp, char *tmp_buf) struct device_node *parent = dp->parent; if (parent != NULL) { - if (!strcmp(parent->type, "pci") || - !strcmp(parent->type, "pciex")) + if (of_node_is_type(parent, "pci") || + of_node_is_type(parent, "pciex")) return pci_path_component(dp, tmp_buf); - if (!strcmp(parent->type, "sbus")) + if (of_node_is_type(parent, "sbus")) return sbus_path_component(dp, tmp_buf); - if (!strcmp(parent->type, "ebus")) + if (of_node_is_type(parent, "ebus")) return ebus_path_component(dp, tmp_buf); - if (!strcmp(parent->type, "ambapp")) + if (of_node_is_type(parent, "ambapp")) return ambapp_path_component(dp, tmp_buf); /* "isa" is handled with platform naming */ @@ -284,15 +284,9 @@ void __init of_console_init(void) prom_halt(); } dp = of_find_node_by_phandle(node); - type = of_get_property(dp, "device_type", NULL); - if (!type) { - prom_printf("Console stdout lacks " - "device_type property.\n"); - prom_halt(); - } - - if (strcmp(type, "display") && strcmp(type, "serial")) { + if (!of_node_is_type(dp, "display") && + !of_node_is_type(dp, "serial")) { prom_printf("Console device_type is neither display " "nor serial.\n"); prom_halt(); diff --git a/arch/sparc/kernel/prom_64.c b/arch/sparc/kernel/prom_64.c index 17860d6ed1bd..e897a4ded3a1 100644 --- a/arch/sparc/kernel/prom_64.c +++ b/arch/sparc/kernel/prom_64.c @@ -318,20 +318,20 @@ static void __init __build_path_component(struct device_node *dp, char *tmp_buf) struct device_node *parent = dp->parent; if (parent != NULL) { - if (!strcmp(parent->type, "pci") || - !strcmp(parent->type, "pciex")) { + if (of_node_is_type(parent, "pci") || + of_node_is_type(parent, "pciex")) { pci_path_component(dp, tmp_buf); return; } - if (!strcmp(parent->type, "sbus")) { + if (of_node_is_type(parent, "sbus")) { sbus_path_component(dp, tmp_buf); return; } - if (!strcmp(parent->type, "upa")) { + if (of_node_is_type(parent, "upa")) { upa_path_component(dp, tmp_buf); return; } - if (!strcmp(parent->type, "ebus")) { + if (of_node_is_type(parent, "ebus")) { ebus_path_component(dp, tmp_buf); return; } @@ -340,15 +340,15 @@ static void __init __build_path_component(struct device_node *dp, char *tmp_buf) usb_path_component(dp, tmp_buf); return; } - if (!strcmp(parent->type, "i2c")) { + if (of_node_is_type(parent, "i2c")) { i2c_path_component(dp, tmp_buf); return; } - if (!strcmp(parent->type, "firewire")) { + if (of_node_is_type(parent, "firewire")) { ieee1394_path_component(dp, tmp_buf); return; } - if (!strcmp(parent->type, "virtual-devices")) { + if (of_node_is_type(parent, "virtual-devices")) { vdev_path_component(dp, tmp_buf); return; } @@ -605,7 +605,6 @@ void __init of_console_init(void) { char *msg = "OF stdout device is: %s\n"; struct device_node *dp; - const char *type; phandle node; of_console_path = prom_early_alloc(256); @@ -628,13 +627,8 @@ void __init of_console_init(void) } dp = of_find_node_by_phandle(node); - type = of_get_property(dp, "device_type", NULL); - if (!type) { - prom_printf("Console stdout lacks device_type property.\n"); - prom_halt(); - } - if (strcmp(type, "display") && strcmp(type, "serial")) { + if (!of_node_is_type(dp, "display") && !of_node_is_type(dp, "serial")) { prom_printf("Console device_type is neither display " "nor serial.\n"); prom_halt(); diff --git a/arch/sparc/kernel/prom_irqtrans.c b/arch/sparc/kernel/prom_irqtrans.c index f76b4ae697f5..28aff1c524b5 100644 --- a/arch/sparc/kernel/prom_irqtrans.c +++ b/arch/sparc/kernel/prom_irqtrans.c @@ -193,7 +193,7 @@ static int sabre_device_needs_wsync(struct device_node *dp) * the DMA synchronization handling */ while (parent) { - if (!strcmp(parent->type, "pci")) + if (of_node_is_type(parent, "pci")) break; parent = parent->parent; } diff --git a/arch/sparc/kernel/reboot.c b/arch/sparc/kernel/reboot.c index 7933ee365207..69c1b6c047d5 100644 --- a/arch/sparc/kernel/reboot.c +++ b/arch/sparc/kernel/reboot.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -25,7 +26,7 @@ EXPORT_SYMBOL(pm_power_off); void machine_power_off(void) { - if (strcmp(of_console_device->type, "serial") || scons_pwroff) + if (!of_node_is_type(of_console_device, "serial") || scons_pwroff) prom_halt_power_off(); prom_halt(); diff --git a/arch/sparc/kernel/vio.c b/arch/sparc/kernel/vio.c index 0b578d03797b..c7cad9b7bba7 100644 --- a/arch/sparc/kernel/vio.c +++ b/arch/sparc/kernel/vio.c @@ -366,12 +366,9 @@ static struct vio_dev *vio_create_one(struct mdesc_handle *hp, u64 mp, if (parent == NULL) { dp = cdev_node; } else if (to_vio_dev(parent) == root_vdev) { - dp = of_get_next_child(cdev_node, NULL); - while (dp) { - if (!strcmp(dp->type, type)) + for_each_child_of_node(cdev_node, dp) { + if (of_node_is_type(dp, type)) break; - - dp = of_get_next_child(cdev_node, dp); } } else { dp = to_vio_dev(parent)->dp;