Hi, >>>> int set_speed(struct *phy, int lane, u64 speed); >>> >>> it should be phy_set_speed. >> [Loc Ho] >> But your other functions don't repeat the prefix "phy"? > > refer include/linux/phy/phy.h.. > > int phy_init(struct phy *phy); > int phy_exit(struct phy *phy); > int phy_power_on(struct phy *phy); > int phy_power_off(struct phy *phy); [Loc Ho] For the top level function, it is phy_set_speed. For the operation function pointer, it is set_speed. >>>> >>>> where lane indicates the lane of the PHY and speed is the PHY speed in hertz. >>> >>> Does lane here means the number of lanes? Is the lane also obtained after the >>> training sequence? >> [Loc Ho] >> Lane here is the lane with you are changing the speed. If there are >> two lanes, then 0 parameter would change lane 0. 1 would change lane >> 1. > > can different lanes operate at different speed at the same time? > [Loc Ho] Yes. Each lane is suppose to be independent of each other. -Loc -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html