From: "Malte Schröder" <MalteSch@gmx.de>
To: linux-kernel@vger.kernel.org
Subject: [PATCH] WOL for sis900
Date: Sat, 30 Oct 2004 17:43:44 +0200 [thread overview]
Message-ID: <4183B6B0.7010906@gmx.de> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 323 bytes --]
Hello,
I have applied the patch from http://lkml.org/lkml/2003/7/16/88 manually
to 2.6.7 (also works on 2.6.{8,9}) and have been using it since then.
Attached is a diff against 2.6.9.
Greets
--
---------------------------------------
Malte Schröder
MalteSch@gmx.de
ICQ# 68121508
---------------------------------------
[-- Attachment #1.2: sis900_wol.diff --]
[-- Type: text/x-patch, Size: 2720 bytes --]
--- drivers/net/sis900.c.orig 2004-10-18 23:53:51.000000000 +0200
+++ drivers/net/sis900.c 2004-10-30 17:35:49.000000000 +0200
@@ -74,12 +74,14 @@
#define SIS900_MODULE_NAME "sis900"
#define SIS900_DRV_VERSION "v1.08.07 11/02/2003"
+#define SIS900_WOL_DEFAULT 0
static char version[] __devinitdata =
KERN_INFO "sis900.c: " SIS900_DRV_VERSION "\n";
static int max_interrupt_work = 40;
static int multicast_filter_limit = 128;
+static int enable_wol = SIS900_WOL_DEFAULT;
#define sis900_debug debug
static int sis900_debug;
@@ -182,9 +184,11 @@
MODULE_PARM(multicast_filter_limit, "i");
MODULE_PARM(max_interrupt_work, "i");
MODULE_PARM(debug, "i");
+MODULE_PARM(enable_wol, "i");
MODULE_PARM_DESC(multicast_filter_limit, "SiS 900/7016 maximum number of filtered multicast addresses");
MODULE_PARM_DESC(max_interrupt_work, "SiS 900/7016 maximum events handled per interrupt");
MODULE_PARM_DESC(debug, "SiS 900/7016 debug level (2-4)");
+MODULE_PARM_DESC(enable_wol, "Enable Wake-on-LAN support (0/1)");
static int sis900_open(struct net_device *net_dev);
static int sis900_mii_probe (struct net_device * net_dev);
@@ -930,6 +934,7 @@
{
struct sis900_private *sis_priv = net_dev->priv;
long ioaddr = net_dev->base_addr;
+ u32 cfgpmcsr;
u8 revision;
int ret;
@@ -956,6 +961,15 @@
/* Workaround for EDB */
sis900_set_mode(ioaddr, HW_SPEED_10_MBPS, FDX_CAPABLE_HALF_SELECTED);
+ /* Enable Wake-on-LAN if requested. */
+ if (enable_wol) {
+ pci_read_config_dword(sis_priv->pci_dev, CFGPMCSR, &cfgpmcsr);
+ cfgpmcsr |= PME_EN;
+ pci_write_config_dword(sis_priv->pci_dev, CFGPMCSR, cfgpmcsr);
+ outl(inl(ioaddr + pmctrl) | MAGICPKT | ALGORITHM, ioaddr + pmctrl);
+ } else
+ outl(inl(ioaddr + pmctrl) & ~MAGICPKT, ioaddr + pmctrl);
+
/* Enable all known interrupts by setting the interrupt mask. */
outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxIDLE), ioaddr + imr);
outl(RxENA | inl(ioaddr + cr), ioaddr + cr);
--- drivers/net/sis900.h.orig 2004-10-30 17:35:42.000000000 +0200
+++ drivers/net/sis900.h 2004-10-30 17:35:49.000000000 +0200
@@ -140,6 +140,25 @@
EEREQ = 0x00000400, EEDONE = 0x00000200, EEGNT = 0x00000100
};
+/* Wake-on-LAN support. */
+enum sis900_power_management_control_register_bits {
+ LINKLOSS = 0x00000001,
+ LINKON = 0x00000002,
+ MAGICPKT = 0x00000400,
+ ALGORITHM = 0x00000800,
+ FRM1EN = 0x00100000,
+ FRM2EN = 0x00200000,
+ FRM3EN = 0x00400000,
+ FRM1ACS = 0x01000000,
+ FRM2ACS = 0x02000000,
+ FRM3ACS = 0x04000000,
+ WAKEALL = 0x40000000,
+ GATECLK = 0x80000000
+};
+
+#define CFGPMCSR 0x44
+#define PME_EN 0x100
+
/* Management Data I/O (mdio) frame */
#define MIIread 0x6000
#define MIIwrite 0x5002
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]
next reply other threads:[~2004-10-30 15:50 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-30 15:43 Malte Schröder [this message]
2004-10-30 16:13 ` [PATCH] WOL for sis900 Jeff Garzik
2004-10-30 19:00 ` Daniele Venzano
2004-10-31 13:08 ` Malte Schröder
2004-11-10 2:58 ` Rusty Russell
2004-11-10 5:21 ` Malte Schröder
2004-11-10 20:40 ` Daniele Venzano
2004-11-10 21:24 ` Jeff Garzik
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=4183B6B0.7010906@gmx.de \
--to=maltesch@gmx.de \
--cc=linux-kernel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.