Compare commits
No commits in common. "master" and "build15-rc5" have entirely different histories.
master
...
build15-rc
4
Makefile
4
Makefile
@ -80,7 +80,7 @@ MULTICAST_RTP_PACKAGE_NAME=multicast-rtp-2
|
|||||||
TVHEADEND_COMMIT=master
|
TVHEADEND_COMMIT=master
|
||||||
|
|
||||||
# 10663 10937 11234 11398
|
# 10663 10937 11234 11398
|
||||||
OSCAM_REV=11434
|
OSCAM_REV=11432
|
||||||
|
|
||||||
define GIT_CLONE
|
define GIT_CLONE
|
||||||
@mkdir -p apps/host
|
@mkdir -p apps/host
|
||||||
@ -161,7 +161,7 @@ fs.cpio: $(CPIO_SRCS)
|
|||||||
$(foreach f,$(notdir $(wildcard apps/minisatip8/html/*)), -e "apps/minisatip8/html/$f:usr/share/minisatip8/html/$f") \
|
$(foreach f,$(notdir $(wildcard apps/minisatip8/html/*)), -e "apps/minisatip8/html/$f:usr/share/minisatip8/html/$f") \
|
||||||
-e "apps/$(NANO)/src/nano:usr/bin/nano" \
|
-e "apps/$(NANO)/src/nano:usr/bin/nano" \
|
||||||
-e "apps/mtd-utils/nandwrite:usr/sbin/nandwrite2" \
|
-e "apps/mtd-utils/nandwrite:usr/sbin/nandwrite2" \
|
||||||
-e "apps/oscam-svn/Distribution/oscam-1.20_svn$(OSCAM_REV)-sh4-linux:sbin/oscamd"
|
-e "apps/oscam-svn/Distribution/oscam-1.20-unstable_svn$(OSCAM_REV)-sh4-linux:sbin/oscamd"
|
||||||
|
|
||||||
.PHONY: fs-list
|
.PHONY: fs-list
|
||||||
fs-list:
|
fs-list:
|
||||||
|
9
dist/README
vendored
9
dist/README
vendored
@ -250,14 +250,13 @@ Bugs:
|
|||||||
History:
|
History:
|
||||||
--------
|
--------
|
||||||
|
|
||||||
satip-axe-201810211549-15 - Sun Oct 21 2018
|
satip-axe-2018 (build15) - ??
|
||||||
- moved the releases (firmware files) to github
|
- moved the releases (firmware files) to github
|
||||||
- added minisatip8
|
- added minisatip8
|
||||||
- theaded mode is turned on by default (use -T to toggle)
|
|
||||||
- updated minisatip code (latest minisatip 0.7.16)
|
- updated minisatip code (latest minisatip 0.7.16)
|
||||||
- note that some options were removed (-M) or added (-2)
|
- note that some options were removed (-M) or added (-2)
|
||||||
- follow /etc/config.default and this file
|
- follow /etc/config.default and this file
|
||||||
- fixed reported VDR problems (issue #108)
|
- fixed reported VDR problem (issue #108)
|
||||||
- added DVB-S2 multistream support
|
- added DVB-S2 multistream support
|
||||||
- fixed the improper tuner release problem for complex diseqc settings
|
- fixed the improper tuner release problem for complex diseqc settings
|
||||||
where one input is used by multiple tuners (minisatip7 and minisatip8)
|
where one input is used by multiple tuners (minisatip7 and minisatip8)
|
||||||
@ -265,9 +264,7 @@ satip-axe-201810211549-15 - Sun Oct 21 2018
|
|||||||
- modified net.ipv4.tcp_wmem (issue #102)
|
- modified net.ipv4.tcp_wmem (issue #102)
|
||||||
- increased net.core.wmem_max=12582912 , it might help to prevent
|
- increased net.core.wmem_max=12582912 , it might help to prevent
|
||||||
the UDP packet loss (issue #88)
|
the UDP packet loss (issue #88)
|
||||||
- partly fixed time sync (ntpd) issue when DHCP is used (issue #109)
|
- fixed time sync (ntpd) issue when DHCP is used (issue #109)
|
||||||
- upgraded python to 3.5.6 (package)
|
|
||||||
- upgraded oscam to rev.11434
|
|
||||||
|
|
||||||
satip-axe-201705251044-14 - Wed Jun 7 2017
|
satip-axe-201705251044-14 - Wed Jun 7 2017
|
||||||
- kernel modules from idl4k-1.25.0.157 (frontend + demux)
|
- kernel modules from idl4k-1.25.0.157 (frontend + demux)
|
||||||
|
BIN
dist/satip-axe-201810211549-15.flash
vendored
BIN
dist/satip-axe-201810211549-15.flash
vendored
Binary file not shown.
BIN
dist/satip-axe-201810211549-15.fw
vendored
BIN
dist/satip-axe-201810211549-15.fw
vendored
Binary file not shown.
BIN
dist/satip-axe-201810211549-15.usb
vendored
BIN
dist/satip-axe-201810211549-15.usb
vendored
Binary file not shown.
@ -1,12 +1,11 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
FILE="$1"
|
FILE="$1"
|
||||||
DOWNLOAD=""
|
|
||||||
MTDDEV="/dev/mtd3"
|
MTDDEV="/dev/mtd3"
|
||||||
SAFEFILE="/root/new.fw"
|
SAFEFILE="/root/new.fw"
|
||||||
CHECKSTR="Linux-2.6.32.42_stm24_0208-idl4k"
|
CHECKSTR="Linux-2.6.32.42_stm24_0208-idl4k"
|
||||||
|
GITHUB1="https://github.com/perexg/satip-axe/tree/master/dist"
|
||||||
GITHUB1="https://api.github.com/repos/perexg/satip-axe/releases"
|
GITHUB2="https://github.com/perexg/satip-axe/blob/master/dist/$FILE?raw=true"
|
||||||
|
|
||||||
if test "$PWD" != "/root" -a "$PWD" != "/"; then
|
if test "$PWD" != "/root" -a "$PWD" != "/"; then
|
||||||
echo "Run this utility from / or /root directory"
|
echo "Run this utility from / or /root directory"
|
||||||
@ -18,65 +17,23 @@ if test "$FILE" = "-h" -o "$FILE" = "--help"; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! test -r "$FILE"; then
|
|
||||||
if test -z "$FILE"; then
|
if test -z "$FILE"; then
|
||||||
echo "Trying to fetch the list of available firmware files:"
|
echo "Trying to fetch the list of available firmware files:"
|
||||||
else
|
if ! wget -q -O /root/list.txt "$GITHUB1"; then
|
||||||
echo "Trying to fetch the URL for the firmware:"
|
|
||||||
fi
|
|
||||||
if ! wget -q -O /root/list.json "$GITHUB1"; then
|
|
||||||
echo "FAILED"
|
echo "FAILED"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
cat /root/list.json | grep -E '("name"|"browser_download_url")' | \
|
grep -o -E ">satip-axe-.*.fw<" /root/list.txt | grep -o -E "satip-axe.*.fw"
|
||||||
grep -v -E '"name":.*.tgz' | \
|
rm /root/list.txt
|
||||||
while IFS="\n" read line
|
|
||||||
do
|
|
||||||
case "$line" in
|
|
||||||
\ *\"name\":*)
|
|
||||||
name=$(echo "$line" | cut -d '"' -f 4)
|
|
||||||
;;
|
|
||||||
\ *\"browser_download_url\":*)
|
|
||||||
fw=$(echo "$line" | cut -d '/' -f 9 | cut -d '"' -f 1 | cut -d '.' -f 1)
|
|
||||||
fw="$fw.fw"
|
|
||||||
if test -z "$FILE"; then
|
|
||||||
printf "%-40s : %s\n" "$name" "$fw"
|
|
||||||
else
|
|
||||||
if test "$FILE" = "$fw"; then
|
|
||||||
f=$(echo "$line" | cut -d '"' -f 4)
|
|
||||||
echo "$f" > /root/url.txt
|
|
||||||
printf " %s\n" "$f"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
name=''
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
rm /root/list.json
|
|
||||||
if test -z "$FILE"; then
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
if test -r /root/url.txt; then
|
|
||||||
DOWNLOAD=$(cat /root/url.txt)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$DOWNLOAD"; then
|
if ! test -r "$FILE"; then
|
||||||
echo "Downloading $FILE from $DOWNLOAD to $SAFEFILE:"
|
echo "Downloading $FILE:"
|
||||||
if ! wget -O - "$DOWNLOAD" | tar xOzf - "$FILE" > "$SAFEFILE"; then
|
if ! wget -O "$SAFEFILE" "$GITHUB2/$FILE"; then
|
||||||
echo "Unable to fetch firmware file $DOWNLOAD / $FILE"
|
echo "Unable to fetch firmware file $GITHUB2"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! test -r "$SAFEFILE"; then
|
|
||||||
echo "Unable to fetch firmware file $DOWNLOAD / $FILE"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
FILESIZE=$(stat -c "%s" "$SAFEFILE")
|
|
||||||
if test -z "$FILESIZE" -o $FILESIZE -le 0; then
|
|
||||||
echo "Download failed (wrong file size)!"
|
|
||||||
else
|
|
||||||
echo "Downloaded firmware $FILE (file $SAFEFILE size $FILESIZE bytes)..."
|
|
||||||
fi
|
|
||||||
FILE="$SAFEFILE"
|
FILE="$SAFEFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -112,7 +69,7 @@ while test 1 -eq 1; do
|
|||||||
nanddump -f "$SAFEFILE.old" -l "$FILESIZE" "$MTDDEV"
|
nanddump -f "$SAFEFILE.old" -l "$FILESIZE" "$MTDDEV"
|
||||||
FILESIZE2=$(stat -c "%s" "$SAFEFILE.old")
|
FILESIZE2=$(stat -c "%s" "$SAFEFILE.old")
|
||||||
if test "$FILESIZE" -gt "$FILESIZE2"; then
|
if test "$FILESIZE" -gt "$FILESIZE2"; then
|
||||||
echo "Unable to verify (file sizes does not match - $FILESIZE > $FILESIZE2)"
|
echo "Unable to verify (file sizes does not match - $FILESIZE > $FILESIZE2"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! dd if=/dev/null seek="$FILESIZE" bs=1 of="$SAFEFILE.old" 2> /dev/null; then
|
if ! dd if=/dev/null seek="$FILESIZE" bs=1 of="$SAFEFILE.old" 2> /dev/null; then
|
||||||
@ -121,7 +78,7 @@ while test 1 -eq 1; do
|
|||||||
fi
|
fi
|
||||||
FILESIZE2=$(stat -c "%s" "$SAFEFILE.old")
|
FILESIZE2=$(stat -c "%s" "$SAFEFILE.old")
|
||||||
if test "$FILESIZE" != "$FILESIZE2"; then
|
if test "$FILESIZE" != "$FILESIZE2"; then
|
||||||
echo "Unable to verify (file sizes does not match - $FILESIZE != $FILESIZE2)"
|
echo "Unable to verify (file sizes does not match - $FILESIZE != $FILESIZE2"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
result=$(diff "$SAFEFILE.old" "$SAFEFILE")
|
result=$(diff "$SAFEFILE.old" "$SAFEFILE")
|
||||||
|
@ -32,7 +32,7 @@ index 8812322..519f3da 100755
|
|||||||
myTable += "<td class='dt-right'>" + state['ad_axe_pktc'][i] + " </td>";
|
myTable += "<td class='dt-right'>" + state['ad_axe_pktc'][i] + " </td>";
|
||||||
myTable += "<td class='dt-right'>" + state['ad_axe_ccerr'][i] + " </td>";
|
myTable += "<td class='dt-right'>" + state['ad_axe_ccerr'][i] + " </td>";
|
||||||
diff --git a/src/adapter.c b/src/adapter.c
|
diff --git a/src/adapter.c b/src/adapter.c
|
||||||
index e034e3e..2edf766 100644
|
index e034e3e..9862114 100644
|
||||||
--- a/src/adapter.c
|
--- a/src/adapter.c
|
||||||
+++ b/src/adapter.c
|
+++ b/src/adapter.c
|
||||||
@@ -75,6 +75,7 @@ adapter *adapter_alloc()
|
@@ -75,6 +75,7 @@ adapter *adapter_alloc()
|
||||||
@ -97,16 +97,7 @@ index e034e3e..2edf766 100644
|
|||||||
#ifndef DISABLE_PMT
|
#ifndef DISABLE_PMT
|
||||||
SPid *p = find_pid(aid, 0);
|
SPid *p = find_pid(aid, 0);
|
||||||
SPid *p_all = find_pid(aid, 8192);
|
SPid *p_all = find_pid(aid, 8192);
|
||||||
@@ -947,6 +951,8 @@ int tune(int aid, int sid)
|
@@ -1066,7 +1070,7 @@ void mark_pids_deleted(int aid, int sid, char *pids) //pids==NULL -> delete all
|
||||||
ad->status = -1;
|
|
||||||
ad->status_cnt = 0;
|
|
||||||
ad->wait_new_stream = 1;
|
|
||||||
+ ad->strength = 0;
|
|
||||||
+ ad->snr = 0;
|
|
||||||
flush_data = 1;
|
|
||||||
ad->is_t2mi = 0;
|
|
||||||
if (ad->restart_when_tune)
|
|
||||||
@@ -1066,7 +1072,7 @@ void mark_pids_deleted(int aid, int sid, char *pids) //pids==NULL -> delete all
|
|
||||||
pids ? pids : "NULL");
|
pids ? pids : "NULL");
|
||||||
if (pids)
|
if (pids)
|
||||||
{
|
{
|
||||||
@ -115,7 +106,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
pid = map_int(arg[i], NULL);
|
pid = map_int(arg[i], NULL);
|
||||||
@@ -1146,11 +1152,11 @@ int mark_pids_add(int sid, int aid, char *pids)
|
@@ -1146,7 +1150,7 @@ int mark_pids_add(int sid, int aid, char *pids)
|
||||||
LOG("adding pids to adapter %d, sid %d, pids=%s", aid, sid,
|
LOG("adding pids to adapter %d, sid %d, pids=%s", aid, sid,
|
||||||
pids ? pids : "NULL");
|
pids ? pids : "NULL");
|
||||||
|
|
||||||
@ -124,12 +115,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
pid = map_intd(arg[i], NULL, -1);
|
pid = map_intd(arg[i], NULL, -1);
|
||||||
- if (pid == -1)
|
@@ -1165,11 +1169,11 @@ int compare_tunning_parameters(int aid, transponder *tp)
|
||||||
+ if (pid < 0 || pid > 8192)
|
|
||||||
continue;
|
|
||||||
if (mark_pid_add(sid, aid, pid) < 0)
|
|
||||||
return -1;
|
|
||||||
@@ -1165,11 +1171,11 @@ int compare_tunning_parameters(int aid, transponder *tp)
|
|
||||||
if (!ad)
|
if (!ad)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@ -146,7 +132,7 @@ index e034e3e..2edf766 100644
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
@@ -1196,11 +1202,11 @@ int set_adapter_parameters(int aid, int sid, transponder *tp)
|
@@ -1196,11 +1200,11 @@ int set_adapter_parameters(int aid, int sid, transponder *tp)
|
||||||
{
|
{
|
||||||
mutex_unlock(&ad->mutex);
|
mutex_unlock(&ad->mutex);
|
||||||
LOG(
|
LOG(
|
||||||
@ -162,7 +148,7 @@ index e034e3e..2edf766 100644
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
ad->do_tune = 1;
|
ad->do_tune = 1;
|
||||||
@@ -1242,7 +1248,7 @@ int set_adapter_parameters(int aid, int sid, transponder *tp)
|
@@ -1242,7 +1246,7 @@ int set_adapter_parameters(int aid, int sid, transponder *tp)
|
||||||
{
|
{
|
||||||
char *arg[64];
|
char *arg[64];
|
||||||
int i, la;
|
int i, la;
|
||||||
@ -171,38 +157,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
int pmt = map_int(arg[i], NULL);
|
int pmt = map_int(arg[i], NULL);
|
||||||
@@ -1316,16 +1322,20 @@ describe_adapter(int sid, int aid, char *dad, int ld)
|
@@ -1346,7 +1350,7 @@ describe_adapter(int sid, int aid, char *dad, int ld)
|
||||||
|
|
||||||
if (use_ad)
|
|
||||||
{
|
|
||||||
- strength = ad->strength;
|
|
||||||
- snr = ad->snr;
|
|
||||||
- if (snr > 15)
|
|
||||||
- snr = snr >> 4;
|
|
||||||
- status = (ad->status & FE_HAS_LOCK) > 0;
|
|
||||||
-
|
|
||||||
- if (strength > 255 || strength < 0)
|
|
||||||
- strength = 1;
|
|
||||||
- if (snr > 15 || snr < 0)
|
|
||||||
- snr = 1;
|
|
||||||
+ if (ad->status == -1) {
|
|
||||||
+ status = strength = snr = 0;
|
|
||||||
+ } else {
|
|
||||||
+ strength = ad->strength;
|
|
||||||
+ snr = ad->snr;
|
|
||||||
+ if (snr > 15)
|
|
||||||
+ snr = snr >> 4;
|
|
||||||
+ status = (ad->status & FE_HAS_LOCK) > 0;
|
|
||||||
+
|
|
||||||
+ if (strength > 255 || strength < 0)
|
|
||||||
+ strength = 1;
|
|
||||||
+ if (snr > 15 || snr < 0)
|
|
||||||
+ snr = 1;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
if (t->sys == 0)
|
|
||||||
len = snprintf(dad, ld, "ver=1.0;src=1;tuner=%d,0,0,0,0,,,,,,,;pids=",
|
|
||||||
@@ -1346,7 +1356,7 @@ describe_adapter(int sid, int aid, char *dad, int ld)
|
|
||||||
ad ? ad->tp.fe : aid + 1, strength, status, snr,
|
ad ? ad->tp.fe : aid + 1, strength, status, snr,
|
||||||
(double)t->freq / 1000.0, t->bw / 1000000, get_delsys(t->sys),
|
(double)t->freq / 1000.0, t->bw / 1000000, get_delsys(t->sys),
|
||||||
get_tmode(t->tmode), get_modulation(t->mtype),
|
get_tmode(t->tmode), get_modulation(t->mtype),
|
||||||
@ -211,7 +166,7 @@ index e034e3e..2edf766 100644
|
|||||||
else
|
else
|
||||||
len =
|
len =
|
||||||
snprintf(dad, ld,
|
snprintf(dad, ld,
|
||||||
@@ -1354,7 +1364,7 @@ describe_adapter(int sid, int aid, char *dad, int ld)
|
@@ -1354,7 +1358,7 @@ describe_adapter(int sid, int aid, char *dad, int ld)
|
||||||
ad ? ad->tp.fe : aid + 1, strength, status, snr,
|
ad ? ad->tp.fe : aid + 1, strength, status, snr,
|
||||||
(double)t->freq / 1000, get_delsys(t->sys),
|
(double)t->freq / 1000, get_delsys(t->sys),
|
||||||
get_modulation(t->mtype), t->sr / 1000, t->c2tft, t->ds,
|
get_modulation(t->mtype), t->sr / 1000, t->c2tft, t->ds,
|
||||||
@ -220,7 +175,7 @@ index e034e3e..2edf766 100644
|
|||||||
|
|
||||||
if (use_ad)
|
if (use_ad)
|
||||||
len += strlen(get_stream_pids(sid, dad + len, ld - len));
|
len += strlen(get_stream_pids(sid, dad + len, ld - len));
|
||||||
@@ -1436,12 +1446,12 @@ void set_disable(int i, int v)
|
@@ -1436,12 +1440,12 @@ void set_disable(int i, int v)
|
||||||
void enable_adapters(char *o)
|
void enable_adapters(char *o)
|
||||||
{
|
{
|
||||||
int i, la, st, end, j;
|
int i, la, st, end, j;
|
||||||
@ -235,7 +190,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
sep = strchr(arg[i], '-');
|
sep = strchr(arg[i], '-');
|
||||||
@@ -1463,10 +1473,10 @@ void enable_adapters(char *o)
|
@@ -1463,10 +1467,10 @@ void enable_adapters(char *o)
|
||||||
void set_unicable_adapters(char *o, int type)
|
void set_unicable_adapters(char *o, int type)
|
||||||
{
|
{
|
||||||
int i, la, a_id, slot, freq, pin, o13v;
|
int i, la, a_id, slot, freq, pin, o13v;
|
||||||
@ -248,7 +203,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
a_id = map_intd(arg[i], NULL, -1);
|
a_id = map_intd(arg[i], NULL, -1);
|
||||||
@@ -1503,11 +1513,11 @@ void set_unicable_adapters(char *o, int type)
|
@@ -1503,11 +1507,11 @@ void set_unicable_adapters(char *o, int type)
|
||||||
|
|
||||||
void set_diseqc_adapters(char *o)
|
void set_diseqc_adapters(char *o)
|
||||||
{
|
{
|
||||||
@ -263,7 +218,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
if (arg[i] && arg[i][0] == '*')
|
if (arg[i] && arg[i][0] == '*')
|
||||||
@@ -1531,8 +1541,28 @@ void set_diseqc_adapters(char *o)
|
@@ -1531,8 +1535,28 @@ void set_diseqc_adapters(char *o)
|
||||||
|
|
||||||
if (!sep1 || !sep2)
|
if (!sep1 || !sep2)
|
||||||
continue;
|
continue;
|
||||||
@ -294,7 +249,7 @@ index e034e3e..2edf766 100644
|
|||||||
committed_no = map_intd(sep1 + 1, NULL, -1);
|
committed_no = map_intd(sep1 + 1, NULL, -1);
|
||||||
uncommitted_no = map_intd(sep2 + 1, NULL, -1);
|
uncommitted_no = map_intd(sep2 + 1, NULL, -1);
|
||||||
if (committed_no < 0 || uncommitted_no < 0)
|
if (committed_no < 0 || uncommitted_no < 0)
|
||||||
@@ -1541,12 +1571,14 @@ void set_diseqc_adapters(char *o)
|
@@ -1541,12 +1565,14 @@ void set_diseqc_adapters(char *o)
|
||||||
if (ad)
|
if (ad)
|
||||||
{
|
{
|
||||||
ad->diseqc_param.fast = fast;
|
ad->diseqc_param.fast = fast;
|
||||||
@ -309,7 +264,7 @@ index e034e3e..2edf766 100644
|
|||||||
opts.diseqc_committed_no = committed_no;
|
opts.diseqc_committed_no = committed_no;
|
||||||
opts.diseqc_uncommitted_no = uncommitted_no;
|
opts.diseqc_uncommitted_no = uncommitted_no;
|
||||||
int j;
|
int j;
|
||||||
@@ -1554,23 +1586,24 @@ void set_diseqc_adapters(char *o)
|
@@ -1554,23 +1580,24 @@ void set_diseqc_adapters(char *o)
|
||||||
if (a[j])
|
if (a[j])
|
||||||
{
|
{
|
||||||
a[j]->diseqc_param.fast = fast;
|
a[j]->diseqc_param.fast = fast;
|
||||||
@ -338,7 +293,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
if (arg[i] && arg[i][0] == '*')
|
if (arg[i] && arg[i][0] == '*')
|
||||||
@@ -1619,10 +1652,10 @@ void set_diseqc_multi(char *o)
|
@@ -1619,10 +1646,10 @@ void set_diseqc_multi(char *o)
|
||||||
void set_lnb_adapters(char *o)
|
void set_lnb_adapters(char *o)
|
||||||
{
|
{
|
||||||
int i, la, a_id, lnb_low, lnb_high, lnb_switch;
|
int i, la, a_id, lnb_low, lnb_high, lnb_switch;
|
||||||
@ -351,7 +306,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
if (arg[i] && arg[i][0] == '*')
|
if (arg[i] && arg[i][0] == '*')
|
||||||
@@ -1692,11 +1725,11 @@ void set_diseqc_timing(char *o)
|
@@ -1692,11 +1719,11 @@ void set_diseqc_timing(char *o)
|
||||||
int i, la, a_id;
|
int i, la, a_id;
|
||||||
int before_cmd, after_cmd, after_repeated_cmd;
|
int before_cmd, after_cmd, after_repeated_cmd;
|
||||||
int after_switch, after_burst, after_tone;
|
int after_switch, after_burst, after_tone;
|
||||||
@ -365,7 +320,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
if (arg[i] && arg[i][0] == '*')
|
if (arg[i] && arg[i][0] == '*')
|
||||||
@@ -1773,10 +1806,10 @@ void set_diseqc_timing(char *o)
|
@@ -1773,10 +1800,10 @@ void set_diseqc_timing(char *o)
|
||||||
void set_slave_adapters(char *o)
|
void set_slave_adapters(char *o)
|
||||||
{
|
{
|
||||||
int i, j, la, a_id, a_id2, master = 0;
|
int i, j, la, a_id, a_id2, master = 0;
|
||||||
@ -378,7 +333,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
a_id = map_intd(arg[i], NULL, -1);
|
a_id = map_intd(arg[i], NULL, -1);
|
||||||
@@ -1826,13 +1859,13 @@ void set_timeout_adapters(char *o)
|
@@ -1826,13 +1853,13 @@ void set_timeout_adapters(char *o)
|
||||||
{
|
{
|
||||||
int i, j, la, a_id, a_id2;
|
int i, j, la, a_id, a_id2;
|
||||||
int timeout = opts.adapter_timeout / 1000;
|
int timeout = opts.adapter_timeout / 1000;
|
||||||
@ -394,7 +349,7 @@ index e034e3e..2edf766 100644
|
|||||||
if (arg[0] && (arg[0][0] == '*'))
|
if (arg[0] && (arg[0][0] == '*'))
|
||||||
{
|
{
|
||||||
opts.adapter_timeout = timeout * 1000;
|
opts.adapter_timeout = timeout * 1000;
|
||||||
@@ -1876,10 +1909,10 @@ extern char *fe_delsys[];
|
@@ -1876,10 +1903,10 @@ extern char *fe_delsys[];
|
||||||
void set_adapters_delsys(char *o)
|
void set_adapters_delsys(char *o)
|
||||||
{
|
{
|
||||||
int i, la, a_id, ds;
|
int i, la, a_id, ds;
|
||||||
@ -407,7 +362,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
a_id = map_intd(arg[i], NULL, -1);
|
a_id = map_intd(arg[i], NULL, -1);
|
||||||
@@ -1916,10 +1949,10 @@ void set_adapters_delsys(char *o)
|
@@ -1916,10 +1943,10 @@ void set_adapters_delsys(char *o)
|
||||||
void set_adapter_dmxsource(char *o)
|
void set_adapter_dmxsource(char *o)
|
||||||
{
|
{
|
||||||
int i, j, la, st, end, fd;
|
int i, j, la, st, end, fd;
|
||||||
@ -420,7 +375,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
sep = strchr(arg[i], '-');
|
sep = strchr(arg[i], '-');
|
||||||
@@ -1956,10 +1989,10 @@ void set_signal_multiplier(char *o)
|
@@ -1956,10 +1983,10 @@ void set_signal_multiplier(char *o)
|
||||||
{
|
{
|
||||||
int i, la, a_id;
|
int i, la, a_id;
|
||||||
float strength_multiplier, snr_multiplier;
|
float strength_multiplier, snr_multiplier;
|
||||||
@ -433,52 +388,7 @@ index e034e3e..2edf766 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
if (arg[i] && arg[i][0] == '*')
|
if (arg[i] && arg[i][0] == '*')
|
||||||
@@ -2030,24 +2063,28 @@ int delsys_match(adapter *ad, int del_sys)
|
@@ -2193,6 +2220,7 @@ _symbols adapters_sym[] =
|
||||||
|
|
||||||
int signal_thread(sockets *s)
|
|
||||||
{
|
|
||||||
- int i;
|
|
||||||
+ int i, status;
|
|
||||||
int64_t ts, ctime;
|
|
||||||
adapter *ad;
|
|
||||||
- for (i = 0; i < MAX_ADAPTERS; i++)
|
|
||||||
- if ((ad = get_adapter_nw(i)) && ad->get_signal && (ad->fe > 0) && ad->tp.freq && (ad->status_cnt++ > 0) // make sure the kernel has updated the status
|
|
||||||
- && (!opts.no_threads || (ad->status < 0)))
|
|
||||||
-
|
|
||||||
- {
|
|
||||||
- int status = ad->status;
|
|
||||||
- ts = getTick();
|
|
||||||
- ad->get_signal(ad);
|
|
||||||
- ctime = getTick();
|
|
||||||
- if (status == -1 || (opts.log & DEFAULT_LOG))
|
|
||||||
- LOG(
|
|
||||||
- "get_signal%s took %jd ms for adapter %d handle %d (status: %d, ber: %d, strength:%d, snr: %d, force scan %d)",
|
|
||||||
- (ad->new_gs == 1) ? "_new" : "", ctime - ts, ad->id, ad->fe,
|
|
||||||
- ad->status, ad->ber, ad->strength, ad->snr, opts.force_scan);
|
|
||||||
- }
|
|
||||||
+ for (i = 0; i < MAX_ADAPTERS; i++) {
|
|
||||||
+ if ((ad = get_adapter_nw(i)) == NULL || ad->get_signal == NULL)
|
|
||||||
+ continue;
|
|
||||||
+ if (ad->fe <= 0 || ad->tp.freq <= 0)
|
|
||||||
+ continue;
|
|
||||||
+ status = ad->status;
|
|
||||||
+ if (ad->status_cnt++ <= 0) // make sure the kernel has updated the status
|
|
||||||
+ continue;
|
|
||||||
+ if (opts.no_threads && !ad->fast_status && status >= 0)
|
|
||||||
+ continue;
|
|
||||||
+ ts = getTick();
|
|
||||||
+ ad->get_signal(ad);
|
|
||||||
+ ctime = getTick();
|
|
||||||
+ if (status == -1 || (opts.log & DEFAULT_LOG))
|
|
||||||
+ LOG(
|
|
||||||
+ "get_signal%s took %jd ms for adapter %d handle %d (status: %d, ber: %d, strength:%d, snr: %d, force scan %d)",
|
|
||||||
+ (ad->new_gs == 1) ? "_new" : "", ctime - ts, ad->id, ad->fe,
|
|
||||||
+ ad->status, ad->ber, ad->strength, ad->snr, opts.force_scan);
|
|
||||||
+ }
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -2193,6 +2230,7 @@ _symbols adapters_sym[] =
|
|
||||||
{"ad_sr", VAR_AARRAY_INT, a, 1. / 1000, MAX_ADAPTERS, offsetof(adapter, tp.sr)},
|
{"ad_sr", VAR_AARRAY_INT, a, 1. / 1000, MAX_ADAPTERS, offsetof(adapter, tp.sr)},
|
||||||
{"ad_bw", VAR_AARRAY_INT, a, 1. / 1000, MAX_ADAPTERS, offsetof(adapter, tp.bw)},
|
{"ad_bw", VAR_AARRAY_INT, a, 1. / 1000, MAX_ADAPTERS, offsetof(adapter, tp.bw)},
|
||||||
{"ad_diseqc", VAR_AARRAY_INT, a, 1, MAX_ADAPTERS, offsetof(adapter, tp.diseqc)},
|
{"ad_diseqc", VAR_AARRAY_INT, a, 1, MAX_ADAPTERS, offsetof(adapter, tp.diseqc)},
|
||||||
@ -486,21 +396,8 @@ index e034e3e..2edf766 100644
|
|||||||
{"ad_fe", VAR_AARRAY_INT, a, 1, MAX_ADAPTERS, offsetof(adapter, fe)},
|
{"ad_fe", VAR_AARRAY_INT, a, 1, MAX_ADAPTERS, offsetof(adapter, fe)},
|
||||||
{"ad_master", VAR_AARRAY_UINT8, a, 1, MAX_ADAPTERS, offsetof(adapter, master_sid)},
|
{"ad_master", VAR_AARRAY_UINT8, a, 1, MAX_ADAPTERS, offsetof(adapter, master_sid)},
|
||||||
{"ad_sidcount", VAR_AARRAY_UINT8, a, 1, MAX_ADAPTERS, offsetof(adapter, sid_cnt)},
|
{"ad_sidcount", VAR_AARRAY_UINT8, a, 1, MAX_ADAPTERS, offsetof(adapter, sid_cnt)},
|
||||||
diff --git a/src/adapter.h b/src/adapter.h
|
|
||||||
index d1c3ec8..9ea412c 100644
|
|
||||||
--- a/src/adapter.h
|
|
||||||
+++ b/src/adapter.h
|
|
||||||
@@ -58,7 +58,7 @@ typedef struct struct_adapter
|
|
||||||
int64_t rtime;
|
|
||||||
int64_t last_sort;
|
|
||||||
int new_gs;
|
|
||||||
- int status, status_cnt;
|
|
||||||
+ int status, status_cnt, fast_status;
|
|
||||||
int dmx_source;
|
|
||||||
int master_source;
|
|
||||||
int is_fbc;
|
|
||||||
diff --git a/src/axe.c b/src/axe.c
|
diff --git a/src/axe.c b/src/axe.c
|
||||||
index 52e8dad..e618c46 100644
|
index 52e8dad..57ba3a6 100644
|
||||||
--- a/src/axe.c
|
--- a/src/axe.c
|
||||||
+++ b/src/axe.c
|
+++ b/src/axe.c
|
||||||
@@ -48,7 +48,7 @@
|
@@ -48,7 +48,7 @@
|
||||||
@ -521,7 +418,7 @@ index 52e8dad..e618c46 100644
|
|||||||
len = strlen(b = s);
|
len = strlen(b = s);
|
||||||
while (len > 0)
|
while (len > 0)
|
||||||
{
|
{
|
||||||
@@ -152,6 +154,54 @@ void axe_post_init(adapter *ad)
|
@@ -152,6 +154,49 @@ void axe_post_init(adapter *ad)
|
||||||
sockets_setread(ad->sock, axe_read);
|
sockets_setread(ad->sock, axe_read);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -556,7 +453,6 @@ index 52e8dad..e618c46 100644
|
|||||||
+ static int isi[4] = { -2, -2, -2, -2 };
|
+ static int isi[4] = { -2, -2, -2, -2 };
|
||||||
+ static int pls_code[4] = { -2, -2, -2, -2 };
|
+ static int pls_code[4] = { -2, -2, -2, -2 };
|
||||||
+ int v;
|
+ int v;
|
||||||
+ LOGM("axe: isi %d pls %d mode %d", tp->plp_isi, tp->pls_code, tp->pls_mode);
|
|
||||||
+ if (tp->plp_isi != isi[ad->pa]) {
|
+ if (tp->plp_isi != isi[ad->pa]) {
|
||||||
+ v = tp->plp_isi < 0 ? -1 : (tp->plp_isi & 0xff);
|
+ v = tp->plp_isi < 0 ? -1 : (tp->plp_isi & 0xff);
|
||||||
+ axe_stv0900_i2c_4("mis", ad->pa, v);
|
+ axe_stv0900_i2c_4("mis", ad->pa, v);
|
||||||
@ -564,10 +460,6 @@ index 52e8dad..e618c46 100644
|
|||||||
+ }
|
+ }
|
||||||
+ if (tp->pls_code != pls_code[ad->pa]) {
|
+ if (tp->pls_code != pls_code[ad->pa]) {
|
||||||
+ v = tp->pls_code < 0 ? 0 : (tp->pls_code & 0x3ffff);
|
+ v = tp->pls_code < 0 ? 0 : (tp->pls_code & 0x3ffff);
|
||||||
+ if (tp->pls_mode == PLS_MODE_GOLD || tp->pls_mode < 0)
|
|
||||||
+ v |= 0x40000;
|
|
||||||
+ else if (tp->pls_mode == PLS_MODE_COMBO)
|
|
||||||
+ v |= 0x80000; /* really? */
|
|
||||||
+ axe_stv0900_i2c_4("pls", ad->pa, v);
|
+ axe_stv0900_i2c_4("pls", ad->pa, v);
|
||||||
+ pls_code[ad->pa] = tp->pls_code;
|
+ pls_code[ad->pa] = tp->pls_code;
|
||||||
+ }
|
+ }
|
||||||
@ -576,7 +468,7 @@ index 52e8dad..e618c46 100644
|
|||||||
void axe_wakeup(void *_ad, int fe_fd, int voltage)
|
void axe_wakeup(void *_ad, int fe_fd, int voltage)
|
||||||
{
|
{
|
||||||
int i, mask;
|
int i, mask;
|
||||||
@@ -210,7 +260,7 @@ static inline int extra_quattro(int input, int diseqc, int *equattro)
|
@@ -210,7 +255,7 @@ static inline int extra_quattro(int input, int diseqc, int *equattro)
|
||||||
return *equattro;
|
return *equattro;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -585,13 +477,13 @@ index 52e8dad..e618c46 100644
|
|||||||
{
|
{
|
||||||
int input2 = input < 4 ? input : -1;
|
int input2 = input < 4 ? input : -1;
|
||||||
adapter *ad = get_configured_adapter(input2);
|
adapter *ad = get_configured_adapter(input2);
|
||||||
@@ -229,8 +279,30 @@ adapter *use_adapter(int input)
|
@@ -229,8 +274,30 @@ adapter *use_adapter(int input)
|
||||||
return ad;
|
return ad;
|
||||||
}
|
}
|
||||||
|
|
||||||
-int tune_check(adapter *ad, int pol, int hiband, int diseqc)
|
-int tune_check(adapter *ad, int pol, int hiband, int diseqc)
|
||||||
+int axe_get_hiband(transponder *tp, diseqc *diseqc_param)
|
+int axe_get_hiband(transponder *tp, diseqc *diseqc_param)
|
||||||
{
|
+{
|
||||||
+ if (tp->pol > 2 && diseqc_param->lnb_circular > 0)
|
+ if (tp->pol > 2 && diseqc_param->lnb_circular > 0)
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+ if (tp->freq < diseqc_param->lnb_switch)
|
+ if (tp->freq < diseqc_param->lnb_switch)
|
||||||
@ -611,13 +503,13 @@ index 52e8dad..e618c46 100644
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+int axe_tune_check(adapter *ad, transponder *tp, diseqc *diseqc_param, int diseqc)
|
+int axe_tune_check(adapter *ad, transponder *tp, diseqc *diseqc_param, int diseqc)
|
||||||
+{
|
{
|
||||||
+ int pol = (tp->pol - 1) & 1;
|
+ int pol = (tp->pol - 1) & 1;
|
||||||
+ int hiband = axe_get_hiband(tp, diseqc_param);
|
+ int hiband = axe_get_hiband(tp, diseqc_param);
|
||||||
LOGM("axe: tune check for adapter %d, pol %d/%d, hiband %d/%d, diseqc %d/%d",
|
LOGM("axe: tune check for adapter %d, pol %d/%d, hiband %d/%d, diseqc %d/%d",
|
||||||
ad->id, ad->old_pol, pol, ad->old_hiband, hiband, ad->old_diseqc, diseqc);
|
ad->id, ad->old_pol, pol, ad->old_hiband, hiband, ad->old_diseqc, diseqc);
|
||||||
if (ad->old_pol != pol)
|
if (ad->old_pol != pol)
|
||||||
@@ -249,33 +321,25 @@ int axe_setup_switch(adapter *ad)
|
@@ -249,33 +316,25 @@ int axe_setup_switch(adapter *ad)
|
||||||
{
|
{
|
||||||
int frontend_fd = ad->fe;
|
int frontend_fd = ad->fe;
|
||||||
transponder *tp = &ad->tp;
|
transponder *tp = &ad->tp;
|
||||||
@ -663,7 +555,7 @@ index 52e8dad..e618c46 100644
|
|||||||
{
|
{
|
||||||
input = ad->id;
|
input = ad->id;
|
||||||
if (!opts.quattro || extra_quattro(input, diseqc, &equattro))
|
if (!opts.quattro || extra_quattro(input, diseqc, &equattro))
|
||||||
@@ -298,7 +362,7 @@ int axe_setup_switch(adapter *ad)
|
@@ -298,7 +357,7 @@ int axe_setup_switch(adapter *ad)
|
||||||
continue;
|
continue;
|
||||||
if ((ad2->axe_used & ~(1 << ad->id)) == 0)
|
if ((ad2->axe_used & ~(1 << ad->id)) == 0)
|
||||||
continue;
|
continue;
|
||||||
@ -672,7 +564,7 @@ index 52e8dad..e618c46 100644
|
|||||||
continue;
|
continue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -327,7 +391,7 @@ int axe_setup_switch(adapter *ad)
|
@@ -327,7 +386,7 @@ int axe_setup_switch(adapter *ad)
|
||||||
}
|
}
|
||||||
diseqc = pos;
|
diseqc = pos;
|
||||||
master = aid;
|
master = aid;
|
||||||
@ -681,7 +573,7 @@ index 52e8dad..e618c46 100644
|
|||||||
if (adm == NULL)
|
if (adm == NULL)
|
||||||
{
|
{
|
||||||
LOG("axe_fe: unknown master adapter for input %d", input);
|
LOG("axe_fe: unknown master adapter for input %d", input);
|
||||||
@@ -337,7 +401,7 @@ int axe_setup_switch(adapter *ad)
|
@@ -337,7 +396,7 @@ int axe_setup_switch(adapter *ad)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
master = (ad->master_source >= 0) ? ad->master_source : ad->pa;
|
master = (ad->master_source >= 0) ? ad->master_source : ad->pa;
|
||||||
@ -690,7 +582,7 @@ index 52e8dad..e618c46 100644
|
|||||||
if (adm == NULL)
|
if (adm == NULL)
|
||||||
{
|
{
|
||||||
LOG("axe_fe: unknown master adapter for input %d", input);
|
LOG("axe_fe: unknown master adapter for input %d", input);
|
||||||
@@ -357,7 +421,7 @@ int axe_setup_switch(adapter *ad)
|
@@ -357,7 +416,7 @@ int axe_setup_switch(adapter *ad)
|
||||||
if (ad2->sid_cnt > 0)
|
if (ad2->sid_cnt > 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -699,7 +591,7 @@ index 52e8dad..e618c46 100644
|
|||||||
{
|
{
|
||||||
LOG("unable to use slave adapter %d (master %d)", input, adm->pa);
|
LOG("unable to use slave adapter %d (master %d)", input, adm->pa);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -368,10 +432,13 @@ int axe_setup_switch(adapter *ad)
|
@@ -368,10 +427,13 @@ int axe_setup_switch(adapter *ad)
|
||||||
if (master >= 0)
|
if (master >= 0)
|
||||||
{
|
{
|
||||||
input = master;
|
input = master;
|
||||||
@ -715,7 +607,7 @@ index 52e8dad..e618c46 100644
|
|||||||
adm->old_pol = pol;
|
adm->old_pol = pol;
|
||||||
adm->old_hiband = hiband;
|
adm->old_hiband = hiband;
|
||||||
adm->old_diseqc = diseqc;
|
adm->old_diseqc = diseqc;
|
||||||
@@ -381,6 +448,7 @@ int axe_setup_switch(adapter *ad)
|
@@ -381,6 +443,7 @@ int axe_setup_switch(adapter *ad)
|
||||||
}
|
}
|
||||||
else if (opts.quattro)
|
else if (opts.quattro)
|
||||||
{
|
{
|
||||||
@ -723,7 +615,7 @@ index 52e8dad..e618c46 100644
|
|||||||
if (opts.quattro_hiband == 1 && hiband)
|
if (opts.quattro_hiband == 1 && hiband)
|
||||||
{
|
{
|
||||||
LOG("axe_fe: hiband is not allowed for quattro config (adapter %d)", input);
|
LOG("axe_fe: hiband is not allowed for quattro config (adapter %d)", input);
|
||||||
@@ -392,17 +460,19 @@ int axe_setup_switch(adapter *ad)
|
@@ -392,17 +455,19 @@ int axe_setup_switch(adapter *ad)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
input = ((hiband ^ 1) << 1) | (pol ^ 1);
|
input = ((hiband ^ 1) << 1) | (pol ^ 1);
|
||||||
@ -747,7 +639,7 @@ index 52e8dad..e618c46 100644
|
|||||||
adm->old_pol = pol;
|
adm->old_pol = pol;
|
||||||
adm->old_hiband = hiband;
|
adm->old_hiband = hiband;
|
||||||
adm->old_diseqc = 0;
|
adm->old_diseqc = 0;
|
||||||
@@ -414,9 +484,15 @@ int axe_setup_switch(adapter *ad)
|
@@ -414,9 +479,15 @@ int axe_setup_switch(adapter *ad)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aid = ad->id & 3;
|
aid = ad->id & 3;
|
||||||
@ -765,7 +657,7 @@ index 52e8dad..e618c46 100644
|
|||||||
if (ad == NULL)
|
if (ad == NULL)
|
||||||
{
|
{
|
||||||
LOGM("axe setup: unable to find adapter %d", input);
|
LOGM("axe setup: unable to find adapter %d", input);
|
||||||
@@ -429,17 +505,20 @@ int axe_setup_switch(adapter *ad)
|
@@ -429,17 +500,20 @@ int axe_setup_switch(adapter *ad)
|
||||||
ad->id, input, ad->fe, ad->fe2);
|
ad->id, input, ad->fe, ad->fe2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -791,7 +683,7 @@ index 52e8dad..e618c46 100644
|
|||||||
{
|
{
|
||||||
LOG("FD %d (%d) is a slave adapter", frontend_fd);
|
LOG("FD %d (%d) is a slave adapter", frontend_fd);
|
||||||
}
|
}
|
||||||
@@ -447,7 +526,7 @@ int axe_setup_switch(adapter *ad)
|
@@ -447,7 +521,7 @@ int axe_setup_switch(adapter *ad)
|
||||||
{
|
{
|
||||||
if (ad->old_pol != pol || ad->old_hiband != hiband || ad->old_diseqc != diseqc)
|
if (ad->old_pol != pol || ad->old_hiband != hiband || ad->old_diseqc != diseqc)
|
||||||
send_diseqc(ad, frontend_fd, diseqc, ad->old_diseqc != diseqc, pol,
|
send_diseqc(ad, frontend_fd, diseqc, ad->old_diseqc != diseqc, pol,
|
||||||
@ -800,44 +692,37 @@ index 52e8dad..e618c46 100644
|
|||||||
else
|
else
|
||||||
LOGM("Skip sending diseqc commands since "
|
LOGM("Skip sending diseqc commands since "
|
||||||
"the switch position doesn't need to be changed: "
|
"the switch position doesn't need to be changed: "
|
||||||
@@ -545,7 +624,11 @@ int axe_tune(int aid, transponder *tp)
|
@@ -545,7 +619,10 @@ int axe_tune(int aid, transponder *tp)
|
||||||
ADD_PROP(DTV_SYMBOL_RATE, tp->sr)
|
ADD_PROP(DTV_SYMBOL_RATE, tp->sr)
|
||||||
ADD_PROP(DTV_INNER_FEC, tp->fec)
|
ADD_PROP(DTV_INNER_FEC, tp->fec)
|
||||||
#if DVBAPIVERSION >= 0x0502
|
#if DVBAPIVERSION >= 0x0502
|
||||||
- ADD_PROP(DTV_STREAM_ID, tp->plp)
|
- ADD_PROP(DTV_STREAM_ID, tp->plp)
|
||||||
+ if (tp->plp_isi >= 0)
|
+ ADD_PROP(DTV_STREAM_ID, tp->plp_isi)
|
||||||
+ ADD_PROP(DTV_STREAM_ID, tp->plp_isi & 0xFF)
|
|
||||||
+#endif
|
+#endif
|
||||||
+#if DVBAPIVERSION >= 0x050b /* 5.11 */
|
+#if DVBAPIVERSION >= 0x050b /* 5.11 */
|
||||||
+ ADD_PROP(DTV_SCRAMBLING_SEQUENCE_INDEX, pls_scrambling_index(tp))
|
+ ADD_PROP(DTV_SCRAMBLING_SEQUENCE_INDEX, tp->pls_code)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LOG("tuning to %d(%d) pol: %s (%d) sr:%d fec:%s delsys:%s mod:%s rolloff:%s pilot:%s, ts clear=%jd, ts pol=%jd",
|
LOG("tuning to %d(%d) pol: %s (%d) sr:%d fec:%s delsys:%s mod:%s rolloff:%s pilot:%s, ts clear=%jd, ts pol=%jd",
|
||||||
@@ -569,7 +652,8 @@ int axe_tune(int aid, transponder *tp)
|
@@ -569,7 +646,7 @@ int axe_tune(int aid, transponder *tp)
|
||||||
ADD_PROP(DTV_TRANSMISSION_MODE, tp->tmode)
|
ADD_PROP(DTV_TRANSMISSION_MODE, tp->tmode)
|
||||||
ADD_PROP(DTV_HIERARCHY, HIERARCHY_AUTO)
|
ADD_PROP(DTV_HIERARCHY, HIERARCHY_AUTO)
|
||||||
#if DVBAPIVERSION >= 0x0502
|
#if DVBAPIVERSION >= 0x0502
|
||||||
- ADD_PROP(DTV_STREAM_ID, tp->plp & 0xFF)
|
- ADD_PROP(DTV_STREAM_ID, tp->plp & 0xFF)
|
||||||
+ if (tp->plp_isi >= 0)
|
|
||||||
+ ADD_PROP(DTV_STREAM_ID, tp->plp_isi & 0xFF)
|
+ ADD_PROP(DTV_STREAM_ID, tp->plp_isi & 0xFF)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LOG(
|
LOG(
|
||||||
@@ -588,7 +672,12 @@ int axe_tune(int aid, transponder *tp)
|
@@ -588,7 +665,7 @@ int axe_tune(int aid, transponder *tp)
|
||||||
freq = freq * 1000;
|
freq = freq * 1000;
|
||||||
ADD_PROP(DTV_SYMBOL_RATE, tp->sr)
|
ADD_PROP(DTV_SYMBOL_RATE, tp->sr)
|
||||||
#if DVBAPIVERSION >= 0x0502
|
#if DVBAPIVERSION >= 0x0502
|
||||||
- ADD_PROP(DTV_STREAM_ID, ((tp->ds & 0xFF) << 8) | (tp->plp & 0xFF))
|
- ADD_PROP(DTV_STREAM_ID, ((tp->ds & 0xFF) << 8) | (tp->plp & 0xFF))
|
||||||
+ if (tp->plp_isi >= 0) {
|
+ ADD_PROP(DTV_STREAM_ID, ((tp->ds & 0xFF) << 8) | (tp->plp_isi & 0xFF))
|
||||||
+ int v = tp->plp_isi & 0xFF;
|
|
||||||
+ if (tp->ds >= 0)
|
|
||||||
+ v |= (tp->ds & 0xFF) << 8;
|
|
||||||
+ ADD_PROP(DTV_STREAM_ID, v);
|
|
||||||
+ }
|
|
||||||
#endif
|
#endif
|
||||||
// valid for DD DVB-C2 devices
|
// valid for DD DVB-C2 devices
|
||||||
|
|
||||||
@@ -617,6 +706,8 @@ int axe_tune(int aid, transponder *tp)
|
@@ -617,6 +694,8 @@ int axe_tune(int aid, transponder *tp)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -846,7 +731,7 @@ index 52e8dad..e618c46 100644
|
|||||||
if ((ioctl(fd_frontend, FE_SET_PROPERTY, &p)) == -1)
|
if ((ioctl(fd_frontend, FE_SET_PROPERTY, &p)) == -1)
|
||||||
if (ioctl(fd_frontend, FE_SET_PROPERTY, &p) == -1)
|
if (ioctl(fd_frontend, FE_SET_PROPERTY, &p) == -1)
|
||||||
{
|
{
|
||||||
@@ -669,8 +760,8 @@ fe_delivery_system_t axe_delsys(int aid, int fd, fe_delivery_system_t *sys)
|
@@ -669,8 +748,8 @@ fe_delivery_system_t axe_delsys(int aid, int fd, fe_delivery_system_t *sys)
|
||||||
|
|
||||||
void axe_get_signal(adapter *ad)
|
void axe_get_signal(adapter *ad)
|
||||||
{
|
{
|
||||||
@ -857,15 +742,7 @@ index 52e8dad..e618c46 100644
|
|||||||
get_signal(ad, &status, &ber, &strength, &snr);
|
get_signal(ad, &status, &ber, &strength, &snr);
|
||||||
|
|
||||||
strength = strength * 240 / 24000;
|
strength = strength * 240 / 24000;
|
||||||
@@ -792,6 +883,7 @@ void find_axe_adapter(adapter **a)
|
@@ -819,9 +898,11 @@ void free_axe_input(adapter *ad)
|
||||||
ad->get_signal = (Device_signal)axe_get_signal;
|
|
||||||
ad->wakeup = (Device_wakeup)axe_wakeup;
|
|
||||||
ad->type = ADAPTER_DVB;
|
|
||||||
+ ad->fast_status = 1;
|
|
||||||
close(fd);
|
|
||||||
na++;
|
|
||||||
a_count = na; // update adapter counter
|
|
||||||
@@ -819,9 +911,11 @@ void free_axe_input(adapter *ad)
|
|
||||||
|
|
||||||
for (aid = 0; aid < 4; aid++)
|
for (aid = 0; aid < 4; aid++)
|
||||||
{
|
{
|
||||||
@ -879,7 +756,7 @@ index 52e8dad..e618c46 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -829,11 +923,11 @@ void free_axe_input(adapter *ad)
|
@@ -829,11 +910,11 @@ void free_axe_input(adapter *ad)
|
||||||
void set_link_adapters(char *o)
|
void set_link_adapters(char *o)
|
||||||
{
|
{
|
||||||
int i, la, a_id, b_id;
|
int i, la, a_id, b_id;
|
||||||
@ -893,7 +770,7 @@ index 52e8dad..e618c46 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
a_id = map_intd(arg[i], NULL, -1);
|
a_id = map_intd(arg[i], NULL, -1);
|
||||||
@@ -857,11 +951,11 @@ void set_link_adapters(char *o)
|
@@ -857,11 +938,11 @@ void set_link_adapters(char *o)
|
||||||
void set_absolute_src(char *o)
|
void set_absolute_src(char *o)
|
||||||
{
|
{
|
||||||
int i, la, src, inp, pos;
|
int i, la, src, inp, pos;
|
||||||
@ -908,40 +785,20 @@ index 52e8dad..e618c46 100644
|
|||||||
{
|
{
|
||||||
inps = strchr(arg[i], ':');
|
inps = strchr(arg[i], ':');
|
||||||
diff --git a/src/dvb.c b/src/dvb.c
|
diff --git a/src/dvb.c b/src/dvb.c
|
||||||
index 5184c4d..aee0c75 100644
|
index 5184c4d..1171f54 100644
|
||||||
--- a/src/dvb.c
|
--- a/src/dvb.c
|
||||||
+++ b/src/dvb.c
|
+++ b/src/dvb.c
|
||||||
@@ -120,6 +120,10 @@ char *fe_pol[] =
|
@@ -177,7 +177,8 @@ int detect_dvb_parameters(char *s, transponder *tp)
|
||||||
{"none", "v", "h", "r", "l",
|
|
||||||
NULL};
|
|
||||||
|
|
||||||
+char *fe_pls_mode[] =
|
|
||||||
+ {"root", "gold", "combo",
|
|
||||||
+ NULL};
|
|
||||||
+
|
|
||||||
#define make_func(a) \
|
|
||||||
char *get_##a(int i) \
|
|
||||||
{ \
|
|
||||||
@@ -142,6 +146,7 @@ make_func(gi);
|
|
||||||
make_func(specinv);
|
|
||||||
make_func(inversion);
|
|
||||||
make_func(pol);
|
|
||||||
+make_func(pls_mode);
|
|
||||||
|
|
||||||
#define INVALID_URL(a) \
|
|
||||||
{ \
|
|
||||||
@@ -177,7 +182,9 @@ int detect_dvb_parameters(char *s, transponder *tp)
|
|
||||||
tp->diseqc = -1;
|
tp->diseqc = -1;
|
||||||
tp->c2tft = -1;
|
tp->c2tft = -1;
|
||||||
tp->ds = -1;
|
tp->ds = -1;
|
||||||
- tp->plp = -1;
|
- tp->plp = -1;
|
||||||
+ tp->plp_isi = -1;
|
+ tp->plp_isi = -1;
|
||||||
+ tp->pls_mode = -1;
|
|
||||||
+ tp->pls_code = -1;
|
+ tp->pls_code = -1;
|
||||||
|
|
||||||
tp->pids = tp->apids = tp->dpids = tp->x_pmt = NULL;
|
tp->pids = tp->apids = tp->dpids = tp->x_pmt = NULL;
|
||||||
|
|
||||||
@@ -192,7 +199,7 @@ int detect_dvb_parameters(char *s, transponder *tp)
|
@@ -192,7 +193,7 @@ int detect_dvb_parameters(char *s, transponder *tp)
|
||||||
init_dvb_parameters(tp);
|
init_dvb_parameters(tp);
|
||||||
|
|
||||||
LOG("detect_dvb_parameters (S)-> %s", s);
|
LOG("detect_dvb_parameters (S)-> %s", s);
|
||||||
@ -950,7 +807,7 @@ index 5184c4d..aee0c75 100644
|
|||||||
|
|
||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
@@ -228,8 +235,13 @@ int detect_dvb_parameters(char *s, transponder *tp)
|
@@ -228,8 +229,11 @@ int detect_dvb_parameters(char *s, transponder *tp)
|
||||||
tp->c2tft = map_int(arg[i] + 6, NULL);
|
tp->c2tft = map_int(arg[i] + 6, NULL);
|
||||||
if (strncmp("ds=", arg[i], 3) == 0)
|
if (strncmp("ds=", arg[i], 3) == 0)
|
||||||
tp->ds = map_int(arg[i] + 3, NULL);
|
tp->ds = map_int(arg[i] + 3, NULL);
|
||||||
@ -959,24 +816,12 @@ index 5184c4d..aee0c75 100644
|
|||||||
+ if (strncmp("plp=", arg[i], 4) == 0 ||
|
+ if (strncmp("plp=", arg[i], 4) == 0 ||
|
||||||
+ strncmp("isi=", arg[i], 4) == 0)
|
+ strncmp("isi=", arg[i], 4) == 0)
|
||||||
+ tp->plp_isi = map_int(arg[i] + 4, NULL);
|
+ tp->plp_isi = map_int(arg[i] + 4, NULL);
|
||||||
+ if (strncmp("plsm=", arg[i], 5) == 0)
|
|
||||||
+ tp->pls_mode = map_int(arg[i] + 5, fe_pls_mode);
|
|
||||||
+ if (strncmp("plsc=", arg[i], 5) == 0)
|
+ if (strncmp("plsc=", arg[i], 5) == 0)
|
||||||
+ tp->pls_code = map_int(arg[i] + 5, NULL);
|
+ tp->pls_code = map_int(arg[i] + 5, NULL);
|
||||||
|
|
||||||
if (strncmp("x_pmt=", arg[i], 6) == 0)
|
if (strncmp("x_pmt=", arg[i], 6) == 0)
|
||||||
tp->x_pmt = arg[i] + 6;
|
tp->x_pmt = arg[i] + 6;
|
||||||
@@ -275,6 +287,9 @@ void init_dvb_parameters(transponder *tp)
|
@@ -323,8 +327,10 @@ void copy_dvb_parameters(transponder *s, transponder *d)
|
||||||
tp->mtype = QAM_AUTO;
|
|
||||||
tp->plts = PILOT_AUTO;
|
|
||||||
tp->fec = FEC_AUTO;
|
|
||||||
+ tp->ds = TP_VALUE_UNSET;
|
|
||||||
+ tp->plp_isi = TP_VALUE_UNSET;
|
|
||||||
+ tp->pls_mode = TP_VALUE_UNSET;
|
|
||||||
}
|
|
||||||
|
|
||||||
void copy_dvb_parameters(transponder *s, transponder *d)
|
|
||||||
@@ -323,8 +338,12 @@ void copy_dvb_parameters(transponder *s, transponder *d)
|
|
||||||
d->c2tft = s->c2tft;
|
d->c2tft = s->c2tft;
|
||||||
if (s->ds != -1)
|
if (s->ds != -1)
|
||||||
d->ds = s->ds;
|
d->ds = s->ds;
|
||||||
@ -984,14 +829,12 @@ index 5184c4d..aee0c75 100644
|
|||||||
- d->plp = s->plp;
|
- d->plp = s->plp;
|
||||||
+ if (s->plp_isi != -1)
|
+ if (s->plp_isi != -1)
|
||||||
+ d->plp_isi = s->plp_isi;
|
+ d->plp_isi = s->plp_isi;
|
||||||
+ if (s->pls_mode != -1)
|
|
||||||
+ d->pls_mode = s->pls_mode;
|
|
||||||
+ if (s->pls_code != -1)
|
+ if (s->pls_code != -1)
|
||||||
+ d->pls_code = s->pls_code;
|
+ d->pls_code = s->pls_code;
|
||||||
|
|
||||||
d->x_pmt = s->x_pmt;
|
d->x_pmt = s->x_pmt;
|
||||||
d->apids = s->apids;
|
d->apids = s->apids;
|
||||||
@@ -506,7 +525,9 @@ int send_diseqc(adapter *ad, int fd, int pos, int pos_change, int pol, int hiban
|
@@ -506,7 +512,9 @@ int send_diseqc(adapter *ad, int fd, int pos, int pos_change, int pol, int hiban
|
||||||
posu = pos / 4;
|
posu = pos / 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1001,7 +844,7 @@ index 5184c4d..aee0c75 100644
|
|||||||
uncmd.msg[3] = 0xf0 | (posu & 0x0f);
|
uncmd.msg[3] = 0xf0 | (posu & 0x0f);
|
||||||
|
|
||||||
LOGM("send_diseqc fd %d, pos = %d (c %d u %d), pol = %d, hiband = %d",
|
LOGM("send_diseqc fd %d, pos = %d (c %d u %d), pol = %d, hiband = %d",
|
||||||
@@ -554,12 +575,13 @@ int send_unicable(adapter *ad, int fd, int freq, int pos, int pol, int hiband, d
|
@@ -554,12 +562,13 @@ int send_unicable(adapter *ad, int fd, int freq, int pos, int pol, int hiband, d
|
||||||
{
|
{
|
||||||
struct dvb_diseqc_master_cmd cmd =
|
struct dvb_diseqc_master_cmd cmd =
|
||||||
{
|
{
|
||||||
@ -1016,92 +859,41 @@ index 5184c4d..aee0c75 100644
|
|||||||
cmd.msg[3] = ((t & 0x0300) >> 8) | (d->uslot << 5) | (pos ? 0x10 : 0) | (hiband ? 4 : 0) | (pol ? 8 : 0);
|
cmd.msg[3] = ((t & 0x0300) >> 8) | (d->uslot << 5) | (pos ? 0x10 : 0) | (hiband ? 4 : 0) | (pol ? 8 : 0);
|
||||||
cmd.msg[4] = t & 0xff;
|
cmd.msg[4] = t & 0xff;
|
||||||
|
|
||||||
@@ -768,6 +790,21 @@ int setup_switch(adapter *ad)
|
@@ -825,7 +834,10 @@ int dvb_tune(int aid, transponder *tp)
|
||||||
iProp++; \
|
|
||||||
}
|
|
||||||
|
|
||||||
+uint32_t pls_scrambling_index(transponder *tp)
|
|
||||||
+{
|
|
||||||
+ if (tp->pls_mode == PLS_MODE_ROOT) {
|
|
||||||
+ /* convert ROOT code to GOLD code */
|
|
||||||
+ uint32_t x, g;
|
|
||||||
+ for (g = 0, x = 1; g < 0x3ffff; g++) {
|
|
||||||
+ if (tp->pls_code == x)
|
|
||||||
+ return g;
|
|
||||||
+ x = (((x ^ (x >> 7)) & 1) << 17) | (x >> 1);
|
|
||||||
+ }
|
|
||||||
+ return 0x3ffff;
|
|
||||||
+ }
|
|
||||||
+ return tp->pls_code; /* GOLD code 0 (default) */
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
int dvb_tune(int aid, transponder *tp)
|
|
||||||
{
|
|
||||||
int64_t bclear, bpol;
|
|
||||||
@@ -825,7 +862,11 @@ int dvb_tune(int aid, transponder *tp)
|
|
||||||
ADD_PROP(DTV_PILOT, tp->plts)
|
ADD_PROP(DTV_PILOT, tp->plts)
|
||||||
ADD_PROP(DTV_ROLLOFF, tp->ro)
|
ADD_PROP(DTV_ROLLOFF, tp->ro)
|
||||||
#if DVBAPIVERSION >= 0x0502
|
#if DVBAPIVERSION >= 0x0502
|
||||||
- ADD_PROP(DTV_STREAM_ID, tp->plp)
|
- ADD_PROP(DTV_STREAM_ID, tp->plp)
|
||||||
+ if (tp->plp_isi >= 0)
|
|
||||||
+ ADD_PROP(DTV_STREAM_ID, tp->plp_isi)
|
+ ADD_PROP(DTV_STREAM_ID, tp->plp_isi)
|
||||||
+#endif
|
+#endif
|
||||||
+#if DVBAPIVERSION >= 0x050b /* 5.11 */
|
+#if DVBAPIVERSION >= 0x050b /* 5.11 */
|
||||||
+ ADD_PROP(DTV_SCRAMBLING_SEQUENCE_INDEX, pls_scrambling_index(tp))
|
+ ADD_PROP(DTV_SCRAMBLING_SEQUENCE_INDEX, tp->pls_code)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_DVBAPI3
|
#ifdef USE_DVBAPI3
|
||||||
@@ -856,7 +897,8 @@ int dvb_tune(int aid, transponder *tp)
|
@@ -856,7 +868,7 @@ int dvb_tune(int aid, transponder *tp)
|
||||||
ADD_PROP(DTV_TRANSMISSION_MODE, tp->tmode)
|
ADD_PROP(DTV_TRANSMISSION_MODE, tp->tmode)
|
||||||
ADD_PROP(DTV_HIERARCHY, HIERARCHY_AUTO)
|
ADD_PROP(DTV_HIERARCHY, HIERARCHY_AUTO)
|
||||||
#if DVBAPIVERSION >= 0x0502
|
#if DVBAPIVERSION >= 0x0502
|
||||||
- ADD_PROP(DTV_STREAM_ID, tp->plp & 0xFF)
|
- ADD_PROP(DTV_STREAM_ID, tp->plp & 0xFF)
|
||||||
+ if (tp->plp_isi >= 0)
|
|
||||||
+ ADD_PROP(DTV_STREAM_ID, tp->plp_isi & 0xFF)
|
+ ADD_PROP(DTV_STREAM_ID, tp->plp_isi & 0xFF)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// old DVBAPI version 3
|
// old DVBAPI version 3
|
||||||
@@ -894,7 +936,12 @@ int dvb_tune(int aid, transponder *tp)
|
@@ -894,7 +906,7 @@ int dvb_tune(int aid, transponder *tp)
|
||||||
freq = freq * 1000;
|
freq = freq * 1000;
|
||||||
ADD_PROP(DTV_SYMBOL_RATE, tp->sr)
|
ADD_PROP(DTV_SYMBOL_RATE, tp->sr)
|
||||||
#if DVBAPIVERSION >= 0x0502
|
#if DVBAPIVERSION >= 0x0502
|
||||||
- ADD_PROP(DTV_STREAM_ID, ((tp->ds & 0xFF) << 8) | (tp->plp & 0xFF))
|
- ADD_PROP(DTV_STREAM_ID, ((tp->ds & 0xFF) << 8) | (tp->plp & 0xFF))
|
||||||
+ if (tp->plp_isi >= 0) {
|
+ ADD_PROP(DTV_STREAM_ID, ((tp->ds & 0xFF) << 8) | (tp->plp_isi & 0xFF))
|
||||||
+ int v = tp->plp_isi & 0xFF;
|
|
||||||
+ if (tp->ds >= 0)
|
|
||||||
+ v |= (tp->ds & 0xFF) << 8;
|
|
||||||
+ ADD_PROP(DTV_STREAM_ID, v);
|
|
||||||
+ }
|
|
||||||
#endif
|
#endif
|
||||||
// valid for DD DVB-C2 devices
|
// valid for DD DVB-C2 devices
|
||||||
|
|
||||||
diff --git a/src/dvb.h b/src/dvb.h
|
diff --git a/src/dvb.h b/src/dvb.h
|
||||||
index 9830487..99fc8f9 100644
|
index 9830487..21622dc 100644
|
||||||
--- a/src/dvb.h
|
--- a/src/dvb.h
|
||||||
+++ b/src/dvb.h
|
+++ b/src/dvb.h
|
||||||
@@ -143,6 +143,12 @@ typedef enum fe_modulation {
|
@@ -189,12 +189,14 @@ typedef struct diseqc
|
||||||
} fe_modulation_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+typedef enum fe_pls_mode {
|
|
||||||
+ PLS_MODE_ROOT,
|
|
||||||
+ PLS_MODE_GOLD,
|
|
||||||
+ PLS_MODE_COMBO,
|
|
||||||
+} fe_pls_mode_t;
|
|
||||||
+
|
|
||||||
#if DVBAPIVERSION < 0x0505
|
|
||||||
#define DTV_ENUM_DELSYS 44
|
|
||||||
#define SYS_DVBC_ANNEX_A SYS_DVBC_ANNEX_AC
|
|
||||||
@@ -182,6 +188,8 @@ typedef enum fe_modulation {
|
|
||||||
#define MIN_FRQ_DVBS 950000
|
|
||||||
#define MAX_FRQ_DVBS 2150000
|
|
||||||
|
|
||||||
+#define TP_VALUE_UNSET (-255)
|
|
||||||
+
|
|
||||||
typedef struct diseqc
|
|
||||||
{
|
|
||||||
#define SWITCH_UNICABLE 1
|
|
||||||
@@ -189,12 +197,14 @@ typedef struct diseqc
|
|
||||||
#define SWITCH_SLAVE 3
|
#define SWITCH_SLAVE 3
|
||||||
int switch_type;
|
int switch_type;
|
||||||
/* parameters */
|
/* parameters */
|
||||||
@ -1122,7 +914,7 @@ index 9830487..99fc8f9 100644
|
|||||||
/* timing */
|
/* timing */
|
||||||
int before_cmd;
|
int before_cmd;
|
||||||
int after_cmd;
|
int after_cmd;
|
||||||
@@ -232,10 +242,11 @@ typedef struct struct_transponder
|
@@ -232,10 +234,10 @@ typedef struct struct_transponder
|
||||||
|
|
||||||
diseqc diseqc_param;
|
diseqc diseqc_param;
|
||||||
|
|
||||||
@ -1133,30 +925,12 @@ index 9830487..99fc8f9 100644
|
|||||||
+ int c2tft; // DVB-C2
|
+ int c2tft; // DVB-C2
|
||||||
+ int ds; // DVB-C2 (data slice)
|
+ int ds; // DVB-C2 (data slice)
|
||||||
+ int plp_isi; // DVB-T2/DVB-S2
|
+ int plp_isi; // DVB-T2/DVB-S2
|
||||||
+ int pls_mode; // DVB-S2
|
|
||||||
+ int pls_code; // DVB-S2
|
+ int pls_code; // DVB-S2
|
||||||
|
|
||||||
char *apids, *pids, *dpids, *x_pmt;
|
char *apids, *pids, *dpids, *x_pmt;
|
||||||
} transponder;
|
} transponder;
|
||||||
@@ -269,6 +280,8 @@ int detect_dvb_parameters(char *s, transponder *tp);
|
|
||||||
void init_dvb_parameters(transponder *tp);
|
|
||||||
void copy_dvb_parameters(transponder *s, transponder *d);
|
|
||||||
|
|
||||||
+uint32_t pls_scrambling_index(transponder *tp);
|
|
||||||
+
|
|
||||||
char *get_pilot(int i);
|
|
||||||
char *get_rolloff(int i);
|
|
||||||
char *get_delsys(int i);
|
|
||||||
@@ -279,6 +292,7 @@ char *get_gi(int i);
|
|
||||||
char *get_specinv(int i);
|
|
||||||
char *get_pol(int i);
|
|
||||||
char *get_inversion(int i);
|
|
||||||
+char *get_pls_mode(int i);
|
|
||||||
|
|
||||||
extern char *fe_delsys[];
|
|
||||||
extern char *fe_fec[];
|
|
||||||
diff --git a/src/minisatip.c b/src/minisatip.c
|
diff --git a/src/minisatip.c b/src/minisatip.c
|
||||||
index 0cd9b0b..20e73e3 100644
|
index 0cd9b0b..884f14c 100644
|
||||||
--- a/src/minisatip.c
|
--- a/src/minisatip.c
|
||||||
+++ b/src/minisatip.c
|
+++ b/src/minisatip.c
|
||||||
@@ -286,6 +286,8 @@ Help\n\
|
@@ -286,6 +286,8 @@ Help\n\
|
||||||
@ -1176,17 +950,16 @@ index 0cd9b0b..20e73e3 100644
|
|||||||
opts.diseqc_before_cmd = 15;
|
opts.diseqc_before_cmd = 15;
|
||||||
opts.diseqc_after_cmd = 54;
|
opts.diseqc_after_cmd = 54;
|
||||||
opts.diseqc_after_repeated_cmd = 15;
|
opts.diseqc_after_repeated_cmd = 15;
|
||||||
@@ -551,8 +554,7 @@ void set_options(int argc, char *argv[])
|
@@ -552,7 +555,7 @@ void set_options(int argc, char *argv[])
|
||||||
opts.no_threads = 1;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef AXE
|
#ifdef AXE
|
||||||
- opts.no_threads = 1;
|
opts.no_threads = 1;
|
||||||
- opts.document_root = "/usr/share/minisatip/html";
|
- opts.document_root = "/usr/share/minisatip/html";
|
||||||
+ opts.document_root = "/usr/share/minisatip8/html";
|
+ opts.document_root = "/usr/share/minisatip8/html";
|
||||||
#define AXE_OPTS "7:QW:8:A:"
|
#define AXE_OPTS "7:QW:8:A:"
|
||||||
#else
|
#else
|
||||||
#define AXE_OPTS ""
|
#define AXE_OPTS ""
|
||||||
@@ -614,7 +616,7 @@ void set_options(int argc, char *argv[])
|
@@ -614,7 +617,7 @@ void set_options(int argc, char *argv[])
|
||||||
int i;
|
int i;
|
||||||
memset(buf, 0, sizeof(buf));
|
memset(buf, 0, sizeof(buf));
|
||||||
strncpy(buf, optarg, sizeof(buf) - 1);
|
strncpy(buf, optarg, sizeof(buf) - 1);
|
||||||
@ -1195,7 +968,7 @@ index 0cd9b0b..20e73e3 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
int level = map_intd(arg[i], loglevels, -1);
|
int level = map_intd(arg[i], loglevels, -1);
|
||||||
@@ -1046,7 +1048,7 @@ int read_rtsp(sockets *s)
|
@@ -1046,7 +1049,7 @@ int read_rtsp(sockets *s)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1204,7 +977,7 @@ index 0cd9b0b..20e73e3 100644
|
|||||||
cseq = 0;
|
cseq = 0;
|
||||||
if (la < 2)
|
if (la < 2)
|
||||||
LOG_AND_RETURN(0,
|
LOG_AND_RETURN(0,
|
||||||
@@ -1311,7 +1313,7 @@ int read_http(sockets *s)
|
@@ -1311,7 +1314,7 @@ int read_http(sockets *s)
|
||||||
LOG("read HTTP from %d sid: %d: ", s->sock, s->sid);
|
LOG("read HTTP from %d sid: %d: ", s->sock, s->sid);
|
||||||
LOGM("%s", s->buf);
|
LOGM("%s", s->buf);
|
||||||
|
|
||||||
@ -1214,7 +987,7 @@ index 0cd9b0b..20e73e3 100644
|
|||||||
if (strncmp(arg[0], "GET", 3) && strncmp(arg[0], "POST", 4) && !is_head)
|
if (strncmp(arg[0], "GET", 3) && strncmp(arg[0], "POST", 4) && !is_head)
|
||||||
REPLY_AND_RETURN(503);
|
REPLY_AND_RETURN(503);
|
||||||
diff --git a/src/minisatip.h b/src/minisatip.h
|
diff --git a/src/minisatip.h b/src/minisatip.h
|
||||||
index 6512250..ad12dfa 100644
|
index 6512250..af22d77 100644
|
||||||
--- a/src/minisatip.h
|
--- a/src/minisatip.h
|
||||||
+++ b/src/minisatip.h
|
+++ b/src/minisatip.h
|
||||||
@@ -9,7 +9,7 @@
|
@@ -9,7 +9,7 @@
|
||||||
@ -1222,7 +995,7 @@ index 6512250..ad12dfa 100644
|
|||||||
#define VERSION_BUILD "16"
|
#define VERSION_BUILD "16"
|
||||||
#define CC(a, b, c) #a b #c
|
#define CC(a, b, c) #a b #c
|
||||||
-#define VERSION CC(0.7., VERSION_BUILD, )
|
-#define VERSION CC(0.7., VERSION_BUILD, )
|
||||||
+#define VERSION CC(0.7., VERSION_BUILD, -axe215)
|
+#define VERSION CC(0.7., VERSION_BUILD, -axe212)
|
||||||
|
|
||||||
void set_options(int argc, char *argv[]);
|
void set_options(int argc, char *argv[]);
|
||||||
|
|
||||||
@ -1235,7 +1008,7 @@ index 6512250..ad12dfa 100644
|
|||||||
int diseqc_uncommitted_no;
|
int diseqc_uncommitted_no;
|
||||||
int diseqc_before_cmd;
|
int diseqc_before_cmd;
|
||||||
diff --git a/src/satipc.c b/src/satipc.c
|
diff --git a/src/satipc.c b/src/satipc.c
|
||||||
index 24c82ff..e748048 100644
|
index 24c82ff..46ecb90 100644
|
||||||
--- a/src/satipc.c
|
--- a/src/satipc.c
|
||||||
+++ b/src/satipc.c
|
+++ b/src/satipc.c
|
||||||
@@ -176,7 +176,7 @@ int satipc_reply(sockets *s)
|
@@ -176,7 +176,7 @@ int satipc_reply(sockets *s)
|
||||||
@ -1247,43 +1020,34 @@ index 24c82ff..e748048 100644
|
|||||||
rc = map_int(arg[1], NULL);
|
rc = map_int(arg[1], NULL);
|
||||||
|
|
||||||
if (sip->option_no_session && sip->last_cmd == RTSP_OPTIONS && !sess && sip->session[0])
|
if (sip->option_no_session && sip->last_cmd == RTSP_OPTIONS && !sess && sip->session[0])
|
||||||
@@ -807,6 +807,12 @@ void get_s2_url(adapter *ad, char *url)
|
@@ -807,6 +807,8 @@ void get_s2_url(adapter *ad, char *url)
|
||||||
FILL("&fec=%s", tp->fec, FEC_AUTO, get_fec(tp->fec));
|
FILL("&fec=%s", tp->fec, FEC_AUTO, get_fec(tp->fec));
|
||||||
FILL("&ro=%s", ro, ROLLOFF_AUTO, get_rolloff(ro));
|
FILL("&ro=%s", ro, ROLLOFF_AUTO, get_rolloff(ro));
|
||||||
FILL("&plts=%s", plts, PILOT_AUTO, get_pilot(plts));
|
FILL("&plts=%s", plts, PILOT_AUTO, get_pilot(plts));
|
||||||
+ if (tp->plp_isi >= 0)
|
|
||||||
+ FILL("&isi=%d", tp->plp_isi, 0, tp->plp_isi);
|
+ FILL("&isi=%d", tp->plp_isi, 0, tp->plp_isi);
|
||||||
+ if (tp->pls_mode >= 0)
|
|
||||||
+ FILL("&plsm=%s", tp->pls_mode, -1, get_pls_mode(tp->pls_mode));
|
|
||||||
+ if (tp->pls_code >= 0)
|
|
||||||
+ FILL("&plsc=%d", tp->pls_code, -1, tp->pls_code);
|
+ FILL("&plsc=%d", tp->pls_code, -1, tp->pls_code);
|
||||||
url[len] = 0;
|
url[len] = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -831,7 +837,8 @@ void get_c2_url(adapter *ad, char *url)
|
@@ -831,7 +833,7 @@ void get_c2_url(adapter *ad, char *url)
|
||||||
FILL("&specinv=%d", tp->inversion, INVERSION_AUTO, tp->inversion);
|
FILL("&specinv=%d", tp->inversion, INVERSION_AUTO, tp->inversion);
|
||||||
FILL("&t2id=%d", tp->t2id, 0, tp->t2id);
|
FILL("&t2id=%d", tp->t2id, 0, tp->t2id);
|
||||||
FILL("&sm=%d", tp->sm, 0, tp->sm);
|
FILL("&sm=%d", tp->sm, 0, tp->sm);
|
||||||
- FILL("&plp=%d", tp->plp, 0, tp->plp);
|
- FILL("&plp=%d", tp->plp, 0, tp->plp);
|
||||||
+ if (tp->plp_isi >= 0)
|
|
||||||
+ FILL("&plp=%d", tp->plp_isi, 0, tp->plp_isi);
|
+ FILL("&plp=%d", tp->plp_isi, 0, tp->plp_isi);
|
||||||
url[len] = 0;
|
url[len] = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -854,8 +861,10 @@ void get_t2_url(adapter *ad, char *url)
|
@@ -855,7 +857,7 @@ void get_t2_url(adapter *ad, char *url)
|
||||||
FILL("&tmode=%s", tp->tmode, TRANSMISSION_MODE_AUTO, get_tmode(tp->tmode));
|
|
||||||
FILL("&specinv=%d", tp->inversion, INVERSION_AUTO, tp->inversion);
|
FILL("&specinv=%d", tp->inversion, INVERSION_AUTO, tp->inversion);
|
||||||
FILL("&c2tft=%d", tp->c2tft, 0, tp->c2tft);
|
FILL("&c2tft=%d", tp->c2tft, 0, tp->c2tft);
|
||||||
- FILL("&ds=%d", tp->ds, 0, tp->ds);
|
FILL("&ds=%d", tp->ds, 0, tp->ds);
|
||||||
- FILL("&plp=%d", tp->plp, 0, tp->plp);
|
- FILL("&plp=%d", tp->plp, 0, tp->plp);
|
||||||
+ if (tp->ds >= 0)
|
|
||||||
+ FILL("&ds=%d", tp->ds, 0, tp->ds);
|
|
||||||
+ if (tp->plp_isi >= 0)
|
|
||||||
+ FILL("&plp=%d", tp->plp_isi, 0, tp->plp_isi);
|
+ FILL("&plp=%d", tp->plp_isi, 0, tp->plp_isi);
|
||||||
url[len] = 0;
|
url[len] = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1288,7 +1297,7 @@ void find_satip_adapter(adapter **a)
|
@@ -1288,7 +1290,7 @@ void find_satip_adapter(adapter **a)
|
||||||
return;
|
return;
|
||||||
char satip_servers[strlen(opts.satip_servers) + 10];
|
char satip_servers[strlen(opts.satip_servers) + 10];
|
||||||
strcpy(satip_servers, opts.satip_servers);
|
strcpy(satip_servers, opts.satip_servers);
|
||||||
@ -1292,7 +1056,7 @@ index 24c82ff..e748048 100644
|
|||||||
|
|
||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
@@ -1420,7 +1429,7 @@ void satip_getxml_data(char *data, int len, void *opaque, Shttp_client *h)
|
@@ -1420,7 +1422,7 @@ void satip_getxml_data(char *data, int len, void *opaque, Shttp_client *h)
|
||||||
eos = strchr(sep, '<');
|
eos = strchr(sep, '<');
|
||||||
if (eos)
|
if (eos)
|
||||||
*eos = 0;
|
*eos = 0;
|
||||||
@ -1301,7 +1065,7 @@ index 24c82ff..e748048 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
int ds = map_intd(arg[i], satip_delsys, -1);
|
int ds = map_intd(arg[i], satip_delsys, -1);
|
||||||
@@ -1474,7 +1483,7 @@ int satip_getxml(void *x)
|
@@ -1474,7 +1476,7 @@ int satip_getxml(void *x)
|
||||||
memset(satip_xml, 0, sizeof(satip_xml));
|
memset(satip_xml, 0, sizeof(satip_xml));
|
||||||
memset(sxd, 0, sizeof(sxd));
|
memset(sxd, 0, sizeof(sxd));
|
||||||
strncpy(satip_xml, opts.satip_xml, sizeof(satip_xml) - 1);
|
strncpy(satip_xml, opts.satip_xml, sizeof(satip_xml) - 1);
|
||||||
@ -1310,32 +1074,6 @@ index 24c82ff..e748048 100644
|
|||||||
for (i = 0; i < la; i++)
|
for (i = 0; i < la; i++)
|
||||||
{
|
{
|
||||||
SAFE_STRCPY(sxd[i].url, arg[i]);
|
SAFE_STRCPY(sxd[i].url, arg[i]);
|
||||||
diff --git a/src/socketworks.c b/src/socketworks.c
|
|
||||||
index a6fb95e..0d0dac8 100644
|
|
||||||
--- a/src/socketworks.c
|
|
||||||
+++ b/src/socketworks.c
|
|
||||||
@@ -897,9 +897,10 @@ void *select_and_execute(void *arg)
|
|
||||||
sockets *ss;
|
|
||||||
lt = c_time;
|
|
||||||
i = -1;
|
|
||||||
- while (++i < max_sock)
|
|
||||||
- if ((ss = get_sockets(i)) && (ss->tid == tid) &&
|
|
||||||
- (((ss->timeout_ms > 0) && (lt - ss->rtime > ss->timeout_ms) && (ss->spos == ss->wpos)) || (ss->force_close)))
|
|
||||||
+ while (++i < max_sock) {
|
|
||||||
+ if ((ss = get_sockets(i)) == NULL || (ss->tid != tid))
|
|
||||||
+ continue;
|
|
||||||
+ if (((ss->timeout_ms > 0) && (lt - ss->rtime > ss->timeout_ms) && (ss->spos == ss->wpos)) || (ss->force_close))
|
|
||||||
{
|
|
||||||
if (ss->timeout && !ss->force_close)
|
|
||||||
{
|
|
||||||
@@ -915,6 +916,7 @@ void *select_and_execute(void *arg)
|
|
||||||
else
|
|
||||||
sockets_del(i);
|
|
||||||
}
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/src/stream.c b/src/stream.c
|
diff --git a/src/stream.c b/src/stream.c
|
||||||
index bde2992..f587e93 100644
|
index bde2992..f587e93 100644
|
||||||
--- a/src/stream.c
|
--- a/src/stream.c
|
||||||
|
@ -25,7 +25,7 @@ static int i2c_mangle_enable = 1;
|
|||||||
static int i2c_mangle_debug = 0;
|
static int i2c_mangle_debug = 0;
|
||||||
static int stv6120_gain = 8;
|
static int stv6120_gain = 8;
|
||||||
static int stv0900_mis[4] = { -1, -1, -1, -1 };
|
static int stv0900_mis[4] = { -1, -1, -1, -1 };
|
||||||
static int stv0900_pls[4] = { 1, 1, 1, 1 }; /* ROOT code 1 is equal to GOLD code 0 */
|
static int stv0900_pls[4] = { -1, -1, -1, -1 };
|
||||||
|
|
||||||
static void i2c_transfer_axe_dump(struct i2c_msg *msgs, int num)
|
static void i2c_transfer_axe_dump(struct i2c_msg *msgs, int num)
|
||||||
{
|
{
|
||||||
@ -67,14 +67,14 @@ static void mangle(u8 *dst, struct i2c_msg *m, int i, int val, int shift, int ma
|
|||||||
m->buf = dst;
|
m->buf = dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define REG_SET3(b1, b2, b3) \
|
#define REG_SET3(b, b1, b2, b3) \
|
||||||
do { buf[num][0] = b1; buf[num][1] = b2; buf[num][2] = b3; num++; } while (0)
|
b[0] = b1, b[1] = b2, b[2] = b3
|
||||||
|
|
||||||
static void demod_set_pls_and_mis(struct i2c_adapter *adap, struct i2c_msg *src, int p)
|
static void demod_set_pls_and_mis(struct i2c_adapter *adap, struct i2c_msg *src, int p)
|
||||||
{
|
{
|
||||||
struct i2c_msg m[6];
|
struct i2c_msg m[6];
|
||||||
u8 buf[6][3];
|
u8 buf[6][3];
|
||||||
int num = 0, r, mis, idx = p ? 1 : 0;
|
int num, r, mis, idx = p ? 1 : 0;
|
||||||
u32 pls;
|
u32 pls;
|
||||||
u8 iaddr = p ? 0xf3 : 0xf5;
|
u8 iaddr = p ? 0xf3 : 0xf5;
|
||||||
|
|
||||||
@ -87,27 +87,27 @@ static void demod_set_pls_and_mis(struct i2c_adapter *adap, struct i2c_msg *src,
|
|||||||
mis = stv0900_mis[idx];
|
mis = stv0900_mis[idx];
|
||||||
if (mis >= 0 && mis <= 255) {
|
if (mis >= 0 && mis <= 255) {
|
||||||
/* PDELCTRL1 - enable filter */
|
/* PDELCTRL1 - enable filter */
|
||||||
REG_SET3(iaddr, 0x50, 0x20);
|
REG_SET3(buf[0], iaddr, 0x50, 0x20);
|
||||||
/* ISIENTRY */
|
/* ISIENTRY */
|
||||||
REG_SET3(iaddr, 0x5e, mis);
|
REG_SET3(buf[1], iaddr, 0x5e, mis);
|
||||||
/* ISIBITENA */
|
/* ISIBITENA */
|
||||||
REG_SET3(iaddr, 0x5f, 0xff);
|
REG_SET3(buf[2], iaddr, 0x5f, 0xff);
|
||||||
} else {
|
/* set GOLD PLS code */
|
||||||
/* SWRST */
|
|
||||||
REG_SET3(iaddr, 0x72, 0xd1);
|
|
||||||
/* PDELCTRL1 - disable filter */
|
|
||||||
REG_SET3(iaddr, 0x50, 0x00);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* set PLS code and mode (upper three bits) */
|
|
||||||
pls = stv0900_pls[idx];
|
pls = stv0900_pls[idx];
|
||||||
REG_SET3(iaddr-1, 0xae, pls); /* PLROOT0 */
|
iaddr--;
|
||||||
REG_SET3(iaddr-1, 0xad, pls >> 8); /* PLROOT1 */
|
REG_SET3(buf[3], iaddr, 0xae, pls); /* PLROOT0 */
|
||||||
REG_SET3(iaddr-1, 0xac, (pls >> 16) & 0x0f); /* PLROOT3 */
|
REG_SET3(buf[4], iaddr, 0xad, pls >> 8); /* PLROOT1 */
|
||||||
|
REG_SET3(buf[5], iaddr, 0xac, 0x04 | ((pls >> 16) & 3)); /* PLROOT3 */
|
||||||
|
num = 6;
|
||||||
if (i2c_mangle_debug & 4)
|
if (i2c_mangle_debug & 4)
|
||||||
printk("i2c idx=%d: pls=%d mode=%d mis=%d\n", idx,
|
printk("i2c idx=%d: pls=%d mis=%d\n", idx, pls, mis);
|
||||||
pls & 0x3ffff, (pls >> 18) & 3, mis);
|
} else {
|
||||||
|
/* PDELCTRL1 - disable filter */
|
||||||
|
REG_SET3(buf[0], iaddr, 0x50, 0x00);
|
||||||
|
num = 1;
|
||||||
|
if (i2c_mangle_debug & 4)
|
||||||
|
printk("i2c idx=%d: disable mis filter\n", idx);
|
||||||
|
}
|
||||||
for (r = 0; r < num; r++) {
|
for (r = 0; r < num; r++) {
|
||||||
m[r] = *src;
|
m[r] = *src;
|
||||||
m[r].len = 3;
|
m[r].len = 3;
|
||||||
@ -135,11 +135,11 @@ static void i2c_transfer_axe_mangle(struct i2c_adapter *adap, struct i2c_msg *ms
|
|||||||
if (r == 0x01 || r == 0x0b)
|
if (r == 0x01 || r == 0x0b)
|
||||||
mangle(mbuf[ret], m, i, stv6120_gain, 0, 0x0f);
|
mangle(mbuf[ret], m, i, stv6120_gain, 0, 0x0f);
|
||||||
} else if (m->addr == STV0900_1 || m->addr == STV0900_2) {
|
} else if (m->addr == STV0900_1 || m->addr == STV0900_2) {
|
||||||
/* inject pls/mis settings before TSCFGH path merger reset */
|
/* inject pls/mis settings before CARCFG register update */
|
||||||
if (m->flags == 0 && m->len == 3 &&
|
if (m->flags == 0 && m->len == 3 &&
|
||||||
(m->buf[0] == 0xf3 || m->buf[0] == 0xf5) &&
|
(m->buf[0] == 0xf2 || m->buf[0] == 0xf4) &&
|
||||||
m->buf[1] == 0x72 && m->buf[2] == 0xd1)
|
m->buf[1] == 0x38 && m->buf[2] == 0x46)
|
||||||
demod_set_pls_and_mis(adap, m, m->buf[0] == 0xf3);
|
demod_set_pls_and_mis(adap, m, m->buf[0] == 0xf2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -147,10 +147,10 @@ static void i2c_transfer_axe_mangle(struct i2c_adapter *adap, struct i2c_msg *ms
|
|||||||
static int i2c_transfer_axe(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
|
static int i2c_transfer_axe(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
|
||||||
{
|
{
|
||||||
if (adap == i2c_adapter0) {
|
if (adap == i2c_adapter0) {
|
||||||
if (i2c_mangle_enable)
|
|
||||||
i2c_transfer_axe_mangle(adap, msgs, num);
|
|
||||||
if (i2c_mangle_debug & 1)
|
if (i2c_mangle_debug & 1)
|
||||||
i2c_transfer_axe_dump(msgs, num);
|
i2c_transfer_axe_dump(msgs, num);
|
||||||
|
if (i2c_mangle_enable)
|
||||||
|
i2c_transfer_axe_mangle(adap, msgs, num);
|
||||||
}
|
}
|
||||||
return i2c_transfer2(adap, msgs, num);
|
return i2c_transfer2(adap, msgs, num);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user