Browse Source

generic: ar8216: allow to use chip specific cleanup callback

It will be used for AR8327.

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

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

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

@@ -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);
 }