From: Alan Cox <alan@linux.intel.com>
To: greg@kroah.com, netdev@vger.kernel.org
Subject: [PATCH 15/26] et131x: fold the diet config into the other code
Date: Tue, 25 Aug 2009 15:59:59 +0100 [thread overview]
Message-ID: <20090825145953.16176.60453.stgit@localhost.localdomain> (raw)
In-Reply-To: <20090825145619.16176.68780.stgit@localhost.localdomain>
No point having a file just for that
Signed-off-by: Alan Cox <alan@linux.intel.com>
---
drivers/staging/et131x/Makefile | 1
drivers/staging/et131x/et131x_config.c | 183 -------------------------------
drivers/staging/et131x/et131x_initpci.c | 86 +++++++++++++++
3 files changed, 86 insertions(+), 184 deletions(-)
diff --git a/drivers/staging/et131x/Makefile b/drivers/staging/et131x/Makefile
index 3ad571d..3ddbc64 100644
--- a/drivers/staging/et131x/Makefile
+++ b/drivers/staging/et131x/Makefile
@@ -11,7 +11,6 @@ et131x-objs := et1310_eeprom.o \
et1310_pm.o \
et1310_rx.o \
et1310_tx.o \
- et131x_config.o \
et131x_debug.o \
et131x_initpci.o \
et131x_isr.o \
diff --git a/drivers/staging/et131x/et131x_config.c b/drivers/staging/et131x/et131x_config.c
index cde727d..e69de29 100644
--- a/drivers/staging/et131x/et131x_config.c
+++ b/drivers/staging/et131x/et131x_config.c
@@ -1,183 +0,0 @@
-/*
- * Agere Systems Inc.
- * 10/100/1000 Base-T Ethernet Driver for the ET1301 and ET131x series MACs
- *
- * Copyright © 2005 Agere Systems Inc.
- * All rights reserved.
- * http://www.agere.com
- *
- *------------------------------------------------------------------------------
- *
- * et131x_config.c - Handles parsing of configuration data during
- * initialization.
- *
- *------------------------------------------------------------------------------
- *
- * SOFTWARE LICENSE
- *
- * This software is provided subject to the following terms and conditions,
- * which you should read carefully before using the software. Using this
- * software indicates your acceptance of these terms and conditions. If you do
- * not agree with these terms and conditions, do not use the software.
- *
- * Copyright © 2005 Agere Systems Inc.
- * All rights reserved.
- *
- * Redistribution and use in source or binary forms, with or without
- * modifications, are permitted provided that the following conditions are met:
- *
- * . Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following Disclaimer as comments in the code as
- * well as in the documentation and/or other materials provided with the
- * distribution.
- *
- * . Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following Disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * . Neither the name of Agere Systems Inc. nor the names of the contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * Disclaimer
- *
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ANY
- * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN
- * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- */
-
-#include "et131x_version.h"
-#include "et131x_debug.h"
-#include "et131x_defs.h"
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/kernel.h>
-
-#include <linux/sched.h>
-#include <linux/ptrace.h>
-#include <linux/slab.h>
-#include <linux/ctype.h>
-#include <linux/string.h>
-#include <linux/timer.h>
-#include <linux/interrupt.h>
-#include <linux/in.h>
-#include <linux/delay.h>
-#include <linux/io.h>
-#include <linux/bitops.h>
-#include <linux/pci.h>
-#include <asm/system.h>
-
-#include <linux/netdevice.h>
-#include <linux/etherdevice.h>
-#include <linux/skbuff.h>
-#include <linux/if_arp.h>
-#include <linux/ioport.h>
-
-#include "et1310_phy.h"
-#include "et1310_pm.h"
-#include "et1310_jagcore.h"
-
-#include "et131x_adapter.h"
-#include "et131x_initpci.h"
-#include "et131x_config.h"
-
-#include "et1310_tx.h"
-
-/* Data for debugging facilities */
-#ifdef CONFIG_ET131X_DEBUG
-extern dbg_info_t *et131x_dbginfo;
-#endif /* CONFIG_ET131X_DEBUG */
-
-/* Defines for Parameter Default/Min/Max vaules */
-#define PARM_SPEED_DUPLEX_MIN 0
-#define PARM_SPEED_DUPLEX_MAX 5
-
-/* Module parameter for disabling NMI
- * et131x_nmi_disable :
- * Disable NMI (0-2) [0]
- * 0 :
- * 1 :
- * 2 :
- */
-static u32 et131x_nmi_disable; /* 0-2 */
-module_param(et131x_nmi_disable, uint, 0);
-MODULE_PARM_DESC(et131x_nmi_disable, "Disable NMI (0-2) [0]");
-
-/* Module parameter for manual speed setting
- * Set Link speed and dublex manually (0-5) [0]
- * 1 : 10Mb Half-Duplex
- * 2 : 10Mb Full-Duplex
- * 3 : 100Mb Half-Duplex
- * 4 : 100Mb Full-Duplex
- * 5 : 1000Mb Full-Duplex
- * 0 : Auto Speed Auto Duplex // default
- */
-static u32 et131x_speed_set;
-module_param(et131x_speed_set, uint, 0);
-MODULE_PARM_DESC(et131x_speed_set,
- "Set Link speed and dublex manually (0-5) [0] \n 1 : 10Mb Half-Duplex \n 2 : 10Mb Full-Duplex \n 3 : 100Mb Half-Duplex \n 4 : 100Mb Full-Duplex \n 5 : 1000Mb Full-Duplex \n 0 : Auto Speed Auto Dublex");
-
-/**
- * et131x_config_parse
- * @etdev: pointer to the private adapter struct
- *
- * Parses a configuration from some location (module parameters, for example)
- * 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)
-{
- 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);
-
- 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 = 0;
- }
- else if (et131x_speed_set)
- DBG_VERBOSE(et131x_dbginfo, "Speed set manually to : %d \n",
- et131x_speed_set);
-
- etdev->SpeedDuplex = et131x_speed_set;
- etdev->RegistryJumboPacket = 1514; /* 1514-9216 */
-
- etdev->RegistryNMIDisable = et131x_nmi_disable;
-
- /* Set the MAC address to a default */
- memcpy(etdev->CurrentAddress, default_mac, ETH_ALEN);
-
- /* Decode SpeedDuplex
- *
- * Set up as if we are auto negotiating always and then change if we
- * go into force mode
- *
- * 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;
-
- 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 c489090..34737d1 100644
--- a/drivers/staging/et131x/et131x_initpci.c
+++ b/drivers/staging/et131x/et131x_initpci.c
@@ -140,6 +140,37 @@ static dbg_info_t et131x_info = { DRIVER_NAME_EXT, 0, 0 };
dbg_info_t *et131x_dbginfo = &et131x_info;
#endif /* CONFIG_ET131X_DEBUG */
+/* Defines for Parameter Default/Min/Max vaules */
+#define PARM_SPEED_DUPLEX_MIN 0
+#define PARM_SPEED_DUPLEX_MAX 5
+
+/* Module parameter for disabling NMI
+ * et131x_nmi_disable :
+ * Disable NMI (0-2) [0]
+ * 0 :
+ * 1 :
+ * 2 :
+ */
+static u32 et131x_nmi_disable; /* 0-2 */
+module_param(et131x_nmi_disable, uint, 0);
+MODULE_PARM_DESC(et131x_nmi_disable, "Disable NMI (0-2) [0]");
+
+/* Module parameter for manual speed setting
+ * Set Link speed and dublex manually (0-5) [0]
+ * 1 : 10Mb Half-Duplex
+ * 2 : 10Mb Full-Duplex
+ * 3 : 100Mb Half-Duplex
+ * 4 : 100Mb Full-Duplex
+ * 5 : 1000Mb Full-Duplex
+ * 0 : Auto Speed Auto Duplex // default
+ */
+static u32 et131x_speed_set;
+module_param(et131x_speed_set, uint, 0);
+MODULE_PARM_DESC(et131x_speed_set,
+ "Set Link speed and dublex manually (0-5) [0] \n 1 : 10Mb Half-Duplex \n 2 : 10Mb Full-Duplex \n 3 : 100Mb Half-Duplex \n 4 : 100Mb Full-Duplex \n 5 : 1000Mb Full-Duplex \n 0 : Auto Speed Auto Dublex");
+
+
+
static struct pci_device_id et131x_pci_table[] __devinitdata = {
{ET131X_PCI_VENDOR_ID, ET131X_PCI_DEVICE_ID_GIG, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 0UL},
@@ -202,6 +233,12 @@ int et131x_init_module(void)
DBG_ENTER(et131x_dbginfo);
DBG_PRINT("%s\n", DRIVER_INFO);
+ if (et131x_speed_set < PARM_SPEED_DUPLEX_MIN ||
+ et131x_speed_set > PARM_SPEED_DUPLEX_MAX) {
+ printk(KERN_WARNING "et131x: invalid speed setting ignored.\n");
+ et131x_speed_set = 0;
+ }
+
result = pci_register_driver(&et131x_driver);
DBG_LEAVE(et131x_dbginfo);
@@ -750,6 +787,55 @@ void __devexit et131x_pci_remove(struct pci_dev *pdev)
}
/**
+ * et131x_config_parse
+ * @etdev: pointer to the private adapter struct
+ *
+ * Parses a configuration from some location (module parameters, for example)
+ * 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)
+{
+ 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);
+
+ if (et131x_speed_set)
+ DBG_VERBOSE(et131x_dbginfo, "Speed set manually to : %d \n",
+ et131x_speed_set);
+
+ etdev->SpeedDuplex = et131x_speed_set;
+ etdev->RegistryJumboPacket = 1514; /* 1514-9216 */
+
+ etdev->RegistryNMIDisable = et131x_nmi_disable;
+
+ /* Set the MAC address to a default */
+ memcpy(etdev->CurrentAddress, default_mac, ETH_ALEN);
+
+ /* Decode SpeedDuplex
+ *
+ * Set up as if we are auto negotiating always and then change if we
+ * go into force mode
+ *
+ * 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;
+
+ etdev->AiForceSpeed = speed[etdev->SpeedDuplex];
+ etdev->AiForceDpx = duplex[etdev->SpeedDuplex]; /* Auto FDX */
+
+ DBG_LEAVE(et131x_dbginfo);
+}
+
+
+/**
* et131x_pci_setup - Perform device initialization
* @pdev: a pointer to the device's pci_dev structure
* @ent: this device's entry in the pci_device_id table
next prev parent reply other threads:[~2009-08-25 15:05 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 ` [PATCH 13/26] et131x: attack the config stuff Alan Cox
2009-08-25 14:59 ` [PATCH 14/26] et131x: config is already zeroed Alan Cox
2009-08-25 14:59 ` Alan Cox [this message]
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=20090825145953.16176.60453.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