summaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/drivers/net/phy/ar8216.c
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-03-15 15:49:57 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-03-15 15:49:57 +0000
commit1f6aeadc29ac036492b1b3246f5dc8c8aab1d917 (patch)
tree60b1ae719ad9686b0146658bf2d2bf1cd702cea7 /target/linux/generic/files/drivers/net/phy/ar8216.c
parent884b112524ad5a6879f592badc0733acd658338b (diff)
generic: ar8216: simplify and rename ar8327_config_port
Return with the PORT_STATUS register value instead of writing that directly into the corresponding register. Also rename the function to ar8327_get_port_init_status. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36043 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic/files/drivers/net/phy/ar8216.c')
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index 7cb5186f3..6454b2b21 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -1086,17 +1086,13 @@ ar8327_init_globals(struct ar8xxx_priv *priv)
AR8327_MODULE_EN_MIB);
}
-static void
-ar8327_config_port(struct ar8xxx_priv *priv, unsigned int port,
- struct ar8327_port_cfg *cfg)
+static u32
+ar8327_get_port_init_status(struct ar8327_port_cfg *cfg)
{
u32 t;
- if (!cfg || !cfg->force_link) {
- priv->write(priv, AR8327_REG_PORT_STATUS(port),
- AR8216_PORT_STATUS_LINK_AUTO);
- return;
- }
+ if (!cfg->force_link)
+ return AR8216_PORT_STATUS_LINK_AUTO;
t = AR8216_PORT_STATUS_TXMAC | AR8216_PORT_STATUS_RXMAC;
t |= cfg->duplex ? AR8216_PORT_STATUS_DUPLEX : 0;
@@ -1115,27 +1111,25 @@ ar8327_config_port(struct ar8xxx_priv *priv, unsigned int port,
break;
}
- priv->write(priv, AR8327_REG_PORT_STATUS(port), t);
+ return t;
}
static void
ar8327_init_port(struct ar8xxx_priv *priv, int port)
{
struct ar8327_platform_data *pdata;
- struct ar8327_port_cfg *cfg;
u32 t;
pdata = priv->phy->dev.platform_data;
if (port == AR8216_PORT_CPU)
- cfg = &pdata->port0_cfg;
+ t = ar8327_get_port_init_status(&pdata->port0_cfg);
else if (port == 6)
- cfg = &pdata->port6_cfg;
+ t = ar8327_get_port_init_status(&pdata->port6_cfg);
else
- cfg = NULL;
-
- ar8327_config_port(priv, port, cfg);
+ t = AR8216_PORT_STATUS_LINK_AUTO;
+ priv->write(priv, AR8327_REG_PORT_STATUS(port), t);
priv->write(priv, AR8327_REG_PORT_HEADER(port), 0);
t = 1 << AR8327_PORT_VLAN0_DEF_SVID_S;