diff options
author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-12-15 22:25:11 +0000 |
---|---|---|
committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-12-15 22:25:11 +0000 |
commit | 812763d48e6daa3895406d100008307d7154985e (patch) | |
tree | 0a86f9e71b7857a4de958debdbc510078a96f0f7 /target/linux/ar71xx/files/drivers/net | |
parent | 867f0fa967d8cbb1c12a0a17fcc217e4bf1ac389 (diff) |
ar71xx: introduce ar71xx_switch_data
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29549 3c298f89-4303-0410-b956-a3cf2f4a3e73
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 c0eca4ae4..e96fe3626 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 9b88b3d41..b10dd4917 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); |