1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-04-21 12:27:27 +03:00

ar71xx: merge the ar7240 switch driver from r22675

git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@22678 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd
2010-08-16 19:24:00 +00:00
parent 7af90ad2ab
commit 2ec5c216fb
7 changed files with 902 additions and 8 deletions

View File

@@ -44,9 +44,13 @@ static void ag71xx_phy_link_adjust(struct net_device *dev)
void ag71xx_phy_start(struct ag71xx *ag)
{
struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
if (ag->phy_dev) {
phy_start(ag->phy_dev);
} else {
if (pdata->has_ar7240_switch)
ag71xx_ar7240_start(ag);
ag->link = 1;
ag71xx_link_adjust(ag);
}
@@ -54,9 +58,13 @@ void ag71xx_phy_start(struct ag71xx *ag)
void ag71xx_phy_stop(struct ag71xx *ag)
{
struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
if (ag->phy_dev) {
phy_stop(ag->phy_dev);
} else {
if (pdata->has_ar7240_switch)
ag71xx_ar7240_stop(ag);
ag->link = 0;
ag71xx_link_adjust(ag);
}
@@ -200,6 +208,9 @@ int ag71xx_phy_connect(struct ag71xx *ag)
mutex_unlock(&ag->mii_bus->mdio_lock);
}
if (pdata->has_ar7240_switch)
return ag71xx_ar7240_init(ag);
if (pdata->phy_mask)
return ag71xx_phy_connect_multi(ag);
@@ -208,6 +219,10 @@ int ag71xx_phy_connect(struct ag71xx *ag)
void ag71xx_phy_disconnect(struct ag71xx *ag)
{
if (ag->phy_dev)
struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
if (pdata->has_ar7240_switch)
ag71xx_ar7240_cleanup(ag);
else if (ag->phy_dev)
phy_disconnect(ag->phy_dev);
}