generic: ar8216: move ar8216_id_chip function

Also remove the inline annotation.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30995 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Gabor Juhos 2012-03-18 22:06:05 +00:00
parent e4682f031a
commit baee093c4e
1 changed files with 51 additions and 52 deletions

View File

@ -145,57 +145,6 @@ ar8216_rmw(struct ar8216_priv *priv, int reg, u32 mask, u32 val)
return v;
}
static inline int
ar8216_id_chip(struct ar8216_priv *priv)
{
u32 val;
u16 id;
int i;
priv->chip = UNKNOWN;
val = ar8216_mii_read(priv, AR8216_REG_CTRL);
if (val == ~0)
return -ENODEV;
id = val & (AR8216_CTRL_REVISION | AR8216_CTRL_VERSION);
for (i = 0; i < AR8X16_PROBE_RETRIES; i++) {
u16 t;
val = ar8216_mii_read(priv, AR8216_REG_CTRL);
if (val == ~0)
return -ENODEV;
t = val & (AR8216_CTRL_REVISION | AR8216_CTRL_VERSION);
if (t != id)
return -ENODEV;
}
switch (id) {
case 0x0101:
priv->chip = AR8216;
break;
case 0x0301:
priv->chip = AR8236;
break;
case 0x1000:
case 0x1001:
priv->chip = AR8316;
break;
default:
printk(KERN_DEBUG
"ar8216: Unknown Atheros device [ver=%d, rev=%d, phy_id=%04x%04x]\n",
(int)(id >> AR8216_CTRL_VERSION_S),
(int)(id & AR8216_CTRL_REVISION),
mdiobus_read(priv->phy->bus, priv->phy->addr, 2),
mdiobus_read(priv->phy->bus, priv->phy->addr, 3));
return -ENODEV;
}
return 0;
}
static void
ar8216_read_port_link(struct ar8216_priv *priv, int port,
struct switch_port_link *link)
@ -810,7 +759,6 @@ ar8216_reset_switch(struct switch_dev *dev)
return ar8216_hw_apply(dev);
}
static const struct switch_dev_ops ar8216_sw_ops = {
.attr_global = {
.attr = ar8216_globals,
@ -833,6 +781,57 @@ static const struct switch_dev_ops ar8216_sw_ops = {
.get_port_link = ar8216_get_port_link,
};
static int
ar8216_id_chip(struct ar8216_priv *priv)
{
u32 val;
u16 id;
int i;
priv->chip = UNKNOWN;
val = ar8216_mii_read(priv, AR8216_REG_CTRL);
if (val == ~0)
return -ENODEV;
id = val & (AR8216_CTRL_REVISION | AR8216_CTRL_VERSION);
for (i = 0; i < AR8X16_PROBE_RETRIES; i++) {
u16 t;
val = ar8216_mii_read(priv, AR8216_REG_CTRL);
if (val == ~0)
return -ENODEV;
t = val & (AR8216_CTRL_REVISION | AR8216_CTRL_VERSION);
if (t != id)
return -ENODEV;
}
switch (id) {
case 0x0101:
priv->chip = AR8216;
break;
case 0x0301:
priv->chip = AR8236;
break;
case 0x1000:
case 0x1001:
priv->chip = AR8316;
break;
default:
printk(KERN_DEBUG
"ar8216: Unknown Atheros device [ver=%d, rev=%d, phy_id=%04x%04x]\n",
(int)(id >> AR8216_CTRL_VERSION_S),
(int)(id & AR8216_CTRL_REVISION),
mdiobus_read(priv->phy->bus, priv->phy->addr, 2),
mdiobus_read(priv->phy->bus, priv->phy->addr, 3));
return -ENODEV;
}
return 0;
}
static int
ar8216_config_init(struct phy_device *pdev)
{