diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2011-12-15 22:25:11 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2011-12-15 22:25:11 +0000 |
commit | 9ae65588d834ca05168c292aeab1ba08769ef63e (patch) | |
tree | d309d22182658a1656001b6ba82387d3d1abda01 /target/linux/ar71xx/files/drivers/net | |
parent | bfe747b7d93221ba8010d6a19e468aff5e6b06a5 (diff) | |
download | master-31e0f0ae-9ae65588d834ca05168c292aeab1ba08769ef63e.tar.gz master-31e0f0ae-9ae65588d834ca05168c292aeab1ba08769ef63e.tar.bz2 master-31e0f0ae-9ae65588d834ca05168c292aeab1ba08769ef63e.zip |
ar71xx: introduce ar71xx_switch_data
SVN-Revision: 29549
Diffstat (limited to 'target/linux/ar71xx/files/drivers/net')
-rw-r--r-- | target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c | 3 | ||||
-rw-r--r-- | target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_phy.c | 10 |
2 files changed, 8 insertions, 5 deletions
diff --git a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c index c0eca4ae41..e96fe36261 100644 --- a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c +++ b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_ar7240.c @@ -198,6 +198,7 @@ struct ar7240sw { struct mii_bus *mii_bus; + struct ag71xx_switch_platform_data *swdata; struct switch_dev swdev; int num_ports; bool vlan; @@ -843,6 +844,7 @@ static const struct switch_dev_ops ar7240_ops = { static struct ar7240sw *ar7240_probe(struct ag71xx *ag) { + struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag); struct mii_bus *mii = ag->mii_bus; struct ar7240sw *as; struct switch_dev *swdev; @@ -865,6 +867,7 @@ static struct ar7240sw *ar7240_probe(struct ag71xx *ag) return NULL; as->mii_bus = mii; + as->swdata = pdata->switch_data; ctrl = ar7240sw_reg_read(mii, AR7240_REG_MASK_CTRL); ver = (ctrl >> AR7240_MASK_CTRL_VERSION_S) & AR7240_MASK_CTRL_VERSION_M; diff --git a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_phy.c b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_phy.c index 9b88b3d417..b10dd4917d 100644 --- a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_phy.c +++ b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_phy.c @@ -48,7 +48,7 @@ void ag71xx_phy_start(struct ag71xx *ag) if (ag->phy_dev) { phy_start(ag->phy_dev); - } else if (pdata->has_ar7240_switch) { + } else if (pdata->switch_data) { ag71xx_ar7240_start(ag); } else { ag->link = 1; @@ -63,8 +63,8 @@ void ag71xx_phy_stop(struct ag71xx *ag) if (ag->phy_dev) phy_stop(ag->phy_dev); - else if (pdata->has_ar7240_switch) - ag71xx_ar7240_stop(ag); + else if (pdata->switch_data) + ag71xx_ar7240_stop(ag); spin_lock_irqsave(&ag->lock, flags); if (ag->link) { @@ -216,7 +216,7 @@ int __devinit ag71xx_phy_connect(struct ag71xx *ag) mutex_unlock(&ag->mii_bus->mdio_lock); } - if (pdata->has_ar7240_switch) + if (pdata->switch_data) return ag71xx_ar7240_init(ag); if (pdata->phy_mask) @@ -229,7 +229,7 @@ void ag71xx_phy_disconnect(struct ag71xx *ag) { struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag); - if (pdata->has_ar7240_switch) + if (pdata->switch_data) ag71xx_ar7240_cleanup(ag); else if (ag->phy_dev) phy_disconnect(ag->phy_dev); |