linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] smsc95xx: add module parameter to turn off NIC status leds
@ 2012-02-08 11:08 Peter Meerwald
  2012-02-08 11:08 ` [PATCH 2/2] smsc95xx: allow to re-use MAC address already programmed Peter Meerwald
  2012-02-08 20:26 ` [PATCH 1/2] smsc95xx: add module parameter to turn off NIC status leds David Miller
  0 siblings, 2 replies; 5+ messages in thread
From: Peter Meerwald @ 2012-02-08 11:08 UTC (permalink / raw)
  To: linux-kernel; +Cc: davem, steve.glendinning, Peter Meerwald

From: Peter Meerwald <p.meerwald@bct-electronic.com>

add module parameter to allow to turn off NIC status leds (link, 
speed, activity); blinking LEDs are annoying outside the server room :)

default behaviour is not changed, tested on beagleboard-xm

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>

---
 drivers/net/usb/smsc95xx.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index d45520e..b7b2326 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -63,6 +63,10 @@ static bool turbo_mode = true;
 module_param(turbo_mode, bool, 0644);
 MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
 
+static bool leds_off = false;
+module_param(leds_off, bool, 0644);
+MODULE_PARM_DESC(leds_off, "Turn off NIC LEDs");
+
 static int smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data)
 {
 	u32 *buf = kmalloc(4, GFP_KERNEL);
@@ -894,8 +898,11 @@ static int smsc95xx_reset(struct usbnet *dev)
 	netif_dbg(dev, ifup, dev->net, "ID_REV = 0x%08x\n", read_buf);
 
 	/* Configure GPIO pins as LED outputs */
-	write_buf = LED_GPIO_CFG_SPD_LED | LED_GPIO_CFG_LNK_LED |
-		LED_GPIO_CFG_FDX_LED;
+	if (!leds_off)
+		write_buf = LED_GPIO_CFG_SPD_LED | LED_GPIO_CFG_LNK_LED |
+			LED_GPIO_CFG_FDX_LED;
+	else
+		write_buf = 0;
 	ret = smsc95xx_write_reg(dev, LED_GPIO_CFG, write_buf);
 	if (ret < 0) {
 		netdev_warn(dev->net, "Failed to write LED_GPIO_CFG register, ret=%d\n",
-- 
1.7.4.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] smsc95xx: allow to re-use MAC address already programmed
  2012-02-08 11:08 [PATCH 1/2] smsc95xx: add module parameter to turn off NIC status leds Peter Meerwald
@ 2012-02-08 11:08 ` Peter Meerwald
  2012-02-08 20:26   ` David Miller
  2012-02-08 20:27   ` David Miller
  2012-02-08 20:26 ` [PATCH 1/2] smsc95xx: add module parameter to turn off NIC status leds David Miller
  1 sibling, 2 replies; 5+ messages in thread
From: Peter Meerwald @ 2012-02-08 11:08 UTC (permalink / raw)
  To: linux-kernel; +Cc: davem, steve.glendinning, Peter Meerwald

From: Peter Meerwald <p.meerwald@bct-electronic.com>

patch adds a module parameter which allows to keep the MAC address already 
set (e.g. by the boot loader) if it is valid (otherwise the MAC address is read 
from an optional EEPROM or randomly generated)

tested on beagleboard-xm

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>

---
 drivers/net/usb/smsc95xx.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index b7b2326..5545a60 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -67,6 +67,10 @@ static bool leds_off = false;
 module_param(leds_off, bool, 0644);
 MODULE_PARM_DESC(leds_off, "Turn off NIC LEDs");
 
+static bool keep_mac = false;
+module_param(keep_mac, bool, 0644);
+MODULE_PARM_DESC(keep_mac, "Keep MAC address set by boot loader if available");
+
 static int smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data)
 {
 	u32 *buf = kmalloc(4, GFP_KERNEL);
@@ -607,6 +611,21 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
 
 static void smsc95xx_init_mac_address(struct usbnet *dev)
 {
+	if (keep_mac) {
+		u32 addr_lo, addr_hi;
+		int ret = smsc95xx_read_reg(dev, ADDRL, &addr_lo);
+		if (ret < 0) {
+			netdev_warn(dev->net, "Failed to read ADDRL: %d\n", ret);
+		}
+		ret = smsc95xx_read_reg(dev, ADDRH, &addr_hi);
+
+		if (is_valid_ether_addr(dev->net->dev_addr)) {
+			/* MAC values are valid so use them */
+			netif_dbg(dev, ifup, dev->net, "MAC address already configured\n");
+			return;
+		}
+	}
+
 	/* try reading mac address from EEPROM */
 	if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
 			dev->net->dev_addr) == 0) {
-- 
1.7.4.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] smsc95xx: add module parameter to turn off NIC status leds
  2012-02-08 11:08 [PATCH 1/2] smsc95xx: add module parameter to turn off NIC status leds Peter Meerwald
  2012-02-08 11:08 ` [PATCH 2/2] smsc95xx: allow to re-use MAC address already programmed Peter Meerwald
@ 2012-02-08 20:26 ` David Miller
  1 sibling, 0 replies; 5+ messages in thread
From: David Miller @ 2012-02-08 20:26 UTC (permalink / raw)
  To: pmeerw; +Cc: linux-kernel, steve.glendinning, p.meerwald

From: Peter Meerwald <pmeerw@pmeerw.net>
Date: Wed,  8 Feb 2012 12:08:51 +0100

> From: Peter Meerwald <p.meerwald@bct-electronic.com>
> 
> add module parameter to allow to turn off NIC status leds (link, 
> speed, activity); blinking LEDs are annoying outside the server room :)
> 
> default behaviour is not changed, tested on beagleboard-xm
> 
> Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>

