diff options
author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-03-15 15:49:57 +0000 |
---|---|---|
committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-03-15 15:49:57 +0000 |
commit | 1f6aeadc29ac036492b1b3246f5dc8c8aab1d917 (patch) | |
tree | 60b1ae719ad9686b0146658bf2d2bf1cd702cea7 /target/linux/generic/files/drivers/net/phy/ar8216.c | |
parent | 884b112524ad5a6879f592badc0733acd658338b (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.c | 24 |
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 7cb5186f34..6454b2b217 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; |