netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] of_mdio: use of_property_read_u32_array()
@ 2017-08-04 21:43 Sergei Shtylyov
       [not found] ` <20170804214354.351406407-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Sergei Shtylyov @ 2017-08-04 21:43 UTC (permalink / raw)
  To: Andrew Lunn, Florian Fainelli, Rob Herring, Frank Rowand, netdev,
	devicetree
  Cc: Sergei Shtylyov

[-- Attachment #1: of_mdio-use-of_property_read_u32_array.patch --]
[-- Type: text/plain, Size: 2069 bytes --]

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 <sergei.shtylyov@cogentembedded.com>

---
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);
 	}

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-08-07 21:07 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-04 21:43 [PATCH] of_mdio: use of_property_read_u32_array() Sergei Shtylyov
     [not found] ` <20170804214354.351406407-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org>
2017-08-05  1:07   ` Andrew Lunn
2017-08-07 14:18   ` Rob Herring
2017-08-07 16:18     ` Sergei Shtylyov
2017-08-07 18:01       ` Florian Fainelli
2017-08-07 18:44         ` Rob Herring
2017-08-07 21:07   ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).