svn commit: r207074 - user/jmallett/octeon/sys/mips/cavium/octe

Juli Mallett jmallett at FreeBSD.org
Thu Apr 22 21:03:15 UTC 2010


Author: jmallett
Date: Thu Apr 22 21:03:14 2010
New Revision: 207074
URL: http://svn.freebsd.org/changeset/base/207074

Log:
  Correct locking, but make compile by commenting out nearly everything until I
  add our MII infrastructure to this driver.

Modified:
  user/jmallett/octeon/sys/mips/cavium/octe/ethernet-mdio.c

Modified: user/jmallett/octeon/sys/mips/cavium/octe/ethernet-mdio.c
==============================================================================
--- user/jmallett/octeon/sys/mips/cavium/octe/ethernet-mdio.c	Thu Apr 22 20:54:32 2010	(r207073)
+++ user/jmallett/octeon/sys/mips/cavium/octe/ethernet-mdio.c	Thu Apr 22 21:03:14 2010	(r207074)
@@ -34,18 +34,22 @@ AND WITH ALL FAULTS AND CAVIUM  NETWORKS
 #include <sys/kernel.h>
 #include <sys/mbuf.h>
 #include <sys/socket.h>
+#include <sys/lock.h>
 #include <sys/mutex.h>
 
 #include <net/ethernet.h>
 #include <net/if.h>
 
-#include "cvmx-sysinfo.h"
 #include "wrapper-cvmx-includes.h"
 #include "ethernet-headers.h"
 
-DECLARE_MUTEX(mdio_sem);
+static struct mtx mdio_mtx;
+MTX_SYSINIT(cvm_oct_mdio, &mdio_mtx, "MDIO", MTX_DEF);
 
+#define	MDIO_LOCK()	mtx_lock(&mdio_mtx)
+#define	MDIO_UNLOCK()	mtx_unlock(&mdio_mtx)
 
+#if 0
 /**
  * Perform an MII read. Called by the generic MII routines
  *
@@ -131,9 +135,9 @@ static int cvm_oct_get_settings(struct i
 	cvm_oct_private_t *priv = (cvm_oct_private_t *)ifp->if_softc;
 	int ret; 
 
-	down(&mdio_sem);
+	MDIO_LOCK();
 	ret = mii_ethtool_gset(&priv->mii_info, cmd);
-	up(&mdio_sem);
+	MDIO_UNLOCK();
 
 	return ret;
 }
@@ -144,9 +148,9 @@ static int cvm_oct_set_settings(struct i
 	cvm_oct_private_t *priv = (cvm_oct_private_t *)ifp->if_softc;
 	int ret;
 
-	down(&mdio_sem);
+	MDIO_LOCK();
 	ret =  mii_ethtool_sset(&priv->mii_info, cmd);
-	up(&mdio_sem);
+	MDIO_UNLOCK();
 
 	return ret;
 }
@@ -157,9 +161,9 @@ static int cvm_oct_nway_reset(struct ifn
 	cvm_oct_private_t *priv = (cvm_oct_private_t *)ifp->if_softc;
 	int ret;
 	
-	down(&mdio_sem);
+	MDIO_LOCK();
 	ret = mii_nway_restart(&priv->mii_info);
-	up(&mdio_sem);
+	MDIO_UNLOCK();
 
 	return ret; 
 }
@@ -170,9 +174,9 @@ static u32 cvm_oct_get_link(struct ifnet
 	cvm_oct_private_t *priv = (cvm_oct_private_t *)ifp->if_softc;
 	u32 ret;
 
-	down(&mdio_sem);
+	MDIO_LOCK();
 	ret = mii_link_ok(&priv->mii_info);
-	up(&mdio_sem);
+	MDIO_UNLOCK();
 
 	return ret; 
 }
@@ -187,6 +191,7 @@ struct ethtool_ops cvm_oct_ethtool_ops =
 	.get_sg         = ethtool_op_get_sg,
 	.get_tx_csum    = ethtool_op_get_tx_csum,
 };
+#endif
 
 
 /**
@@ -199,16 +204,20 @@ struct ethtool_ops cvm_oct_ethtool_ops =
  */
 int cvm_oct_ioctl(struct ifnet *ifp, struct ifreq *rq, int cmd)
 {
+#if 0
 	cvm_oct_private_t      *priv = (cvm_oct_private_t *)ifp->if_softc;
 	struct mii_ioctl_data  *data = if_mii(rq);
 	unsigned int            duplex_chg;
 	int ret;
 
-	down(&mdio_sem);
+	MDIO_LOCK();
 	ret = generic_mii_ioctl(&priv->mii_info, data, cmd, &duplex_chg);
-	up(&mdio_sem);
+	MDIO_UNLOCK();
 
 	return ret; 
+#else
+	panic("%s: not yet implemented.", __func__);
+#endif
 }
 
 
@@ -224,6 +233,7 @@ int cvm_oct_mdio_setup_device(struct ifn
 	cvm_oct_private_t *priv = (cvm_oct_private_t *)ifp->if_softc;
 	int phy_id = cvmx_helper_board_get_mii_address(priv->port);
 	if (phy_id != -1) {
+#if 0
 		priv->mii_info.dev = dev;
 		priv->mii_info.phy_id = phy_id;
 		priv->mii_info.phy_id_mask = 0xff;
@@ -231,11 +241,9 @@ int cvm_oct_mdio_setup_device(struct ifn
 		priv->mii_info.reg_num_mask = 0x1f;
 		priv->mii_info.mdio_read = cvm_oct_mdio_read;
 		priv->mii_info.mdio_write = cvm_oct_mdio_write;
-	} else {
-		/* Supply dummy MDIO routines so the kernel won't crash
-		   if the user tries to read them */
-		priv->mii_info.mdio_read = cvm_oct_mdio_dummy_read;
-		priv->mii_info.mdio_write = cvm_oct_mdio_dummy_write;
+#else
+		panic("%s: need add MII hooks.", __func__);
+#endif
 	}
 	return 0;
 }


More information about the svn-src-user mailing list