On 02.07.2019 02:09, Matthias Kaehlcke wrote: > On Mon, Jul 01, 2019 at 11:09:02PM +0200, Andrew Lunn wrote: >> On Mon, Jul 01, 2019 at 10:37:16PM +0200, Heiner Kallweit wrote: >>> On 01.07.2019 22:02, Andrew Lunn wrote: >>>> On Mon, Jul 01, 2019 at 12:52:24PM -0700, 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 few >>>>> helpers for dealing with ext pages. >>>>> >>>>> rtl8211e_modify_ext_paged() and rtl821e_restore_page() are >>>>> inspired by their counterparts phy_modify_paged() and >>>>> phy_restore_page(). >>>> >>>> Hi Matthias >>>> >>>> While an extended page is selected, what happens to the normal >>>> registers in the range 0-0x1c? Are they still accessible? >>>> >>> AFAIK: no >> >> This it would be better to make use of the core paged access support, >> so that locking is done correctly. > > Do I understand correctly that this would involve assigning > .read/write_page and use phy_select_page() and phy_restore_page()? > > Besides the benefit of locking this would also result in less code and > we could get rid of the custom _restore_page(). > Interestingly certain Realtek PHY's (incl. RTL8211E) support two paging mechanisms. 1. Normal paging (set reg 0x1f to page number) - set by core paging 2. Extended pages (set reg 0x1f to 7, and reg 0x1e to ext. page number) Newer Realtek PHY's use normal paging only.