From 0d241e6670e290d243afb56422f5bc975fcc32cd Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Tue, 29 May 2012 16:39:26 +0000
Subject: generic: ar8216: replace chip_type field with chip_{ver,rev} in
 ar8216_priv

SVN-Revision: 31999
---
 .../linux/generic/files/drivers/net/phy/ar8216.c   | 47 ++++++++++++----------
 .../linux/generic/files/drivers/net/phy/ar8216.h   |  9 -----
 2 files changed, 25 insertions(+), 31 deletions(-)

(limited to 'target/linux/generic/files/drivers/net/phy')

diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index 46f0b6d..5d63cd2 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -43,6 +43,13 @@ struct ar8216_priv;
 
 #define AR8XXX_CAP_GIGE		BIT(0)
 
+enum {
+	AR8XXX_VER_AR8216 = 0x01,
+	AR8XXX_VER_AR8236 = 0x03,
+	AR8XXX_VER_AR8316 = 0x10,
+	AR8XXX_VER_AR8327 = 0x12,
+};
+
 struct ar8xxx_chip {
 	unsigned long caps;
 
@@ -65,7 +72,8 @@ struct ar8216_priv {
 	const struct net_device_ops *ndo_old;
 	struct net_device_ops ndo;
 	struct mutex reg_mutex;
-	int chip_type;
+	u8 chip_ver;
+	u8 chip_rev;
 	const struct ar8xxx_chip *chip;
 	bool initialized;
 	bool port4_phy;
@@ -91,22 +99,22 @@ static inline bool ar8xxx_has_gige(struct ar8216_priv *priv)
 
 static inline bool chip_is_ar8216(struct ar8216_priv *priv)
 {
-	return priv->chip_type == AR8216;
+	return priv->chip_ver == AR8XXX_VER_AR8216;
 }
 
 static inline bool chip_is_ar8236(struct ar8216_priv *priv)
 {
-	return priv->chip_type == AR8236;
+	return priv->chip_ver == AR8XXX_VER_AR8236;
 }
 
 static inline bool chip_is_ar8316(struct ar8216_priv *priv)
 {
-	return priv->chip_type == AR8316;
+	return priv->chip_ver == AR8XXX_VER_AR8316;
 }
 
 static inline bool chip_is_ar8327(struct ar8216_priv *priv)
 {
-	return priv->chip_type == AR8327;
+	return priv->chip_ver == AR8XXX_VER_AR8327;
 }
 
 static inline void
@@ -1179,8 +1187,6 @@ ar8216_id_chip(struct ar8216_priv *priv)
 	u16 id;
 	int i;
 
-	priv->chip_type = UNKNOWN;
-
 	val = ar8216_mii_read(priv, AR8216_REG_CTRL);
 	if (val == ~0)
 		return -ENODEV;
@@ -1198,30 +1204,27 @@ ar8216_id_chip(struct ar8216_priv *priv)
 			return -ENODEV;
 	}
 
-	switch (id) {
-	case 0x0101:
-		priv->chip_type = AR8216;
+	priv->chip_ver = (id & AR8216_CTRL_VERSION) >> AR8216_CTRL_VERSION_S;
+	priv->chip_rev = (id & AR8216_CTRL_REVISION);
+
+	switch (priv->chip_ver) {
+	case AR8XXX_VER_AR8216:
 		priv->chip = &ar8216_chip;
 		break;
-	case 0x0301:
-		priv->chip_type = AR8236;
+	case AR8XXX_VER_AR8236:
 		priv->chip = &ar8236_chip;
 		break;
-	case 0x1000:
-	case 0x1001:
-		priv->chip_type = AR8316;
+	case AR8XXX_VER_AR8316:
 		priv->chip = &ar8316_chip;
 		break;
-	case 0x1202:
-		priv->chip_type = AR8327;
+	case AR8XXX_VER_AR8327:
 		priv->mii_lo_first = true;
 		priv->chip = &ar8327_chip;
 		break;
 	default:
 		printk(KERN_DEBUG
 			"ar8216: Unknown Atheros device [ver=%d, rev=%d, phy_id=%04x%04x]\n",
-			(int)(id >> AR8216_CTRL_VERSION_S),
-			(int)(id & AR8216_CTRL_REVISION),
+			priv->chip_ver, priv->chip_rev,
 			mdiobus_read(priv->phy->bus, priv->phy->addr, 2),
 			mdiobus_read(priv->phy->bus, priv->phy->addr, 3));
 
@@ -1287,9 +1290,6 @@ ar8216_config_init(struct phy_device *pdev)
 		return 0;
 	}
 
-	printk(KERN_INFO "%s: AR%d switch driver attached.\n",
-		pdev->attached_dev->name, priv->chip_type);
-
 	if (ar8xxx_has_gige(priv))
 		pdev->supported = SUPPORTED_1000baseT_Full;
 	else
@@ -1332,6 +1332,9 @@ ar8216_config_init(struct phy_device *pdev)
 	if (ret)
 		goto err_free_priv;
 
+	printk(KERN_INFO "%s: %s switch driver attached.\n",
+		pdev->attached_dev->name, swdev->name);
+
 	priv->init = true;
 
 	ret = priv->chip->hw_init(priv);
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.h b/target/linux/generic/files/drivers/net/phy/ar8216.h
index 49a6296..607ed97 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.h
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.h
@@ -334,13 +334,4 @@ enum {
 	AR8216_PORT_STATE_FORWARD = 4
 };
 
-/* device */
-enum {
-  UNKNOWN = 0,
-  AR8216 = 8216,
-  AR8236 = 8236,
-  AR8316 = 8316,
-  AR8327 = 8327,
-};
-
 #endif
-- 
cgit v1.1