generic: ar8216: allow to use chip specific cleanup callback

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
master
Gabor Juhos 2014-01-20 10:22:55 +00:00
parent c0ce66837e
commit 313b626705
1 changed files with 5 additions and 0 deletions

View File

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