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