generic: ar8216: move chip id reading into a separate function
authorChuanhong Guo <gch981213@gmail.com>
Thu, 10 Jan 2019 05:05:00 +0000 (13:05 +0800)
committerPetr Štetiar <ynezz@true.cz>
Sun, 24 Mar 2019 00:44:25 +0000 (01:44 +0100)
for mdio-device probing we still need to read chip id but ar8xxx_chip
can be determined using drvdata. We can't distinguish the buggy
standalone ar8216 and the builtin ar8216 in ar724x/ar933x using chip
id.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
target/linux/generic/files/drivers/net/phy/ar8216.c

index 2f0be1b8da7848b43ed72681288edf6ace29020d..2c111c2b819b034dbb718fb990418f5d8a708b62 100644 (file)
@@ -1813,7 +1813,7 @@ static const struct ar8xxx_chip ar8316_chip = {
 };
 
 static int
-ar8xxx_id_chip(struct ar8xxx_priv *priv)
+ar8xxx_read_id(struct ar8xxx_priv *priv)
 {
        u32 val;
        u16 id;
@@ -1838,6 +1838,17 @@ ar8xxx_id_chip(struct ar8xxx_priv *priv)
 
        priv->chip_ver = (id & AR8216_CTRL_VERSION) >> AR8216_CTRL_VERSION_S;
        priv->chip_rev = (id & AR8216_CTRL_REVISION);
+       return 0;
+}
+
+static int
+ar8xxx_id_chip(struct ar8xxx_priv *priv)
+{
+       int ret;
+
+       ret = ar8xxx_read_id(priv);
+       if(ret)
+               return ret;
 
        switch (priv->chip_ver) {
        case AR8XXX_VER_AR8216: