V4L/DVB (5719): Tuner: Move device-specific private data out of tuner struct

Create private data struct for device specific private data.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index 591ca9c..406b85c 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -177,6 +177,9 @@
 		return;
 	}
 
+	/* discard private data, in case set_type() was previously called */
+	kfree(t->priv);
+	t->priv = NULL;
 	switch (t->type) {
 	case TUNER_MT2032:
 		microtune_init(c);
@@ -450,7 +453,6 @@
 	memcpy(&t->i2c, &client_template, sizeof(struct i2c_client));
 	i2c_set_clientdata(&t->i2c, t);
 	t->type = UNSET;
-	t->radio_if2 = 10700 * 1000;	/* 10.7MHz - FM radio */
 	t->audmode = V4L2_TUNER_MODE_STEREO;
 	t->mode_mask = T_UNINITIALIZED;
 	t->tuner_status = tuner_status;
@@ -559,6 +561,7 @@
 		return err;
 	}
 
+	kfree(t->priv);
 	kfree(t);
 	return 0;
 }