* [PATCH] Sis900 bug fixes 1/4
2004-05-18 12:02 [PATCH] Sis900 bug fixes 0/4 Daniele Venzano
@ 2004-05-18 12:18 ` Daniele Venzano
2004-05-18 12:22 ` [PATCH] Sis900 bug fixes 2/4 Daniele Venzano
` (4 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Daniele Venzano @ 2004-05-18 12:18 UTC (permalink / raw)
To: Linux Kernel Mailing List, Andrew Morton
[-- Attachment #1.1: Type: text/plain, Size: 248 bytes --]
Patch 1 of 4
Change of maintainership for the sis900 driver
The URL of a page with some informations is also added.
Any comment is highly appreciated.
--
-----------------------------
Daniele Venzano
Web: http://teg.homeunix.org
[-- Attachment #1.2: sis900-maintainers.diff --]
[-- Type: text/plain, Size: 449 bytes --]
--- linux-2.6.6/MAINTAINERS 2004-05-18 09:03:16.000000000 +0200
+++ linux-sis900/MAINTAINERS 2004-05-18 10:29:04.000000000 +0200
@@ -1824,10 +1824,11 @@
S: Maintained
SIS 900/7016 FAST ETHERNET DRIVER
-P: Ollie Lho
-M: ollie@sis.com.tw
+P: Daniele Venzano
+M: webvenza@libero.it
L: linux-net@vger.kernel.org
-S: Supported
+W: http://teg.homeunix.org/sis900.html
+S: Maintained
SIS FRAMEBUFFER DRIVER
P: Thomas Winischhofer
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Sis900 bug fixes 2/4
2004-05-18 12:02 [PATCH] Sis900 bug fixes 0/4 Daniele Venzano
2004-05-18 12:18 ` [PATCH] Sis900 bug fixes 1/4 Daniele Venzano
@ 2004-05-18 12:22 ` Daniele Venzano
2004-05-18 12:30 ` [PATCH] Sis900 bug fixes 3/4 Daniele Venzano
` (3 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Daniele Venzano @ 2004-05-18 12:22 UTC (permalink / raw)
To: Linux Kernel Mailing List, Andrew Morton; +Cc: Eric BENARD / Free
[-- Attachment #1.1: Type: text/plain, Size: 306 bytes --]
Patch 2 of 4
Add new ISA bridge PCI ID
I added some constants to make the code more readable and modified the if
body to check for another ID in case the first check fails.
Any comment is highly appreciated.
--
-----------------------------
Daniele Venzano
Web: http://teg.homeunix.org
[-- Attachment #1.2: sis900-isa-bridge-id.diff --]
[-- Type: text/plain, Size: 1475 bytes --]
diff -Naru -X /home/venza/kernel/dontdiff linux-2.6.6/drivers/net/sis900.c linux-sis900/drivers/net/sis900.c
--- linux-2.6.6/drivers/net/sis900.c 2004-04-04 22:31:55.000000000 +0200
+++ linux-sis900/drivers/net/sis900.c 2004-05-18 10:51:39.000000000 +0200
@@ -260,9 +260,13 @@
u8 reg;
int i;
- if ((isa_bridge = pci_find_device(0x1039, 0x0008, isa_bridge)) == NULL) {
- printk("%s: Can not find ISA bridge\n", net_dev->name);
- return 0;
+ isa_bridge = pci_find_device(PCI_VENDOR_ID_SI, SIS630E_ISA_BRIDGE_ID_1, isa_bridge);
+ if (!isa_bridge) {
+ isa_bridge = pci_find_device(PCI_VENDOR_ID_SI, SIS630E_ISA_BRIDGE_ID_2, isa_bridge);
+ if (!isa_bridge) {
+ printk("%s: Can not find ISA bridge\n", net_dev->name);
+ return 0;
+ }
}
pci_read_config_byte(isa_bridge, 0x48, ®);
pci_write_config_byte(isa_bridge, 0x48, reg | 0x40);
diff -Naru -X /home/venza/kernel/dontdiff linux-2.6.6/drivers/net/sis900.h linux-sis900/drivers/net/sis900.h
--- linux-2.6.6/drivers/net/sis900.h 2003-06-17 06:19:41.000000000 +0200
+++ linux-sis900/drivers/net/sis900.h 2004-05-18 10:49:50.000000000 +0200
@@ -274,6 +274,9 @@
#define TX_TOTAL_SIZE NUM_TX_DESC*sizeof(BufferDesc)
#define RX_TOTAL_SIZE NUM_RX_DESC*sizeof(BufferDesc)
+#define SIS630E_ISA_BRIDGE_ID_1 0x0008
+#define SIS630E_ISA_BRIDGE_ID_2 0x0018
+
/* PCI stuff, should be move to pci.h */
#define SIS630_VENDOR_ID 0x1039
#define SIS630_DEVICE_ID 0x0630
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Sis900 bug fixes 3/4
2004-05-18 12:02 [PATCH] Sis900 bug fixes 0/4 Daniele Venzano
2004-05-18 12:18 ` [PATCH] Sis900 bug fixes 1/4 Daniele Venzano
2004-05-18 12:22 ` [PATCH] Sis900 bug fixes 2/4 Daniele Venzano
@ 2004-05-18 12:30 ` Daniele Venzano
2004-05-18 12:39 ` Daniele Venzano
2004-05-19 14:28 ` Daniele Venzano
2004-05-18 12:33 ` [PATCH] Sis900 bug fixes 4/4 Daniele Venzano
` (2 subsequent siblings)
5 siblings, 2 replies; 11+ messages in thread
From: Daniele Venzano @ 2004-05-18 12:30 UTC (permalink / raw)
To: Linux Kernel Mailing List, Andrew Morton; +Cc: Dominik Karall
[-- Attachment #1: Type: text/plain, Size: 670 bytes --]
Patch 3 of 4
Fix PHY transceiver detection code to fall back to known PHY and not to
the last detected.
The code checks every transceiver detected for link status and type, but
fails when ghost transceivers are detected, deciding to use the last one
detected.
With this patch the driver should choose the correct transceiver even
when some ghosts are detected by checking for the type of the tranceiver
it is going to use.
This patch needs that patch #2 is applied before.
Any comment is highly appreciated.
Dominik:
Could you please test this patch ? Thanks.
--
-----------------------------
Daniele Venzano
Web: http://teg.homeunix.org
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Sis900 bug fixes 3/4
2004-05-18 12:30 ` [PATCH] Sis900 bug fixes 3/4 Daniele Venzano
@ 2004-05-18 12:39 ` Daniele Venzano
2004-05-19 14:28 ` Daniele Venzano
1 sibling, 0 replies; 11+ messages in thread
From: Daniele Venzano @ 2004-05-18 12:39 UTC (permalink / raw)
To: Linux Kernel Mailing List, Andrew Morton, Dominik Karall
[-- Attachment #1.1: Type: text/plain, Size: 163 bytes --]
Obviously I had to forget at least one attachment...
Sorry for the noise.
--
-----------------------------
Daniele Venzano
Web: http://teg.homeunix.org
[-- Attachment #1.2: sis900-phy-detection.diff --]
[-- Type: text/plain, Size: 1026 bytes --]
--- linux-2.6.6/drivers/net/sis900.c 2004-05-18 11:43:20.000000000 +0200
+++ linux-sis900/drivers/net/sis900.c 2004-05-18 11:34:43.000000000 +0200
@@ -644,7 +644,7 @@
static u16 sis900_default_phy(struct net_device * net_dev)
{
struct sis900_private * sis_priv = net_dev->priv;
- struct mii_phy *phy = NULL, *phy_home = NULL, *default_phy = NULL;
+ struct mii_phy *phy = NULL, *phy_home = NULL, *default_phy = NULL, *phy_lan = NULL;
u16 status;
for( phy=sis_priv->first_mii; phy; phy=phy->next ){
@@ -660,12 +660,16 @@
status | MII_CNTL_AUTO | MII_CNTL_ISOLATE);
if( phy->phy_types == HOME )
phy_home = phy;
+ else if (phy->phy_types == LAN)
+ phy_lan = phy;
}
}
- if( (!default_phy) && phy_home )
+ if( !default_phy && phy_home )
default_phy = phy_home;
- else if(!default_phy)
+ else if( !default_phy && phy_lan )
+ default_phy = phy_lan;
+ else if ( !default_phy )
default_phy = sis_priv->first_mii;
if( sis_priv->mii != default_phy ){
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Sis900 bug fixes 3/4
2004-05-18 12:30 ` [PATCH] Sis900 bug fixes 3/4 Daniele Venzano
2004-05-18 12:39 ` Daniele Venzano
@ 2004-05-19 14:28 ` Daniele Venzano
2004-05-19 23:58 ` Jeff Garzik
1 sibling, 1 reply; 11+ messages in thread
From: Daniele Venzano @ 2004-05-19 14:28 UTC (permalink / raw)
To: Linux Kernel Mailing List, Andrew Morton
Cc: netdev, Jeff Garzik, Dominik Karall
[-- Attachment #1.1: Type: text/plain, Size: 766 bytes --]
On Tue, May 18, 2004 at 02:30:20PM +0200, Daniele Venzano wrote:
> Dominik:
> Could you please test this patch ? Thanks.
After further testing with Dominik, I made a new patch that actually
works. So, please disregard patch number 3 I sent before and use this
one instead. The other patches need no changes and can be found here:
http://teg.homeunix.org/sis900.html
They are:
sis900-maintainers
sis900-isa-bridge-id
sis900-phy-detection (attached below)
sis900-header-cleanups
This patch has been tested on a previously working system (keeps
working) and on a before-not-working one (now works as expected).
Please, consider this patchset for inclusion.
--
-----------------------------
Daniele Venzano
Web: http://teg.homeunix.org
[-- Attachment #1.2: sis900-phy-detection.diff --]
[-- Type: text/plain, Size: 2108 bytes --]
--- linux-2.6.6/drivers/net/sis900.c 2004-05-18 21:46:41.000000000 +0200
+++ linux-sis900/drivers/net/sis900.c 2004-05-18 21:44:31.000000000 +0200
@@ -116,6 +116,7 @@
#define HOME 0x0001
#define LAN 0x0002
#define MIX 0x0003
+#define UNKNOWN 0x0
} mii_chip_table[] = {
{ "SiS 900 Internal MII PHY", 0x001d, 0x8000, LAN },
{ "SiS 7014 Physical Layer Solution", 0x0016, 0xf830, LAN },
@@ -577,9 +578,11 @@
break;
}
- if( !mii_chip_table[i].phy_id1 )
+ if( !mii_chip_table[i].phy_id1 ) {
printk(KERN_INFO "%s: Unknown PHY transceiver found at address %d.\n",
- net_dev->name, phy_addr);
+ net_dev->name, phy_addr);
+ mii_phy->phy_types = UNKNOWN;
+ }
}
if (sis_priv->mii == NULL) {
@@ -644,15 +647,15 @@
static u16 sis900_default_phy(struct net_device * net_dev)
{
struct sis900_private * sis_priv = net_dev->priv;
- struct mii_phy *phy = NULL, *phy_home = NULL, *default_phy = NULL;
+ struct mii_phy *phy = NULL, *phy_home = NULL, *default_phy = NULL, *phy_lan = NULL;
u16 status;
for( phy=sis_priv->first_mii; phy; phy=phy->next ){
status = mdio_read(net_dev, phy->phy_addr, MII_STATUS);
status = mdio_read(net_dev, phy->phy_addr, MII_STATUS);
- /* Link ON & Not select deafalut PHY */
- if ( (status & MII_STAT_LINK) && !(default_phy) )
+ /* Link ON & Not select default PHY & not ghost PHY */
+ if ( (status & MII_STAT_LINK) && !default_phy && (phy->phy_types != UNKNOWN) )
default_phy = phy;
else{
status = mdio_read(net_dev, phy->phy_addr, MII_CONTROL);
@@ -660,12 +663,16 @@
status | MII_CNTL_AUTO | MII_CNTL_ISOLATE);
if( phy->phy_types == HOME )
phy_home = phy;
+ else if (phy->phy_types == LAN)
+ phy_lan = phy;
}
}
- if( (!default_phy) && phy_home )
+ if( !default_phy && phy_home )
default_phy = phy_home;
- else if(!default_phy)
+ else if( !default_phy && phy_lan )
+ default_phy = phy_lan;
+ else if ( !default_phy )
default_phy = sis_priv->first_mii;
if( sis_priv->mii != default_phy ){
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Sis900 bug fixes 3/4
2004-05-19 14:28 ` Daniele Venzano
@ 2004-05-19 23:58 ` Jeff Garzik
0 siblings, 0 replies; 11+ messages in thread
From: Jeff Garzik @ 2004-05-19 23:58 UTC (permalink / raw)
To: Daniele Venzano, Andrew Morton
Cc: Linux Kernel Mailing List, netdev, Dominik Karall
Daniele Venzano wrote:
> http://teg.homeunix.org/sis900.html
>
> They are:
> sis900-maintainers
Let's hold off on this for now... we can commit this patch anytime, and
there is no harm in being "unofficial maintainer" for a while.
> sis900-isa-bridge-id
applied, with modifications, to netdev-2.6
> sis900-phy-detection (attached below)
I'd like to wait until my netdev-2.6 changes (just pushed to their
public BK home, bk://gkernel.bkbits.net/netdev-2.6) are pulled by
Andrew, and incorporated into the update of his -mm tree.
This patch will likely need some rediffing.
> sis900-header-cleanups
applied, with modifications, to netdev-2.6
Also I applied the sis900-detach found on the web page.
Jeff
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] Sis900 bug fixes 4/4
2004-05-18 12:02 [PATCH] Sis900 bug fixes 0/4 Daniele Venzano
` (2 preceding siblings ...)
2004-05-18 12:30 ` [PATCH] Sis900 bug fixes 3/4 Daniele Venzano
@ 2004-05-18 12:33 ` Daniele Venzano
2004-05-18 13:39 ` [PATCH] Sis900 bug fixes 0/4 Dominik Karall
2004-05-18 14:23 ` Dominik Karall
5 siblings, 0 replies; 11+ messages in thread
From: Daniele Venzano @ 2004-05-18 12:33 UTC (permalink / raw)
To: Linux Kernel Mailing List, Andrew Morton
[-- Attachment #1.1: Type: text/plain, Size: 308 bytes --]
Patch 4 of 4
Small cleanup and spelling fixes of sis900.h (much more needed, also
in sis900.c, will go through Rusty's trivial patch monkey if my
maintainership is accepted).
Any comment is highly appreciated.
--
-----------------------------
Daniele Venzano
Web: http://teg.homeunix.org
[-- Attachment #1.2: sis900-header-cleanups.diff --]
[-- Type: text/plain, Size: 1166 bytes --]
--- linux-2.6.6/drivers/net/sis900.h 2004-05-18 11:44:24.000000000 +0200
+++ linux-sis900/drivers/net/sis900.h 2004-05-18 11:02:19.000000000 +0200
@@ -77,7 +77,7 @@
IE = 0x00000001
};
-/* maximum dma burst fro transmission and receive*/
+/* maximum dma burst for transmission and receive*/
#define MAX_DMA_RANGE 7 /* actually 0 means MAXIMUM !! */
#define TxMXDMA_shift 20
#define RxMXDMA_shift 20
@@ -86,7 +86,7 @@
DMA_BURST_512 = 0, DMA_BURST_64 = 5
};
-/* transmit FIFO threshholds */
+/* transmit FIFO thresholds */
#define TX_FILL_THRESH 16 /* 1/4 FIFO size */
#define TxFILLT_shift 8
#define TxDRNT_shift 0
@@ -140,7 +140,7 @@
EEREQ = 0x00000400, EEDONE = 0x00000200, EEGNT = 0x00000100
};
-/* Manamgement Data I/O (mdio) frame */
+/* Management Data I/O (mdio) frame */
#define MIIread 0x6000
#define MIIwrite 0x5002
#define MIIpmdShift 7
@@ -277,6 +277,3 @@
#define SIS630E_ISA_BRIDGE_ID_1 0x0008
#define SIS630E_ISA_BRIDGE_ID_2 0x0018
-/* PCI stuff, should be move to pci.h */
-#define SIS630_VENDOR_ID 0x1039
-#define SIS630_DEVICE_ID 0x0630
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Sis900 bug fixes 0/4
2004-05-18 12:02 [PATCH] Sis900 bug fixes 0/4 Daniele Venzano
` (3 preceding siblings ...)
2004-05-18 12:33 ` [PATCH] Sis900 bug fixes 4/4 Daniele Venzano
@ 2004-05-18 13:39 ` Dominik Karall
2004-05-19 6:57 ` Grischa Jacobs
2004-05-18 14:23 ` Dominik Karall
5 siblings, 1 reply; 11+ messages in thread
From: Dominik Karall @ 2004-05-18 13:39 UTC (permalink / raw)
To: Daniele Venzano; +Cc: Linux Kernel Mailing List
On Tuesday 18 May 2004 14:02, Daniele Venzano wrote:
> I have prepared 4 patches that fix various issues with the sis900 driver
> in Linux 2.6.6, two of them had some discussion on lkml. The entire
> patchset has been tested by me, but patches 2 and 3 require testing from
> the people who reported the bugs (they are CCed).
>
> Patches 2,3,4 are incremental and need to be applied in that order.
>
> Patch summary:
> 1. change of maintainership for the sis900 driver
> 2. Add new ISA bridge PCI ID
> 3. Fix PHY transceiver detection code to fall back to known PHY and not
> to the last detected.
> 4. Small cleanup and spelling fixes of sis900.h (much more needed, also
> in sis900.c, will go through trivial).
>
> Any comment is highly appreciated.
I applied all 4 patches, but the wrong PHY transceiver is used now again.
Here is the dmesg output:
sis900.c: v1.08.07 11/02/2003
eth0: Unknown PHY transceiver found at address 0.
eth0: Realtek RTL8201 PHY transceiver found at address 1.
eth0: Unknown PHY transceiver found at address 2.
eth0: Unknown PHY transceiver found at address 3.
eth0: Unknown PHY transceiver found at address 4.
eth0: Unknown PHY transceiver found at address 5.
eth0: Unknown PHY transceiver found at address 6.
eth0: Unknown PHY transceiver found at address 7.
eth0: Unknown PHY transceiver found at address 8.
eth0: Unknown PHY transceiver found at address 9.
eth0: Unknown PHY transceiver found at address 10.
eth0: Unknown PHY transceiver found at address 11.
eth0: Unknown PHY transceiver found at address 12.
eth0: Unknown PHY transceiver found at address 13.
eth0: Unknown PHY transceiver found at address 14.
eth0: Unknown PHY transceiver found at address 15.
eth0: Unknown PHY transceiver found at address 16.
eth0: Unknown PHY transceiver found at address 17.
eth0: Unknown PHY transceiver found at address 18.
eth0: Unknown PHY transceiver found at address 19.
eth0: Unknown PHY transceiver found at address 20.
eth0: Unknown PHY transceiver found at address 21.
eth0: Unknown PHY transceiver found at address 22.
eth0: Unknown PHY transceiver found at address 23.
eth0: Unknown PHY transceiver found at address 24.
eth0: Unknown PHY transceiver found at address 25.
eth0: Unknown PHY transceiver found at address 26.
eth0: Unknown PHY transceiver found at address 27.
eth0: Unknown PHY transceiver found at address 28.
eth0: Unknown PHY transceiver found at address 29.
eth0: Unknown PHY transceiver found at address 30.
eth0: Unknown PHY transceiver found at address 31.
eth0: Using transceiver found at address 31 as default
eth0: SiS 900 PCI Fast Ethernet at 0xdc00, IRQ 19, 00:10:dc:8f:a9:ac.
greets,
dominik
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Sis900 bug fixes 0/4
2004-05-18 13:39 ` [PATCH] Sis900 bug fixes 0/4 Dominik Karall
@ 2004-05-19 6:57 ` Grischa Jacobs
0 siblings, 0 replies; 11+ messages in thread
From: Grischa Jacobs @ 2004-05-19 6:57 UTC (permalink / raw)
To: Daniele Venzano; +Cc: Dominik Karall, Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 1037 bytes --]
Dominik Karall wrote:
> I applied all 4 patches, but the wrong PHY transceiver is used now again.
> Here is the dmesg output:
>
> sis900.c: v1.08.07 11/02/2003
> eth0: Unknown PHY transceiver found at address 0.
> eth0: Realtek RTL8201 PHY transceiver found at address 1.
> eth0: Unknown PHY transceiver found at address 2.
<snip>
> eth0: Unknown PHY transceiver found at address 31.
> eth0: Using transceiver found at address 31 as default
> eth0: SiS 900 PCI Fast Ethernet at 0xdc00, IRQ 19, 00:10:dc:8f:a9:ac.
>
> greets,
> dominik
> -
Hi
I had the same messages about unknown PHY transceivers and very poor
transfer rates. I figured that all but one of the transceivers had the
status bit MII_STAT_FAULT set. Selecting that one solved my problems.
I posted this and the patch already a while ago but didn't get any
response. It would be nice if a few people could check whether this
fixes/breaks it for them.
I just checked it with 2.6.6-rc3 and the problem is still there and gets
solved by the attached patch.
Grischa
[-- Attachment #2: patch-2.6.3-bc-sis900 --]
[-- Type: text/plain, Size: 969 bytes --]
--- linux-2.6.3/drivers/net/sis900.c 2004-03-08 20:50:05.000000000 +0100
+++ linux-2.6.3-bc/drivers/net/sis900.c 2004-02-20 14:56:00.000000000 +0100
@@ -18,6 +18,7 @@
preliminary Rev. 1.0 Jan. 18, 1998
http://www.sis.com.tw/support/databook.htm
+ Jan. 7 2004 Grischa Jacobs - Skip mii's with MII_STAT_FAULT set
Rev 1.08.07 Nov. 2 2003 Daniele Venzano <webvenza@libero.it> add suspend/resume support
Rev 1.08.06 Sep. 24 2002 Mufasa Yang bug fix for Tx timeout & add SiS963 support
Rev 1.08.05 Jun. 6 2002 Mufasa Yang bug fix for read_eeprom & Tx descriptor over-boundary
@@ -541,6 +542,10 @@
/* the mii is not accessible, try next one */
continue;
+ if (mii_status & MII_STAT_FAULT)
+ /* ignore mii with the fault bit set */
+ continue;
+
if ((mii_phy = kmalloc(sizeof(struct mii_phy), GFP_KERNEL)) == NULL) {
printk(KERN_INFO "Cannot allocate mem for struct mii_phy\n");
mii_phy = sis_priv->first_mii;
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Sis900 bug fixes 0/4
2004-05-18 12:02 [PATCH] Sis900 bug fixes 0/4 Daniele Venzano
` (4 preceding siblings ...)
2004-05-18 13:39 ` [PATCH] Sis900 bug fixes 0/4 Dominik Karall
@ 2004-05-18 14:23 ` Dominik Karall
5 siblings, 0 replies; 11+ messages in thread
From: Dominik Karall @ 2004-05-18 14:23 UTC (permalink / raw)
To: Daniele Venzano; +Cc: Linux Kernel Mailing List
On Tuesday 18 May 2004 14:02, Daniele Venzano wrote:
> I have prepared 4 patches that fix various issues with the sis900 driver
> in Linux 2.6.6, two of them had some discussion on lkml. The entire
> patchset has been tested by me, but patches 2 and 3 require testing from
> the people who reported the bugs (they are CCed).
>
> Patches 2,3,4 are incremental and need to be applied in that order.
>
> Patch summary:
> 1. change of maintainership for the sis900 driver
> 2. Add new ISA bridge PCI ID
> 3. Fix PHY transceiver detection code to fall back to known PHY and not
> to the last detected.
> 4. Small cleanup and spelling fixes of sis900.h (much more needed, also
> in sis900.c, will go through trivial).
>
> Any comment is highly appreciated.
I did some tries on patching the driver. When I did following changes it works
here, but I don't know if it isn't broken on other machines?
Following changes I did in the 3rd patch created code:
if( !default_phy && phy_home )
default_phy = phy_home;
else if( !default_phy && phy_lan )
default_phy = phy_lan;
else if ( !default_phy )
default_phy = sis_priv->first_mii;
changed to
if( phy_lan )
default_phy = phy_lan;
else if( phy_home )
default_phy = phy_home;
else if ( !default_phy )
default_phy = sis_priv->first_mii;
dmesg output:
sis900.c: v1.08.07 11/02/2003
eth0: Unknown PHY transceiver found at address 0.
eth0: Realtek RTL8201 PHY transceiver found at address 1.
eth0: Unknown PHY transceiver found at address 2.
eth0: Unknown PHY transceiver found at address 3.
eth0: Unknown PHY transceiver found at address 4.
eth0: Unknown PHY transceiver found at address 5.
eth0: Unknown PHY transceiver found at address 6.
eth0: Unknown PHY transceiver found at address 7.
eth0: Unknown PHY transceiver found at address 8.
eth0: Unknown PHY transceiver found at address 9.
eth0: Unknown PHY transceiver found at address 10.
eth0: Unknown PHY transceiver found at address 11.
eth0: Unknown PHY transceiver found at address 12.
eth0: Unknown PHY transceiver found at address 13.
eth0: Unknown PHY transceiver found at address 14.
eth0: Unknown PHY transceiver found at address 15.
eth0: Unknown PHY transceiver found at address 16.
eth0: Unknown PHY transceiver found at address 17.
eth0: Unknown PHY transceiver found at address 18.
eth0: Unknown PHY transceiver found at address 19.
eth0: Unknown PHY transceiver found at address 20.
eth0: Unknown PHY transceiver found at address 21.
eth0: Unknown PHY transceiver found at address 22.
eth0: Unknown PHY transceiver found at address 23.
eth0: Unknown PHY transceiver found at address 24.
eth0: Unknown PHY transceiver found at address 25.
eth0: Unknown PHY transceiver found at address 26.
eth0: Unknown PHY transceiver found at address 27.
eth0: Unknown PHY transceiver found at address 28.
eth0: Unknown PHY transceiver found at address 29.
eth0: Unknown PHY transceiver found at address 30.
eth0: Unknown PHY transceiver found at address 31.
eth0: Using transceiver found at address 1 as default
eth0: SiS 900 PCI Fast Ethernet at 0xdc00, IRQ 19, 00:10:dc:8f:a9:ac.
Maybe this information can help you!
greets,
dominik
^ permalink raw reply [flat|nested] 11+ messages in thread