[U-Boot] phylib + mii + <phy>_parse_status

Hi,
I have done some experiments with phylib and Xilinx ethernet drivers and I found that mii code show different values for speed and duplex. I think that the main problem is that there are called miiphy_speed and miiphy_duplex functions instead of phy parsing functions.
I think that it will be the best to extend struct phy_driver for int (*parse_status)(struct phy_device *phydev);
and then reread phydev->speed or phydev->duplex instead of using generic code which does wrong things.
Then will be good to synchronize FULL/HALF and DUPLEX_FULL/DUPLEX_HALF.
miiphy.h #define HALF 22 #define FULL 44
include/linux/ethtool.h #define DUPLEX_HALF 0x00 #define DUPLEX_FULL 0x01
And of course speeds: miiphy.h #define _1000BASET 1000 #define _100BASET 100 #define _10BASET 10
include/linux/ethtool.h #define SPEED_10 10 #define SPEED_100 100 #define SPEED_1000 1000 #define SPEED_2500 2500 #define SPEED_10000 10000
Have someone looked at it? Any comments?
Thanks, Michal

On Thursday, August 25, 2011 03:56:50 Michal Simek wrote:
Then will be good to synchronize FULL/HALF and DUPLEX_FULL/DUPLEX_HALF.
miiphy.h #define HALF 22 #define FULL 44
include/linux/ethtool.h #define DUPLEX_HALF 0x00 #define DUPLEX_FULL 0x01
And of course speeds: miiphy.h #define _1000BASET 1000 #define _100BASET 100 #define _10BASET 10
include/linux/ethtool.h #define SPEED_10 10 #define SPEED_100 100 #define SPEED_1000 1000 #define SPEED_2500 2500 #define SPEED_10000 10000
Have someone looked at it? Any comments?
ive glanced at unification of these defines in the past and couldnt see any reason as to why it couldnt be done ... it just touched a bunch of drivers i had no way of testing, and didnt feel like embarking on another tree wide cleanup at that time. i can only do so many before i get bored ;). -mike
participants (2)
-
Michal Simek
-
Mike Frysinger