Re: problem with sis900

From: Daniele Venzano
Date: Thu May 13 2004 - 10:21:52 EST

On Wed, May 12, 2004 at 12:30:12AM +0200, Dominik Karall wrote:
> nvidia: module license 'NVIDIA' taints kernel.
> 0: nvidia: loading NVIDIA Linux x86 NVIDIA Kernel Module 1.0-5336 Wed Jan 14
> 18:29:26 PST 2004

Your kernel is tainted, but I'm willing to think that you can reproduce
the problem without binary modules loaded. Please confirm this.

> Let me know if you need more infos!
It seems that the driver is confused by the on chip informations it
reads and detects some 'ghost' transceivers, then decides to use one of
those, instead of taking the real one.

The following patch is a guess in this direction, it should make the
driver get the PHY at address 1, the one detected correctly for you.
Obviously, if it works, I'll need to make the patch a bit more
general before submission...

Daniele Venzano

--- linux-2.6.5/drivers/net/sis900.c 2004-04-04 22:31:55.000000000 +0200
+++ linux-irda-2.6.5/drivers/net/sis900.c 2004-05-13 17:04:29.000000000 +0200
@@ -665,6 +665,7 @@
default_phy = sis_priv->first_mii;

if( sis_priv->mii != default_phy ){
+ default_phy = sis_priv->first_mii->next;
sis_priv->mii = default_phy;
sis_priv->cur_phy = default_phy->phy_addr;
printk(KERN_INFO "%s: Using transceiver found at address %d as default\n", net_dev->name,sis_priv->cur_phy);