All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Hershberger <joe.hershberger@ni.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/5] scripts: Add a cocci patch for miiphy_register
Date: Mon, 8 Aug 2016 11:28:37 -0500	[thread overview]
Message-ID: <1470673721-20590-2-git-send-email-joe.hershberger@ni.com> (raw)
In-Reply-To: <1470673721-20590-1-git-send-email-joe.hershberger@ni.com>

Many Ethernet drivers still use the legacy miiphy API to register their
mdio interface for access to the mdio commands.

This semantic patch will convert the drivers from the legacy adapter API
to the more modern alloc/register API.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
---

Changes in v2: None

 scripts/coccinelle/net/mdio_register.cocci | 142 +++++++++++++++++++++++++++++
 1 file changed, 142 insertions(+)
 create mode 100644 scripts/coccinelle/net/mdio_register.cocci

diff --git a/scripts/coccinelle/net/mdio_register.cocci b/scripts/coccinelle/net/mdio_register.cocci
new file mode 100644
index 0000000..100f102
--- /dev/null
+++ b/scripts/coccinelle/net/mdio_register.cocci
@@ -0,0 +1,142 @@
+/// Use mdio_alloc and mdio_register instead of miiphy_register
+///
+//# Stop using the oldest mii interface in drivers
+//
+// Confidence: High
+// Copyright: (C) 2016 Joe Hershberger.  GPLv2.
+// Comments:
+// Options: --include-headers --recursive-includes --local-includes -I include
+
+@ mii_reg @
+expression devname;
+identifier readfunc, writefunc;
+@@
+
++ int retval;
+- miiphy_register(devname, readfunc, writefunc);
++ struct mii_dev *mdiodev = mdio_alloc();
++ if (!mdiodev) return -ENOMEM;
++ strncpy(mdiodev->name, devname, MDIO_NAME_LEN);
++ mdiodev->read = readfunc;
++ mdiodev->write = writefunc;
++ 
++ retval = mdio_register(mdiodev);
++ if (retval < 0) return retval;
+
+@ update_read_sig @
+identifier mii_reg.readfunc;
+identifier name0, addr0, reg0, output;
+type addrT, outputT;
+@@
+
+- readfunc (
+- 	const char *name0,
+- 	addrT addr0,
+- 	addrT reg0,
+- 	outputT *output
+- )
++ readfunc (
++ 	struct mii_dev *bus,
++ 	int addr0,
++ 	int devad,
++ 	int reg0
++ )
+  {
+  ...
+  }
+
+@ update_read_impl @
+identifier mii_reg.readfunc;
+identifier update_read_sig.output;
+type update_read_sig.outputT;
+constant c;
+identifier retvar;
+expression E;
+@@
+
+  readfunc (...)
+  {
++ outputT output = 0;
+  ...
+(
+- return 0;
++ return *output;
+|
+  return c;
+|
+- return retvar;
++ if (retvar < 0)
++ 	return retvar;
++ return *output;
+|
+- return E;
++ int retval = E;
++ if (retval < 0)
++ 	return retval;
++ return *output;
+)
+  }
+
+@ update_read_impl2 @
+identifier mii_reg.readfunc;
+identifier update_read_sig.output;
+@@
+
+  readfunc (...)
+  {
+  <...
+(
+- *output
++ output
+|
+- output
++ &output
+)
+  ...>
+  }
+
+@ update_read_name @
+identifier mii_reg.readfunc;
+identifier update_read_sig.name0;
+@@
+  readfunc (...) {
+  <...
+- name0
++ bus->name
+  ...>
+  }
+
+@ update_write_sig @
+identifier mii_reg.writefunc;
+identifier name0, addr0, reg0, value0;
+type addrT, valueT;
+typedef u16;
+@@
+
+- writefunc (
+- 	const char *name0,
+- 	addrT addr0,
+- 	addrT reg0,
+- 	valueT value0
+- )
++ writefunc (
++ 	struct mii_dev *bus,
++ 	int addr0,
++ 	int devad,
++ 	int reg0,
++ 	u16 value0
++ )
+  {
+  ...
+  }
+
+@ update_write_name @
+identifier mii_reg.writefunc;
+identifier update_write_sig.name0;
+@@
+  writefunc (...) {
+  <...
+- name0
++ bus->name
+  ...>
+  }
-- 
1.7.11.5

  reply	other threads:[~2016-08-08 16:28 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-04  9:07 [U-Boot] [PATCH 0/6] Remove calls from net drivers to legacy miiphy_register() entry-point Joe Hershberger
2016-04-04  9:07 ` [U-Boot] [PATCH 1/6] common: Always include errno.h in common.h Joe Hershberger
2016-04-11  4:23   ` Bin Meng
2016-07-12 17:28   ` [U-Boot] " Joe Hershberger
2016-04-04  9:07 ` [U-Boot] [PATCH 2/6] scripts: Add a cocci patch for miiphy_register Joe Hershberger
2016-04-04  9:07 ` [U-Boot] [PATCH 3/6] net: mii: Use spatch to update miiphy_register Joe Hershberger
2016-04-11  4:23   ` Bin Meng
2016-04-04  9:07 ` [U-Boot] [PATCH 4/6] net: mii: Changes not made by spatch Joe Hershberger
2016-04-05  6:13   ` Stefan Roese
2016-04-11  4:23   ` Bin Meng
2016-04-04  9:07 ` [U-Boot] [PATCH 5/6] net: mii: Fix changes " Joe Hershberger
2016-04-11  4:23   ` Bin Meng
2016-04-04  9:07 ` [U-Boot] [PATCH 6/6] net: mii: Clean up legacy glue that is not used Joe Hershberger
2016-04-11  4:23   ` Bin Meng
2016-04-09 18:35 ` [U-Boot] [PATCH 0/6] Remove calls from net drivers to legacy miiphy_register() entry-point Simon Glass
2016-08-08 16:28 ` [U-Boot] [PATCH v2 0/5] " Joe Hershberger
2016-08-08 16:28   ` Joe Hershberger [this message]
2016-08-15 20:33     ` [U-Boot] scripts: Add a cocci patch for miiphy_register Joe Hershberger
2016-08-08 16:28   ` [U-Boot] [PATCH v2 2/5] net: mii: Use spatch to update miiphy_register Joe Hershberger
2016-08-15 20:33     ` [U-Boot] " Joe Hershberger
2016-08-08 16:28   ` [U-Boot] [PATCH v2 3/5] net: mii: Changes not made by spatch Joe Hershberger
2016-08-15 20:33     ` [U-Boot] " Joe Hershberger
2016-08-08 16:28   ` [U-Boot] [PATCH v2 4/5] net: mii: Fix changes " Joe Hershberger
2016-08-15 20:33     ` [U-Boot] " Joe Hershberger
2016-08-08 16:28   ` [U-Boot] [PATCH v2 5/5] net: mii: Clean up legacy glue that is not used Joe Hershberger
2016-08-15 20:33     ` [U-Boot] " Joe Hershberger
2016-08-19  8:14   ` [U-Boot] [PATCH v2 0/5] Remove calls from net drivers to legacy miiphy_register() entry-point Karl Beldan
2016-08-19 18:48     ` Joe Hershberger
2016-08-20  9:08       ` Karl Beldan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1470673721-20590-2-git-send-email-joe.hershberger@ni.com \
    --to=joe.hershberger@ni.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.