]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
linuxdvb: allow to force using old linuxdvb ioctls, fixes#2759
authorJaroslav Kysela <perex@perex.cz>
Tue, 7 Apr 2015 07:44:53 +0000 (09:44 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 7 Apr 2015 07:44:53 +0000 (09:44 +0200)
docs/html/config_tvadapters.html
src/input/mpegts/linuxdvb/linuxdvb_frontend.c
src/input/mpegts/linuxdvb/linuxdvb_private.h

index 2508c33bd19a2ee9a2c09e45f87588c2415d2c8c..52826a35698258f3f4c0ddb8e10a773cc572656c 100644 (file)
@@ -89,6 +89,11 @@ The rows have the following functions
       In this case, increase the default value. For fast hardware, this value
       might be descreased to make the decision of the re-tune algorithm
       based on the signal status faster.</dd>
+<p>
+ <dt><b>Force old status</b></dt>
+  <dd>Always use the old ioctls to read the linuxdvb status (signal strenght,
+      SNR, error counters). Some drivers are not matured enough to provide
+      the correct values using the new v5 linuxdvb API.</dd>
 </dl>
 
 <br>
index b58d617c102e8087f63226081adf5eb32b23e614..59fc77d9c211d4df29eeec8b730eb6e5d0cd232b 100644 (file)
@@ -120,6 +120,13 @@ const idclass_t linuxdvb_frontend_class =
       .opts     = PO_ADVANCED,
       .off      = offsetof(linuxdvb_frontend_t, lfe_status_period),
     },
+    {
+      .type     = PT_BOOL,
+      .id       = "old_status",
+      .name     = "Force old status",
+      .opts     = PO_ADVANCED,
+      .off      = offsetof(linuxdvb_frontend_t, lfe_old_status),
+    },
     {}
   }
 };
@@ -649,7 +656,8 @@ linuxdvb_frontend_monitor ( void *aux )
 
   logit = tvhlog_limit(&lfe->lfe_status_log, 3600);
 
-  if(ioctl_check(lfe, 0) && !ioctl(lfe->lfe_fe_fd, FE_GET_PROPERTY, &dtv_prop)) {
+  if(ioctl_check(lfe, 0) && !lfe->lfe_old_status &&
+     !ioctl(lfe->lfe_fe_fd, FE_GET_PROPERTY, &dtv_prop)) {
     /* Signal strength */
     gotprop = 0;
     if(ioctl_check(lfe, 1) && fe_properties[0].u.st.len > 0) {
index d829a336713bf33a062f3f4d01f9c0901ac911ba..116e79a541f12b549c6250becd4da6c6e7f927bb 100644 (file)
@@ -118,6 +118,7 @@ struct linuxdvb_frontend
   uint32_t                  lfe_skip_bytes;
   uint32_t                  lfe_ibuf_size;
   uint32_t                  lfe_status_period;
+  int                       lfe_old_status;
 
   /*
    * Satconf (DVB-S only)