On Sun, Aug 04, 2019 at 10:33:30AM +0200, Heiner Kallweit wrote: > On 01.08.2019 21:07, Matthias Kaehlcke wrote: > > The RTL8211E has extension pages, which can be accessed after > > selecting a page through a custom method. Add a function to > > modify bits in a register of an extension page and a helper for > > selecting an ext page. Use rtl8211e_modify_ext_paged() in > > rtl8211e_config_init() instead of doing things 'manually'. > > > > Signed-off-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx> > > --- > > Changes in v4: > > - don't add constant RTL8211E_EXT_PAGE, it's only used once, > > use a literal instead > > - pass 'oldpage' to phy_restore_page() in rtl8211e_select_ext_page(), > > not 'page' > > - return 'oldpage' in rtl8211e_select_ext_page() > > - use __phy_modify() in rtl8211e_modify_ext_paged() instead of > > reimplementing __phy_modify_changed() > > - in rtl8211e_modify_ext_paged() return directly when > > rtl8211e_select_ext_page() fails > > --- > > drivers/net/phy/realtek.c | 48 +++++++++++++++++++++++++++------------ > > 1 file changed, 34 insertions(+), 14 deletions(-) > > > > diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c > > index a669945eb829..e09d3b0da2c7 100644 > > --- a/drivers/net/phy/realtek.c > > +++ b/drivers/net/phy/realtek.c > > @@ -53,6 +53,36 @@ static int rtl821x_write_page(struct phy_device *phydev, int page) > > return __phy_write(phydev, RTL821x_PAGE_SELECT, page); > > } > > > > +static int rtl8211e_select_ext_page(struct phy_device *phydev, int page) > > The "extended page" mechanism doesn't exist on RTL8211E only. A prefix > rtl821x like in other functions may be better therefore. Sounds good, I'll change it in the next revision Thanks Matthias