netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alan Cox <alan@linux.intel.com>
To: greg@kroah.com, netdev@vger.kernel.org
Subject: [PATCH 13/26] et131x: attack the config stuff
Date: Tue, 25 Aug 2009 15:59:37 +0100	[thread overview]
Message-ID: <20090825145933.16176.18943.stgit@localhost.localdomain> (raw)
In-Reply-To: <20090825145619.16176.68780.stgit@localhost.localdomain>

Prune this back as most of it isn't relevant or used

Signed-off-by: Alan Cox <alan@linux.intel.com>
---

 drivers/staging/et131x/et131x_adapter.h |    2 -
 drivers/staging/et131x/et131x_config.c  |  110 ++++++-------------------------
 drivers/staging/et131x/et131x_initpci.c |    7 +-
 3 files changed, 23 insertions(+), 96 deletions(-)


diff --git a/drivers/staging/et131x/et131x_adapter.h b/drivers/staging/et131x/et131x_adapter.h
index bbbada0..63d7c8a 100644
--- a/drivers/staging/et131x/et131x_adapter.h
+++ b/drivers/staging/et131x/et131x_adapter.h
@@ -256,8 +256,6 @@ struct et131x_adapter {
 	u8 RegistryPhyComa;	/* Phy Coma mode enable/disable */
 
 	u32 RegistryRxMemEnd;	/* Size of internal rx memory */
-	u8 RegistryMACStat;	/* If set, read MACSTAT, else don't */
-	u32 RegistryVlanTag;	/* 802.1q Vlan TAG */
 	u32 RegistryJumboPacket;	/* Max supported ethernet packet size */
 
 	/* Validation helpers */
diff --git a/drivers/staging/et131x/et131x_config.c b/drivers/staging/et131x/et131x_config.c
index a31f82a..358e6f6 100644
--- a/drivers/staging/et131x/et131x_config.c
+++ b/drivers/staging/et131x/et131x_config.c
@@ -105,22 +105,10 @@ extern dbg_info_t *et131x_dbginfo;
 #define PARM_SPEED_DUPLEX_MIN   0
 #define PARM_SPEED_DUPLEX_MAX   5
 
-#define PARM_VLAN_TAG_DEF       0
-#define PARM_VLAN_TAG_MIN       0
-#define PARM_VLAN_TAG_MAX       4095
-
 #define PARM_FLOW_CTL_DEF       0
 #define PARM_FLOW_CTL_MIN       0
 #define PARM_FLOW_CTL_MAX       3
 
-#define PARM_WOL_LINK_DEF       3
-#define PARM_WOL_LINK_MIN       0
-#define PARM_WOL_LINK_MAX       3
-
-#define PARM_WOL_MATCH_DEF      7
-#define PARM_WOL_MATCH_MIN      0
-#define PARM_WOL_MATCH_MAX      7
-
 #define PARM_JUMBO_PKT_DEF      1514
 #define PARM_JUMBO_PKT_MIN      1514
 #define PARM_JUMBO_PKT_MAX      9216
@@ -129,10 +117,6 @@ extern dbg_info_t *et131x_dbginfo;
 #define PARM_PHY_COMA_MIN       0
 #define PARM_PHY_COMA_MAX       1
 
-#define PARM_MAC_STAT_DEF       1
-#define PARM_MAC_STAT_MIN       0
-#define PARM_MAC_STAT_MAX       1
-
 #define PARM_SC_GAIN_DEF        7
 #define PARM_SC_GAIN_MIN        0
 #define PARM_SC_GAIN_MAX        7
@@ -145,13 +129,7 @@ extern dbg_info_t *et131x_dbginfo;
 #define PARM_NMI_DISABLE_MIN    0
 #define PARM_NMI_DISABLE_MAX    2
 
-#define PARM_DMA_CACHE_DEF      0
-
-#define PARM_PHY_LOOPBK_DEF     0
-#define PARM_PHY_LOOPBK_MIN     0
-#define PARM_PHY_LOOPBK_MAX     1
 
-#define PARM_MAC_ADDRESS_DEF    { 0x00, 0x05, 0x3d, 0x00, 0x02, 0x00 }
 
 /* Module parameter for disabling NMI
  * et131x_speed_set :
@@ -184,109 +162,61 @@ MODULE_PARM_DESC(et131x_speed_set,
  * @etdev: pointer to the private adapter struct
  *
  * Parses a configuration from some location (module parameters, for example)
- * into the private adapter struct
+ * into the private adapter struct. This really has no sensible analogy in
+ * Linux as sysfs parameters are dynamic. Several things that were hee could
+ * go into sysfs, but other stuff like speed handling is part of the mii
+ * interfaces/ethtool.
  */
 void et131x_config_parse(struct et131x_adapter *etdev)
 {
-	uint8_t macAddrDef[] = PARM_MAC_ADDRESS_DEF;
+	static const u8 default_mac[] = { 0x00, 0x05, 0x3d, 0x00, 0x02, 0x00 };
+	static const u8 duplex[] = { 0, 1, 2, 1, 2, 2 };
+	static const u16 speed[] = { 0, 10, 10, 100, 100, 1000 };
 
 	DBG_ENTER(et131x_dbginfo);
 
-	/*
-	 * The NDIS driver uses the registry to store persistent per-device
-	 * configuration, and reads this configuration into the appropriate
-	 * elements of the private adapter structure on initialization.
-	 * Because Linux has no analog to the registry, use this function to
-	 * initialize the private adapter structure with a default
-	 * configuration.
-	 *
-	 * One other possibility is to use a series of module parameters which
-	 * can be passed in by the caller when the module is initialized.
-	 * However, this implementation does not allow for seperate
-	 * configurations in the event multiple devices are present, and hence
-	 * will not suffice.
-	 *
-	 * If another method is derived which addresses this problem, this is
-	 * where it should be implemented.
-	 */
+	etdev->SpeedDuplex = et131x_speed_set;
 
-	 /* Set the private adapter struct with default values for the
-	  * corresponding parameters
-	  */
-	if (et131x_speed_set != PARM_SPEED_DUPLEX_DEF) {
+	if (et131x_speed_set < PARM_SPEED_DUPLEX_MIN ||
+	    et131x_speed_set > PARM_SPEED_DUPLEX_MAX) {
+	    	dev_warn(&etdev->pdev->dev, "invalid speed setting ignored.\n");
+	    	et131x_speed_set = PARM_SPEED_DUPLEX_DEF;
+	}
+	else if (et131x_speed_set != PARM_SPEED_DUPLEX_DEF)
 		DBG_VERBOSE(et131x_dbginfo, "Speed set manually to : %d \n",
 			    et131x_speed_set);
-		etdev->SpeedDuplex = et131x_speed_set;
-	} else {
-		etdev->SpeedDuplex = PARM_SPEED_DUPLEX_DEF;
-	}
 
 	/*  etdev->SpeedDuplex            = PARM_SPEED_DUPLEX_DEF; */
 
-	etdev->RegistryVlanTag = PARM_VLAN_TAG_DEF;
 	etdev->RegistryFlowControl = PARM_FLOW_CTL_DEF;
 	etdev->RegistryJumboPacket = PARM_JUMBO_PKT_DEF;
 	etdev->RegistryPhyComa = PARM_PHY_COMA_DEF;
-	etdev->RegistryMACStat = PARM_MAC_STAT_DEF;
 
 	if (et131x_nmi_disable != PARM_NMI_DISABLE_DEF)
 		etdev->RegistryNMIDisable = et131x_nmi_disable;
 	else
 		etdev->RegistryNMIDisable = PARM_NMI_DISABLE_DEF;
 
-	etdev->RegistryPhyLoopbk = PARM_PHY_LOOPBK_DEF;
+	etdev->RegistryPhyLoopbk = 0;	/* 0 off 1 on */
 
 	/* Set the MAC address to a default */
-	memcpy(etdev->CurrentAddress, macAddrDef, ETH_ALEN);
+	memcpy(etdev->CurrentAddress, default_mac, ETH_ALEN);
 	etdev->bOverrideAddress = false;
 
-	DBG_TRACE(et131x_dbginfo,
-		  "Default MAC Address  : %02x:%02x:%02x:%02x:%02x:%02x\n",
-		  etdev->CurrentAddress[0], etdev->CurrentAddress[1],
-		  etdev->CurrentAddress[2], etdev->CurrentAddress[3],
-		  etdev->CurrentAddress[4], etdev->CurrentAddress[5]);
-
 	/* Decode SpeedDuplex
 	 *
 	 * Set up as if we are auto negotiating always and then change if we
 	 * go into force mode
-	 */
-	etdev->AiForceSpeed = 0;	/* Auto speed */
-	etdev->AiForceDpx = 0;	/* Auto FDX */
-
-	/* If we are the 10/100 device, and gigabit is somehow requested then
+	 *
+	 * If we are the 10/100 device, and gigabit is somehow requested then
 	 * knock it down to 100 full.
 	 */
 	if (etdev->pdev->device == ET131X_PCI_DEVICE_ID_FAST &&
 	    etdev->SpeedDuplex == 5)
 		etdev->SpeedDuplex = 4;
 
-	switch (etdev->SpeedDuplex) {
-	case 1:		/* 10Mb   Half-Duplex */
-		etdev->AiForceSpeed = 10;
-		etdev->AiForceDpx = 1;
-		break;
-
-	case 2:		/* 10Mb   Full-Duplex */
-		etdev->AiForceSpeed = 10;
-		etdev->AiForceDpx = 2;
-		break;
-
-	case 3:		/* 100Mb  Half-Duplex */
-		etdev->AiForceSpeed = 100;
-		etdev->AiForceDpx = 1;
-		break;
-
-	case 4:		/* 100Mb  Full-Duplex */
-		etdev->AiForceSpeed = 100;
-		etdev->AiForceDpx = 2;
-		break;
-
-	case 5:		/* 1000Mb Full-Duplex */
-		etdev->AiForceSpeed = 1000;
-		etdev->AiForceDpx = 2;
-		break;
-	}
+	etdev->AiForceSpeed = speed[etdev->SpeedDuplex];
+	etdev->AiForceDpx = duplex[etdev->SpeedDuplex];	/* Auto FDX */
 
 	DBG_LEAVE(et131x_dbginfo);
 }
diff --git a/drivers/staging/et131x/et131x_initpci.c b/drivers/staging/et131x/et131x_initpci.c
index 4d45941..c489090 100644
--- a/drivers/staging/et131x/et131x_initpci.c
+++ b/drivers/staging/et131x/et131x_initpci.c
@@ -442,10 +442,9 @@ void et131x_error_timer_handler(unsigned long data)
 
 	pm_csr.value = readl(&etdev->regs->global.pm_csr.value);
 
-	if (pm_csr.bits.pm_phy_sw_coma == 0) {
-		if (etdev->RegistryMACStat)
-			UpdateMacStatHostCounters(etdev);
-	} else
+	if (pm_csr.bits.pm_phy_sw_coma == 0)
+		UpdateMacStatHostCounters(etdev);
+	else
 		DBG_VERBOSE(et131x_dbginfo,
 			    "No interrupts, in PHY coma, pm_csr = 0x%x\n",
 			    pm_csr.value);


  parent reply	other threads:[~2009-08-25 15:04 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-25 14:57 [PATCH 00/26] et131x cleanups - phase 1 Alan Cox
2009-08-25 14:57 ` [PATCH 01/26] et1310: kill pAdapter in favour of a sane name Alan Cox
2009-08-26  5:49   ` Greg KH
2009-08-25 14:57 ` [PATCH 02/26] et131x: spinlocks Alan Cox
2009-08-25 14:57 ` [PATCH 03/26] et131x: power state Alan Cox
2009-08-25 14:57 ` [PATCH 04/26] et131x: kill unused RCV_REF macros Alan Cox
2009-08-25 14:58 ` [PATCH 05/26] et131x: kill refcount Alan Cox
2009-08-25 14:58 ` [PATCH 06/26] et131x: MPSend macros Alan Cox
2009-08-25 14:58 ` [PATCH 07/26] et131x: kill copied PCI fields Alan Cox
2009-08-25 14:58 ` [PATCH 08/26] et131x: Take a kref for the PCI pointer we cache Alan Cox
2009-08-25 14:58 ` [PATCH 09/26] et131x: CSRAddress to regs Alan Cox
2009-08-25 14:59 ` [PATCH 10/26] et131x: Eliminate RegistryDMA Cache Alan Cox
2009-08-25 14:59 ` [PATCH 11/26] et131x: eliminate write only registry fields Alan Cox
2009-08-25 14:59 ` [PATCH 12/26] et131x: clean up constant rx/tx " Alan Cox
2009-08-25 14:59 ` Alan Cox [this message]
2009-08-25 14:59 ` [PATCH 14/26] et131x: config is already zeroed Alan Cox
2009-08-25 14:59 ` [PATCH 15/26] et131x: fold the diet config into the other code Alan Cox
2009-08-25 15:00 ` [PATCH 16/26] et131x: de-hungarianise a bit Alan Cox
2009-08-25 15:00 ` [PATCH 17/26] et131x: continue pruning unused fields Alan Cox
2009-08-25 15:00 ` [PATCH 18/26] et131x: remove unused PCI identifiers Alan Cox
2009-08-25 15:00 ` [PATCH 19/26] et131x: eeprom remove features Alan Cox
2009-08-25 15:00 ` [PATCH 20/26] et131x: sort out the mmc enable routine Alan Cox
2009-08-25 15:00 ` [PATCH 21/26] et131x: clean up MMC_SRAM_ Alan Cox
2009-08-25 15:01 ` [PATCH 22/26] et131x: quick tidy of the debug code Alan Cox
2009-08-25 15:01 ` [PATCH 23/26] et131x: kill the Q_ADDR struct Alan Cox
2009-08-25 15:01 ` [PATCH 24/26] et131x: clean up PM_CSR_t Alan Cox
2009-08-25 15:01 ` [PATCH 25/26] et131x: clean up DMA10/DMA4 types Alan Cox
2009-08-25 15:01 ` [PATCH 26/26] et131x: clean up MP_FLAG macros Alan Cox

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=20090825145933.16176.18943.stgit@localhost.localdomain \
    --to=alan@linux.intel.com \
    --cc=greg@kroah.com \
    --cc=netdev@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).