aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2012-03-18 22:06:12 +0000
committerGabor Juhos <juhosg@openwrt.org>2012-03-18 22:06:12 +0000
commita8371ad5667797882980baa7cc232dd381ac9675 (patch)
tree785ddafea7419a5d05cae75c34a7c2588bc21520
parentd18133b32d9a0a024ecbb5801d7d4b63d148c4c3 (diff)
downloadupstream-a8371ad5667797882980baa7cc232dd381ac9675.tar.gz
upstream-a8371ad5667797882980baa7cc232dd381ac9675.tar.bz2
upstream-a8371ad5667797882980baa7cc232dd381ac9675.zip
generic: ar8216: add a separate structure for chip specific stuff
Also add a hw_init function into that. SVN-Revision: 30997
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index 13a874e411..038a086bd9 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -36,6 +36,9 @@
#define AR8X16_MAX_VLANS 128
#define AR8X16_PROBE_RETRIES 10
+struct ar8xxx_chip {
+};
+
struct ar8216_priv {
struct switch_dev dev;
struct phy_device *phy;
@@ -45,6 +48,7 @@ struct ar8216_priv {
struct net_device_ops ndo;
struct mutex reg_mutex;
int chip_type;
+ const struct ar8xxx_chip *chip;
bool initialized;
bool port4_phy;
char buf[80];
@@ -736,6 +740,15 @@ ar8216_init_port(struct ar8216_priv *priv, int port)
}
}
+static const struct ar8xxx_chip ar8216_chip = {
+};
+
+static const struct ar8xxx_chip ar8236_chip = {
+};
+
+static const struct ar8xxx_chip ar8316_chip = {
+};
+
static int
ar8216_reset_switch(struct switch_dev *dev)
{
@@ -810,13 +823,16 @@ ar8216_id_chip(struct ar8216_priv *priv)
switch (id) {
case 0x0101:
priv->chip_type = AR8216;
+ priv->chip = &ar8216_chip;
break;
case 0x0301:
priv->chip_type = AR8236;
+ priv->chip = &ar8236_chip;
break;
case 0x1000:
case 0x1001:
priv->chip_type = AR8316;
+ priv->chip = &ar8316_chip;
break;
default:
printk(KERN_DEBUG