Hi list,
because I need a channel scan for analog tv it is more fast to do if we have afc
and signal quality handy than just a lock state.
Here is my patch for the tuner xc5000 which is inside the Terratec
Cinergy XS FM analogue stick.

Regards,
 Frank
diff -r 35f2b20d9abe kernel/media-stub.c
--- a/kernel/media-stub.c	Sat Mar 15 23:34:17 2008 +0100
+++ b/kernel/media-stub.c	Tue Jun 03 20:33:59 2008 +0200
@@ -1373,8 +1373,9 @@ int tuner_int_v4l_cmd(int clientid, unsi
 		memset(&status, 0x0, sizeof(struct media_user_status));
                 tuner_int_run_cmd(clientid, TUNER_CMD_G_STATUS, &status);
 
-		if(status.lock_status)
-			tuner->signal = status.lock_status;
+		tuner->signal = status.signal;
+		//tuner->signal = status.lock_status; /*FIXME: there is no lock_status defined in v4l2*/
+		tuner->afc = status.afc;
 
                 tuner->capability |= V4L2_TUNER_CAP_STEREO;
 		if (mode == TUNER_STUB_RADIO)
diff -r 35f2b20d9abe kernel/media-stub.h
--- a/kernel/media-stub.h	Sat Mar 15 23:34:17 2008 +0100
+++ b/kernel/media-stub.h	Tue Jun 03 20:33:59 2008 +0200
@@ -176,6 +176,8 @@ struct media_user_status {
 	int audmode;
 	int rxsubchans;
 	int capability;
+	unsigned long signal;
+	long afc;
 };
 
 struct media_daemon_user_cmd {
diff -r 35f2b20d9abe userspace/xc5000/tuner-xc5000.c
--- a/userspace/xc5000/tuner-xc5000.c	Sat Mar 15 23:34:17 2008 +0100
+++ b/userspace/xc5000/tuner-xc5000.c	Tue Jun 03 20:33:59 2008 +0200
@@ -231,11 +231,24 @@ 22    FM Radio-INPUT1
 }
 
 static int xc5000_get_status(struct media_core *core, struct media_user_status *status) {
+	int res;
 	unsigned short int lock_status = 0;
+	double freq_error;
+	unsigned short int quality;
+
 	xc_get_lock_status(core, &lock_status);
 	status->lock_status = 0;
 	if(lock_status == 1)
 		status->lock_status = 0xffff;
+
+	res=xc_get_quality(core, &quality);
+	if (res!=XC_RESULT_SUCCESS) return res;
+	status->signal=quality;
+
+	res=xc_get_frequency_error(core, &freq_error);
+	if (res!=XC_RESULT_SUCCESS) return res;
+	status->afc = (long)freq_error;
+
 	return 0;
 }
 

_______________________________________________
Em28xx mailing list
[email protected]
http://mcentral.de/mailman/listinfo/em28xx

Reply via email to