minisatip.patch: fix axe_fe_thread_up ioctl parameter - it seems like input selector

This commit is contained in:
Jaroslav Kysela 2015-04-06 22:18:35 +02:00
parent 3d4c017d64
commit ce520df0d6

View File

@ -339,7 +339,7 @@ index 0000000..c29131d
+ +
+#endif +#endif
diff --git a/dvb.c b/dvb.c diff --git a/dvb.c b/dvb.c
index 5701bd2..3c146b7 100755 index 5701bd2..b75918c 100755
--- a/dvb.c --- a/dvb.c
+++ b/dvb.c +++ b/dvb.c
@@ -41,6 +41,10 @@ @@ -41,6 +41,10 @@
@ -440,21 +440,33 @@ index 5701bd2..3c146b7 100755
}else }else
{ {
if(tp->old_pol != pol || tp->old_hiband != hiband || tp->old_diseqc != diseqc) if(tp->old_pol != pol || tp->old_hiband != hiband || tp->old_diseqc != diseqc)
@@ -343,6 +395,13 @@ int setup_switch (int frontend_fd, transponder *tp) @@ -343,6 +395,25 @@ int setup_switch (int frontend_fd, transponder *tp)
else else
LOGL(3, "Skip sending diseqc commands since the switch position doesn't need to be changed: pol %d, hiband %d, switch position %d", pol, hiband, diseqc); LOGL(3, "Skip sending diseqc commands since the switch position doesn't need to be changed: pol %d, hiband %d, switch position %d", pol, hiband, diseqc);
} }
+#ifdef AXE +#ifdef AXE
+ LOGL(3, "axe_fe: reset for fd %d up %d", frontend_fd, (hiband << 1) | pol); + {
+ int aid = 0;
+ if (tp->switch_type != SWITCH_UNICABLE && tp->switch_type != SWITCH_JESS) {
+ for (aid = 0; aid < 4; aid++) {
+ adapter *a = get_adapter(aid);
+ if (a && a->fe == frontend_fd)
+ break;
+ }
+ if (aid >= 4)
+ LOG("axe_fe: unknown adapter for fd %d", frontend_fd);
+ }
+ LOGL(3, "axe_fe: reset for fd %d adapter %d", frontend_fd, aid);
+ if (axe_fe_reset(frontend_fd) < 0) + if (axe_fe_reset(frontend_fd) < 0)
+ LOG("axe_fe: RESET failed for fd %d: %s", frontend_fd, strerror(errno)); + LOG("axe_fe: RESET failed for fd %d: %s", frontend_fd, strerror(errno));
+ if (axe_fe_thread_up(frontend_fd, (hiband << 1) | pol) < 0) + if (aid < 4 && axe_fe_thread_up(frontend_fd, aid))
+ LOG("axe_fe: THREAD UP failed for fd %d: %s", frontend_fd, strerror(errno)); + LOG("axe_fe: THREAD UP failed for fd %d: %s", frontend_fd, strerror(errno));
+ }
+#endif +#endif
tp->old_pol = pol; tp->old_pol = pol;
tp->old_hiband = hiband; tp->old_hiband = hiband;
@@ -383,8 +442,10 @@ tune_it_s2 (int fd_frontend, transponder * tp) @@ -383,8 +454,10 @@ tune_it_s2 (int fd_frontend, transponder * tp)
{.cmd = DTV_INVERSION,.u.data = 0}, {.cmd = DTV_INVERSION,.u.data = 0},
{.cmd = DTV_SYMBOL_RATE,.u.data = 0}, {.cmd = DTV_SYMBOL_RATE,.u.data = 0},
{.cmd = DTV_INNER_FEC,.u.data = 0}, {.cmd = DTV_INNER_FEC,.u.data = 0},
@ -465,7 +477,7 @@ index 5701bd2..3c146b7 100755
{.cmd = DTV_TUNE}, {.cmd = DTV_TUNE},
}; };
static struct dtv_properties dvbs2_cmdseq = static struct dtv_properties dvbs2_cmdseq =
@@ -465,8 +526,10 @@ tune_it_s2 (int fd_frontend, transponder * tp) @@ -465,8 +538,10 @@ tune_it_s2 (int fd_frontend, transponder * tp)
p = &dvbs2_cmdseq; p = &dvbs2_cmdseq;
p->props[DELSYS].u.data = tp->sys; p->props[DELSYS].u.data = tp->sys;
p->props[MODULATION].u.data = tp->mtype; p->props[MODULATION].u.data = tp->mtype;
@ -476,7 +488,7 @@ index 5701bd2..3c146b7 100755
p->props[INVERSION].u.data = tp->inversion; p->props[INVERSION].u.data = tp->inversion;
p->props[SYMBOL_RATE].u.data = tp->sr; p->props[SYMBOL_RATE].u.data = tp->sr;
p->props[FEC_INNER].u.data = tp->fec; p->props[FEC_INNER].u.data = tp->fec;
@@ -475,7 +538,12 @@ tune_it_s2 (int fd_frontend, transponder * tp) @@ -475,7 +550,12 @@ tune_it_s2 (int fd_frontend, transponder * tp)
LOG("tuning to %d(%d) pol: %s (%d) sr:%d fec:%s delsys:%s mod:%s rolloff:%s pilot:%s, ts clear=%d, ts pol=%d", LOG("tuning to %d(%d) pol: %s (%d) sr:%d fec:%s delsys:%s mod:%s rolloff:%s pilot:%s, ts clear=%d, ts pol=%d",
tp->freq, p->props[FREQUENCY].u.data, get_pol(tp->pol), tp->pol, p->props[SYMBOL_RATE].u.data, fe_fec[p->props[FEC_INNER].u.data], tp->freq, p->props[FREQUENCY].u.data, get_pol(tp->pol), tp->pol, p->props[SYMBOL_RATE].u.data, fe_fec[p->props[FEC_INNER].u.data],
fe_delsys[p->props[DELSYS].u.data], fe_modulation[p->props[MODULATION].u.data], fe_delsys[p->props[DELSYS].u.data], fe_modulation[p->props[MODULATION].u.data],
@ -490,7 +502,7 @@ index 5701bd2..3c146b7 100755
break; break;
@@ -560,6 +628,20 @@ set_pid (int hw, int ad, uint16_t i_pid) @@ -560,6 +640,20 @@ set_pid (int hw, int ad, uint16_t i_pid)
char buf[100]; char buf[100];
int fd; int fd;
@ -511,7 +523,7 @@ index 5701bd2..3c146b7 100755
if ( i_pid > 8192 ) if ( i_pid > 8192 )
LOG_AND_RETURN(-1, "pid %d > 8192 for /dev/dvb/adapter%d/demux%d", i_pid, hw, ad); LOG_AND_RETURN(-1, "pid %d > 8192 for /dev/dvb/adapter%d/demux%d", i_pid, hw, ad);
@@ -585,6 +667,7 @@ set_pid (int hw, int ad, uint16_t i_pid) @@ -585,6 +679,7 @@ set_pid (int hw, int ad, uint16_t i_pid)
} }
LOG ("setting filter on PID %d for fd %d", i_pid, fd); LOG ("setting filter on PID %d for fd %d", i_pid, fd);
@ -519,7 +531,7 @@ index 5701bd2..3c146b7 100755
return fd; return fd;
} }
@@ -592,6 +675,17 @@ set_pid (int hw, int ad, uint16_t i_pid) @@ -592,6 +687,17 @@ set_pid (int hw, int ad, uint16_t i_pid)
int del_filters (int fd, int pid) int del_filters (int fd, int pid)
{ {
@ -537,7 +549,7 @@ index 5701bd2..3c146b7 100755
if (fd < 0) if (fd < 0)
LOG_AND_RETURN(0, "DMX_STOP on an invalid handle %d, pid %d", fd, pid); LOG_AND_RETURN(0, "DMX_STOP on an invalid handle %d, pid %d", fd, pid);
if (ioctl (fd, DMX_STOP) < 0) if (ioctl (fd, DMX_STOP) < 0)
@@ -599,6 +693,7 @@ int del_filters (int fd, int pid) @@ -599,6 +705,7 @@ int del_filters (int fd, int pid)
else else
LOG ("clearing filters on PID %d FD %d", pid, fd); LOG ("clearing filters on PID %d FD %d", pid, fd);
close (fd); close (fd);
@ -545,7 +557,7 @@ index 5701bd2..3c146b7 100755
return 0; return 0;
} }
@@ -606,6 +701,15 @@ int del_filters (int fd, int pid) @@ -606,6 +713,15 @@ int del_filters (int fd, int pid)
fe_delivery_system_t fe_delivery_system_t
dvb_delsys (int aid, int fd, fe_delivery_system_t *sys) dvb_delsys (int aid, int fd, fe_delivery_system_t *sys)
{ {
@ -561,7 +573,7 @@ index 5701bd2..3c146b7 100755
int i, res, rv = 0; int i, res, rv = 0;
struct dvb_frontend_info fe_info; struct dvb_frontend_info fe_info;
@@ -703,6 +807,7 @@ dvb_delsys (int aid, int fd, fe_delivery_system_t *sys) @@ -703,6 +819,7 @@ dvb_delsys (int aid, int fd, fe_delivery_system_t *sys)
LOG ("returning default from dvb_delsys => %s (count %d)", fe_delsys[rv] , nsys); LOG ("returning default from dvb_delsys => %s (count %d)", fe_delsys[rv] , nsys);
return (fe_delivery_system_t) rv; return (fe_delivery_system_t) rv;