From patchwork Fri Aug 4 21:43:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Shtylyov X-Patchwork-Id: 798038 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cogentembedded-com.20150623.gappssmtp.com header.i=@cogentembedded-com.20150623.gappssmtp.com header.b="w8ntyp+M"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xPL6H1N10z9s76 for ; Sat, 5 Aug 2017 07:44:07 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752052AbdHDVoE (ORCPT ); Fri, 4 Aug 2017 17:44:04 -0400 Received: from mail-lf0-f43.google.com ([209.85.215.43]:38880 "EHLO mail-lf0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751271AbdHDVoD (ORCPT ); Fri, 4 Aug 2017 17:44:03 -0400 Received: by mail-lf0-f43.google.com with SMTP id y15so11812505lfd.5 for ; Fri, 04 Aug 2017 14:44:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:user-agent:date:to:cc:subject:mime-version :content-disposition; bh=+ja+qSbT8G3yJ8+ZidYPJE6/eVSJNPBnqp8JcUI7ivA=; b=w8ntyp+MPWQbEnbL++5gfxkE1HyktN6TnBNAK/7SU6Whf7mbAXRyu/iOkqQqRk1HJE Bp/0ML+mZOCVDCclFyv/TgOOUMJYgqf8OfuQYFkdljOLrzwShPMD77LcULA8oGYcvkf2 9Qd6u7xpUm3TNNZ0fFKJd7KOGNyRZqL/3iuErGLoHsIkHMUnR/APvcedNT/cPEQpkjZ0 yCAzrsmDE7JSmWYLopvrlv/UZZ3LFRxFmD725hfnZ+C9vfUIRnmEPMB2D70LfqKwoeR3 UKTo5nndNZtR1Ly7ry1KKCjO/KPhvYqGrhtuaB9+y1WmsXMVsRqsfbY695NnDbewQoCw KvGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:user-agent:date:to:cc:subject :mime-version:content-disposition; bh=+ja+qSbT8G3yJ8+ZidYPJE6/eVSJNPBnqp8JcUI7ivA=; b=YW5mzK/T/0JcKt71kK0p+kIX0a3UKgJuzsL1vTiohb+xaVZDbBMKq0AqjY1FggisgN Agr6WVkemMnOucQd/N9qY+Jl8HGi3F0JcLxuGK28oIMShxMwEr1EYeVcVn0DiSlGVbEG lon3HTzPz/TT5OqN+qvD07nR5GUYzTiuA60hNI/M+ZFh+fA/h5m3htV9fCs98WKmFm7t oonXaevmkB1y9IWwW5oqEL4NcVIOIHZ8sDAc3VgmfZnnI7jwlTgUM5TZI9k0ARiV84MZ QHlSBttzIs5hyIYxaQkMXF/kd72M/DsKVzK0F9PGDf2ZBByXjvKYEGUiWl2f6pPJYYLQ 0x9A== X-Gm-Message-State: AHYfb5iK8amuPYOYdQDbcKaHxy9uBEmDr9Wi/LgeypSH7rUfS0kVV5xz RJ6PzqUXKaSBex9m X-Received: by 10.46.19.9 with SMTP id 9mr1323475ljt.179.1501883042230; Fri, 04 Aug 2017 14:44:02 -0700 (PDT) Received: from wasted.cogentembedded.com ([31.173.81.1]) by smtp.gmail.com with ESMTPSA id c4sm671707lfk.42.2017.08.04.14.43.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 04 Aug 2017 14:43:58 -0700 (PDT) From: Sergei Shtylyov X-Google-Original-From: "Sergei Shtylyov" Received: by wasted.cogentembedded.com (sSMTP sendmail emulation); Sat, 05 Aug 2017 00:43:54 +0300 Message-Id: <20170804214354.351406407@cogentembedded.com> User-Agent: quilt/0.64 Date: Sat, 05 Aug 2017 00:43:43 +0300 To: Andrew Lunn , Florian Fainelli , Rob Herring , Frank Rowand , netdev@vger.kernel.org, devicetree@vger.kernel.org Cc: Sergei Shtylyov Subject: [PATCH] of_mdio: use of_property_read_u32_array() MIME-Version: 1.0 Content-Disposition: inline; filename=of_mdio-use-of_property_read_u32_array.patch Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The "fixed-link" prop support predated of_property_read_u32_array(), so basically had to open-code it. Using the modern API saves 24 bytes of the object code (ARM gcc 4.8.5); the only behavior change would be that the prop length check is now less strict (however the strict pre-check done in of_phy_is_fixed_link() is left intact anyway)... Signed-off-by: Sergei Shtylyov Reviewed-by: Andrew Lunn Reviewed-by: Rob Herring --- The patch is against the 'dt/next' branch of Rob Herring's 'linux-git' repo plus the previously posted patch killing the useless local variable in of_phy_register_fixed_link(). drivers/of/of_mdio.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) Index: linux/drivers/of/of_mdio.c =================================================================== --- linux.orig/drivers/of/of_mdio.c +++ linux/drivers/of/of_mdio.c @@ -421,10 +421,10 @@ int of_phy_register_fixed_link(struct de { struct fixed_phy_status status = {}; struct device_node *fixed_link_node; - const __be32 *fixed_link_prop; + u32 fixed_link_prop[5]; struct phy_device *phy; const char *managed; - int link_gpio, len; + int link_gpio; if (of_property_read_string(np, "managed", &managed) == 0) { if (strcmp(managed, "in-band-status") == 0) { @@ -459,13 +459,13 @@ int of_phy_register_fixed_link(struct de } /* Old binding */ - fixed_link_prop = of_get_property(np, "fixed-link", &len); - if (fixed_link_prop && len == (5 * sizeof(__be32))) { + if (of_property_read_u32_array(np, "fixed-link", fixed_link_prop, + ARRAY_SIZE(fixed_link_prop)) == 0) { status.link = 1; - status.duplex = be32_to_cpu(fixed_link_prop[1]); - status.speed = be32_to_cpu(fixed_link_prop[2]); - status.pause = be32_to_cpu(fixed_link_prop[3]); - status.asym_pause = be32_to_cpu(fixed_link_prop[4]); + status.duplex = fixed_link_prop[1]; + status.speed = fixed_link_prop[2]; + status.pause = fixed_link_prop[3]; + status.asym_pause = fixed_link_prop[4]; phy = fixed_phy_register(PHY_POLL, &status, -1, np); return PTR_ERR_OR_ZERO(phy); }