Thread (5 messages) flat view 5 messages, 2 authors, 2012-07-17
STALE5139d

Revision v3 of 2 in this series.

Revisions (2)
  1. v2 [diff vs current]
  2. v3 current

[PATCH v3 0/3] Add a driver for the ASIX AX88172A with phylib support

From: Christian Riesch <hidden>
Date: 2012-07-13 15:25:31

Hi,

this is v3 of my patchset that adds a driver for the ASIX AX88172A USB 2.0
to 10/100M Fast Ethernet Controller.

Although this chip is already supported by the AX88772 code in
drivers/net/usb/asix.c, I submit a new driver since the existing
driver lacks an important feature: It only supports an
Ethernet connection that is using the internal PHY embedded in the
AX88172A, although the chip also provides an MII interface to connect
an external PHY.

The new driver supports both the internal and the external PHY using
the phylib.

The driver for the AX88172A is based on drivers/net/usb/asix.c
and the work of Michael Riesch [off-list ref].

The first and the second patch factor out common code which is shared
between the existing drivers and the new driver for the AX88172A. The
third patch adds support for the AX88172A.

The patchset applies on top of net-next.

Changes for v3:
- Fixed coding style and netdev_<level> outputs (comments from
  Joe Perches) in the third patch.

Changes for v2:
- Rebased to current net-next.
- Dropped the first patch with ridiculous checkpatch fixes, the new version
  of the patchset only fixes the code that it touches.
- Changed the way the code is factored out in the patchset. This allows
  git to detect that the code was just moved, not changed.
- In v1 I accidentally duplicated the code for reading the phy address
  from the asix chip. Now the drivers use common code in asix_common.c.
- Moved phy_connect(), phy_start() to ax88172a_reset() (called when
  the network interface is started) and phy_stop() to ax88172a_stop().
  It seems to me that this is the way to do it since other drivers
  do the same.
- Changed the naming of the mdio bus, since the way it was done in v1
  could lead to bus names that are too long. Now the mdio bus is labeled 
  usb-<usb bus number>-<usb device number>.
- Cleanup of debug and error messages, in v1 dbg() was used instead
  of netdev_err() for some error messages.
- Changed to order of the fields in struct ax88172a_private (comment from
  Grant Grundler).
- Use #defines instead of magic numbers in ax88172a_bind()

I have tested the patch with the ASIX AX88172A demo board (using the
internal PHY) and a custom board (AX88172A and National DP83640 PHY).

I am looking forward to your comments! :-)

Regards, Christian


Christian Riesch (3):
  asix: Rename asix.c to asix_devices.c
  asix: Factor out common code
  asix: Add a new driver for the AX88172A

 drivers/net/usb/Makefile       |    1 +
 drivers/net/usb/asix.c         | 1680 ----------------------------------------
 drivers/net/usb/asix.h         |  217 ++++++
 drivers/net/usb/asix_common.c  |  545 +++++++++++++
 drivers/net/usb/asix_devices.c | 1028 ++++++++++++++++++++++++
 drivers/net/usb/ax88172a.c     |  415 ++++++++++
 6 files changed, 2206 insertions(+), 1680 deletions(-)
 delete mode 100644 drivers/net/usb/asix.c
 create mode 100644 drivers/net/usb/asix.h
 create mode 100644 drivers/net/usb/asix_common.c
 create mode 100644 drivers/net/usb/asix_devices.c
 create mode 100644 drivers/net/usb/ax88172a.c
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help