generic: ar8216: allow to use chip specific cleanup callback
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 20 Jan 2014 10:22:55 +0000 (10:22 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 20 Jan 2014 10:22:55 +0000 (10:22 +0000)
It will be used for AR8327.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39337 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic/files/drivers/net/phy/ar8216.c

index 884b319..e9782f5 100644 (file)
@@ -67,6 +67,8 @@ struct ar8xxx_chip {
        unsigned long caps;
 
        int (*hw_init)(struct ar8xxx_priv *priv);
+       void (*cleanup)(struct ar8xxx_priv *priv);
+
        void (*init_globals)(struct ar8xxx_priv *priv);
        void (*init_port)(struct ar8xxx_priv *priv, int port);
        void (*setup_port)(struct ar8xxx_priv *priv, int port, u32 egress,
@@ -2234,6 +2236,9 @@ ar8xxx_create(void)
 static void
 ar8xxx_free(struct ar8xxx_priv *priv)
 {
+       if (priv->chip && priv->chip->cleanup)
+               priv->chip->cleanup(priv);
+
        kfree(priv->mib_stats);
        kfree(priv);
 }