Re: LXT971 driver in the phy lib

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On May 8, 2006, at 11:05, Uwe Zeisberger wrote:

Hello,

I try to get an network interface running that has an LXT971A[1].

If I apply the following patch, the target can detect the phy.

diff --git a/drivers/net/phy/lxt.c b/drivers/net/phy/lxt.c
index bef79e4..4c66fac 100644
--- a/drivers/net/phy/lxt.c
+++ b/drivers/net/phy/lxt.c
@@ -137,9 +137,9 @@ static struct phy_driver lxt970_driver =
 };

 static struct phy_driver lxt971_driver = {
-	.phy_id		= 0x0001378e,
+	.phy_id		= 0x001378e0,
 	.name		= "LXT971",
-	.phy_id_mask	= 0x0fffffff,
+	.phy_id_mask	= 0xfffffff0,
 	.features	= PHY_BASIC_FEATURES,
 	.flags		= PHY_HAS_INTERRUPT,
 	.config_aneg	= genphy_config_aneg,


This looks good.


According to

http://www.intel.com/design/network/products/LAN/datashts/ 24941402.pdf

page 90f the id registers yield 0x001378eX (with X being current
revision ID)

	uzeisberger@io:~/gsrc/linux-2.6$ git grep -i 1378e drivers/net/
	drivers/net/arm/at91_ether.h:#define MII_LXT971A_ID     0x001378E0
	drivers/net/e1000/e1000_hw.h:#define L1LXT971A_PHY_ID   0x001378E0
	drivers/net/fec.c:      .id = 0x0001378e,
	drivers/net/fec_8xx/fec_mii.c:   .id = 0x0001378e,
	drivers/net/phy/lxt.c:  .phy_id         = 0x0001378e,

The fec.c and fec_mii.c drivers used a shift by 4 to chop off the end of the ID. When the PHY Layer switched to using a mask, not all of the drivers got properly switched.


So both variants occur more than once.  (I only took a quick glance at
the usage of these ids, but I think they all use it in the same way.
That is, ID1 << 16 | ID2.)

The fec-style drivers do this:

        if(phy_info[i]->id == (fep->phy_id >> 4))

Anyway, your patch is correct.


"My" phy reports 0x001378e2 and now I wonder if there are different
chips out there with the same name.

Can anybody explain this mismatch to me?  (Or point me to the right
query for google.)


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux