mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 05:06:43 +00:00
Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv
This commit is contained in:
commit
913e182ecc
@ -1,3 +1,6 @@
|
|||||||
|
3.1.5
|
||||||
|
get tuner id with command 'hdhomerun_config discover' and
|
||||||
|
set number of tuners manually
|
||||||
3.1.4
|
3.1.4
|
||||||
get tuner id from /var/log/messages
|
get tuner id from /var/log/messages
|
||||||
3.1.3
|
3.1.3
|
||||||
|
@ -20,13 +20,13 @@
|
|||||||
|
|
||||||
PKG_NAME="hdhomerun"
|
PKG_NAME="hdhomerun"
|
||||||
PKG_VERSION="3.2"
|
PKG_VERSION="3.2"
|
||||||
PKG_REV="4"
|
PKG_REV="5"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.silicondust.com/products/hdhomerun/dvbt/"
|
PKG_SITE="http://www.silicondust.com/products/hdhomerun/dvbt/"
|
||||||
PKG_URL=""
|
PKG_URL=""
|
||||||
PKG_DEPENDS=""
|
PKG_DEPENDS=""
|
||||||
PKG_BUILD_DEPENDS="toolchain"
|
PKG_BUILD_DEPENDS=""
|
||||||
PKG_PRIORITY="optional"
|
PKG_PRIORITY="optional"
|
||||||
PKG_SECTION="driver/dvb"
|
PKG_SECTION="driver/dvb"
|
||||||
PKG_SHORTDESC="A linux DVB driver for the HDHomeRun (http://www.silicondust.com)."
|
PKG_SHORTDESC="A linux DVB driver for the HDHomeRun (http://www.silicondust.com)."
|
||||||
|
@ -63,39 +63,46 @@ if [ -z "$(pidof userhdhomerun)" ]; then
|
|||||||
cp $HDHR_ADDON_HOME/dvbhdhomerun.conf $DVBHDHOMERUN_CONF_TMP
|
cp $HDHR_ADDON_HOME/dvbhdhomerun.conf $DVBHDHOMERUN_CONF_TMP
|
||||||
|
|
||||||
# get tuner serial numbers
|
# get tuner serial numbers
|
||||||
SERIALS=$(cat /var/config/hdhomerun-addon.conf | sed -n 's|^ATTACHED_TUNER_\(.*\)_\(.*\)_DVBMODE=.*|\1-\2|gp' | sort | uniq)
|
SERIALS=$(cat /var/config/hdhomerun-addon.conf | sed -n 's|^ATTACHED_TUNER_\(.*\)_DVBMODE=.*|\1|gp' | sort | uniq)
|
||||||
. /var/config/hdhomerun-addon.conf
|
. /var/config/hdhomerun-addon.conf
|
||||||
|
|
||||||
for SERIAL in $SERIALS; do
|
for SERIAL_UNIQ in $SERIALS; do
|
||||||
SERIAL_VAR=$(echo $SERIAL | sed 's|-|_|')
|
DVBMODE=$(eval echo \$ATTACHED_TUNER_${SERIAL_UNIQ}_DVBMODE)
|
||||||
DVBMODE=$(eval echo \$ATTACHED_TUNER_${SERIAL_VAR}_DVBMODE)
|
FULLNAME=$(eval echo \$ATTACHED_TUNER_${SERIAL_UNIQ}_FULLNAME)
|
||||||
FULLNAME=$(eval echo \$ATTACHED_TUNER_${SERIAL_VAR}_FULLNAME)
|
DISABLE=$(eval echo \$ATTACHED_TUNER_${SERIAL_UNIQ}_DISABLE)
|
||||||
DISABLE=$(eval echo \$ATTACHED_TUNER_${SERIAL_VAR}_DISABLE)
|
NUMBERS=$(eval echo \$ATTACHED_TUNER_${SERIAL_UNIQ}_NUMBERS)
|
||||||
|
|
||||||
[ "$DVBMODE" = "auto" ] && DVBMODE=""
|
NUMBERS=$(( $NUMBERS -1 ))
|
||||||
|
NUMBERS=$(( $NUMBERS *1 ))
|
||||||
|
|
||||||
# remove setttings for this tuner
|
for i in $(seq 0 $NUMBERS); do
|
||||||
awk -v val="[$SERIAL]" '$0 == val {flag=1; next} /^tuner_type=|^use_full_name=|^disable=|^#|^$/{if (flag==1) next} /.*/{flag=0; print}' $DVBHDHOMERUN_CONF_TMP >${DVBHDHOMERUN_CONF_TMP}-types
|
SERIAL="$SERIAL_UNIQ-$i"
|
||||||
mv ${DVBHDHOMERUN_CONF_TMP}-types $DVBHDHOMERUN_CONF_TMP
|
|
||||||
echo "" >>$DVBHDHOMERUN_CONF_TMP
|
|
||||||
# remove empty lines at the end of file
|
|
||||||
sed -i -e ':a' -e '/^\n*$/{$d;N;};/\n$/ba' $DVBHDHOMERUN_CONF_TMP
|
|
||||||
|
|
||||||
ADDNEW=true
|
[ "$DVBMODE" = "auto" ] && DVBMODE=""
|
||||||
if [ -n "$DVBMODE" ]; then
|
|
||||||
[ $ADDNEW = true ] && ADDNEW=false && echo "[$SERIAL]" >>$DVBHDHOMERUN_CONF_TMP
|
|
||||||
echo "tuner_type=$DVBMODE" >>$DVBHDHOMERUN_CONF_TMP
|
|
||||||
fi
|
|
||||||
if [ "$FULLNAME" = "true" ]; then
|
|
||||||
[ $ADDNEW = true ] && ADDNEW=false && echo "[$SERIAL]" >>$DVBHDHOMERUN_CONF_TMP
|
|
||||||
echo "use_full_name=true" >>$DVBHDHOMERUN_CONF_TMP
|
|
||||||
fi
|
|
||||||
if [ "$DISABLE" = "true" ]; then
|
|
||||||
[ $ADDNEW = true ] && ADDNEW=false && echo "[$SERIAL]" >>$DVBHDHOMERUN_CONF_TMP
|
|
||||||
echo "disable=true" >>$DVBHDHOMERUN_CONF_TMP
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "" >>$DVBHDHOMERUN_CONF_TMP
|
# remove setttings for this tuner
|
||||||
|
awk -v val="[$SERIAL]" '$0 == val {flag=1; next} /^tuner_type=|^use_full_name=|^disable=|^#|^$/{if (flag==1) next} /.*/{flag=0; print}' $DVBHDHOMERUN_CONF_TMP >${DVBHDHOMERUN_CONF_TMP}-types
|
||||||
|
mv ${DVBHDHOMERUN_CONF_TMP}-types $DVBHDHOMERUN_CONF_TMP
|
||||||
|
echo "" >>$DVBHDHOMERUN_CONF_TMP
|
||||||
|
# remove empty lines at the end of file
|
||||||
|
sed -i -e ':a' -e '/^\n*$/{$d;N;};/\n$/ba' $DVBHDHOMERUN_CONF_TMP
|
||||||
|
|
||||||
|
ADDNEW=true
|
||||||
|
if [ -n "$DVBMODE" ]; then
|
||||||
|
[ $ADDNEW = true ] && ADDNEW=false && echo "[$SERIAL]" >>$DVBHDHOMERUN_CONF_TMP
|
||||||
|
echo "tuner_type=$DVBMODE" >>$DVBHDHOMERUN_CONF_TMP
|
||||||
|
fi
|
||||||
|
if [ "$FULLNAME" = "true" ]; then
|
||||||
|
[ $ADDNEW = true ] && ADDNEW=false && echo "[$SERIAL]" >>$DVBHDHOMERUN_CONF_TMP
|
||||||
|
echo "use_full_name=true" >>$DVBHDHOMERUN_CONF_TMP
|
||||||
|
fi
|
||||||
|
if [ "$DISABLE" = "true" ]; then
|
||||||
|
[ $ADDNEW = true ] && ADDNEW=false && echo "[$SERIAL]" >>$DVBHDHOMERUN_CONF_TMP
|
||||||
|
echo "disable=true" >>$DVBHDHOMERUN_CONF_TMP
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "" >>$DVBHDHOMERUN_CONF_TMP
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
# remove logging from libhdhomerun library
|
# remove logging from libhdhomerun library
|
||||||
|
@ -27,10 +27,8 @@ __cwd__ = __settings__.getAddonInfo('path')
|
|||||||
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
||||||
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
||||||
|
|
||||||
__hdhomerun_log__ = '/var/log/dvbhdhomerun.log'
|
|
||||||
|
|
||||||
if __name__ == "__main__" and len(sys.argv) == 2 and sys.argv[1] == 'refresh_tuners':
|
if __name__ == "__main__" and len(sys.argv) == 2 and sys.argv[1] == 'refresh_tuners':
|
||||||
sys.path.append(__resources_lib__)
|
sys.path.append(__resources_lib__)
|
||||||
from functions import refresh_hdhomerun_tuners
|
from functions import refresh_hdhomerun_tuners
|
||||||
refresh_hdhomerun_tuners(__settings_xml__, __hdhomerun_log__)
|
refresh_hdhomerun_tuners(__settings_xml__)
|
||||||
__settings__.openSettings()
|
__settings__.openSettings()
|
||||||
|
@ -11,5 +11,6 @@
|
|||||||
<string id="9005">Enable modifying settings</string>
|
<string id="9005">Enable modifying settings</string>
|
||||||
<string id="9010">Refresh tuners... (press me)</string>
|
<string id="9010">Refresh tuners... (press me)</string>
|
||||||
<string id="9020"> use full name</string>
|
<string id="9020"> use full name</string>
|
||||||
|
<string id="9025"> number of tuners</string>
|
||||||
<string id="9030"> disabled</string>
|
<string id="9030"> disabled</string>
|
||||||
</strings>
|
</strings>
|
||||||
|
@ -46,25 +46,28 @@ def settings_restore(settings_xml):
|
|||||||
|
|
||||||
######################################################################################################
|
######################################################################################################
|
||||||
# get hdhomerun supported devices on a system (only name like 101ADD2B-0)
|
# get hdhomerun supported devices on a system (only name like 101ADD2B-0)
|
||||||
def get_devices_hdhomerun(hdhomerun_log):
|
def get_devices_hdhomerun():
|
||||||
tuners = []
|
tuners = []
|
||||||
try:
|
try:
|
||||||
for line in open('/var/log/messages', 'r'):
|
p = os.popen("hdhomerun_config discover", "r")
|
||||||
if line.find('HDHomeRun'):
|
while 1:
|
||||||
line = line.strip()
|
line = p.readline()
|
||||||
#Jul 17 19:22:46 user user.info kernel: [ 10.587811] HDHomeRun HDHomeRun.0: DVB: registering adapter 0 frontend 0 (HDHomeRun DVB-C 12345678-0)...
|
if not line:
|
||||||
match = re.search(r'.*\[.+\] HDHomeRun .+ registering adapter .+ \(HDHomeRun .+ (.+)\).+', line)
|
break
|
||||||
|
else:
|
||||||
|
str = line.strip()
|
||||||
|
match = re.search(r'hdhomerun device (.+) found at .+', line)
|
||||||
if match:
|
if match:
|
||||||
name = match.group(1)
|
name = match.group(1)
|
||||||
tuners.append(name)
|
print name
|
||||||
|
tuners.append(name)
|
||||||
except IOError:
|
except IOError:
|
||||||
print 'Error reading hdhomerun log file /var/log/messages'
|
print 'Error getting hdhomerun tuners info'
|
||||||
return tuners
|
return tuners
|
||||||
|
|
||||||
"""
|
"""
|
||||||
root ~ # grep HDHomeRun /var/log/messages
|
openelec:~ # hdhomerun_config discover
|
||||||
Jul 17 19:22:46 user user.info kernel: [ 10.587811] HDHomeRun HDHomeRun.0: DVB: registering adapter 0 frontend 0 (HDHomeRun DVB-C 12345678-0)...
|
hdhomerun device 12345678 found at 192.168.0.3
|
||||||
Jul 17 19:22:46 user user.info kernel: [ 10.588602] HDHomeRun HDHomeRun.1: DVB: registering adapter 1 frontend 0 (HDHomeRun DVB-C 12345678-1)...
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
######################################################################################################
|
######################################################################################################
|
||||||
@ -154,11 +157,13 @@ def remove_old_tuners(xmldoc):
|
|||||||
# add new hdhomerun tuners
|
# add new hdhomerun tuners
|
||||||
def add_hdhomerun(xmldoc, node_cat, tuners):
|
def add_hdhomerun(xmldoc, node_cat, tuners):
|
||||||
for ix, tuner in enumerate(tuners):
|
for ix, tuner in enumerate(tuners):
|
||||||
tuner_var = tuner.replace('-', '_')
|
#tuner_var = tuner.replace('-', '_')
|
||||||
|
tuner_var = tuner
|
||||||
|
print tuner
|
||||||
|
|
||||||
node1 = xmldoc.createElement("setting")
|
node1 = xmldoc.createElement("setting")
|
||||||
node1.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_DVBMODE')
|
node1.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_DVBMODE')
|
||||||
node1.setAttribute("label", tuner)
|
node1.setAttribute("label", "tuner serial " + tuner_var)
|
||||||
node1.setAttribute("type", 'labelenum')
|
node1.setAttribute("type", 'labelenum')
|
||||||
node1.setAttribute("default", 'auto')
|
node1.setAttribute("default", 'auto')
|
||||||
node1.setAttribute("values", 'auto|ATSC|DVB-C|DVB-T')
|
node1.setAttribute("values", 'auto|ATSC|DVB-C|DVB-T')
|
||||||
@ -172,12 +177,20 @@ def add_hdhomerun(xmldoc, node_cat, tuners):
|
|||||||
node_cat.appendChild(node2)
|
node_cat.appendChild(node2)
|
||||||
|
|
||||||
node3 = xmldoc.createElement("setting")
|
node3 = xmldoc.createElement("setting")
|
||||||
node3.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_DISABLE')
|
node3.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_NUMBERS')
|
||||||
node3.setAttribute("label", '9030')
|
node3.setAttribute("label", '9025')
|
||||||
node3.setAttribute("type", 'bool')
|
node3.setAttribute("type", 'labelenum')
|
||||||
node3.setAttribute("default", 'false')
|
node3.setAttribute("default", '2')
|
||||||
|
node3.setAttribute("values", '1|2|3|4|5|6|7|8')
|
||||||
node_cat.appendChild(node3)
|
node_cat.appendChild(node3)
|
||||||
|
|
||||||
|
node4 = xmldoc.createElement("setting")
|
||||||
|
node4.setAttribute("id", 'ATTACHED_TUNER_' + tuner_var + '_DISABLE')
|
||||||
|
node4.setAttribute("label", '9030')
|
||||||
|
node4.setAttribute("type", 'bool')
|
||||||
|
node4.setAttribute("default", 'false')
|
||||||
|
node_cat.appendChild(node4)
|
||||||
|
|
||||||
# for tuner
|
# for tuner
|
||||||
|
|
||||||
######################################################################################################
|
######################################################################################################
|
||||||
@ -249,9 +262,9 @@ def save_settings(settings_xml, xmldoc):
|
|||||||
|
|
||||||
######################################################################################################
|
######################################################################################################
|
||||||
# refresh hdhomerun tuners in settings.xml file
|
# refresh hdhomerun tuners in settings.xml file
|
||||||
def refresh_hdhomerun_tuners(settings_xml, hdhomerun_log):
|
def refresh_hdhomerun_tuners(settings_xml):
|
||||||
settings_backup(settings_xml)
|
settings_backup(settings_xml)
|
||||||
tuners = get_devices_hdhomerun(hdhomerun_log)
|
tuners = get_devices_hdhomerun()
|
||||||
xmldoc = parse_settings(settings_xml)
|
xmldoc = parse_settings(settings_xml)
|
||||||
if xmldoc == None:
|
if xmldoc == None:
|
||||||
print 'No hdhomerun tuners found'
|
print 'No hdhomerun tuners found'
|
||||||
|
@ -57,6 +57,8 @@ if [ -d $HOME/.xbmc/userdata/addon_data/service.multimedia.hts-tvheadend ] ; the
|
|||||||
fi
|
fi
|
||||||
##
|
##
|
||||||
|
|
||||||
|
mkdir -p $ADDON_HOME
|
||||||
|
|
||||||
if [ ! -f "$ADDON_SETTINGS" ]; then
|
if [ ! -f "$ADDON_SETTINGS" ]; then
|
||||||
if [ -f $ADDON_DIR/settings-default.xml ]; then
|
if [ -f $ADDON_DIR/settings-default.xml ]; then
|
||||||
cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS
|
cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS
|
||||||
@ -112,7 +114,6 @@ mkdir -p /var/config
|
|||||||
. /var/config/tvheadend.conf
|
. /var/config/tvheadend.conf
|
||||||
|
|
||||||
|
|
||||||
mkdir -p $ADDON_HOME
|
|
||||||
if [ ! "$(pidof $ADDON_BIN)" ]; then
|
if [ ! "$(pidof $ADDON_BIN)" ]; then
|
||||||
# start userspace DVB driver/addon
|
# start userspace DVB driver/addon
|
||||||
for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver.sh -type f 2>/dev/null); do
|
for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver.sh -type f 2>/dev/null); do
|
||||||
|
@ -25,6 +25,10 @@
|
|||||||
# boost fails building with LTO support
|
# boost fails building with LTO support
|
||||||
strip_lto
|
strip_lto
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -fPIC"
|
||||||
|
CXXFLAGS="$CXXFLAGS -fPIC"
|
||||||
|
LDFLAGS="$LDFLAGS -fPIC"
|
||||||
|
|
||||||
cd $PKG_BUILD
|
cd $PKG_BUILD
|
||||||
sh bootstrap.sh \
|
sh bootstrap.sh \
|
||||||
--prefix=/usr \
|
--prefix=/usr \
|
||||||
@ -40,5 +44,7 @@ $ROOT/$TOOLCHAIN/bin/bjam -d2 --toolset=gcc link=static \
|
|||||||
--with-thread \
|
--with-thread \
|
||||||
--with-iostreams \
|
--with-iostreams \
|
||||||
--with-system \
|
--with-system \
|
||||||
|
--with-serialization \
|
||||||
|
--with-filesystem \
|
||||||
--with-regex -sICU_PATH="$SYSROOT_PREFIX/usr" \
|
--with-regex -sICU_PATH="$SYSROOT_PREFIX/usr" \
|
||||||
install
|
install
|
||||||
|
@ -29,13 +29,9 @@ cd $BUILD/${PKG_NAME}-${PKG_VERSION}/linux-tbs-drivers
|
|||||||
|
|
||||||
LDFLAGS="" make DIR=$(kernel_path) prepare
|
LDFLAGS="" make DIR=$(kernel_path) prepare
|
||||||
|
|
||||||
find . -iname *.c | xargs sed -i -e "s|__devinit||"
|
# TODO: removee me after 3 or 4 tbs driver versions
|
||||||
find . -iname *.h | xargs sed -i -e "s|__devinit||"
|
#for cfg in CONFIG_VIDEO_SH_MOBILE_CEU CONFIG_VIDEO_SH_MOBILE_CSI2 ; do
|
||||||
find . -iname *.c | xargs sed -i -e "s|__devexit||"
|
# sed -i -e "s|^$cfg=.*$|# $cfg is not set|" v4l/.config
|
||||||
find . -iname *.h | xargs sed -i -e "s|__devexit||"
|
#done
|
||||||
|
|
||||||
for cfg in CONFIG_VIDEO_SH_MOBILE_CEU CONFIG_VIDEO_SH_MOBILE_CSI2 ; do
|
|
||||||
sed -i -e "s|^$cfg=.*$|# $cfg is not set|" v4l/.config
|
|
||||||
done
|
|
||||||
|
|
||||||
LDFLAGS="" make DIR=$(kernel_path)
|
LDFLAGS="" make DIR=$(kernel_path)
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="tbs-linux-drivers"
|
PKG_NAME="tbs-linux-drivers"
|
||||||
PKG_VERSION="130506"
|
PKG_VERSION="130802"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -1,312 +0,0 @@
|
|||||||
diff -urN tbs/linux-tbs-drivers.org/linux/drivers/media/common/saa716x/saa716x_i2c.c tbs/linux-tbs-drivers/linux/drivers/media/common/saa716x/saa716x_i2c.c
|
|
||||||
--- tbs/linux-tbs-drivers.org/linux/drivers/media/common/saa716x/saa716x_i2c.c 2013-03-18 20:40:05.000000000 +0100
|
|
||||||
+++ tbs/linux-tbs-drivers/linux/drivers/media/common/saa716x/saa716x_i2c.c 2013-07-09 15:36:44.271340994 +0200
|
|
||||||
@@ -569,7 +569,7 @@
|
|
||||||
saa716x_i2c_hwdeinit(i2c, SAA716x_I2C_BUS(i));
|
|
||||||
dprintk(SAA716x_DEBUG, 1, "Removing adapter (%d) %s", i, adapter->name);
|
|
||||||
|
|
||||||
- err = i2c_del_adapter(adapter);
|
|
||||||
+ //err = i2c_del_adapter(adapter);
|
|
||||||
if (err < 0) {
|
|
||||||
dprintk(SAA716x_ERROR, 1, "Adapter (%d) %s remove failed", i, adapter->name);
|
|
||||||
goto exit;
|
|
||||||
diff -urN tbs/linux-tbs-drivers.org/linux/drivers/media/dvb/mantis/mantis_i2c.c tbs/linux-tbs-drivers/linux/drivers/media/dvb/mantis/mantis_i2c.c
|
|
||||||
--- tbs/linux-tbs-drivers.org/linux/drivers/media/dvb/mantis/mantis_i2c.c 2013-03-18 20:40:05.000000000 +0100
|
|
||||||
+++ tbs/linux-tbs-drivers/linux/drivers/media/dvb/mantis/mantis_i2c.c 2013-07-09 15:35:32.375339760 +0200
|
|
||||||
@@ -217,11 +217,7 @@
|
|
||||||
.functionality = mantis_i2c_func,
|
|
||||||
};
|
|
||||||
|
|
||||||
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
|
||||||
-int __devinit mantis_i2c_init(struct mantis_pci *mantis)
|
|
||||||
-#else
|
|
||||||
int mantis_i2c_init(struct mantis_pci *mantis)
|
|
||||||
-#endif
|
|
||||||
{
|
|
||||||
u32 intstat, intmask;
|
|
||||||
struct i2c_adapter *i2c_adapter = &mantis->adapter;
|
|
||||||
@@ -265,6 +261,8 @@
|
|
||||||
mmwrite((intmask & ~MANTIS_INT_I2CDONE), MANTIS_INT_MASK);
|
|
||||||
|
|
||||||
dprintk(MANTIS_DEBUG, 1, "Removing I2C adapter");
|
|
||||||
- return i2c_del_adapter(&mantis->adapter);
|
|
||||||
+ i2c_del_adapter(&mantis->adapter);
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(mantis_i2c_exit);
|
|
||||||
diff -urN tbs/linux-tbs-drivers.org/linux/drivers/media/dvb/ttpci/av7110_ir.c tbs/linux-tbs-drivers/linux/drivers/media/dvb/ttpci/av7110_ir.c
|
|
||||||
--- tbs/linux-tbs-drivers.org/linux/drivers/media/dvb/ttpci/av7110_ir.c 2013-03-18 20:40:05.000000000 +0100
|
|
||||||
+++ tbs/linux-tbs-drivers/linux/drivers/media/dvb/ttpci/av7110_ir.c 2013-07-09 15:34:31.631338719 +0200
|
|
||||||
@@ -324,11 +324,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
|
||||||
-int __devinit av7110_ir_init(struct av7110 *av7110)
|
|
||||||
-#else
|
|
||||||
int av7110_ir_init(struct av7110 *av7110)
|
|
||||||
-#endif
|
|
||||||
{
|
|
||||||
struct input_dev *input_dev;
|
|
||||||
static struct proc_dir_entry *e;
|
|
||||||
@@ -379,7 +375,7 @@
|
|
||||||
if (av_cnt == 1) {
|
|
||||||
e = proc_create("av7110_ir", S_IWUSR, NULL, &av7110_ir_proc_fops);
|
|
||||||
if (e)
|
|
||||||
- e->size = 4 + 256 * sizeof(u16);
|
|
||||||
+ proc_set_size(e, 4 + 256 * sizeof(u16));
|
|
||||||
}
|
|
||||||
|
|
||||||
tasklet_init(&av7110->ir.ir_tasklet, av7110_emit_key, (unsigned long) &av7110->ir);
|
|
||||||
@@ -389,11 +385,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
|
||||||
-void __devexit av7110_ir_exit(struct av7110 *av7110)
|
|
||||||
-#else
|
|
||||||
void av7110_ir_exit(struct av7110 *av7110)
|
|
||||||
-#endif
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
diff -urN tbs/linux-tbs-drivers.org/linux/drivers/media/video/bt8xx/bttv-input.c tbs/linux-tbs-drivers/linux/drivers/media/video/bt8xx/bttv-input.c
|
|
||||||
--- tbs/linux-tbs-drivers.org/linux/drivers/media/video/bt8xx/bttv-input.c 2013-03-18 20:40:05.000000000 +0100
|
|
||||||
+++ tbs/linux-tbs-drivers/linux/drivers/media/video/bt8xx/bttv-input.c 2013-07-09 15:33:30.527337668 +0200
|
|
||||||
@@ -18,6 +18,8 @@
|
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
|
||||||
+
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/init.h>
|
|
||||||
#include <linux/delay.h>
|
|
||||||
@@ -36,9 +38,10 @@
|
|
||||||
module_param(ir_rc5_remote_gap, int, 0644);
|
|
||||||
|
|
||||||
#undef dprintk
|
|
||||||
-#define dprintk(arg...) do { \
|
|
||||||
- if (ir_debug >= 1) \
|
|
||||||
- printk(arg); \
|
|
||||||
+#define dprintk(fmt, ...) \
|
|
||||||
+do { \
|
|
||||||
+ if (ir_debug >= 1) \
|
|
||||||
+ pr_info(fmt, ##__VA_ARGS__); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define DEVNAME "bttv-input"
|
|
||||||
@@ -62,7 +65,7 @@
|
|
||||||
|
|
||||||
/* extract data */
|
|
||||||
data = ir_extract_bits(gpio, ir->mask_keycode);
|
|
||||||
- dprintk(KERN_INFO DEVNAME ": irq gpio=0x%x code=%d | %s%s%s\n",
|
|
||||||
+ dprintk("irq gpio=0x%x code=%d | %s%s%s\n",
|
|
||||||
gpio, data,
|
|
||||||
ir->polling ? "poll" : "irq",
|
|
||||||
(gpio & ir->mask_keydown) ? " down" : "",
|
|
||||||
@@ -96,7 +99,7 @@
|
|
||||||
keyup = (gpio & ir->mask_keyup) ? 1 << 31 : 0;
|
|
||||||
|
|
||||||
if ((ir->last_gpio & 0x7f) != data) {
|
|
||||||
- dprintk(KERN_INFO DEVNAME ": gpio=0x%x code=%d | %s\n",
|
|
||||||
+ dprintk("gpio=0x%x code=%d | %s\n",
|
|
||||||
gpio, data,
|
|
||||||
(gpio & ir->mask_keyup) ? " up" : "up/down");
|
|
||||||
|
|
||||||
@@ -107,7 +110,7 @@
|
|
||||||
if ((ir->last_gpio & 1 << 31) == keyup)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- dprintk(KERN_INFO DEVNAME ":(cnt) gpio=0x%x code=%d | %s\n",
|
|
||||||
+ dprintk("(cnt) gpio=0x%x code=%d | %s\n",
|
|
||||||
gpio, data,
|
|
||||||
(gpio & ir->mask_keyup) ? " up" : "down");
|
|
||||||
|
|
||||||
@@ -177,13 +180,12 @@
|
|
||||||
rc5 |= 1;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
- dprintk(KERN_INFO DEVNAME ":rc5_decode(%x) bad code\n",
|
|
||||||
+ dprintk("rc5_decode(%x) bad code\n",
|
|
||||||
org_code);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- dprintk(KERN_INFO DEVNAME ":"
|
|
||||||
- "code=%x, rc5=%x, start=%x, toggle=%x, address=%x, "
|
|
||||||
+ dprintk("code=%x, rc5=%x, start=%x, toggle=%x, address=%x, "
|
|
||||||
"instr=%x\n", rc5, org_code, RC5_START(rc5),
|
|
||||||
RC5_TOGGLE(rc5), RC5_ADDR(rc5), RC5_INSTR(rc5));
|
|
||||||
return rc5;
|
|
||||||
@@ -212,20 +214,20 @@
|
|
||||||
|
|
||||||
/* Allow some timer jitter (RC5 is ~24ms anyway so this is ok) */
|
|
||||||
if (gap < 28000) {
|
|
||||||
- dprintk(KERN_INFO DEVNAME ": spurious timer_end\n");
|
|
||||||
+ dprintk("spurious timer_end\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ir->last_bit < 20) {
|
|
||||||
/* ignore spurious codes (caused by light/other remotes) */
|
|
||||||
- dprintk(KERN_INFO DEVNAME ": short code: %x\n", ir->code);
|
|
||||||
+ dprintk("short code: %x\n", ir->code);
|
|
||||||
} else {
|
|
||||||
ir->code = (ir->code << ir->shift_by) | 1;
|
|
||||||
rc5 = bttv_rc5_decode(ir->code);
|
|
||||||
|
|
||||||
/* two start bits? */
|
|
||||||
if (RC5_START(rc5) != ir->start) {
|
|
||||||
- printk(KERN_INFO DEVNAME ":"
|
|
||||||
+ pr_info(DEVNAME ":"
|
|
||||||
" rc5 start bits invalid: %u\n", RC5_START(rc5));
|
|
||||||
|
|
||||||
/* right address? */
|
|
||||||
@@ -235,8 +237,7 @@
|
|
||||||
|
|
||||||
/* Good code */
|
|
||||||
rc_keydown(ir->dev, instr, toggle);
|
|
||||||
- dprintk(KERN_INFO DEVNAME ":"
|
|
||||||
- " instruction %x, toggle %x\n",
|
|
||||||
+ dprintk("instruction %x, toggle %x\n",
|
|
||||||
instr, toggle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -265,7 +266,7 @@
|
|
||||||
tv.tv_usec - ir->base_time.tv_usec;
|
|
||||||
}
|
|
||||||
|
|
||||||
- dprintk(KERN_INFO DEVNAME ": RC5 IRQ: gap %d us for %s\n",
|
|
||||||
+ dprintk("RC5 IRQ: gap %d us for %s\n",
|
|
||||||
gap, (gpio & 0x20) ? "mark" : "space");
|
|
||||||
|
|
||||||
/* remote IRQ? */
|
|
||||||
@@ -340,14 +341,14 @@
|
|
||||||
|
|
||||||
/* poll IR chip */
|
|
||||||
if (1 != i2c_master_recv(ir->c, &b, 1)) {
|
|
||||||
- dprintk(KERN_INFO DEVNAME ": read error\n");
|
|
||||||
+ dprintk("read error\n");
|
|
||||||
return -EIO;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ignore 0xaa */
|
|
||||||
if (b==0xaa)
|
|
||||||
return 0;
|
|
||||||
- dprintk(KERN_INFO DEVNAME ": key %02x\n", b);
|
|
||||||
+ dprintk("key %02x\n", b);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NOTE:
|
|
||||||
@@ -367,17 +368,14 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Instantiate the I2C IR receiver device, if present */
|
|
||||||
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
|
||||||
-void __devinit init_bttv_i2c_ir(struct bttv *btv)
|
|
||||||
-#else
|
|
||||||
void init_bttv_i2c_ir(struct bttv *btv)
|
|
||||||
-#endif
|
|
||||||
{
|
|
||||||
const unsigned short addr_list[] = {
|
|
||||||
0x1a, 0x18, 0x64, 0x30, 0x71,
|
|
||||||
I2C_CLIENT_END
|
|
||||||
};
|
|
||||||
struct i2c_board_info info;
|
|
||||||
+ struct i2c_client *i2c_dev;
|
|
||||||
|
|
||||||
if (0 != btv->i2c_rc)
|
|
||||||
return;
|
|
||||||
@@ -393,7 +391,12 @@
|
|
||||||
btv->init_data.ir_codes = RC_MAP_PV951;
|
|
||||||
info.addr = 0x4b;
|
|
||||||
break;
|
|
||||||
- default:
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (btv->init_data.name) {
|
|
||||||
+ info.platform_data = &btv->init_data;
|
|
||||||
+ i2c_dev = i2c_new_device(&btv->c.i2c_adap, &info);
|
|
||||||
+ } else {
|
|
||||||
/*
|
|
||||||
* The external IR receiver is at i2c address 0x34 (0x35 for
|
|
||||||
* reads). Future Hauppauge cards will have an internal
|
|
||||||
@@ -402,33 +405,14 @@
|
|
||||||
* internal.
|
|
||||||
* That's why we probe 0x1a (~0x34) first. CB
|
|
||||||
*/
|
|
||||||
-
|
|
||||||
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,35)
|
|
||||||
- i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list);
|
|
||||||
-#else
|
|
||||||
- i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list, NULL);
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
- return;
|
|
||||||
+ i2c_dev = i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list, NULL);
|
|
||||||
}
|
|
||||||
+ if (NULL == i2c_dev)
|
|
||||||
+ return;
|
|
||||||
|
|
||||||
- if (btv->init_data.name)
|
|
||||||
- info.platform_data = &btv->init_data;
|
|
||||||
- i2c_new_device(&btv->c.i2c_adap, &info);
|
|
||||||
-
|
|
||||||
- return;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0)
|
|
||||||
-int __devexit fini_bttv_i2c(struct bttv *btv)
|
|
||||||
-#else
|
|
||||||
-int fini_bttv_i2c(struct bttv *btv)
|
|
||||||
+#if defined(CONFIG_MODULES) && defined(MODULE)
|
|
||||||
+ request_module("ir-kbd-i2c");
|
|
||||||
#endif
|
|
||||||
-{
|
|
||||||
- if (0 != btv->i2c_rc)
|
|
||||||
- return 0;
|
|
||||||
-
|
|
||||||
- return i2c_del_adapter(&btv->c.i2c_adap);
|
|
||||||
}
|
|
||||||
|
|
||||||
int bttv_input_init(struct bttv *btv)
|
|
||||||
@@ -530,7 +514,7 @@
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (NULL == ir_codes) {
|
|
||||||
- dprintk(KERN_INFO "Ooops: IR config error [card=%d]\n", btv->c.type);
|
|
||||||
+ dprintk("Ooops: IR config error [card=%d]\n", btv->c.type);
|
|
||||||
err = -ENODEV;
|
|
||||||
goto err_out_free;
|
|
||||||
}
|
|
||||||
diff -urN tbs/linux-tbs-drivers.org/linux/drivers/media/video/zoran/zoran_procfs.c tbs/linux-tbs-drivers/linux/drivers/media/video/zoran/zoran_procfs.c
|
|
||||||
--- tbs/linux-tbs-drivers.org/linux/drivers/media/video/zoran/zoran_procfs.c 2010-07-03 23:22:08.000000000 +0200
|
|
||||||
+++ tbs/linux-tbs-drivers/linux/drivers/media/video/zoran/zoran_procfs.c 2013-07-09 15:37:31.083341796 +0200
|
|
||||||
@@ -130,14 +130,14 @@
|
|
||||||
|
|
||||||
static int zoran_open(struct inode *inode, struct file *file)
|
|
||||||
{
|
|
||||||
- struct zoran *data = PDE(inode)->data;
|
|
||||||
+ struct zoran *data = PDE_DATA(inode);
|
|
||||||
return single_open(file, zoran_show, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static ssize_t zoran_write(struct file *file, const char __user *buffer,
|
|
||||||
size_t count, loff_t *ppos)
|
|
||||||
{
|
|
||||||
- struct zoran *zr = PDE(file->f_path.dentry->d_inode)->data;
|
|
||||||
+ struct zoran *zr = PDE_DATA(file_inode(file));
|
|
||||||
char *string, *sp;
|
|
||||||
char *line, *ldelim, *varname, *svar, *tdelim;
|
|
||||||
|
|
||||||
@@ -201,7 +201,7 @@
|
|
||||||
dprintk(2,
|
|
||||||
KERN_INFO
|
|
||||||
"%s: procfs entry /proc/%s allocated. data=%p\n",
|
|
||||||
- ZR_DEVNAME(zr), name, zr->zoran_proc->data);
|
|
||||||
+ ZR_DEVNAME(zr), name, zr);
|
|
||||||
} else {
|
|
||||||
dprintk(1, KERN_ERR "%s: Unable to initialise /proc/%s\n",
|
|
||||||
ZR_DEVNAME(zr), name);
|
|
@ -19,7 +19,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="service.openelec.settings"
|
PKG_NAME="service.openelec.settings"
|
||||||
PKG_VERSION="0.2.1"
|
PKG_VERSION="0.2.5"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="prop."
|
PKG_LICENSE="prop."
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="connman"
|
PKG_NAME="connman"
|
||||||
PKG_VERSION="d052eb3"
|
PKG_VERSION="38c1662"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -28,8 +28,9 @@
|
|||||||
# ensure that environment is sane
|
# ensure that environment is sane
|
||||||
. /etc/profile
|
. /etc/profile
|
||||||
|
|
||||||
if [ -e $CONFIG_CACHE/syslog/remote ] ; then
|
SYSLOG_REMOTE=false
|
||||||
source $CONFIG_CACHE/syslog/remote
|
if [ -e $CONFIG_CACHE/service_syslog.conf ] ; then
|
||||||
|
. $CONFIG_CACHE/service_syslog.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SYSLOGD_OPTIONS="-L"
|
SYSLOGD_OPTIONS="-L"
|
||||||
|
@ -47,7 +47,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-docs \
|
|||||||
--without-x \
|
--without-x \
|
||||||
--without-icu \
|
--without-icu \
|
||||||
--without-procps \
|
--without-procps \
|
||||||
--with-kernel-release=$ISCSI_KERNEL_VER \
|
--with-kernel-release=$OPENVMTOOLS_KERNEL_VER \
|
||||||
--with-linuxdir=$(ls -d $ROOT/$BUILD/linux-*)"
|
--with-linuxdir=$(ls -d $ROOT/$BUILD/linux-*)"
|
||||||
|
|
||||||
PKG_MAKE_OPTS_TARGET="CFLAGS+=-DG_DISABLE_DEPRECATED"
|
PKG_MAKE_OPTS_TARGET="CFLAGS+=-DG_DISABLE_DEPRECATED"
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit ff051d8de5a8cc1cc378653df36e0a17ac95a9c1
|
Subproject commit 3f2135d24d9c65513e387156164aef95958e298d
|
Loading…
x
Reference in New Issue
Block a user