svn commit: r262200 - head/sys/dev/etherswitch/arswitch
Adrian Chadd
adrian at FreeBSD.org
Wed Feb 19 04:23:02 UTC 2014
Author: adrian
Date: Wed Feb 19 04:23:01 2014
New Revision: 262200
URL: http://svnweb.freebsd.org/changeset/base/262200
Log:
Add in a flag to control whether the low or high data word of a register access
is latched in first.
The AR8327 apparently requires the low data word be latched in first.
Obtained from: Linux OpenWRT
Modified:
head/sys/dev/etherswitch/arswitch/arswitch_reg.c
head/sys/dev/etherswitch/arswitch/arswitchvar.h
Modified: head/sys/dev/etherswitch/arswitch/arswitch_reg.c
==============================================================================
--- head/sys/dev/etherswitch/arswitch/arswitch_reg.c Wed Feb 19 00:35:27 2014 (r262199)
+++ head/sys/dev/etherswitch/arswitch/arswitch_reg.c Wed Feb 19 04:23:01 2014 (r262200)
@@ -172,10 +172,21 @@ arswitch_readreg(device_t dev, int addr)
int
arswitch_writereg(device_t dev, int addr, int value)
{
+ struct arswitch_softc *sc;
+ int r;
+
+ sc = device_get_softc(dev);
/* XXX Check the first write too? */
- arswitch_writereg_msb(dev, addr, value);
- return (arswitch_writereg_lsb(dev, addr, value));
+ if (sc->mii_lo_first) {
+ r = arswitch_writereg_lsb(dev, addr, value);
+ r |= arswitch_writereg_msb(dev, addr, value);
+ } else {
+ r = arswitch_writereg_msb(dev, addr, value);
+ r |= arswitch_writereg_lsb(dev, addr, value);
+ }
+
+ return r;
}
int
Modified: head/sys/dev/etherswitch/arswitch/arswitchvar.h
==============================================================================
--- head/sys/dev/etherswitch/arswitch/arswitchvar.h Wed Feb 19 00:35:27 2014 (r262199)
+++ head/sys/dev/etherswitch/arswitch/arswitchvar.h Wed Feb 19 04:23:01 2014 (r262200)
@@ -53,6 +53,7 @@ struct arswitch_softc {
int is_mii; /* PHY mode is MII (XXX which PHY?) */
int page;
int is_internal_switch;
+ int mii_lo_first;
ar8x16_switch_type sc_switchtype;
char *ifname[AR8X16_NUM_PHYS];
device_t miibus[AR8X16_NUM_PHYS];
More information about the svn-src-head
mailing list