On 03.09.2019 08:55, Hayes Wang wrote: > Heiner Kallweit [mailto:hkallwe...@gmail.com] >> Sent: Tuesday, September 03, 2019 2:45 PM > [...] >>> Besides, I have a question. I think I don't need rtl8152_set_speed() >>> if I implement phylib. However, I need to record some information >>> according to the settings of speed. For now, I do it in rtl8152_set_speed(). >>> Do you have any idea about how I should do it with phylib without >>> rtl8152_set_speed()? >>> >> When saying "record some information", what kind of information? > > Some of our chips support the feature of UPS. When satisfying certain > condition, the hw would recover the settings of speed. Therefore, I have > to record the settings of the speed, and set them to hw. > Not knowing the UPS feature in detail: In net-next I changed the software "PHY speed-down" implementation to be more generic. It stores the old advertised settings in a new phy_device member adv_old, and restores them in phy_speed_up(). Maybe what you need is similar.
>> The speed itself is stored in struct phy_device, if you need to adjust >> certain chip settings depending on negotiated speed, then you can do >> this in a callback (parameter handler of phy_connect_direct). >> See e.g. r8169_phylink_handler() > > Thanks. I would study it. > > Best Regards, > Hayes > > Heiner