Skip to content

Commit

Permalink
V4L/DVB (5741): Tuner: add release callback
Browse files Browse the repository at this point in the history
Individual tuner drivers are now allocating memory themselves for
their own private data structures.  This changeset adds a release
callback to the tuner operations, so that newer drivers that may
require more complex data structures may release this private data
themselves.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Michael Krufky authored and Mauro Carvalho Chehab committed Jul 18, 2007
1 parent 9ee476a commit be2b85a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
5 changes: 5 additions & 0 deletions drivers/media/video/tuner-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,11 @@ static void set_type(struct i2c_client *c, unsigned int type,
}

/* discard private data, in case set_type() was previously called */
if (t->release)
t->release(c);
kfree(t->priv);
t->priv = NULL;

switch (t->type) {
case TUNER_MT2032:
microtune_init(c);
Expand Down Expand Up @@ -561,6 +564,8 @@ static int tuner_detach(struct i2c_client *client)
return err;
}

if (t->release)
t->release(client);
kfree(t->priv);
kfree(t);
return 0;
Expand Down
1 change: 1 addition & 0 deletions include/media/tuner.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,7 @@ struct tuner {
int (*get_afc)(struct i2c_client *c);
void (*tuner_status)(struct i2c_client *c);
void (*standby)(struct i2c_client *c);
void (*release)(struct i2c_client *c);
};

extern unsigned const int tuner_count;
Expand Down

0 comments on commit be2b85a

Please sign in to comment.