V4L/DVB (9394): cache last successful state

Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/dvb/frontends/tda8261.c b/drivers/media/dvb/frontends/tda8261.c
index dc7dc02..616d88b 100644
--- a/drivers/media/dvb/frontends/tda8261.c
+++ b/drivers/media/dvb/frontends/tda8261.c
@@ -143,10 +143,12 @@
 			printk("%s: I/O Error\n", __func__);
 			return err;
 		}
-		if (status == 1)
+		if (status == 1) {
 			printk("%s: Tuner Phase locked: status=%d\n", __func__, status);
-		else
+			state->frequency = frequency; /* cache last successful */
+		} else {
 			printk("%s: No Phase lock: status=%d\n", __func__, status);
+		}
 	} else {
 		printk("%s: Unknown parameter (param=%d)\n", __func__, param);
 		return -EINVAL;