Skip to content

Instantly share code, notes, and snippets.

@Ansuel
Created April 3, 2021 12:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Ansuel/a44e8353d7f7b12fac4b3891543df2d1 to your computer and use it in GitHub Desktop.
Save Ansuel/a44e8353d7f7b12fac4b3891543df2d1 to your computer and use it in GitHub Desktop.
--- a/drivers/net/mdio/mdio-ipq8064.c
+++ b/drivers/net/mdio/mdio-ipq8064.c
@@ -59,8 +59,10 @@ ipq8064_mdio_read(struct mii_bus *bus, int phy_addr, int reg_offset)
{
struct ipq8064_mdio *priv = bus->priv;
u32 miiaddr = MII_BUSY | MII_CLKRANGE_20_35M;
- u32 ret_val;
+ u32 ret_val = 0;
+ u32 old_val = 0;
int err;
+ int i;
/* Reject clause 45 */
if (reg_offset & MII_ADDR_C45)
@@ -79,7 +81,15 @@ ipq8064_mdio_read(struct mii_bus *bus, int phy_addr, int reg_offset)
if (err)
return err;
- regmap_read(priv->base, MII_DATA_REG_ADDR, &ret_val);
+ regmap_read(priv->base, MII_DATA_REG_ADDR, &old_val);
+
+ for (i = 0; i < 4; i++) {
+ regmap_read(priv->base, MII_DATA_REG_ADDR, &ret_val);
+ if (ret_val != old_val)
+ pr_info("READ DIFFERENT VALUE cur: %d old: %d from offset %d", ret_val, old_val, reg_offset);
+ old_val = ret_val;
+ }
+
return (int)(ret_val & 0xFFFF);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment