linuxdvb: allow to force using old linuxdvb ioctls, fixes#2759

This commit is contained in:
Jaroslav Kysela 2015-04-07 09:44:53 +02:00
parent d58afc0415
commit 995aaf895b
3 changed files with 15 additions and 1 deletions

View 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>

View 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) {

View 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)