generic: ar8216: add ar8xxx_create{,mii} helpers
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35543 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
69cbfbe045
commit
03be1ea0f4
|
@ -1742,9 +1742,6 @@ ar8xxx_mib_init(struct ar8216_priv *priv)
|
||||||
if (!priv->mib_stats)
|
if (!priv->mib_stats)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
mutex_init(&priv->mib_lock);
|
|
||||||
INIT_DELAYED_WORK(&priv->mib_work, ar8xxx_mib_work_func);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1768,6 +1765,37 @@ ar8xxx_mib_cleanup(struct ar8216_priv *priv)
|
||||||
kfree(priv->mib_stats);
|
kfree(priv->mib_stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct ar8216_priv *
|
||||||
|
ar8xxx_create(void)
|
||||||
|
{
|
||||||
|
struct ar8216_priv *priv;
|
||||||
|
|
||||||
|
priv = kzalloc(sizeof(struct ar8216_priv), GFP_KERNEL);
|
||||||
|
if (priv == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
mutex_init(&priv->reg_mutex);
|
||||||
|
mutex_init(&priv->mib_lock);
|
||||||
|
INIT_DELAYED_WORK(&priv->mib_work, ar8xxx_mib_work_func);
|
||||||
|
|
||||||
|
return priv;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct ar8216_priv *
|
||||||
|
ar8xxx_create_mii(struct mii_bus *bus)
|
||||||
|
{
|
||||||
|
struct ar8216_priv *priv;
|
||||||
|
|
||||||
|
priv = ar8xxx_create();
|
||||||
|
if (priv) {
|
||||||
|
priv->mii_bus = bus;
|
||||||
|
priv->read = ar8216_mii_read;
|
||||||
|
priv->write = ar8216_mii_write;
|
||||||
|
}
|
||||||
|
|
||||||
|
return priv;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
ar8216_config_init(struct phy_device *pdev)
|
ar8216_config_init(struct phy_device *pdev)
|
||||||
{
|
{
|
||||||
|
@ -1777,14 +1805,10 @@ ar8216_config_init(struct phy_device *pdev)
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!priv) {
|
if (!priv) {
|
||||||
priv = kzalloc(sizeof(struct ar8216_priv), GFP_KERNEL);
|
priv = ar8xxx_create_mii(pdev->bus);
|
||||||
if (priv == NULL)
|
if (priv == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
priv->mii_bus = pdev->bus;
|
|
||||||
priv->read = ar8216_mii_read;
|
|
||||||
priv->write = ar8216_mii_write;
|
|
||||||
|
|
||||||
ret = ar8216_id_chip(priv);
|
ret = ar8216_id_chip(priv);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_free_priv;
|
goto err_free_priv;
|
||||||
|
@ -1829,8 +1853,6 @@ ar8216_config_init(struct phy_device *pdev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_init(&priv->reg_mutex);
|
|
||||||
|
|
||||||
pdev->priv = priv;
|
pdev->priv = priv;
|
||||||
|
|
||||||
swdev = &priv->dev;
|
swdev = &priv->dev;
|
||||||
|
@ -2006,13 +2028,10 @@ ar8216_probe(struct phy_device *pdev)
|
||||||
if (!ar8xxx_is_possible(pdev->bus))
|
if (!ar8xxx_is_possible(pdev->bus))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
priv = kzalloc(sizeof(struct ar8216_priv), GFP_KERNEL);
|
priv = ar8xxx_create_mii(pdev->bus);
|
||||||
if (priv == NULL)
|
if (priv == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
priv->mii_bus = pdev->bus;
|
|
||||||
priv->read = ar8216_mii_read;
|
|
||||||
priv->write = ar8216_mii_write;
|
|
||||||
priv->phy = pdev;
|
priv->phy = pdev;
|
||||||
|
|
||||||
ret = ar8216_id_chip(priv);
|
ret = ar8216_id_chip(priv);
|
||||||
|
|
Loading…
Reference in New Issue