On 8/18/26 5:18 AM, [email protected] wrote:

+       /* 4.2 Poll for SRAM initialization done */
+       begin = get_timer(0);
+       do {
+               val = xpcs_phy_read_pma(dev, PMA_MP_12G_16G_25G_SRAM);
+               if (get_timer(begin) > 500) {
+                       dev_err(dev, "Polling timeout, line: %d\n", __LINE__);
+                       goto timeout;
+               }
+               mdelay(10);

Could you use read_poll_timeout() for this ? read_poll_timeout() "op" would be "xpcs_phy_read_pma" and "args" would be "dev, PMA_MP_12G_16G_25G_SRAM)" , this:

"
ret = read_poll_timeout(xpcs_phy_read_pma, val, val & PMA_SRAM_INIT_DN,
                        10000, 500000, dev, PMA_MP_12G_16G_25G_SRAM);
if (ret)
 ... timeout ...
"

+       } while (!(val & PMA_SRAM_INIT_DN));
+
+       /* Assert SRAM external loading done */
+       xpcs_phy_write(dev, XPCS_PHY_GLOBAL, XPCS_PHY_REG(GLOBAL_CTRL_EX_0),
+                      GLOBAL_CTRL_EX_0_PHY_SRAM_BYPASS);
+
+       /* 4.3 Poll for vendor-specific soft reset */
+       begin = get_timer(0);
+       do {
+               val = xpcs_read(dev, MDIO_MMD_PCS, XPCS_PHY_REG(PCS_DIG_CTRL1));
+               if (get_timer(begin) > 500) {
+                       dev_err(dev, "Polling timeout, line: %d\n", __LINE__);
+                       goto timeout;
+               }
+               mdelay(10);
+       } while (val & PCS_DIG_CTRL1_VR_RST);
[...]

Reply via email to