This series cleans up phylib's MMD accessors, so that we have a common
way of accessing the Clause 45 register set.
The current situation is far from ideal - we have phy_(read|write)_mmd()
which accesses Clause 45 registers over Clause 45 accesses, and we have
phy_(read|write)_mmd_indirect(), which accesses Clause 45 registers via
Clause 22 register 13/14.
Generic code uses the indirect methods to access standard Clause 45
features, and when we come to add Clause 45 PHY support to phylib, we
would need to make these conditional upon the PHY type, or duplicate
An alternative solution is to merge these accessors together, and select
the appropriate access method depending upon the 802.3 clause that the
PHY conforms with. The result is that we have a single set of
For cases which require special handling, we still allow PHY drivers to
override all MMD accesses - except rather than just overriding the
indirect accesses. This keeps existing overrides working.
Combining the two also has another beneficial side effect - we get rid
of similar functions that take arguments in different orders. The
old direct accessors took the phy structure, devad and register number,
whereas the indirect accessors took the phy structure, register number
and devad in that order. Care must be taken when updating future
drivers that the argument order is correct, and the function name is
not merely replaced.
This patch set is against 4.10-rc3 at present.
drivers/net/phy/Makefile | 3 +-
drivers/net/phy/bcm-phy-lib.c | 12 ++---
drivers/net/phy/dp83867.c | 18 +++----
drivers/net/phy/intel-xway.c | 26 +++++-----
drivers/net/phy/micrel.c | 13 +++--
drivers/net/phy/microchip.c | 5 +-
drivers/net/phy/phy-core.c | 101 ++++++++++++++++++++++++++++++++++++++
drivers/net/phy/phy.c | 110 ++++--------------------------------------
drivers/net/phy/phy_device.c | 4 +-
drivers/net/usb/lan78xx.c | 10 ++--
include/linux/phy.h | 56 +++++++++------------
11 files changed, 176 insertions(+), 182 deletions(-)
create mode 100644 drivers/net/phy/phy-core.c
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.