Browse Source

generic: ar8216: separate platform_data based AR8327 code

Move platform_data specific configuration code
into a separate routine. Do it in preparation
for the upcoming OF support.

Signed-off-by: Gabor Juhos <[email protected]>

SVN-Revision: 36046
Gabor Juhos 12 years ago
parent
commit
ee12b1b7d5
1 changed files with 16 additions and 5 deletions
  1. 16 5
      target/linux/generic/files/drivers/net/phy/ar8216.c

+ 16 - 5
target/linux/generic/files/drivers/net/phy/ar8216.c

@@ -1039,17 +1039,14 @@ ar8327_get_port_init_status(struct ar8327_port_cfg *cfg)
 }
 
 static int
-ar8327_hw_init(struct ar8xxx_priv *priv)
+ar8327_hw_config_pdata(struct ar8xxx_priv *priv,
+		       struct ar8327_platform_data *pdata)
 {
-	struct ar8327_platform_data *pdata;
 	struct ar8327_led_cfg *led_cfg;
 	struct ar8327_data *data;
-	struct mii_bus *bus;
 	u32 pos, new_pos;
 	u32 t;
-	int i;
 
-	pdata = priv->phy->dev.platform_data;
 	if (!pdata)
 		return -EINVAL;
 
@@ -1086,6 +1083,20 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
 		priv->write(priv, AR8327_REG_POWER_ON_STRIP, new_pos);
 	}
 
+	return 0;
+}
+
+static int
+ar8327_hw_init(struct ar8xxx_priv *priv)
+{
+	struct mii_bus *bus;
+	int ret;
+	int i;
+
+	ret = ar8327_hw_config_pdata(priv, priv->phy->dev.platform_data);
+	if (ret)
+		return ret;
+
 	bus = priv->mii_bus;
 	for (i = 0; i < AR8327_NUM_PHYS; i++) {
 		ar8327_phy_fixup(priv, i);