No.  Create a generic mechanism, perhaps via ethtool, for users to
configure something like this.

Otherwise the next driver that wants to provide this kind of knob
will add yet another module parameter with yet another name, and
this kind of ad-hoc set of interfaces absolutely sucks for users.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] smsc95xx: allow to re-use MAC address already programmed
  2012-02-08 11:08 ` [PATCH 2/2] smsc95xx: allow to re-use MAC address already programmed Peter Meerwald
@ 2012-02-08 20:26   ` David Miller
  2012-02-08 20:27   ` David Miller
  1 sibling, 0 replies; 5+ messages in thread
From: David Miller @ 2012-02-08 20:26 UTC (permalink / raw)
  To: pmeerw; +Cc: linux-kernel, steve.glendinning, p.meerwald

From: Peter Meerwald <pmeerw@pmeerw.net>
Date: Wed,  8 Feb 2012 12:08:52 +0100

> From: Peter Meerwald <p.meerwald@bct-electronic.com>
> 
> patch adds a module parameter which allows to keep the MAC address already 
> set (e.g. by the boot loader) if it is valid (otherwise the MAC address is read 
> from an optional EEPROM or randomly generated)
> 
> tested on beagleboard-xm
> 
> Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>

No way, for the same reason as your other patch.

Module parameters suck, use something generic.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] smsc95xx: allow to re-use MAC address already programmed
  2012-02-08 11:08 ` [PATCH 2/2] smsc95xx: allow to re-use MAC address already programmed Peter Meerwald
  2012-02-08 20:26   ` David Miller
@ 2012-02-08 20:27   ` David Miller
  1 sibling, 0 replies; 5+ messages in thread
From: David Miller @ 2012-02-08 20:27 UTC (permalink / raw)
  To: pmeerw; +Cc: linux-kernel, steve.glendinning, p.meerwald


And please post networking patches CC:'d to the proper list next time,
netdev@vger.kernel.org

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-02-08 20:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-08 11:08 [PATCH 1/2] smsc95xx: add module parameter to turn off NIC status leds Peter Meerwald
2012-02-08 11:08 ` [PATCH 2/2] smsc95xx: allow to re-use MAC address already programmed Peter Meerwald
2012-02-08 20:26   ` David Miller
2012-02-08 20:27   ` David Miller
2012-02-08 20:26 ` [PATCH 1/2] smsc95xx: add module parameter to turn off NIC status leds David Miller

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).