aboutsummaryrefslogtreecommitdiffstats
path: root/gpxe/src/drivers/net/sis900.c
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2010-02-03 16:06:41 -0800
committerH. Peter Anvin <hpa@zytor.com>2010-02-03 16:06:41 -0800
commitaddaeaeb3949d576c4e0eb5cfc133b7c3bcfa8fa (patch)
tree2ffea726dc494e87ecc9f506bc6a2bc9242730e3 /gpxe/src/drivers/net/sis900.c
parent5c0f48e49f8d7d084810ecf0b98a76aaebb44835 (diff)
parente7a5f95432132c8fc8f8ede39fda1d368002ddd8 (diff)
downloadsyslinux.git-addaeaeb3949d576c4e0eb5cfc133b7c3bcfa8fa.tar.gz
syslinux.git-addaeaeb3949d576c4e0eb5cfc133b7c3bcfa8fa.tar.xz
syslinux.git-addaeaeb3949d576c4e0eb5cfc133b7c3bcfa8fa.zip
Merge branch 'master' into i915res
Diffstat (limited to 'gpxe/src/drivers/net/sis900.c')
-rw-r--r--gpxe/src/drivers/net/sis900.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gpxe/src/drivers/net/sis900.c b/gpxe/src/drivers/net/sis900.c
index 008b9cf7..da14a091 100644
--- a/gpxe/src/drivers/net/sis900.c
+++ b/gpxe/src/drivers/net/sis900.c
@@ -24,6 +24,8 @@
preliminary Rev. 1.0 Jan. 18, 1998
http://www.sis.com.tw/support/databook.htm */
+FILE_LICENCE ( GPL_ANY );
+
/* Revision History */
/*
@@ -1181,8 +1183,12 @@ static int
sis900_poll(struct nic *nic, int retrieve)
{
u32 rx_status = rxd[cur_rx].cmdsts;
+ u32 intr_status;
int retstat = 0;
+ /* acknowledge interrupts by reading interrupt status register */
+ intr_status = inl(ioaddr + isr);
+
if (sis900_debug > 2)
printf("sis900_poll: cur_rx:%d, status:%X\n", cur_rx,
(unsigned int) rx_status);
@@ -1262,8 +1268,10 @@ sis900_irq(struct nic *nic __unused, irq_action_t action __unused)
{
switch ( action ) {
case DISABLE :
+ outl(0, ioaddr + imr);
break;
case ENABLE :
+ outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxIDLE), ioaddr + imr);
break;
case FORCE :
break;
@@ -1278,8 +1286,8 @@ static struct nic_operations sis900_operations = {
};
static struct pci_device_id sis900_nics[] = {
-PCI_ROM(0x1039, 0x0900, "sis900", "SIS900"),
-PCI_ROM(0x1039, 0x7016, "sis7016", "SIS7016"),
+PCI_ROM(0x1039, 0x0900, "sis900", "SIS900", 0),
+PCI_ROM(0x1039, 0x7016, "sis7016", "SIS7016", 0),
};
PCI_DRIVER ( sis900_driver, sis900_nics, PCI_NO_CLASS );