> +static int an855_phy_restore_page(struct an8855_mfd_priv *priv, > + int phy) __must_hold(&priv->bus->mdio_lock) > +{ > + /* Check PHY page only for addr shared with switch */ > + if (phy != priv->switch_addr) > + return 0; > + > + /* Don't restore page if it's not set to switch page */ > + if (priv->current_page != FIELD_GET(AN8855_PHY_PAGE, > + AN8855_PHY_PAGE_EXTENDED_4)) > + return 0; > + > + /* Restore page to 0, PHY might change page right after but that > + * will be ignored as it won't be a switch page. > + */ > + return an8855_mii_set_page(priv, phy, AN8855_PHY_PAGE_STANDARD); > +} I don't really understand what is going on here. Maybe the commit message needs expanding, or the function names changing. Generally, i would expect a save/restore action. Save the current page, swap to the PHY page, do the PHY access, and then restore to the saved page. Andrew