diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2012-03-18 22:06:12 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2012-03-18 22:06:12 +0000 |
commit | a8371ad5667797882980baa7cc232dd381ac9675 (patch) | |
tree | 785ddafea7419a5d05cae75c34a7c2588bc21520 | |
parent | d18133b32d9a0a024ecbb5801d7d4b63d148c4c3 (diff) | |
download | upstream-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.c | 16 |
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 |