Hi!

I've noticed mii-tool doesn't work right for a driver I'm just
developing (it uses generic phy layer).
Driver's ioctl is wired directly to phy_mii_ioctl().

"mii-tool -A something" shows the problem is in
phy_mii_ioctl -> SIOCSMIIREG:
392                         case MII_ADVERTISE:
393                                 phydev->advertising = val;
394                                 break;  

phydev->advertising value should be combined with ones from
ethtool.h (at least in other usages it is):
        437 #define ADVERTISED_10baseT_Half         (1 << 0)
        438 #define ADVERTISED_10baseT_Full         (1 << 1)
        439 #define ADVERTISED_100baseT_Half        (1 << 2)
        440 #define ADVERTISED_100baseT_Full        (1 << 3)

but mii-tool sends a mask with values from mii.h:
         70 #define ADVERTISE_10HALF        0x0020  /* Try for 10mbps 
half-duplex  */
         71 #define ADVERTISE_1000XFULL     0x0020  /* Try for 1000BASE-X 
full-duplex */
         72 #define ADVERTISE_10FULL        0x0040  /* Try for 10mbps 
full-duplex  */
         73 #define ADVERTISE_1000XHALF     0x0040  /* Try for 1000BASE-X 
half-duplex */
         74 #define ADVERTISE_100HALF       0x0080  /* Try for 100mbps 
half-duplex */
        ...

I'm I right that this is a bug?
Comments, suggestions how to fix it?


        Domen
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to