Messages in this thread | | | Date | Mon, 15 May 2023 14:48:09 +0300 | From | Vladimir Oltean <> | Subject | Re: [RFC 7/7] net: pcs: Drop the TSE PCS driver |
| |
Hi Maxime,
On Fri, Mar 24, 2023 at 10:36:44AM +0100, Maxime Chevallier wrote: > Now that we can easily create a mdio-device that represents a > memory-mapped device that exposes an MDIO-like register layout, we don't > need the Altera TSE PCS anymore, since we can use the Lynx PCS instead. > > Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com> > --- > -static int tse_pcs_reset(struct altera_tse_pcs *tse_pcs) > -{ > - u16 bmcr; > - > - /* Reset PCS block */ > - bmcr = tse_pcs_read(tse_pcs, MII_BMCR); > - bmcr |= BMCR_RESET; > - tse_pcs_write(tse_pcs, MII_BMCR, bmcr); > - > - return read_poll_timeout(tse_pcs_read, bmcr, (bmcr & BMCR_RESET), > - 10, SGMII_PCS_SW_RESET_TIMEOUT, 1, > - tse_pcs, MII_BMCR); > -}
I just noticed this difference between the Lynx PCS and Altera TSE PCS drivers. The Lynx driver doesn't reset the PCS, and if it did, it would wait until the opposite condition from yours would be true: BMCR_RESET should clear: "!(bmcr & BMCR_RESET)".
Is your reset procedure correct, I wonder?
| |