summaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/files/drivers/net
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-12-15 22:25:11 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-12-15 22:25:11 +0000
commit812763d48e6daa3895406d100008307d7154985e (patch)
tree0a86f9e71b7857a4de958debdbc510078a96f0f7 /target/linux/ar71xx/files/drivers/net
parent867f0fa967d8cbb1c12a0a17fcc217e4bf1ac389 (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.c3
-rw-r--r--target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_phy.c10
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);