mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-24 19:32:03 +02:00
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
This commit is contained in:
parent
b7facc3842
commit
166dc561a1
@ -145,57 +145,6 @@ ar8216_rmw(struct ar8216_priv *priv, int reg, u32 mask, u32 val)
|
|||||||
return v;
|
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
|
static void
|
||||||
ar8216_read_port_link(struct ar8216_priv *priv, int port,
|
ar8216_read_port_link(struct ar8216_priv *priv, int port,
|
||||||
struct switch_port_link *link)
|
struct switch_port_link *link)
|
||||||
@ -810,7 +759,6 @@ ar8216_reset_switch(struct switch_dev *dev)
|
|||||||
return ar8216_hw_apply(dev);
|
return ar8216_hw_apply(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const struct switch_dev_ops ar8216_sw_ops = {
|
static const struct switch_dev_ops ar8216_sw_ops = {
|
||||||
.attr_global = {
|
.attr_global = {
|
||||||
.attr = ar8216_globals,
|
.attr = ar8216_globals,
|
||||||
@ -833,6 +781,57 @@ static const struct switch_dev_ops ar8216_sw_ops = {
|
|||||||
.get_port_link = ar8216_get_port_link,
|
.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
|
static int
|
||||||
ar8216_config_init(struct phy_device *pdev)
|
ar8216_config_init(struct phy_device *pdev)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user