mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.2
This commit is contained in:
commit
bf1304c5cb
@ -322,7 +322,6 @@ show_config() {
|
||||
config_message="$config_message\n - Avahi (Zeroconf) support:\t\t $AVAHI_DAEMON"
|
||||
config_message="$config_message\n - SAMBA server support:\t\t $SAMBA_SERVER"
|
||||
config_message="$config_message\n - SFTP server support:\t\t\t $SFTP_SERVER"
|
||||
config_message="$config_message\n - SSH Guard support:\t\t\t $SSHGUARD_SUPPORT"
|
||||
config_message="$config_message\n - PPTP support:\t\t\t $PPTP_SUPPORT"
|
||||
config_message="$config_message\n - OpenVPN support:\t\t\t $OPENVPN_SUPPORT"
|
||||
config_message="$config_message\n - XBMC Airplay support:\t\t $AIRPLAY_SUPPORT"
|
||||
|
@ -1,3 +1,6 @@
|
||||
3.1.2
|
||||
- update to transmission-2.80
|
||||
|
||||
3.1.1
|
||||
- rebuild for OpenELEC-3.2
|
||||
|
||||
|
@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="transmission"
|
||||
PKG_VERSION="2.77"
|
||||
PKG_REV="1"
|
||||
PKG_VERSION="2.80"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.transmissionbt.com/"
|
||||
PKG_URL="http://download.transmissionbt.com/files/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="http://download.transmissionbt.com/files/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS="zlib $ICONV openssl curl libevent"
|
||||
PKG_BUILD_DEPENDS="toolchain $ICONV zlib openssl curl libevent"
|
||||
PKG_PRIORITY="optional"
|
||||
|
@ -40,7 +40,6 @@ cd $PKG_BUILD
|
||||
--enable-shared \
|
||||
--disable-python \
|
||||
--disable-dependency-tracking \
|
||||
--with-versioned=no \
|
||||
|
||||
sed -i 's/.*PKGLIBDIR.*/#define PKGLIBDIR ""/' include/config.h
|
||||
|
||||
|
@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="zlib"
|
||||
PKG_VERSION="1.2.7"
|
||||
PKG_VERSION="1.2.8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.zlib.net"
|
||||
PKG_URL="http://www.zlib.net/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="http://www.zlib.net/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gdb"
|
||||
PKG_VERSION="7.5.1"
|
||||
PKG_VERSION="7.6"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -1,44 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
--exec-prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
--datadir=/usr/share \
|
||||
--without-python \
|
||||
--without-tcl
|
||||
|
||||
make libnewt.a
|
||||
|
||||
mkdir -p $SYSROOT_PREFIX/usr/lib
|
||||
cp libnewt.a $SYSROOT_PREFIX/usr/lib
|
||||
|
||||
mkdir -p $SYSROOT_PREFIX/usr/lib/pkgconfig
|
||||
cp libnewt.pc $SYSROOT_PREFIX/usr/lib/pkgconfig
|
||||
|
||||
mkdir -p $SYSROOT_PREFIX/usr/include
|
||||
cp newt.h $SYSROOT_PREFIX/usr/include
|
@ -1,36 +0,0 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="newt"
|
||||
PKG_VERSION="0.52.14"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="https://fedorahosted.org/newt/"
|
||||
PKG_URL="https://fedorahosted.org/releases/n/e/newt/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain popt slang"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="devel"
|
||||
PKG_SHORTDESC="newt: library for color text mode, widget based user interfaces"
|
||||
PKG_LONGDESC="Newt is a programming library for color text mode, widget based user interfaces. Newt can be used to add stacked windows, entry widgets, checkboxes, radio buttons, labels, plain text fields, scrollbars, etc., to text mode user interfaces. Newt is based on the S-Lang library."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
@ -1,12 +0,0 @@
|
||||
diff -Naur newt-0.52.14/Makefile.in newt-0.52.14.patch/Makefile.in
|
||||
--- newt-0.52.14/Makefile.in 2011-11-11 12:00:15.000000000 +0100
|
||||
+++ newt-0.52.14.patch/Makefile.in 2013-05-30 23:40:30.104284277 +0200
|
||||
@@ -5,7 +5,7 @@
|
||||
CPP = @CPP@
|
||||
CFLAGS = @CFLAGS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
-CPPFLAGS = -D_GNU_SOURCE -I/usr/include/slang @CPPFLAGS@
|
||||
+CPPFLAGS = -D_GNU_SOURCE @CPPFLAGS@
|
||||
GNU_LD = @GNU_LD@
|
||||
|
||||
VERSION = @VERSION@
|
@ -1,42 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
MAKEFLAGS=-j1
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
--exec-prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
--datadir=/usr/share \
|
||||
--without-iconv \
|
||||
--without-onig \
|
||||
--without-pcre \
|
||||
--without-png \
|
||||
--without-z \
|
||||
--without-x \
|
||||
|
||||
make -C src static
|
||||
make DESTDIR="$SYSROOT_PREFIX" -C src install-static
|
@ -1,36 +0,0 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="slang"
|
||||
PKG_VERSION="2.2.4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://www.jedsoft.org/slang/"
|
||||
PKG_URL="ftp://ftp.fu-berlin.de/pub/unix/misc/slang/v2.2/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="devel"
|
||||
PKG_SHORTDESC="slang: library for the S-Lang extension language"
|
||||
PKG_LONGDESC="S-Lang is an interpreted language and a programming library. The S-Lang language was designed so that it can be easily embedded into a program to provide the program with a powerful extension language. The S-Lang library, provided in this package, provides the S-Lang extension language. S-Lang's syntax resembles C, which makes it easy to recode S-Lang procedures in C if you need to."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="Mesa"
|
||||
PKG_VERSION="9.1.3"
|
||||
PKG_VERSION="9.1.4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
@ -19,11 +19,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="RTL8188EU"
|
||||
PKG_VERSION="20130425"
|
||||
# realtek: PKG_VERSION="20130425"
|
||||
PKG_VERSION="fb786d0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PFid=48&Level=5&Conn=4&ProdID=274&DownTypeID=3&GetDown=false&Downloads=true"
|
||||
# realtek: PKG_SITE="http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PFid=48&Level=5&Conn=4&ProdID=274&DownTypeID=3&GetDown=false&Downloads=true"
|
||||
PKG_SITE="https://github.com/lwfinger/rtl8188eu"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain linux"
|
||||
|
@ -1,142 +0,0 @@
|
||||
diff -Naur RTL8188EU-20130425/core/rtw_mp.c RTL8188EU-20130425.patch/core/rtw_mp.c
|
||||
--- RTL8188EU-20130425/core/rtw_mp.c 2013-04-27 07:20:29.000000000 +0200
|
||||
+++ RTL8188EU-20130425.patch/core/rtw_mp.c 2013-04-27 15:46:36.416055469 +0200
|
||||
@@ -1219,7 +1219,8 @@
|
||||
|
||||
//3 6. start thread
|
||||
#ifdef PLATFORM_LINUX
|
||||
- pmp_priv->tx.PktTxThread = kernel_thread(mp_xmit_packet_thread, pmp_priv, CLONE_FS|CLONE_FILES);
|
||||
+ if(!start_kthread(&pmp_priv->tx.PktTxThread, mp_xmit_packet_thread, pmp_priv, "8188eu-mp-xmit"))
|
||||
+ DBG_871X("Create PktTx Thread Fail !!!!!\n");
|
||||
#endif
|
||||
#ifdef PLATFORM_FREEBSD
|
||||
{
|
||||
@@ -1228,9 +1229,9 @@
|
||||
pmp_priv->tx.PktTxThread = kproc_kthread_add(mp_xmit_packet_thread, pmp_priv,
|
||||
&p, &td, RFHIGHPID, 0, "MPXmitThread", "MPXmitThread");
|
||||
}
|
||||
+if (pmp_priv->tx.PktTxThread < 0)
|
||||
+ DBG_871X("Create PktTx Thread Fail !!!!!\n");
|
||||
#endif
|
||||
- if (pmp_priv->tx.PktTxThread < 0)
|
||||
- DBG_871X("Create PktTx Thread Fail !!!!!\n");
|
||||
|
||||
}
|
||||
|
||||
diff -Naur RTL8188EU-20130425/include/osdep_service.h RTL8188EU-20130425.patch/include/osdep_service.h
|
||||
--- RTL8188EU-20130425/include/osdep_service.h 2013-04-27 07:20:29.000000000 +0200
|
||||
+++ RTL8188EU-20130425.patch/include/osdep_service.h 2013-04-27 15:59:42.647641402 +0200
|
||||
@@ -813,6 +813,9 @@
|
||||
#include <linux/pci.h>
|
||||
#endif
|
||||
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
|
||||
+ #include <linux/kthread.h>
|
||||
+#endif
|
||||
|
||||
#ifdef CONFIG_USB_HCI
|
||||
typedef struct urb * PURB;
|
||||
@@ -846,8 +849,12 @@
|
||||
//typedef u32 _irqL;
|
||||
typedef unsigned long _irqL;
|
||||
typedef struct net_device * _nic_hdl;
|
||||
-
|
||||
+
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0))
|
||||
typedef pid_t _thread_hdl_;
|
||||
+#else
|
||||
+ typedef struct task_struct * _thread_hdl_;
|
||||
+#endif
|
||||
typedef int thread_return;
|
||||
typedef void* thread_context;
|
||||
|
||||
@@ -1394,7 +1401,7 @@
|
||||
static __inline void thread_enter(char *name)
|
||||
{
|
||||
#ifdef PLATFORM_LINUX
|
||||
- daemonize("%s", name);
|
||||
+ //daemonize("%s", name);
|
||||
allow_signal(SIGTERM);
|
||||
#endif
|
||||
#ifdef PLATFORM_FREEBSD
|
||||
@@ -1677,4 +1684,8 @@
|
||||
|
||||
#endif
|
||||
|
||||
+#ifdef PLATFORM_LINUX
|
||||
+extern int start_kthread(_thread_hdl_ *t_hdl, int (*threadfn)(void *data),
|
||||
+ void *data, const char *name);
|
||||
+#endif
|
||||
|
||||
diff -Naur RTL8188EU-20130425/include/rtw_recv.h RTL8188EU-20130425.patch/include/rtw_recv.h
|
||||
--- RTL8188EU-20130425/include/rtw_recv.h 2013-04-27 07:20:29.000000000 +0200
|
||||
+++ RTL8188EU-20130425.patch/include/rtw_recv.h 2013-04-27 16:01:59.026051453 +0200
|
||||
@@ -658,7 +658,9 @@
|
||||
//from any given member of recv_frame.
|
||||
// rxmem indicates the any member/address in recv_frame
|
||||
|
||||
- return (union recv_frame*)(((SIZE_PTR)rxmem >> RXFRAME_ALIGN) << RXFRAME_ALIGN);
|
||||
+ //return (union recv_frame*)(((uint)rxmem>>RXFRAME_ALIGN) <<RXFRAME_ALIGN) ;
|
||||
+ //return (union recv_frame*)(((SIZE_PTR)rxmem >> RXFRAME_ALIGN) << RXFRAME_ALIGN);
|
||||
+ return (union recv_frame*)(((ulong)rxmem>>RXFRAME_ALIGN) <<RXFRAME_ALIGN) ;
|
||||
|
||||
}
|
||||
|
||||
diff -Naur RTL8188EU-20130425/os_dep/linux/os_intfs.c RTL8188EU-20130425.patch/os_dep/linux/os_intfs.c
|
||||
--- RTL8188EU-20130425/os_dep/linux/os_intfs.c 2013-04-27 07:20:29.000000000 +0200
|
||||
+++ RTL8188EU-20130425.patch/os_dep/linux/os_intfs.c 2013-04-27 16:06:09.281030229 +0200
|
||||
@@ -978,27 +978,23 @@
|
||||
|
||||
RT_TRACE(_module_os_intfs_c_,_drv_info_,("+rtw_start_drv_threads\n"));
|
||||
#ifdef CONFIG_XMIT_THREAD_MODE
|
||||
- padapter->xmitThread = kernel_thread(rtw_xmit_thread, padapter, CLONE_FS|CLONE_FILES);
|
||||
- if(padapter->xmitThread < 0)
|
||||
+ if(!start_kthread(&padapter->xmitThread, rtw_xmit_thread, padapter, "8188eu-xmit"))
|
||||
_status = _FAIL;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RECV_THREAD_MODE
|
||||
- padapter->recvThread = kernel_thread(rtw_recv_thread, padapter, CLONE_FS|CLONE_FILES);
|
||||
- if(padapter->recvThread < 0)
|
||||
+ if(!start_kthread(&padapter->recvThread, recv_thread, padapter, "8188eu-recv"))
|
||||
_status = _FAIL;
|
||||
#endif
|
||||
|
||||
- padapter->cmdThread = kernel_thread(rtw_cmd_thread, padapter, CLONE_FS|CLONE_FILES);
|
||||
- if(padapter->cmdThread < 0)
|
||||
+ if(!start_kthread(&padapter->cmdThread, rtw_cmd_thread, padapter, "8188eu-cmd"))
|
||||
_status = _FAIL;
|
||||
else
|
||||
_rtw_down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); //wait for cmd_thread to run
|
||||
|
||||
|
||||
#ifdef CONFIG_EVENT_THREAD_MODE
|
||||
- padapter->evtThread = kernel_thread(event_thread, padapter, CLONE_FS|CLONE_FILES);
|
||||
- if(padapter->evtThread < 0)
|
||||
+ if(!start_kthread(&padapter->evtThread, event_thread, padapter, "8188eu-evt"))
|
||||
_status = _FAIL;
|
||||
#endif
|
||||
|
||||
diff -Naur RTL8188EU-20130425/os_dep/osdep_service.c RTL8188EU-20130425.patch/os_dep/osdep_service.c
|
||||
--- RTL8188EU-20130425/os_dep/osdep_service.c 2013-04-27 07:20:29.000000000 +0200
|
||||
+++ RTL8188EU-20130425.patch/os_dep/osdep_service.c 2013-04-27 15:38:15.965258008 +0200
|
||||
@@ -1920,3 +1920,19 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
+#ifdef PLATFORM_LINUX
|
||||
+int start_kthread(_thread_hdl_ *t_hdl, int (*threadfn)(void *data),
|
||||
+ void *data, const char *name)
|
||||
+{
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0))
|
||||
+ *t_hdl = kernel_thread(threadfn, data, CLONE_FS|CLONE_FILES);
|
||||
+ if(*t_hdl < 0)
|
||||
+#else
|
||||
+ *t_hdl = kthread_run(threadfn, data, name);
|
||||
+ if(IS_ERR(*t_hdl))
|
||||
+#endif
|
||||
+ return 0;
|
||||
+ return -1;
|
||||
+}
|
||||
+#endif
|
||||
+
|
@ -0,0 +1,285 @@
|
||||
From 0bb2e327dd12e44fbd67ff169217fa1f7f0c609b Mon Sep 17 00:00:00 2001
|
||||
From: kolasa <kkolasa@winsoft.pl>
|
||||
Date: Sun, 12 May 2013 21:21:46 +0200
|
||||
Subject: [PATCH] switching to proc_create ( /proc for read/write is not yet
|
||||
usable )
|
||||
|
||||
---
|
||||
.../os_dep/linux/os_intfs.c | 105 ++++++++++++++++++++-
|
||||
1 file changed, 100 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c
|
||||
index 4d057a6..17f46f6 100644
|
||||
--- a/os_dep/linux/os_intfs.c
|
||||
+++ b/os_dep/linux/os_intfs.c
|
||||
@@ -275,14 +275,22 @@ void rtw_proc_init_one(struct net_device *dev)
|
||||
#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
|
||||
rtw_proc=create_proc_entry(rtw_proc_name, S_IFDIR, proc_net);
|
||||
#else
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
rtw_proc=create_proc_entry(rtw_proc_name, S_IFDIR, init_net.proc_net);
|
||||
+#else
|
||||
+ rtw_proc=proc_mkdir(rtw_proc_name, init_net.proc_net);
|
||||
+#endif
|
||||
#endif
|
||||
if (rtw_proc == NULL) {
|
||||
DBG_8192C(KERN_ERR "Unable to create rtw_proc directory\n");
|
||||
return;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
@@ -293,10 +301,13 @@ void rtw_proc_init_one(struct net_device *dev)
|
||||
|
||||
if(padapter->dir_dev == NULL)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
padapter->dir_dev = create_proc_entry(dev->name,
|
||||
S_IFDIR | S_IRUGO | S_IXUGO,
|
||||
rtw_proc);
|
||||
-
|
||||
+#else
|
||||
+ padapter->dir_dev = proc_mkdir(dev->name,rtw_proc);
|
||||
+#endif
|
||||
dir_dev = padapter->dir_dev;
|
||||
|
||||
if(dir_dev==NULL)
|
||||
@@ -324,84 +335,136 @@ void rtw_proc_init_one(struct net_device *dev)
|
||||
|
||||
rtw_proc_cnt++;
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("write_reg", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_write_reg, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("write_reg", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_write_reg, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry->write_proc = proc_set_write_reg;
|
||||
|
||||
entry = create_proc_read_entry("read_reg", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_read_reg, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("read_reg", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_read_reg, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry->write_proc = proc_set_read_reg;
|
||||
|
||||
-
|
||||
entry = create_proc_read_entry("fwstate", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_fwstate, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("fwstate", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_fwstate, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
-
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("sec_info", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_sec_info, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("sec_info", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_sec_info, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("mlmext_state", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_mlmext_state, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("mlmext_state", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_mlmext_state, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
-
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("qos_option", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_qos_option, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("qos_option", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_qos_option, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("ht_option", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_ht_option, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("ht_option", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_ht_option, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("rf_info", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_rf_info, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("rf_info", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_rf_info, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("ap_info", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_ap_info, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("ap_info", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_ap_info, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("adapter_state", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_adapter_state, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("adapter_state", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_adapter_state, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("trx_info", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_trx_info, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("trx_info", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_trx_info, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
@@ -409,8 +472,13 @@ void rtw_proc_init_one(struct net_device *dev)
|
||||
|
||||
#ifdef CONFIG_AP_MODE
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("all_sta_info", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_all_sta_info, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("all_sta_info", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_all_sta_info, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
@@ -418,8 +486,13 @@ void rtw_proc_init_one(struct net_device *dev)
|
||||
#endif
|
||||
|
||||
#ifdef DBG_MEMORY_LEAK
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("_malloc_cnt", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_malloc_cnt, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("_malloc_cnt", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_malloc_cnt, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
@@ -427,38 +500,60 @@ void rtw_proc_init_one(struct net_device *dev)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FIND_BEST_CHANNEL
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("best_channel", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_best_channel, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("best_channel", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_best_channel, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("rx_signal", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_rx_signal, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("rx_signal", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_rx_signal, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry->write_proc = proc_set_rx_signal;
|
||||
|
||||
entry = create_proc_read_entry("ampdu_enable", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_ampdu_enable, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("ampdu_enable", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_ampdu_enable, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
+
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry->write_proc = proc_set_ampdu_enable;
|
||||
|
||||
entry = create_proc_read_entry("rssi_disp", S_IFREG | S_IRUGO,
|
||||
dir_dev, proc_get_rssi_disp, dev);
|
||||
+#else
|
||||
+ entry = proc_create_data("rssi_disp", S_IFREG | S_IRUGO,
|
||||
+ dir_dev, proc_get_rssi_disp, dev);
|
||||
+#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
return;
|
||||
}
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry->write_proc = proc_set_rssi_disp;
|
||||
-
|
||||
+#endif
|
||||
}
|
||||
|
||||
void rtw_proc_remove_one(struct net_device *dev)
|
||||
--
|
||||
1.8.1.6
|
||||
|
@ -0,0 +1,92 @@
|
||||
From e30a6db935752679770b31668e899a7b77e1fec4 Mon Sep 17 00:00:00 2001
|
||||
From: kolasa <kkolasa@winsoft.pl>
|
||||
Date: Mon, 13 May 2013 11:43:03 +0200
|
||||
Subject: [PATCH] Usable /proc/net/rtl819xC/ver_info
|
||||
|
||||
---
|
||||
.../core/rtw_debug.c | 9 +++++++++
|
||||
.../include/rtw_debug.h | 5 ++++-
|
||||
.../os_dep/linux/os_intfs.c | 14 +++++++++++++-
|
||||
3 files changed, 26 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/core/rtw_debug.c b/core/rtw_debug.c
|
||||
index 04e472d..018fe48 100644
|
||||
--- a/core/rtw_debug.c
|
||||
+++ b/core/rtw_debug.c
|
||||
@@ -62,6 +62,7 @@
|
||||
#ifdef CONFIG_PROC_DEBUG
|
||||
#include <rtw_version.h>
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
int proc_get_drv_version(char *page, char **start,
|
||||
off_t offset, int count,
|
||||
int *eof, void *data)
|
||||
@@ -75,6 +76,14 @@ int proc_get_drv_version(char *page, char **start,
|
||||
*eof = 1;
|
||||
return len;
|
||||
}
|
||||
+#else
|
||||
+int proc_get_drv_version(struct seq_file *m, void* data)
|
||||
+{
|
||||
+ struct net_device *dev = data;
|
||||
+
|
||||
+ return seq_printf(m, "%s\n", DRIVERVERSION);
|
||||
+}
|
||||
+#endif
|
||||
|
||||
int proc_get_write_reg(char *page, char **start,
|
||||
off_t offset, int count,
|
||||
diff --git a/include/rtw_debug.h b/include/rtw_debug.h
|
||||
index eca6692..5b3e5cc 100644
|
||||
--- a/include/rtw_debug.h
|
||||
+++ b/include/rtw_debug.h
|
||||
@@ -285,10 +285,13 @@
|
||||
|
||||
#ifdef CONFIG_PROC_DEBUG
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
int proc_get_drv_version(char *page, char **start,
|
||||
off_t offset, int count,
|
||||
int *eof, void *data);
|
||||
-
|
||||
+#else
|
||||
+ int proc_get_drv_version(struct seq_file *m, void *data);
|
||||
+#endif
|
||||
int proc_get_write_reg(char *page, char **start,
|
||||
off_t offset, int count,
|
||||
int *eof, void *data);
|
||||
diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c
|
||||
index 99a5a1c..0e61bf9 100644
|
||||
--- a/os_dep/linux/os_intfs.c
|
||||
+++ b/os_dep/linux/os_intfs.c
|
||||
@@ -255,6 +255,18 @@
|
||||
static struct proc_dir_entry *rtw_proc = NULL;
|
||||
static int rtw_proc_cnt = 0;
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
|
||||
+static int drv_version_proc_open(struct inode *inode, struct file *file){
|
||||
+ return single_open(file, proc_get_drv_version, NULL);
|
||||
+}
|
||||
+
|
||||
+static const struct file_operations drv_version_fops = {
|
||||
+ .open = drv_version_proc_open,
|
||||
+ .read = seq_read,
|
||||
+ .llseek = seq_lseek,
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
void rtw_proc_init_one(struct net_device *dev)
|
||||
{
|
||||
struct proc_dir_entry *dir_dev = NULL;
|
||||
@@ -289,7 +301,7 @@ void rtw_proc_init_one(struct net_device *dev)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
||||
entry = create_proc_read_entry("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
|
||||
#else
|
||||
- entry = proc_create_data("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
|
||||
+ entry = proc_create_data("ver_info", S_IFREG | S_IRUGO, rtw_proc, &drv_version_fops, dev);
|
||||
#endif
|
||||
if (!entry) {
|
||||
DBG_871X("Unable to create_proc_read_entry!\n");
|
||||
--
|
||||
1.8.1.6
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,21 +0,0 @@
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2010-12-25 18:15:43.356676382 +0100
|
||||
@@ -240,6 +240,7 @@
|
||||
|
||||
static int nompc = 0;
|
||||
module_param(nompc, int, 0);
|
||||
+MODULE_LICENSE("MIXED/Proprietary");
|
||||
|
||||
#ifdef quote_str
|
||||
#undef quote_str
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2010-12-25 18:15:43.356676382 +0100
|
||||
@@ -240,6 +240,7 @@
|
||||
|
||||
static int nompc = 0;
|
||||
module_param(nompc, int, 0);
|
||||
+MODULE_LICENSE("MIXED/Proprietary");
|
||||
|
||||
#ifdef quote_str
|
||||
#undef quote_str
|
||||
|
@ -1,58 +0,0 @@
|
||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-31 07:47:40.000000000 +0100
|
||||
@@ -1466,7 +1466,10 @@
|
||||
scb_val.val = 0;
|
||||
err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t));
|
||||
if (err) {
|
||||
- WL_ERR(("Could not get rssi (%d)\n", err));
|
||||
+ if (err != -EINVAL) {
|
||||
+ // Don't fill syslog with EINVAL error
|
||||
+ WL_ERR(("Could not get rssi (%d)\n", err));
|
||||
+ }
|
||||
return err;
|
||||
}
|
||||
rssi = dtoh32(scb_val.val);
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2013-01-31 07:47:40.000000000 +0100
|
||||
@@ -1579,11 +1579,7 @@
|
||||
}
|
||||
|
||||
WL_LOCK(wl);
|
||||
- if (!capable(CAP_NET_ADMIN)) {
|
||||
- bcmerror = BCME_EPERM;
|
||||
- } else {
|
||||
- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
|
||||
- }
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
|
||||
WL_UNLOCK(wl);
|
||||
|
||||
done1:
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-31 07:49:06.000000000 +0100
|
||||
@@ -1466,7 +1466,10 @@
|
||||
scb_val.val = 0;
|
||||
err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t));
|
||||
if (err) {
|
||||
- WL_ERR(("Could not get rssi (%d)\n", err));
|
||||
+ if (err != -EINVAL) {
|
||||
+ // Don't fill syslog with EINVAL error
|
||||
+ WL_ERR(("Could not get rssi (%d)\n", err));
|
||||
+ }
|
||||
return err;
|
||||
}
|
||||
rssi = dtoh32(scb_val.val);
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2013-01-31 07:50:03.000000000 +0100
|
||||
@@ -1579,11 +1579,7 @@
|
||||
}
|
||||
|
||||
WL_LOCK(wl);
|
||||
- if (!capable(CAP_NET_ADMIN)) {
|
||||
- bcmerror = BCME_EPERM;
|
||||
- } else {
|
||||
- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
|
||||
- }
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
|
||||
WL_UNLOCK(wl);
|
||||
|
||||
done1:
|
@ -1,162 +0,0 @@
|
||||
--- a/x86-32/Makefile 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/Makefile 2013-01-31 10:00:10.000000000 +0100
|
||||
@@ -15,21 +15,9 @@
|
||||
|
||||
ifneq ($(KERNELRELEASE),)
|
||||
|
||||
- LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \
|
||||
- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then \
|
||||
- echo TRUE; \
|
||||
- else \
|
||||
- echo FALSE; \
|
||||
- fi \
|
||||
- ))
|
||||
-
|
||||
- LINUXVER_WEXT_ONLY:=$(strip $(shell \
|
||||
- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \
|
||||
- echo FALSE; \
|
||||
- else \
|
||||
- echo TRUE; \
|
||||
- fi \
|
||||
- ))
|
||||
+ LINUXVER_GOODFOR_CFG80211:=TRUE
|
||||
+
|
||||
+ LINUXVER_WEXT_ONLY:=FALSE
|
||||
|
||||
ifneq ($(API),)
|
||||
ifeq ($(API), CFG80211)
|
||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-31 10:00:10.000000000 +0100
|
||||
@@ -42,7 +42,7 @@
|
||||
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
|
||||
static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
struct cfg80211_scan_request *request, struct cfg80211_ssid *this_ssid);
|
||||
-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+static s32 wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
struct cfg80211_scan_request *request);
|
||||
static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
|
||||
static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
@@ -570,10 +570,12 @@
|
||||
}
|
||||
|
||||
static s32
|
||||
-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
struct cfg80211_scan_request *request)
|
||||
{
|
||||
s32 err = 0;
|
||||
+ struct wl_priv *wl = wiphy_to_wl(wiphy);
|
||||
+ struct net_device *ndev = wl_to_ndev(wl);
|
||||
|
||||
CHECK_SYS_UP();
|
||||
err = __wl_cfg80211_scan(wiphy, ndev, request, NULL);
|
||||
--- a/x86-32/src/wl/sys/wl_iw.h 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_iw.h 2013-01-31 10:00:10.000000000 +0100
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef _wl_iw_h_
|
||||
#define _wl_iw_h_
|
||||
|
||||
+#include <linux/semaphore.h>
|
||||
#include <linux/wireless.h>
|
||||
|
||||
#include <typedefs.h>
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2013-01-31 10:00:10.000000000 +0100
|
||||
@@ -40,7 +40,6 @@
|
||||
#include <linux/pci_ids.h>
|
||||
#define WLC_MAXBSSCFG 1
|
||||
|
||||
-#include <asm/system.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/pgtable.h>
|
||||
@@ -385,7 +384,7 @@
|
||||
#endif
|
||||
.ndo_get_stats = wl_get_stats,
|
||||
.ndo_set_mac_address = wl_set_mac_address,
|
||||
- .ndo_set_multicast_list = wl_set_multicast_list,
|
||||
+ .ndo_set_rx_mode = wl_set_multicast_list,
|
||||
.ndo_do_ioctl = wl_ioctl
|
||||
};
|
||||
|
||||
--- a/x86-64/Makefile 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/Makefile 2013-01-31 10:06:20.000000000 +0100
|
||||
@@ -15,21 +15,9 @@
|
||||
|
||||
ifneq ($(KERNELRELEASE),)
|
||||
|
||||
- LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \
|
||||
- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then \
|
||||
- echo TRUE; \
|
||||
- else \
|
||||
- echo FALSE; \
|
||||
- fi \
|
||||
- ))
|
||||
-
|
||||
- LINUXVER_WEXT_ONLY:=$(strip $(shell \
|
||||
- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \
|
||||
- echo FALSE; \
|
||||
- else \
|
||||
- echo TRUE; \
|
||||
- fi \
|
||||
- ))
|
||||
+ LINUXVER_GOODFOR_CFG80211:=TRUE
|
||||
+
|
||||
+ LINUXVER_WEXT_ONLY:=FALSE
|
||||
|
||||
ifneq ($(API),)
|
||||
ifeq ($(API), CFG80211)
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-31 10:07:35.000000000 +0100
|
||||
@@ -42,7 +42,7 @@
|
||||
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
|
||||
static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
struct cfg80211_scan_request *request, struct cfg80211_ssid *this_ssid);
|
||||
-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+static s32 wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
struct cfg80211_scan_request *request);
|
||||
static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
|
||||
static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
@@ -570,10 +570,12 @@
|
||||
}
|
||||
|
||||
static s32
|
||||
-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
struct cfg80211_scan_request *request)
|
||||
{
|
||||
s32 err = 0;
|
||||
+ struct wl_priv *wl = wiphy_to_wl(wiphy);
|
||||
+ struct net_device *ndev = wl_to_ndev(wl);
|
||||
|
||||
CHECK_SYS_UP();
|
||||
err = __wl_cfg80211_scan(wiphy, ndev, request, NULL);
|
||||
--- a/x86-64/src/wl/sys/wl_iw.h 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_iw.h 2013-01-31 10:07:58.000000000 +0100
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef _wl_iw_h_
|
||||
#define _wl_iw_h_
|
||||
|
||||
+#include <linux/semaphore.h>
|
||||
#include <linux/wireless.h>
|
||||
|
||||
#include <typedefs.h>
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2013-01-31 10:08:30.000000000 +0100
|
||||
@@ -40,7 +40,6 @@
|
||||
#include <linux/pci_ids.h>
|
||||
#define WLC_MAXBSSCFG 1
|
||||
|
||||
-#include <asm/system.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/pgtable.h>
|
||||
@@ -385,7 +384,7 @@
|
||||
#endif
|
||||
.ndo_get_stats = wl_get_stats,
|
||||
.ndo_set_mac_address = wl_set_mac_address,
|
||||
- .ndo_set_multicast_list = wl_set_multicast_list,
|
||||
+ .ndo_set_rx_mode = wl_set_multicast_list,
|
||||
.ndo_do_ioctl = wl_ioctl
|
||||
};
|
||||
|
@ -1,22 +0,0 @@
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2010-12-27 22:14:38.679428984 +0100
|
||||
@@ -251,7 +251,7 @@
|
||||
#define quote_str(s) to_str(s)
|
||||
|
||||
#ifndef BRCM_WLAN_IFNAME
|
||||
-#define BRCM_WLAN_IFNAME eth%d
|
||||
+#define BRCM_WLAN_IFNAME wlan%d
|
||||
#endif
|
||||
|
||||
static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2010-12-15 03:01:09.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2010-12-27 22:15:18.273865927 +0100
|
||||
@@ -251,7 +251,7 @@
|
||||
#define quote_str(s) to_str(s)
|
||||
|
||||
#ifndef BRCM_WLAN_IFNAME
|
||||
-#define BRCM_WLAN_IFNAME eth%d
|
||||
+#define BRCM_WLAN_IFNAME wlan%d
|
||||
#endif
|
||||
|
||||
static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
@ -1,158 +0,0 @@
|
||||
From 00da4982e9175921cfb26d1377bf49ece3bb41cb Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Tue, 26 Mar 2013 23:10:17 +0200
|
||||
Subject: [PATCH] linux 3.8 support
|
||||
|
||||
---
|
||||
x86-32/src/include/bcmutils.h | 5 +++++
|
||||
x86-32/src/wl/sys/wl_cfg80211.c | 25 ++++++++++++++++++++++++-
|
||||
x86-64/src/include/bcmutils.h | 4 ++++
|
||||
x86-64/src/wl/sys/wl_cfg80211.c | 25 ++++++++++++++++++++++++-
|
||||
4 files changed, 57 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/x86-32/src/include/bcmutils.h b/x86-32/src/include/bcmutils.h
|
||||
index fa6df04..9a8cab4 100644
|
||||
--- a/x86-32/src/include/bcmutils.h
|
||||
+++ b/x86-32/src/include/bcmutils.h
|
||||
@@ -555,7 +555,12 @@ extern void printbig(char *buf);
|
||||
extern void prhex(const char *msg, uchar *buf, uint len);
|
||||
|
||||
extern bcm_tlv_t *BCMROMFN(bcm_next_tlv)(bcm_tlv_t *elt, int *buflen);
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(void *buf, int buflen, uint key);
|
||||
+#else
|
||||
+extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(const void *buf, int buflen, uint key);
|
||||
+#endif
|
||||
+
|
||||
extern bcm_tlv_t *BCMROMFN(bcm_parse_ordered_tlvs)(void *buf, int buflen, uint key);
|
||||
|
||||
extern const char *bcmerrorstr(int bcmerror);
|
||||
diff --git a/x86-32/src/wl/sys/wl_cfg80211.c b/x86-32/src/wl/sys/wl_cfg80211.c
|
||||
index 09d04ed..698b004 100644
|
||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c
|
||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c
|
||||
@@ -744,7 +744,11 @@ wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
else
|
||||
memset(&join_params.params.bssid, 0, ETHER_ADDR_LEN);
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
wl_ch_to_chanspec(params->channel, &join_params, &join_params_size);
|
||||
+#else
|
||||
+ wl_ch_to_chanspec(params->chandef.chan, &join_params, &join_params_size);
|
||||
+#endif
|
||||
|
||||
err = wl_dev_ioctl(dev, WLC_SET_SSID, &join_params, join_params_size);
|
||||
if (err) {
|
||||
@@ -2047,9 +2051,14 @@ static s32 wl_update_bss_info(struct wl_priv *wl)
|
||||
struct bcm_tlv *tim;
|
||||
u16 beacon_interval;
|
||||
s32 dtim_period;
|
||||
+ s32 err = 0;
|
||||
size_t ie_len;
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
u8 *ie;
|
||||
- s32 err = 0;
|
||||
+#else
|
||||
+ const u8 *ie;
|
||||
+ const struct cfg80211_bss_ies *ies;
|
||||
+#endif
|
||||
|
||||
ssid = &wl->profile->ssid;
|
||||
bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid,
|
||||
@@ -2079,8 +2088,22 @@ static s32 wl_update_bss_info(struct wl_priv *wl)
|
||||
beacon_interval = cpu_to_le16(bi->beacon_period);
|
||||
} else {
|
||||
WL_DBG(("Found the AP in the list - BSSID %pM\n", bss->bssid));
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
ie = bss->information_elements;
|
||||
ie_len = bss->len_information_elements;
|
||||
+#else
|
||||
+ rcu_read_lock();
|
||||
+ ies = (const struct cfg80211_bss_ies*)rcu_dereference(bss->ies);
|
||||
+ if (!ies) {
|
||||
+ /* This should never happen */
|
||||
+ rcu_read_unlock();
|
||||
+ err = -EIO;
|
||||
+ goto update_bss_info_out;
|
||||
+ }
|
||||
+ ie = ies->data;
|
||||
+ ie_len = (size_t)(ies->len);
|
||||
+ rcu_read_unlock();
|
||||
+#endif
|
||||
beacon_interval = bss->beacon_interval;
|
||||
cfg80211_put_bss(bss);
|
||||
}
|
||||
diff --git a/x86-64/src/include/bcmutils.h b/x86-64/src/include/bcmutils.h
|
||||
index fa6df04..1200bf0 100644
|
||||
--- a/x86-64/src/include/bcmutils.h
|
||||
+++ b/x86-64/src/include/bcmutils.h
|
||||
@@ -555,7 +555,11 @@ extern void printbig(char *buf);
|
||||
extern void prhex(const char *msg, uchar *buf, uint len);
|
||||
|
||||
extern bcm_tlv_t *BCMROMFN(bcm_next_tlv)(bcm_tlv_t *elt, int *buflen);
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(void *buf, int buflen, uint key);
|
||||
+#else
|
||||
+extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(const void *buf, int buflen, uint key);
|
||||
+#endif
|
||||
extern bcm_tlv_t *BCMROMFN(bcm_parse_ordered_tlvs)(void *buf, int buflen, uint key);
|
||||
|
||||
extern const char *bcmerrorstr(int bcmerror);
|
||||
diff --git a/x86-64/src/wl/sys/wl_cfg80211.c b/x86-64/src/wl/sys/wl_cfg80211.c
|
||||
index 94aac25..244243f 100644
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211.c
|
||||
@@ -744,7 +744,11 @@ wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
else
|
||||
memset(&join_params.params.bssid, 0, ETHER_ADDR_LEN);
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
wl_ch_to_chanspec(params->channel, &join_params, &join_params_size);
|
||||
+#else
|
||||
+ wl_ch_to_chanspec(params->chandef.chan, &join_params, &join_params_size);
|
||||
+#endif
|
||||
|
||||
err = wl_dev_ioctl(dev, WLC_SET_SSID, &join_params, join_params_size);
|
||||
if (err) {
|
||||
@@ -2047,9 +2051,14 @@ static s32 wl_update_bss_info(struct wl_priv *wl)
|
||||
struct bcm_tlv *tim;
|
||||
u16 beacon_interval;
|
||||
s32 dtim_period;
|
||||
+ s32 err = 0;
|
||||
size_t ie_len;
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
u8 *ie;
|
||||
- s32 err = 0;
|
||||
+#else
|
||||
+ const u8 *ie;
|
||||
+ const struct cfg80211_bss_ies *ies;
|
||||
+#endif
|
||||
|
||||
ssid = &wl->profile->ssid;
|
||||
bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid,
|
||||
@@ -2079,8 +2088,22 @@ static s32 wl_update_bss_info(struct wl_priv *wl)
|
||||
beacon_interval = cpu_to_le16(bi->beacon_period);
|
||||
} else {
|
||||
WL_DBG(("Found the AP in the list - BSSID %pM\n", bss->bssid));
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
ie = bss->information_elements;
|
||||
ie_len = bss->len_information_elements;
|
||||
+#else
|
||||
+ rcu_read_lock();
|
||||
+ ies = (const struct cfg80211_bss_ies*)rcu_dereference(bss->ies);
|
||||
+ if (!ies) {
|
||||
+ /* This should never happen */
|
||||
+ rcu_read_unlock();
|
||||
+ err = -EIO;
|
||||
+ goto update_bss_info_out;
|
||||
+ }
|
||||
+ ie = ies->data;
|
||||
+ ie_len = (size_t)(ies->len);
|
||||
+ rcu_read_unlock();
|
||||
+#endif
|
||||
beacon_interval = bss->beacon_interval;
|
||||
cfg80211_put_bss(bss);
|
||||
}
|
||||
--
|
||||
1.7.2.5
|
||||
|
@ -1,30 +0,0 @@
|
||||
diff -Naur bcm_sta-5.100.82.112/x86-32/src/wl/sys/wl_cfg80211.c bcm_sta-5.100.82.112.patch/x86-32/src/wl/sys/wl_cfg80211.c
|
||||
--- bcm_sta-5.100.82.112/x86-32/src/wl/sys/wl_cfg80211.c 2011-10-22 18:55:54.000000000 +0200
|
||||
+++ bcm_sta-5.100.82.112.patch/x86-32/src/wl/sys/wl_cfg80211.c 2013-05-06 07:03:19.146764181 +0200
|
||||
@@ -2077,7 +2077,11 @@
|
||||
ie = bss->information_elements;
|
||||
ie_len = bss->len_information_elements;
|
||||
beacon_interval = bss->beacon_interval;
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
|
||||
cfg80211_put_bss(bss);
|
||||
+#else
|
||||
+ cfg80211_put_bss(wl_to_wiphy(wl), bss);
|
||||
+#endif
|
||||
}
|
||||
|
||||
tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
|
||||
diff -Naur bcm_sta-5.100.82.112/x86-64/src/wl/sys/wl_cfg80211.c bcm_sta-5.100.82.112.patch/x86-64/src/wl/sys/wl_cfg80211.c
|
||||
--- bcm_sta-5.100.82.112/x86-64/src/wl/sys/wl_cfg80211.c 2011-10-22 18:56:55.000000000 +0200
|
||||
+++ bcm_sta-5.100.82.112.patch/x86-64/src/wl/sys/wl_cfg80211.c 2013-05-06 07:03:55.443652962 +0200
|
||||
@@ -2077,7 +2077,11 @@
|
||||
ie = bss->information_elements;
|
||||
ie_len = bss->len_information_elements;
|
||||
beacon_interval = bss->beacon_interval;
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
|
||||
cfg80211_put_bss(bss);
|
||||
+#else
|
||||
+ cfg80211_put_bss(wl_to_wiphy(wl), bss);
|
||||
+#endif
|
||||
}
|
||||
|
||||
tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
|
256
packages/linux-drivers/bcm_sta/patches/6.20.155.1/bcm_sta-010-add-support-for-linux-3.10.0.patch
vendored
Normal file
256
packages/linux-drivers/bcm_sta/patches/6.20.155.1/bcm_sta-010-add-support-for-linux-3.10.0.patch
vendored
Normal file
@ -0,0 +1,256 @@
|
||||
diff --git a/x86-32/src/wl/sys/wl_linux.c b/x86-32/src/wl/sys/wl_linux.c
|
||||
index 9ee69e1..409bda7 100644
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c
|
||||
@@ -2693,7 +2693,7 @@ wl_tkip_keyset(wl_info_t *wl, wsec_key_t *key)
|
||||
void
|
||||
wl_tkip_printstats(wl_info_t *wl, bool group_key)
|
||||
{
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
char debug_buf[512];
|
||||
int idx;
|
||||
if (wl->tkipmodops) {
|
||||
@@ -2855,6 +2855,7 @@ wl_linux_watchdog(void *ctx)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
static int
|
||||
wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
|
||||
{
|
||||
@@ -2909,18 +2910,89 @@ wl_proc_write(struct file *filp, const char *buff, unsigned long length, void *d
|
||||
return length;
|
||||
}
|
||||
|
||||
+#else
|
||||
+
|
||||
+static int
|
||||
+wl_proc_read(struct seq_file *seq, void *offset)
|
||||
+{
|
||||
+ wl_info_t * wl = (wl_info_t *)seq->private;
|
||||
+ int bcmerror, to_user;
|
||||
+
|
||||
+ WL_LOCK(wl);
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
|
||||
+ WL_UNLOCK(wl);
|
||||
+
|
||||
+ seq_printf(seq, "%d\n", to_user);
|
||||
+ return bcmerror;
|
||||
+}
|
||||
+
|
||||
+static ssize_t wl_proc_write(struct file *file, const char __user *buff,
|
||||
+ size_t length, loff_t *ppos)
|
||||
+{
|
||||
+ struct seq_file *seq = file->private_data;
|
||||
+ wl_info_t * wl = (wl_info_t *)seq->private;
|
||||
+ int bcmerror, from_user = 0;
|
||||
+
|
||||
+ if (length != 1) {
|
||||
+ WL_ERROR(("%s: Invalid data length\n", __FUNCTION__));
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+
|
||||
+ if (copy_from_user(&from_user, buff, 1)) {
|
||||
+ WL_ERROR(("%s: copy from user failed\n", __FUNCTION__));
|
||||
+ return -EFAULT;
|
||||
+ }
|
||||
+
|
||||
+ if (from_user >= 0x30)
|
||||
+ from_user -= 0x30;
|
||||
+
|
||||
+ WL_LOCK(wl);
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL);
|
||||
+ WL_UNLOCK(wl);
|
||||
+
|
||||
+ if (bcmerror < 0) {
|
||||
+ WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+ *ppos += length;
|
||||
+ return length;
|
||||
+}
|
||||
+
|
||||
+static int wl_proc_open(struct inode *inode, struct file *file)
|
||||
+{
|
||||
+ return single_open(file, wl_proc_read, PDE_DATA(inode));
|
||||
+}
|
||||
+
|
||||
+static const struct file_operations wl_proc_fops = {
|
||||
+ .owner = THIS_MODULE,
|
||||
+ .open = wl_proc_open,
|
||||
+ .read = seq_read,
|
||||
+ .write = wl_proc_write,
|
||||
+ .llseek = seq_lseek,
|
||||
+ .release = single_release,
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
static int
|
||||
wl_reg_proc_entry(wl_info_t *wl)
|
||||
{
|
||||
char tmp[32];
|
||||
sprintf(tmp, "%s%d", HYBRID_PROC, wl->pub->unit);
|
||||
- if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
|
||||
+
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
+ wl->proc_entry = create_proc_entry(tmp, 0644, NULL);
|
||||
+ if (wl->proc_entry) {
|
||||
+ wl->proc_entry->read_proc = wl_proc_read;
|
||||
+ wl->proc_entry->write_proc = wl_proc_write;
|
||||
+ wl->proc_entry->data = wl;
|
||||
+ }
|
||||
+#else
|
||||
+ wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_proc_fops, wl);
|
||||
+#endif
|
||||
+ if (!wl->proc_entry) {
|
||||
WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
|
||||
ASSERT(0);
|
||||
return -1;
|
||||
}
|
||||
- wl->proc_entry->read_proc = wl_proc_read;
|
||||
- wl->proc_entry->write_proc = wl_proc_write;
|
||||
- wl->proc_entry->data = wl;
|
||||
return 0;
|
||||
}
|
||||
diff --git a/x86-32/src/wl/sys/wl_linux.c.orig b/x86-32/src/wl/sys/wl_linux.c.orig
|
||||
index 38206ab..9ee69e1 100644
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c.orig
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c.orig
|
||||
@@ -219,7 +219,7 @@ module_param(nompc, int, 0);
|
||||
#define quote_str(s) to_str(s)
|
||||
|
||||
#ifndef BRCM_WLAN_IFNAME
|
||||
-#define BRCM_WLAN_IFNAME eth%d
|
||||
+#define BRCM_WLAN_IFNAME wlan%d
|
||||
#endif
|
||||
|
||||
static char intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
||||
diff --git a/x86-64/src/wl/sys/wl_linux.c b/x86-64/src/wl/sys/wl_linux.c
|
||||
index 9ee69e1..409bda7 100644
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c
|
||||
@@ -2693,7 +2693,7 @@ wl_tkip_keyset(wl_info_t *wl, wsec_key_t *key)
|
||||
void
|
||||
wl_tkip_printstats(wl_info_t *wl, bool group_key)
|
||||
{
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
char debug_buf[512];
|
||||
int idx;
|
||||
if (wl->tkipmodops) {
|
||||
@@ -2855,6 +2855,7 @@ wl_linux_watchdog(void *ctx)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
static int
|
||||
wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
|
||||
{
|
||||
@@ -2909,18 +2910,89 @@ wl_proc_write(struct file *filp, const char *buff, unsigned long length, void *d
|
||||
return length;
|
||||
}
|
||||
|
||||
+#else
|
||||
+
|
||||
+static int
|
||||
+wl_proc_read(struct seq_file *seq, void *offset)
|
||||
+{
|
||||
+ wl_info_t * wl = (wl_info_t *)seq->private;
|
||||
+ int bcmerror, to_user;
|
||||
+
|
||||
+ WL_LOCK(wl);
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
|
||||
+ WL_UNLOCK(wl);
|
||||
+
|
||||
+ seq_printf(seq, "%d\n", to_user);
|
||||
+ return bcmerror;
|
||||
+}
|
||||
+
|
||||
+static ssize_t wl_proc_write(struct file *file, const char __user *buff,
|
||||
+ size_t length, loff_t *ppos)
|
||||
+{
|
||||
+ struct seq_file *seq = file->private_data;
|
||||
+ wl_info_t * wl = (wl_info_t *)seq->private;
|
||||
+ int bcmerror, from_user = 0;
|
||||
+
|
||||
+ if (length != 1) {
|
||||
+ WL_ERROR(("%s: Invalid data length\n", __FUNCTION__));
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+
|
||||
+ if (copy_from_user(&from_user, buff, 1)) {
|
||||
+ WL_ERROR(("%s: copy from user failed\n", __FUNCTION__));
|
||||
+ return -EFAULT;
|
||||
+ }
|
||||
+
|
||||
+ if (from_user >= 0x30)
|
||||
+ from_user -= 0x30;
|
||||
+
|
||||
+ WL_LOCK(wl);
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL);
|
||||
+ WL_UNLOCK(wl);
|
||||
+
|
||||
+ if (bcmerror < 0) {
|
||||
+ WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+ *ppos += length;
|
||||
+ return length;
|
||||
+}
|
||||
+
|
||||
+static int wl_proc_open(struct inode *inode, struct file *file)
|
||||
+{
|
||||
+ return single_open(file, wl_proc_read, PDE_DATA(inode));
|
||||
+}
|
||||
+
|
||||
+static const struct file_operations wl_proc_fops = {
|
||||
+ .owner = THIS_MODULE,
|
||||
+ .open = wl_proc_open,
|
||||
+ .read = seq_read,
|
||||
+ .write = wl_proc_write,
|
||||
+ .llseek = seq_lseek,
|
||||
+ .release = single_release,
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
static int
|
||||
wl_reg_proc_entry(wl_info_t *wl)
|
||||
{
|
||||
char tmp[32];
|
||||
sprintf(tmp, "%s%d", HYBRID_PROC, wl->pub->unit);
|
||||
- if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
|
||||
+
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
+ wl->proc_entry = create_proc_entry(tmp, 0644, NULL);
|
||||
+ if (wl->proc_entry) {
|
||||
+ wl->proc_entry->read_proc = wl_proc_read;
|
||||
+ wl->proc_entry->write_proc = wl_proc_write;
|
||||
+ wl->proc_entry->data = wl;
|
||||
+ }
|
||||
+#else
|
||||
+ wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_proc_fops, wl);
|
||||
+#endif
|
||||
+ if (!wl->proc_entry) {
|
||||
WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
|
||||
ASSERT(0);
|
||||
return -1;
|
||||
}
|
||||
- wl->proc_entry->read_proc = wl_proc_read;
|
||||
- wl->proc_entry->write_proc = wl_proc_write;
|
||||
- wl->proc_entry->data = wl;
|
||||
return 0;
|
||||
}
|
||||
diff --git a/x86-64/src/wl/sys/wl_linux.c.orig b/x86-64/src/wl/sys/wl_linux.c.orig
|
||||
index 38206ab..9ee69e1 100644
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c.orig
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c.orig
|
||||
@@ -219,7 +219,7 @@ module_param(nompc, int, 0);
|
||||
#define quote_str(s) to_str(s)
|
||||
|
||||
#ifndef BRCM_WLAN_IFNAME
|
||||
-#define BRCM_WLAN_IFNAME eth%d
|
||||
+#define BRCM_WLAN_IFNAME wlan%d
|
||||
#endif
|
||||
|
||||
static char intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
@ -19,13 +19,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="dvbhdhomerun"
|
||||
PKG_VERSION="0.0.15"
|
||||
PKG_VERSION="20130704"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://sourceforge.net/projects/dvbhdhomerun/"
|
||||
# PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
PKG_URL="$SOURCEFORGE_SRC/project/dvbhdhomerun/${PKG_NAME}_${PKG_VERSION}.tar.gz"
|
||||
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
# PKG_URL="$SOURCEFORGE_SRC/project/dvbhdhomerun/${PKG_NAME}_${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain linux libhdhomerun"
|
||||
PKG_PRIORITY="optional"
|
||||
|
@ -70,6 +70,7 @@ if [ "$PERF_SUPPORT" = "yes" -a "$DEVTOOLS" = "yes" ]; then
|
||||
NO_LIBPYTHON=false \
|
||||
PYTHON=$SYSROOT_PREFIX/usr/bin/python \
|
||||
WERROR=0 \
|
||||
NO_SLANG=1 \
|
||||
)
|
||||
fi
|
||||
|
||||
|
@ -34,7 +34,7 @@ case "$LINUX" in
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="3.9.8"
|
||||
PKG_VERSION="3.10"
|
||||
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
;;
|
||||
esac
|
||||
@ -55,5 +55,5 @@ PKG_AUTORECONF="no"
|
||||
|
||||
if [ "$DEVTOOLS" = "yes" ]; then
|
||||
PKG_DEPENDS="$PKG_DEPENDS Python"
|
||||
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS newt slang elfutils Python"
|
||||
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS elfutils Python"
|
||||
fi
|
||||
|
@ -1,12 +1,13 @@
|
||||
diff -Naur linux-2.6.34-rc7/init/main.c linux-2.6.34-rc7.patch/init/main.c
|
||||
--- linux-2.6.34-rc7/init/main.c 2010-05-10 03:36:28.000000000 +0200
|
||||
+++ linux-2.6.34-rc7.patch/init/main.c 2010-05-15 12:28:34.767241760 +0200
|
||||
@@ -886,8 +886,14 @@
|
||||
diff --git a/init/main.c b/init/main.c
|
||||
index 9484f4b..db55edd 100644
|
||||
--- a/init/main.c
|
||||
+++ b/init/main.c
|
||||
@@ -880,8 +880,14 @@ static noinline void __init kernel_init_freeable(void)
|
||||
do_basic_setup();
|
||||
|
||||
/* Open the /dev/console on the rootfs, this should never fail */
|
||||
- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
|
||||
- printk(KERN_WARNING "Warning: unable to open an initial console.\n");
|
||||
- pr_err("Warning: unable to open an initial console.\n");
|
||||
+ char *console = "/dev_console";
|
||||
+
|
||||
+ if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) {
|
18
packages/linux/patches/3.10/linux-010-perf_crosscompiling.patch
vendored
Normal file
18
packages/linux/patches/3.10/linux-010-perf_crosscompiling.patch
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
|
||||
index b0f164b..ecb1af6 100644
|
||||
--- a/tools/perf/Makefile
|
||||
+++ b/tools/perf/Makefile
|
||||
@@ -687,12 +687,10 @@ ifndef NO_LIBAUDIT
|
||||
endif
|
||||
|
||||
ifndef NO_SLANG
|
||||
- FLAGS_SLANG=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -I/usr/include/slang -lslang
|
||||
+ FLAGS_SLANG=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lslang
|
||||
ifneq ($(call try-cc,$(SOURCE_SLANG),$(FLAGS_SLANG),libslang),y)
|
||||
msg := $(warning slang not found, disables TUI support. Please install slang-devel or libslang-dev);
|
||||
else
|
||||
- # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
|
||||
- BASIC_CFLAGS += -I/usr/include/slang
|
||||
BASIC_CFLAGS += -DSLANG_SUPPORT
|
||||
EXTLIBS += -lslang
|
||||
LIB_OBJS += $(OUTPUT)ui/browser.o
|
@ -1,7 +1,62 @@
|
||||
diff -Naur linux-3.9.8/drivers/hid/hid-core.c linux-3.9.8.patch/drivers/hid/hid-core.c
|
||||
--- linux-3.9.8/drivers/hid/hid-core.c 2013-06-27 19:41:32.000000000 +0200
|
||||
+++ linux-3.9.8.patch/drivers/hid/hid-core.c 2013-06-29 14:25:21.160976576 +0200
|
||||
@@ -1697,6 +1697,8 @@
|
||||
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
||||
index 427b759..22d320e 100644
|
||||
--- a/drivers/hid/Kconfig
|
||||
+++ b/drivers/hid/Kconfig
|
||||
@@ -561,15 +561,6 @@ config HID_PRIMAX
|
||||
Support for Primax devices that are not fully compliant with the
|
||||
HID standard.
|
||||
|
||||
-config HID_PS3REMOTE
|
||||
- tristate "Sony PS3 BD Remote Control"
|
||||
- depends on HID
|
||||
- ---help---
|
||||
- Support for the Sony PS3 Blue-ray Disk Remote Control and Logitech
|
||||
- Harmony Adapter for PS3, which connect over Bluetooth.
|
||||
-
|
||||
- Support for the 6-axis controllers is provided by HID_SONY.
|
||||
-
|
||||
config HID_ROCCAT
|
||||
tristate "Roccat device support"
|
||||
depends on USB_HID
|
||||
@@ -594,12 +585,17 @@ config HID_SAMSUNG
|
||||
Support for Samsung InfraRed remote control or keyboards.
|
||||
|
||||
config HID_SONY
|
||||
- tristate "Sony PS3 controller"
|
||||
+ tristate "Sony PS2/3 accessories"
|
||||
depends on USB_HID
|
||||
+ depends on NEW_LEDS
|
||||
+ depends on LEDS_CLASS
|
||||
---help---
|
||||
- Support for Sony PS3 6-axis controllers.
|
||||
-
|
||||
- Support for the Sony PS3 BD Remote is provided by HID_PS3REMOTE.
|
||||
+ Support for
|
||||
+
|
||||
+ * Sony PS3 6-axis controllers
|
||||
+ * Buzz controllers
|
||||
+ * Sony PS3 Blue-ray Disk Remote Control (Bluetooth)
|
||||
+ * Logitech Harmony adapter for Sony Playstation 3 (Bluetooth)
|
||||
|
||||
config HID_SPEEDLINK
|
||||
tristate "Speedlink VAD Cezanne mouse support"
|
||||
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
||||
index b545124..419b7ca 100644
|
||||
--- a/drivers/hid/Makefile
|
||||
+++ b/drivers/hid/Makefile
|
||||
@@ -92,7 +92,6 @@ hid-picolcd-y += hid-picolcd_debugfs.o
|
||||
endif
|
||||
|
||||
obj-$(CONFIG_HID_PRIMAX) += hid-primax.o
|
||||
-obj-$(CONFIG_HID_PS3REMOTE) += hid-ps3remote.o
|
||||
obj-$(CONFIG_HID_ROCCAT) += hid-roccat.o hid-roccat-common.o \
|
||||
hid-roccat-arvo.o hid-roccat-isku.o hid-roccat-kone.o \
|
||||
hid-roccat-koneplus.o hid-roccat-konepure.o hid-roccat-kovaplus.o \
|
||||
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
|
||||
index b885a28..37e35c0 100644
|
||||
--- a/drivers/hid/hid-core.c
|
||||
+++ b/drivers/hid/hid-core.c
|
||||
@@ -1683,6 +1683,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SKYCABLE, USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER) },
|
||||
@ -10,10 +65,11 @@ diff -Naur linux-3.9.8/drivers/hid/hid-core.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_BDREMOTE) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER) },
|
||||
diff -Naur linux-3.9.8/drivers/hid/hid-ids.h linux-3.9.8.patch/drivers/hid/hid-ids.h
|
||||
--- linux-3.9.8/drivers/hid/hid-ids.h 2013-06-27 19:41:32.000000000 +0200
|
||||
+++ linux-3.9.8.patch/drivers/hid/hid-ids.h 2013-06-29 14:25:21.161976575 +0200
|
||||
@@ -727,6 +727,8 @@
|
||||
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
||||
index 56b224e..c11cca1 100644
|
||||
--- a/drivers/hid/hid-ids.h
|
||||
+++ b/drivers/hid/hid-ids.h
|
||||
@@ -737,6 +737,8 @@
|
||||
#define USB_DEVICE_ID_SONY_PS3_BDREMOTE 0x0306
|
||||
#define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268
|
||||
#define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER 0x042f
|
||||
@ -22,9 +78,11 @@ diff -Naur linux-3.9.8/drivers/hid/hid-ids.h linux-3.9.8.patch/drivers/hid/hid-i
|
||||
|
||||
#define USB_VENDOR_ID_SOUNDGRAPH 0x15c2
|
||||
#define USB_DEVICE_ID_SOUNDGRAPH_IMON_FIRST 0x0034
|
||||
diff -Naur linux-3.9.8/drivers/hid/hid-ps3remote.c linux-3.9.8.patch/drivers/hid/hid-ps3remote.c
|
||||
--- linux-3.9.8/drivers/hid/hid-ps3remote.c 2013-06-27 19:41:32.000000000 +0200
|
||||
+++ linux-3.9.8.patch/drivers/hid/hid-ps3remote.c 1970-01-01 01:00:00.000000000 +0100
|
||||
diff --git a/drivers/hid/hid-ps3remote.c b/drivers/hid/hid-ps3remote.c
|
||||
deleted file mode 100644
|
||||
index f1239d3..0000000
|
||||
--- a/drivers/hid/hid-ps3remote.c
|
||||
+++ /dev/null
|
||||
@@ -1,204 +0,0 @@
|
||||
-/*
|
||||
- * HID driver for Sony PS3 BD Remote Control
|
||||
@ -230,9 +288,10 @@ diff -Naur linux-3.9.8/drivers/hid/hid-ps3remote.c linux-3.9.8.patch/drivers/hid
|
||||
-
|
||||
-MODULE_LICENSE("GPL");
|
||||
-MODULE_AUTHOR("David Dillow <dave@thedillows.org>, Antonio Ospite <ospite@studenti.unina.it>");
|
||||
diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-sony.c
|
||||
--- linux-3.9.8/drivers/hid/hid-sony.c 2013-06-27 19:41:32.000000000 +0200
|
||||
+++ linux-3.9.8.patch/drivers/hid/hid-sony.c 2013-06-29 14:26:02.738933634 +0200
|
||||
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
|
||||
index 312098e..83f9629 100644
|
||||
--- a/drivers/hid/hid-sony.c
|
||||
+++ b/drivers/hid/hid-sony.c
|
||||
@@ -1,11 +1,13 @@
|
||||
/*
|
||||
- * HID driver for some sony "special" devices
|
||||
@ -278,7 +337,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
|
||||
static const u8 sixaxis_rdesc_fixup[] = {
|
||||
0x95, 0x13, 0x09, 0x01, 0x81, 0x02, 0x95, 0x0C,
|
||||
@@ -55,10 +68,214 @@
|
||||
@@ -55,10 +68,214 @@ static const u8 sixaxis_rdesc_fixup2[] = {
|
||||
0xb1, 0x02, 0xc0, 0xc0,
|
||||
};
|
||||
|
||||
@ -441,13 +500,13 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
unsigned long quirks;
|
||||
+
|
||||
+ void *extra;
|
||||
+};
|
||||
+
|
||||
};
|
||||
|
||||
+struct buzz_extra {
|
||||
+ int led_state;
|
||||
+ struct led_classdev *leds[4];
|
||||
};
|
||||
|
||||
+};
|
||||
+
|
||||
+static __u8 *ps3remote_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
+ unsigned int *rsize)
|
||||
+{
|
||||
@ -493,7 +552,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
/* Sony Vaio VGX has wrongly mouse pointer declared as constant */
|
||||
static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
unsigned int *rsize)
|
||||
@@ -95,6 +312,10 @@
|
||||
@@ -95,6 +312,10 @@ static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
*rsize = sizeof(sixaxis_rdesc_fixup2);
|
||||
memcpy(rdesc, &sixaxis_rdesc_fixup2, *rsize);
|
||||
}
|
||||
@ -504,7 +563,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
return rdesc;
|
||||
}
|
||||
|
||||
@@ -117,6 +338,41 @@
|
||||
@@ -117,6 +338,41 @@ static int sony_raw_event(struct hid_device *hdev, struct hid_report *report,
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -546,7 +605,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
/*
|
||||
* The Sony Sixaxis does not handle HID Output Reports on the Interrupt EP
|
||||
* like it should according to usbhid/hid-core.c::usbhid_output_raw_report()
|
||||
@@ -192,11 +448,181 @@
|
||||
@@ -192,11 +448,181 @@ static int sixaxis_set_operational_bt(struct hid_device *hdev)
|
||||
return hdev->hid_output_raw_report(hdev, buf, sizeof(buf), HID_FEATURE_REPORT);
|
||||
}
|
||||
|
||||
@ -565,7 +624,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
+ value[4] = (leds & 8) ? 0xff : 0x00;
|
||||
+ value[5] = 0x00;
|
||||
+ value[6] = 0x00;
|
||||
+ usbhid_submit_report(hdev, report, USB_DIR_OUT);
|
||||
+ hid_hw_request(hdev, report, HID_REQ_SET_REPORT);
|
||||
+}
|
||||
+
|
||||
+static void buzz_led_set_brightness(struct led_classdev *led,
|
||||
@ -728,7 +787,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
|
||||
sc = kzalloc(sizeof(*sc), GFP_KERNEL);
|
||||
if (sc == NULL) {
|
||||
@@ -213,8 +639,14 @@
|
||||
@@ -213,8 +639,14 @@ static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
@ -745,7 +804,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
if (ret) {
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
goto err_free;
|
||||
@@ -226,6 +658,8 @@
|
||||
@@ -226,6 +658,8 @@ static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
}
|
||||
else if (sc->quirks & SIXAXIS_CONTROLLER_BT)
|
||||
ret = sixaxis_set_operational_bt(hdev);
|
||||
@ -754,7 +813,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
else
|
||||
ret = 0;
|
||||
|
||||
@@ -242,8 +676,13 @@
|
||||
@@ -242,8 +676,13 @@ err_free:
|
||||
|
||||
static void sony_remove(struct hid_device *hdev)
|
||||
{
|
||||
@ -769,7 +828,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
}
|
||||
|
||||
static const struct hid_device_id sony_devices[] = {
|
||||
@@ -257,17 +696,30 @@
|
||||
@@ -257,17 +696,30 @@ static const struct hid_device_id sony_devices[] = {
|
||||
.driver_data = VAIO_RDESC_CONSTANT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE),
|
||||
.driver_data = VAIO_RDESC_CONSTANT },
|
||||
@ -806,55 +865,3 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
|
||||
};
|
||||
module_hid_driver(sony_driver);
|
||||
|
||||
diff -Naur linux-3.9.8/drivers/hid/Kconfig linux-3.9.8.patch/drivers/hid/Kconfig
|
||||
--- linux-3.9.8/drivers/hid/Kconfig 2013-06-27 19:41:32.000000000 +0200
|
||||
+++ linux-3.9.8.patch/drivers/hid/Kconfig 2013-06-29 14:25:21.173976563 +0200
|
||||
@@ -550,15 +550,6 @@
|
||||
Support for Primax devices that are not fully compliant with the
|
||||
HID standard.
|
||||
|
||||
-config HID_PS3REMOTE
|
||||
- tristate "Sony PS3 BD Remote Control"
|
||||
- depends on BT_HIDP
|
||||
- ---help---
|
||||
- Support for the Sony PS3 Blue-ray Disk Remote Control and Logitech
|
||||
- Harmony Adapter for PS3, which connect over Bluetooth.
|
||||
-
|
||||
- Support for the 6-axis controllers is provided by HID_SONY.
|
||||
-
|
||||
config HID_ROCCAT
|
||||
tristate "Roccat device support"
|
||||
depends on USB_HID
|
||||
@@ -583,12 +574,17 @@
|
||||
Support for Samsung InfraRed remote control or keyboards.
|
||||
|
||||
config HID_SONY
|
||||
- tristate "Sony PS3 controller"
|
||||
+ tristate "Sony PS2/3 accessories"
|
||||
depends on USB_HID
|
||||
+ depends on NEW_LEDS
|
||||
+ depends on LEDS_CLASS
|
||||
---help---
|
||||
- Support for Sony PS3 6-axis controllers.
|
||||
-
|
||||
- Support for the Sony PS3 BD Remote is provided by HID_PS3REMOTE.
|
||||
+ Support for
|
||||
+
|
||||
+ * Sony PS3 6-axis controllers
|
||||
+ * Buzz controllers
|
||||
+ * Sony PS3 Blue-ray Disk Remote Control (Bluetooth)
|
||||
+ * Logitech Harmony adapter for Sony Playstation 3 (Bluetooth)
|
||||
|
||||
config HID_SPEEDLINK
|
||||
tristate "Speedlink VAD Cezanne mouse support"
|
||||
diff -Naur linux-3.9.8/drivers/hid/Makefile linux-3.9.8.patch/drivers/hid/Makefile
|
||||
--- linux-3.9.8/drivers/hid/Makefile 2013-06-27 19:41:32.000000000 +0200
|
||||
+++ linux-3.9.8.patch/drivers/hid/Makefile 2013-06-29 14:25:21.174976562 +0200
|
||||
@@ -91,7 +91,6 @@
|
||||
endif
|
||||
|
||||
obj-$(CONFIG_HID_PRIMAX) += hid-primax.o
|
||||
-obj-$(CONFIG_HID_PS3REMOTE) += hid-ps3remote.o
|
||||
obj-$(CONFIG_HID_ROCCAT) += hid-roccat.o hid-roccat-common.o \
|
||||
hid-roccat-arvo.o hid-roccat-isku.o hid-roccat-kone.o \
|
||||
hid-roccat-koneplus.o hid-roccat-kovaplus.o hid-roccat-lua.o \
|
14
packages/linux/patches/3.10/linux-060-add_AUGUST_DVB-T205.patch
vendored
Normal file
14
packages/linux/patches/3.10/linux-060-add_AUGUST_DVB-T205.patch
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
||||
index 2cc8ec7..985fa11 100644
|
||||
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
||||
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
||||
@@ -1408,6 +1408,9 @@ static const struct usb_device_id rtl28xxu_id_table[] = {
|
||||
&rtl2832u_props, "Compro VideoMate U620F", NULL) },
|
||||
{ DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd394,
|
||||
&rtl2832u_props, "MaxMedia HU394-T", NULL) },
|
||||
+ { DVB_USB_DEVICE(USB_VID_GTEK, 0xa803,
|
||||
+ &rtl2832u_props, "Realtek RTL2832U reference design", NULL) },
|
||||
+
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);
|
@ -4757,8 +4757,8 @@ diff -urN a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/
|
||||
#include "mt2063.h"
|
||||
-#include "stv090x.h"
|
||||
-#include "stb6100.h"
|
||||
+#include "stv090x.h"
|
||||
+#include "stb6100.h"
|
||||
+#include "stv090x.h"
|
||||
+#include "stb6100.h"
|
||||
#include "stb6100_cfg.h"
|
||||
#include "tda10071.h"
|
||||
#include "a8293.h"
|
||||
@ -4882,40 +4882,40 @@ diff -urN a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/
|
||||
+ .ts_mode = 3,
|
||||
+};
|
||||
+
|
||||
+static struct stv090x_config prof_8000_stv090x_config = {
|
||||
+ .device = STV0903,
|
||||
+ .demod_mode = STV090x_SINGLE,
|
||||
+ .clk_mode = STV090x_CLK_EXT,
|
||||
+ .xtal = 27000000,
|
||||
+ .address = 0x6A,
|
||||
+ .ts1_mode = STV090x_TSMODE_PARALLEL_PUNCTURED,
|
||||
+ .repeater_level = STV090x_RPTLEVEL_64,
|
||||
+ .adc1_range = STV090x_ADC_2Vpp,
|
||||
+ .diseqc_envelope_mode = false,
|
||||
+
|
||||
+ .tuner_get_frequency = stb6100_get_frequency,
|
||||
+ .tuner_set_frequency = stb6100_set_frequency,
|
||||
+ .tuner_set_bandwidth = stb6100_set_bandwidth,
|
||||
+ .tuner_get_bandwidth = stb6100_get_bandwidth,
|
||||
+};
|
||||
+
|
||||
+static struct stb6100_config prof_8000_stb6100_config = {
|
||||
+ .tuner_address = 0x60,
|
||||
+ .refclock = 27000000,
|
||||
+};
|
||||
+
|
||||
+static int p8000_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
|
||||
+{
|
||||
+ struct cx23885_tsport *port = fe->dvb->priv;
|
||||
+ struct cx23885_dev *dev = port->dev;
|
||||
+
|
||||
+ if (voltage == SEC_VOLTAGE_18)
|
||||
+ cx_write(MC417_RWD, 0x00001e00);
|
||||
+ else if (voltage == SEC_VOLTAGE_13)
|
||||
+ cx_write(MC417_RWD, 0x00001a00);
|
||||
+ else
|
||||
+ cx_write(MC417_RWD, 0x00001800);
|
||||
+ return 0;
|
||||
+static struct stv090x_config prof_8000_stv090x_config = {
|
||||
+ .device = STV0903,
|
||||
+ .demod_mode = STV090x_SINGLE,
|
||||
+ .clk_mode = STV090x_CLK_EXT,
|
||||
+ .xtal = 27000000,
|
||||
+ .address = 0x6A,
|
||||
+ .ts1_mode = STV090x_TSMODE_PARALLEL_PUNCTURED,
|
||||
+ .repeater_level = STV090x_RPTLEVEL_64,
|
||||
+ .adc1_range = STV090x_ADC_2Vpp,
|
||||
+ .diseqc_envelope_mode = false,
|
||||
+
|
||||
+ .tuner_get_frequency = stb6100_get_frequency,
|
||||
+ .tuner_set_frequency = stb6100_set_frequency,
|
||||
+ .tuner_set_bandwidth = stb6100_set_bandwidth,
|
||||
+ .tuner_get_bandwidth = stb6100_get_bandwidth,
|
||||
+};
|
||||
+
|
||||
+static struct stb6100_config prof_8000_stb6100_config = {
|
||||
+ .tuner_address = 0x60,
|
||||
+ .refclock = 27000000,
|
||||
+};
|
||||
+
|
||||
+static int p8000_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
|
||||
+{
|
||||
+ struct cx23885_tsport *port = fe->dvb->priv;
|
||||
+ struct cx23885_dev *dev = port->dev;
|
||||
+
|
||||
+ if (voltage == SEC_VOLTAGE_18)
|
||||
+ cx_write(MC417_RWD, 0x00001e00);
|
||||
+ else if (voltage == SEC_VOLTAGE_13)
|
||||
+ cx_write(MC417_RWD, 0x00001a00);
|
||||
+ else
|
||||
+ cx_write(MC417_RWD, 0x00001800);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int cx23885_dvb_set_frontend(struct dvb_frontend *fe)
|
||||
@ -4994,22 +4994,22 @@ diff -urN a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/
|
||||
}
|
||||
break;
|
||||
+
|
||||
+ case CX23885_BOARD_PROF_8000:
|
||||
+ i2c_bus = &dev->i2c_bus[0];
|
||||
+
|
||||
+ fe0->dvb.frontend = dvb_attach(stv090x_attach,
|
||||
+ &prof_8000_stv090x_config,
|
||||
+ &i2c_bus->i2c_adap,
|
||||
+ STV090x_DEMODULATOR_0);
|
||||
+ if (fe0->dvb.frontend != NULL) {
|
||||
+ if (!dvb_attach(stb6100_attach,
|
||||
+ fe0->dvb.frontend,
|
||||
+ &prof_8000_stb6100_config,
|
||||
+ &i2c_bus->i2c_adap))
|
||||
+ goto frontend_detach;
|
||||
+
|
||||
+ fe0->dvb.frontend->ops.set_voltage = p8000_set_voltage;
|
||||
+ }
|
||||
+ case CX23885_BOARD_PROF_8000:
|
||||
+ i2c_bus = &dev->i2c_bus[0];
|
||||
+
|
||||
+ fe0->dvb.frontend = dvb_attach(stv090x_attach,
|
||||
+ &prof_8000_stv090x_config,
|
||||
+ &i2c_bus->i2c_adap,
|
||||
+ STV090x_DEMODULATOR_0);
|
||||
+ if (fe0->dvb.frontend != NULL) {
|
||||
+ if (!dvb_attach(stb6100_attach,
|
||||
+ fe0->dvb.frontend,
|
||||
+ &prof_8000_stb6100_config,
|
||||
+ &i2c_bus->i2c_adap))
|
||||
+ goto frontend_detach;
|
||||
+
|
||||
+ fe0->dvb.frontend->ops.set_voltage = p8000_set_voltage;
|
||||
+ }
|
||||
+ break;
|
||||
case CX23885_BOARD_HAUPPAUGE_HVR4400:
|
||||
i2c_bus = &dev->i2c_bus[0];
|
File diff suppressed because it is too large
Load Diff
78
packages/linux/patches/3.10/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch
vendored
Normal file
78
packages/linux/patches/3.10/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch
vendored
Normal file
@ -0,0 +1,78 @@
|
||||
commit aad0b407edfef6e2527a9bb877ce754e1efb7b10
|
||||
Author: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Mon Jul 1 13:06:10 2013 +0300
|
||||
|
||||
ALSA: hda - Avoid outputting HDMI audio before prepare() and after close()
|
||||
|
||||
adapted to 3.10
|
||||
|
||||
From a6024295fd3290a8c9c5519a03316081ee82378a Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Date: Sat, 16 Feb 2013 17:42:46 +0200
|
||||
Subject: [PATCH] ALSA: hda - Avoid outputting HDMI audio before prepare() and
|
||||
after close()
|
||||
|
||||
Some HDMI codecs (at least NVIDIA 0x10de000b:0x10de0101:0x100100) start
|
||||
transmitting an empty audio stream as soon as PIN_OUT and AC_DIG1_ENABLE
|
||||
are enabled.
|
||||
|
||||
Since commit 6169b673618bf0b2518ce413b54925782a603f06 ("ALSA: hda -
|
||||
Always turn on pins for HDMI/DP") this happens at first open() time, and
|
||||
will continue even after close().
|
||||
|
||||
Additionally, some codecs (at least Intel PantherPoint HDMI) currently
|
||||
continue transmitting HDMI audio even after close() in case some actual
|
||||
audio was output after open() (this happens regardless of PIN_OUT).
|
||||
|
||||
Empty HDMI audio transmission when not intended has the effect that a
|
||||
possible HDMI audio sink/receiver may prefer the empty HDMI audio stream
|
||||
over an actual audio stream on its S/PDIF inputs.
|
||||
|
||||
To avoid the issue before first prepare(), set stream format to 0 on
|
||||
codec initialization. 0 is not a valid format value for HDMI and will
|
||||
prevent the audio stream from being output.
|
||||
|
||||
Additionally, at close() time, make sure that the stream is cleaned up.
|
||||
This will ensure that the format is reset to 0 at that time, preventing
|
||||
audio from being output in that case.
|
||||
|
||||
Thanks to OpenELEC developers and users for their help in investigating
|
||||
this issue on the affected NVIDIA "ION2" hardware. Testing of the final
|
||||
version on NVIDIA ION2 was done by OpenELEC user "MrXIII". Testing on
|
||||
Intel PantherPoint was done by myself.
|
||||
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Cc: stable@vger.kernel.org
|
||||
|
||||
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
|
||||
index e12f7a0..9bfdd51 100644
|
||||
--- a/sound/pci/hda/patch_hdmi.c
|
||||
+++ b/sound/pci/hda/patch_hdmi.c
|
||||
@@ -1360,6 +1360,14 @@ static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t cvt_nid)
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
+ /*
|
||||
+ * Some HDMI codecs (at least NVIDIA 0x10de000b:0x10de0101:0x100100)
|
||||
+ * start transmitting an empty audio stream as soon as PIN_OUT and
|
||||
+ * AC_DIG1_ENABLE are enabled, which happens at open() time.
|
||||
+ * To avoid that, set format to 0, which is not valid for HDMI.
|
||||
+ */
|
||||
+ snd_hda_codec_write(codec, cvt_nid, 0, AC_VERB_SET_STREAM_FORMAT, 0);
|
||||
+
|
||||
if (spec->num_cvts < ARRAY_SIZE(spec->cvt_nids))
|
||||
spec->cvt_nids[spec->num_cvts] = cvt_nid;
|
||||
spec->num_cvts++;
|
||||
@@ -1474,6 +1482,12 @@ static int hdmi_pcm_close(struct hda_pcm_stream *hinfo,
|
||||
struct hdmi_spec_per_pin *per_pin;
|
||||
|
||||
if (hinfo->nid) {
|
||||
+ /*
|
||||
+ * Make sure no empty audio is output after this point by
|
||||
+ * setting stream format to 0, which is not valid for HDMI.
|
||||
+ */
|
||||
+ __snd_hda_codec_cleanup_stream(codec, hinfo->nid, 1);
|
||||
+
|
||||
cvt_idx = cvt_nid_to_cvt_index(spec, hinfo->nid);
|
||||
if (snd_BUG_ON(cvt_idx < 0))
|
||||
return -EINVAL;
|
@ -84,7 +84,7 @@ diff -NurEbBw --strip-trailing-cr linux-3.4-r1/drivers/media/common/b2c2/flexcop
|
||||
+ fc->dev_type = FC_SKYS2_REV33;
|
||||
+ fc->fc_i2c_adap[2].no_base_addr = 1;
|
||||
+ if ( (dvb_attach(isl6421_attach, fc->fe,
|
||||
+ &fc->fc_i2c_adap[2].i2c_adap, 0x08, 0, 0) == NULL) ) {
|
||||
+ &fc->fc_i2c_adap[2].i2c_adap, 0x08, 0, 0, false) == NULL) ) {
|
||||
+ err("ISL6421 could NOT be attached!");
|
||||
+ return 0;
|
||||
+ }
|
@ -1,17 +0,0 @@
|
||||
diff -Naur linux-3.9.4/tools/perf/Makefile linux-3.9.4.patch/tools/perf/Makefile
|
||||
--- linux-3.9.4/tools/perf/Makefile 2013-05-24 20:45:59.000000000 +0200
|
||||
+++ linux-3.9.4.patch/tools/perf/Makefile 2013-05-30 23:57:04.135031372 +0200
|
||||
@@ -668,12 +668,10 @@
|
||||
endif
|
||||
|
||||
ifndef NO_NEWT
|
||||
- FLAGS_NEWT=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lnewt
|
||||
+ FLAGS_NEWT=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lnewt -lslang
|
||||
ifneq ($(call try-cc,$(SOURCE_NEWT),$(FLAGS_NEWT),libnewt),y)
|
||||
msg := $(warning newt not found, disables TUI support. Please install newt-devel or libnewt-dev);
|
||||
else
|
||||
- # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
|
||||
- BASIC_CFLAGS += -I/usr/include/slang
|
||||
BASIC_CFLAGS += -DNEWT_SUPPORT
|
||||
EXTLIBS += -lnewt -lslang
|
||||
LIB_OBJS += $(OUTPUT)ui/browser.o
|
@ -1,12 +0,0 @@
|
||||
diff -Naur linux-3.9.5/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-3.9.5.patch/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
||||
--- linux-3.9.5/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2013-06-07 21:54:00.000000000 +0200
|
||||
+++ linux-3.9.5.patch/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2013-06-13 14:48:38.110705193 +0200
|
||||
@@ -1372,6 +1372,8 @@
|
||||
&rtl2832u_props, "Digivox Micro Hd", NULL) },
|
||||
{ DVB_USB_DEVICE(USB_VID_COMPRO, 0x0620,
|
||||
&rtl2832u_props, "Compro VideoMate U620F", NULL) },
|
||||
+ { DVB_USB_DEVICE(USB_VID_GTEK, 0xa803,
|
||||
+ &rtl2832u_props, "Realtek RTL2832U reference design", NULL) },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);
|
@ -1,53 +0,0 @@
|
||||
diff -Naur linux-3.7.2/drivers/media/usb/dvb-usb/dw2102.c linux-3.7.2.patch/drivers/media/usb/dvb-usb/dw2102.c
|
||||
--- linux-3.7.2/drivers/media/usb/dvb-usb/dw2102.c 2013-01-11 18:19:28.000000000 +0100
|
||||
+++ linux-3.7.2.patch/drivers/media/usb/dvb-usb/dw2102.c 2013-01-16 10:35:01.131342123 +0100
|
||||
@@ -1179,6 +1179,13 @@
|
||||
u8 ibuf[] = { 0 };
|
||||
|
||||
if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
|
||||
+ err("command 0x0e transfer failed.");
|
||||
+
|
||||
+ obuf[0] = 0xe;
|
||||
+ obuf[1] = 0x02;
|
||||
+ obuf[2] = 1;
|
||||
+
|
||||
+ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
|
||||
err("command 0x0e transfer failed.");
|
||||
|
||||
obuf[0] = 0xe;
|
||||
@@ -1444,6 +1451,7 @@
|
||||
PROF_7500,
|
||||
GENIATECH_SU3000,
|
||||
TERRATEC_CINERGY_S2,
|
||||
+ TERRATEC_CINERGY_S2_R2,
|
||||
TEVII_S480_1,
|
||||
TEVII_S480_2,
|
||||
X3M_SPC1400HD,
|
||||
@@ -1462,6 +1470,7 @@
|
||||
[PROF_7500] = {USB_DEVICE(0x3034, 0x7500)},
|
||||
[GENIATECH_SU3000] = {USB_DEVICE(0x1f4d, 0x3000)},
|
||||
[TERRATEC_CINERGY_S2] = {USB_DEVICE(USB_VID_TERRATEC, 0x00a8)},
|
||||
+ [TERRATEC_CINERGY_S2_R2] = {USB_DEVICE(USB_VID_TERRATEC, 0x00b0)},
|
||||
[TEVII_S480_1] = {USB_DEVICE(0x9022, USB_PID_TEVII_S480_1)},
|
||||
[TEVII_S480_2] = {USB_DEVICE(0x9022, USB_PID_TEVII_S480_2)},
|
||||
[X3M_SPC1400HD] = {USB_DEVICE(0x1f4d, 0x3100)},
|
||||
@@ -1853,7 +1862,7 @@
|
||||
}},
|
||||
}
|
||||
},
|
||||
- .num_device_descs = 3,
|
||||
+ .num_device_descs = 4,
|
||||
.devices = {
|
||||
{ "SU3000HD DVB-S USB2.0",
|
||||
{ &dw2102_table[GENIATECH_SU3000], NULL },
|
||||
@@ -1867,6 +1876,10 @@
|
||||
{ &dw2102_table[X3M_SPC1400HD], NULL },
|
||||
{ NULL },
|
||||
},
|
||||
+ { "Terratec Cinergy S2 USB HD Rev.2",
|
||||
+ { &dw2102_table[TERRATEC_CINERGY_S2_R2], NULL },
|
||||
+ { NULL },
|
||||
+ },
|
||||
}
|
||||
};
|
||||
|
@ -1,76 +0,0 @@
|
||||
From a6024295fd3290a8c9c5519a03316081ee82378a Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Date: Sat, 16 Feb 2013 17:42:46 +0200
|
||||
Subject: [PATCH] ALSA: hda - Avoid outputting HDMI audio before prepare() and
|
||||
after close()
|
||||
|
||||
Some HDMI codecs (at least NVIDIA 0x10de000b:0x10de0101:0x100100) start
|
||||
transmitting an empty audio stream as soon as PIN_OUT and AC_DIG1_ENABLE
|
||||
are enabled.
|
||||
|
||||
Since commit 6169b673618bf0b2518ce413b54925782a603f06 ("ALSA: hda -
|
||||
Always turn on pins for HDMI/DP") this happens at first open() time, and
|
||||
will continue even after close().
|
||||
|
||||
Additionally, some codecs (at least Intel PantherPoint HDMI) currently
|
||||
continue transmitting HDMI audio even after close() in case some actual
|
||||
audio was output after open() (this happens regardless of PIN_OUT).
|
||||
|
||||
Empty HDMI audio transmission when not intended has the effect that a
|
||||
possible HDMI audio sink/receiver may prefer the empty HDMI audio stream
|
||||
over an actual audio stream on its S/PDIF inputs.
|
||||
|
||||
To avoid the issue before first prepare(), set stream format to 0 on
|
||||
codec initialization. 0 is not a valid format value for HDMI and will
|
||||
prevent the audio stream from being output.
|
||||
|
||||
Additionally, at close() time, make sure that the stream is cleaned up.
|
||||
This will ensure that the format is reset to 0 at that time, preventing
|
||||
audio from being output in that case.
|
||||
|
||||
Thanks to OpenELEC developers and users for their help in investigating
|
||||
this issue on the affected NVIDIA "ION2" hardware. Testing of the final
|
||||
version on NVIDIA ION2 was done by OpenELEC user "MrXIII". Testing on
|
||||
Intel PantherPoint was done by myself.
|
||||
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Cc: stable@vger.kernel.org
|
||||
---
|
||||
sound/pci/hda/patch_hdmi.c | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
|
||||
index 807a2aa..bcb83c7 100644
|
||||
--- a/sound/pci/hda/patch_hdmi.c
|
||||
+++ b/sound/pci/hda/patch_hdmi.c
|
||||
@@ -1253,6 +1253,14 @@ static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t cvt_nid)
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
+ /*
|
||||
+ * Some HDMI codecs (at least NVIDIA 0x10de000b:0x10de0101:0x100100)
|
||||
+ * start transmitting an empty audio stream as soon as PIN_OUT and
|
||||
+ * AC_DIG1_ENABLE are enabled, which happens at open() time.
|
||||
+ * To avoid that, set format to 0, which is not valid for HDMI.
|
||||
+ */
|
||||
+ snd_hda_codec_write(codec, cvt_nid, 0, AC_VERB_SET_STREAM_FORMAT, 0);
|
||||
+
|
||||
spec->num_cvts++;
|
||||
|
||||
return 0;
|
||||
@@ -1372,6 +1380,12 @@ static int hdmi_pcm_close(struct hda_pcm_stream *hinfo,
|
||||
struct hdmi_spec_per_pin *per_pin;
|
||||
|
||||
if (hinfo->nid) {
|
||||
+ /*
|
||||
+ * Make sure no empty audio is output after this point by
|
||||
+ * setting stream format to 0, which is not valid for HDMI.
|
||||
+ */
|
||||
+ __snd_hda_codec_cleanup_stream(codec, hinfo->nid, 1);
|
||||
+
|
||||
cvt_idx = cvt_nid_to_cvt_index(spec, hinfo->nid);
|
||||
if (snd_BUG_ON(cvt_idx < 0))
|
||||
return -EINVAL;
|
||||
--
|
||||
1.7.10
|
||||
|
@ -45,7 +45,7 @@ get_target() {
|
||||
}
|
||||
|
||||
# hard reset
|
||||
if [ -f /storage/.cache/reset_oe ] ; then
|
||||
if [ -f $CONFIG_CACHE/reset_oe ] ; then
|
||||
get_target
|
||||
if [ ! -z $target ] ; then
|
||||
echo "hard resetting..."
|
||||
@ -62,7 +62,7 @@ if [ -f /storage/.cache/reset_oe ] ; then
|
||||
fi
|
||||
|
||||
# soft reset
|
||||
if [ -f /storage/.cache/reset_xbmc ] ; then
|
||||
if [ -f $CONFIG_CACHE/reset_xbmc ] ; then
|
||||
get_target
|
||||
if [ ! -z $target ] ; then
|
||||
echo "soft resetting..."
|
||||
|
@ -31,7 +31,7 @@ if [ -e "$BACKUP_FILE" ] ; then
|
||||
echo OK
|
||||
echo -en "restoring.. this may take long time to complete, please wait.. "
|
||||
rm -rf /storage/.xbmc &>/dev/null
|
||||
rm -rf /storage/.cache &>/dev/null
|
||||
rm -rf $CONFIG_CACHE &>/dev/null
|
||||
rm -rf /storage/.config &>/dev/null
|
||||
tar xf $BACKUP_FILE -C / &>/dev/null
|
||||
rm -f $BACKUP_FILE &>/dev/null
|
||||
|
Binary file not shown.
@ -0,0 +1,345 @@
|
||||
commit f014d5dcc803d705355148efe2ec720217880d0a
|
||||
Author: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Mon Jul 1 19:57:33 2013 +0300
|
||||
|
||||
backport latest changes
|
||||
|
||||
added latest changes up to https://github.com/afedchin/xbmc-addon-iptvsimple/commit/a716cdc3cdf44
|
||||
|
||||
all credit goes to Anton Fedchin <afedchin@ruswizards.com>
|
||||
|
||||
diff --git a/addons/pvr.iptvsimple/addon/addon.xml.in b/addons/pvr.iptvsimple/addon/addon.xml.in
|
||||
index 185c3ab..d4692f8 100644
|
||||
--- a/addons/pvr.iptvsimple/addon/addon.xml.in
|
||||
+++ b/addons/pvr.iptvsimple/addon/addon.xml.in
|
||||
@@ -6,7 +6,7 @@
|
||||
provider-name="nightik">
|
||||
<requires>
|
||||
<c-pluff version="0.1"/>
|
||||
- <import addon="xbmc.pvr" version="1.6.0"/>
|
||||
+ <import addon="xbmc.pvr" version="1.6.1"/>
|
||||
</requires>
|
||||
<extension
|
||||
point="xbmc.pvrclient"
|
||||
diff --git a/addons/pvr.iptvsimple/addon/resources/language/English/strings.po b/addons/pvr.iptvsimple/addon/resources/language/English/strings.po
|
||||
index d676f4d..98763a4 100644
|
||||
--- a/addons/pvr.iptvsimple/addon/resources/language/English/strings.po
|
||||
+++ b/addons/pvr.iptvsimple/addon/resources/language/English/strings.po
|
||||
@@ -32,7 +32,7 @@ msgid "Remote Path (Internet address)"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30010"
|
||||
-msgid "Play List Settings"
|
||||
+msgid "General"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "#30011"
|
||||
@@ -43,6 +43,10 @@ msgctxt "#30012"
|
||||
msgid "M3U Play List URL"
|
||||
msgstr ""
|
||||
|
||||
+msgctxt "#30013"
|
||||
+msgid "Numbering channels starts at"
|
||||
+msgstr ""
|
||||
+
|
||||
msgctxt "#30020"
|
||||
msgid "EPG Settings"
|
||||
msgstr ""
|
||||
diff --git a/addons/pvr.iptvsimple/addon/resources/language/French/strings.po b/addons/pvr.iptvsimple/addon/resources/language/French/strings.po
|
||||
index 73663c6..08f9342 100644
|
||||
--- a/addons/pvr.iptvsimple/addon/resources/language/French/strings.po
|
||||
+++ b/addons/pvr.iptvsimple/addon/resources/language/French/strings.po
|
||||
@@ -31,8 +31,8 @@ msgid "Remote Path (Internet address)"
|
||||
msgstr "Chemin d'accès (adresse internet)"
|
||||
|
||||
msgctxt "#30010"
|
||||
-msgid "Play List Settings"
|
||||
-msgstr "Paramètres de la Playlist"
|
||||
+msgid "General"
|
||||
+msgstr "General"
|
||||
|
||||
msgctxt "#30011"
|
||||
msgid "M3U Play List Path"
|
||||
@@ -42,6 +42,10 @@ msgctxt "#30012"
|
||||
msgid "M3U Play List URL"
|
||||
msgstr "URL de la playlist M3U"
|
||||
|
||||
+msgctxt "#30013"
|
||||
+msgid "Numbering channels starts at"
|
||||
+msgstr "Numbering channels starts at"
|
||||
+
|
||||
msgctxt "#30020"
|
||||
msgid "EPG Settings"
|
||||
msgstr "Paramètres EPG"
|
||||
diff --git a/addons/pvr.iptvsimple/addon/resources/language/Russian/strings.po b/addons/pvr.iptvsimple/addon/resources/language/Russian/strings.po
|
||||
index a7f577f..fe15e49 100644
|
||||
--- a/addons/pvr.iptvsimple/addon/resources/language/Russian/strings.po
|
||||
+++ b/addons/pvr.iptvsimple/addon/resources/language/Russian/strings.po
|
||||
@@ -30,8 +30,8 @@ msgid "Remote Path (Internet address)"
|
||||
msgstr "Удалённый путь (сеть Интернет)"
|
||||
|
||||
msgctxt "#30010"
|
||||
-msgid "Play List Settings"
|
||||
-msgstr "Установки плейлиста"
|
||||
+msgid "General"
|
||||
+msgstr "Основные"
|
||||
|
||||
msgctxt "#30011"
|
||||
msgid "M3U Play List Path"
|
||||
@@ -41,6 +41,10 @@ msgctxt "#30012"
|
||||
msgid "M3U Play List URL"
|
||||
msgstr "Ссылка на M3U"
|
||||
|
||||
+msgctxt "#30013"
|
||||
+msgid "Numbering channels starts at"
|
||||
+msgstr "Начинать нумерацию каналов с"
|
||||
+
|
||||
msgctxt "#30020"
|
||||
msgid "EPG Settings"
|
||||
msgstr "Установки EPG"
|
||||
diff --git a/addons/pvr.iptvsimple/addon/resources/settings.xml b/addons/pvr.iptvsimple/addon/resources/settings.xml
|
||||
index 63d42a6..845572f 100644
|
||||
--- a/addons/pvr.iptvsimple/addon/resources/settings.xml
|
||||
+++ b/addons/pvr.iptvsimple/addon/resources/settings.xml
|
||||
@@ -1,18 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
- <setting id="sep1" label="30010" type="lsep"/>
|
||||
- <setting id="m3uPathType" type="enum" label="30000" lvalues="30001|30002" default="1" />
|
||||
- <setting id="m3uPath" type="file" label="30011" default="" visible="eq(-1,0)"/>
|
||||
- <setting id="m3uUrl" type="text" label="30012" default="" visible="eq(-2,1)"/>
|
||||
+ <!-- M3U -->
|
||||
+ <category label="30010">
|
||||
+ <setting id="sep1" label="30010" type="lsep"/>
|
||||
+ <setting id="m3uPathType" type="enum" label="30000" lvalues="30001|30002" default="1" />
|
||||
+ <setting id="m3uPath" type="file" label="30011" default="" visible="eq(-1,0)"/>
|
||||
+ <setting id="m3uUrl" type="text" label="30012" default="" visible="eq(-2,1)"/>
|
||||
+ <setting id="startNum" type="number" label="30013" default="1" />
|
||||
+ </category>
|
||||
|
||||
- <setting id="sep2" label="30020" type="lsep"/>
|
||||
- <setting id="epgPathType" type="enum" label="30000" lvalues="30001|30002" default="1" />
|
||||
- <setting id="epgPath" type="file" label="30021" default="" visible="eq(-1,0)"/>
|
||||
- <setting id="epgUrl" type="text" label="30022" default="" visible="eq(-2,1)"/>
|
||||
-<!-- <setting id="epgTimeShift" type="slider" label="30024" default="0" range="-12,.5,12" option="float"/>-->
|
||||
- <setting id="epgTimeShift_" type="enum" label="30024" default="12" values="-12|-11|-10|-9|-8|-7|-6|-5|-4|-3|-2|-1|0|+1|+2|+3|+4|+5|+6|+7|+8|+9|+10|+11|+12"/>-->
|
||||
- <setting id="epgTSOverride" type="bool" label="30023" default="false"/>
|
||||
+ <!-- EPG -->
|
||||
+ <category label="30020">
|
||||
+ <setting id="sep2" label="30020" type="lsep"/>
|
||||
+ <setting id="epgPathType" type="enum" label="30000" lvalues="30001|30002" default="1" />
|
||||
+ <setting id="epgPath" type="file" label="30021" default="" visible="eq(-1,0)"/>
|
||||
+ <setting id="epgUrl" type="text" label="30022" default="" visible="eq(-2,1)"/>
|
||||
+<!-- <setting id="epgTimeShift" type="slider" label="30024" default="0" range="-12,.5,12" option="float"/>-->
|
||||
+ <setting id="epgTimeShift_" type="enum" label="30024" default="12" values="-12|-11|-10|-9|-8|-7|-6|-5|-4|-3|-2|-1|0|+1|+2|+3|+4|+5|+6|+7|+8|+9|+10|+11|+12"/>-->
|
||||
+ <setting id="epgTSOverride" type="bool" label="30023" default="false"/>
|
||||
+ </category>
|
||||
|
||||
- <setting id="sep3" label="30030" type="lsep"/>
|
||||
- <setting id="logoPath" type="folder" label="30031" default="" />
|
||||
+ <!-- Logos -->
|
||||
+ <category label="30030">
|
||||
+ <setting id="sep3" label="30030" type="lsep"/>
|
||||
+ <setting id="logoPath" type="folder" label="30031" default="" />
|
||||
+ </category>
|
||||
</settings>
|
||||
diff --git a/addons/pvr.iptvsimple/src/PVRIptvData.cpp b/addons/pvr.iptvsimple/src/PVRIptvData.cpp
|
||||
index 4ca5265..24e3cee 100644
|
||||
--- a/addons/pvr.iptvsimple/src/PVRIptvData.cpp
|
||||
+++ b/addons/pvr.iptvsimple/src/PVRIptvData.cpp
|
||||
@@ -155,16 +155,20 @@ bool PVRIptvData::LoadEPG(time_t iStart, time_t iEnd)
|
||||
if (buffer[0] != '\x3C' || buffer[1] != '\x3F' || buffer[2] != '\x78' ||
|
||||
buffer[3] != '\x6D' || buffer[4] != '\x6C')
|
||||
{
|
||||
- // check for tar archive
|
||||
- if (strcmp(buffer + 0x101, "ustar") || strcmp(buffer + 0x101, "GNUtar"))
|
||||
+ // check for BOM
|
||||
+ if (buffer[0] != '\xEF' || buffer[1] != '\xBB' || buffer[2] != '\xBF')
|
||||
{
|
||||
- buffer += 0x200; // RECORDSIZE = 512
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- XBMC->Log(LOG_ERROR, "Invalid EPG file '%s': unable to decompress file.", m_strXMLTVUrl.c_str());
|
||||
- m_bEGPLoaded = true;
|
||||
- return false;
|
||||
+ // check for tar archive
|
||||
+ if (strcmp(buffer + 0x101, "ustar") || strcmp(buffer + 0x101, "GNUtar"))
|
||||
+ {
|
||||
+ buffer += 0x200; // RECORDSIZE = 512
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ XBMC->Log(LOG_ERROR, "Invalid EPG file '%s': unable to parse file.", m_strXMLTVUrl.c_str());
|
||||
+ m_bEGPLoaded = true;
|
||||
+ return false;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,10 +325,10 @@ bool PVRIptvData::LoadPlayList(void)
|
||||
/* load channels */
|
||||
bool bFirst = true;
|
||||
|
||||
- int iUniqueChannelId = 0;
|
||||
+ int iChannelIndex = 0;
|
||||
int iUniqueGroupId = 0;
|
||||
int iCurrentGroupId = 0;
|
||||
- int iChannelNum = 0;
|
||||
+ int iChannelNum = g_iStartNumber;
|
||||
int iEPGTimeShift = 0;
|
||||
|
||||
PVRIptvChannel tmpChannel;
|
||||
@@ -446,8 +450,8 @@ bool PVRIptvData::LoadPlayList(void)
|
||||
else if (strLine[0] != '#')
|
||||
{
|
||||
PVRIptvChannel channel;
|
||||
- channel.iUniqueId = ++iUniqueChannelId;
|
||||
- channel.iChannelNumber = ++iChannelNum;
|
||||
+ channel.iUniqueId = GetChannelId(tmpChannel.strChannelName.c_str(), strLine);
|
||||
+ channel.iChannelNumber = iChannelNum++;
|
||||
channel.strTvgId = tmpChannel.strTvgId;
|
||||
channel.strChannelName = tmpChannel.strChannelName;
|
||||
channel.strTvgName = tmpChannel.strTvgName;
|
||||
@@ -460,10 +464,11 @@ bool PVRIptvData::LoadPlayList(void)
|
||||
if (iCurrentGroupId > 0)
|
||||
{
|
||||
channel.bRadio = m_groups.at(iCurrentGroupId - 1).bRadio;
|
||||
- m_groups.at(iCurrentGroupId - 1).members.push_back(channel.iChannelNumber);
|
||||
+ m_groups.at(iCurrentGroupId - 1).members.push_back(iChannelIndex);
|
||||
}
|
||||
|
||||
m_channels.push_back(channel);
|
||||
+ iChannelIndex++;
|
||||
|
||||
tmpChannel.strTvgId = "";
|
||||
tmpChannel.strChannelName = "";
|
||||
@@ -568,26 +573,24 @@ PVR_ERROR PVRIptvData::GetChannelGroups(ADDON_HANDLE handle, bool bRadio)
|
||||
|
||||
PVR_ERROR PVRIptvData::GetChannelGroupMembers(ADDON_HANDLE handle, const PVR_CHANNEL_GROUP &group)
|
||||
{
|
||||
- for (unsigned int iGroupPtr = 0; iGroupPtr < m_groups.size(); iGroupPtr++)
|
||||
+ PVRIptvChannelGroup *myGroup;
|
||||
+ if ((myGroup = FindGroup(group.strGroupName)) != NULL)
|
||||
{
|
||||
- PVRIptvChannelGroup &myGroup = m_groups.at(iGroupPtr);
|
||||
- if (!strcmp(myGroup.strGroupName.c_str(),group.strGroupName))
|
||||
+ for (unsigned int iPtr = 0; iPtr < myGroup->members.size(); iPtr++)
|
||||
{
|
||||
- for (unsigned int iChannelPtr = 0; iChannelPtr < myGroup.members.size(); iChannelPtr++)
|
||||
- {
|
||||
- int iId = myGroup.members.at(iChannelPtr) - 1;
|
||||
- if (iId < 0 || iId > (int)m_channels.size() - 1)
|
||||
- continue;
|
||||
- PVRIptvChannel &channel = m_channels.at(iId);
|
||||
- PVR_CHANNEL_GROUP_MEMBER xbmcGroupMember;
|
||||
- memset(&xbmcGroupMember, 0, sizeof(PVR_CHANNEL_GROUP_MEMBER));
|
||||
-
|
||||
- strncpy(xbmcGroupMember.strGroupName, group.strGroupName, sizeof(xbmcGroupMember.strGroupName) - 1);
|
||||
- xbmcGroupMember.iChannelUniqueId = channel.iUniqueId;
|
||||
- xbmcGroupMember.iChannelNumber = channel.iChannelNumber;
|
||||
-
|
||||
- PVR->TransferChannelGroupMember(handle, &xbmcGroupMember);
|
||||
- }
|
||||
+ int iIndex = myGroup->members.at(iPtr);
|
||||
+ if (iIndex < 0 || iIndex >= (int) m_channels.size())
|
||||
+ continue;
|
||||
+
|
||||
+ PVRIptvChannel &channel = m_channels.at(iIndex);
|
||||
+ PVR_CHANNEL_GROUP_MEMBER xbmcGroupMember;
|
||||
+ memset(&xbmcGroupMember, 0, sizeof(PVR_CHANNEL_GROUP_MEMBER));
|
||||
+
|
||||
+ strncpy(xbmcGroupMember.strGroupName, group.strGroupName, sizeof(xbmcGroupMember.strGroupName) - 1);
|
||||
+ xbmcGroupMember.iChannelUniqueId = channel.iUniqueId;
|
||||
+ xbmcGroupMember.iChannelNumber = channel.iChannelNumber;
|
||||
+
|
||||
+ PVR->TransferChannelGroupMember(handle, &xbmcGroupMember);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -891,9 +894,7 @@ int PVRIptvData::GetCachedFileContents(const std::string &strCachedName, const s
|
||||
void PVRIptvData::ApplyChannelsLogos()
|
||||
{
|
||||
if (m_strLogoPath.IsEmpty())
|
||||
- {
|
||||
return;
|
||||
- }
|
||||
|
||||
vector<PVRIptvChannel>::iterator channel;
|
||||
for(channel = m_channels.begin(); channel < m_channels.end(); channel++)
|
||||
@@ -975,3 +976,17 @@ CStdString PVRIptvData::ReadMarkerValue(std::string &strLine, const char* strMar
|
||||
|
||||
return std::string("");
|
||||
}
|
||||
+
|
||||
+int PVRIptvData::GetChannelId(const char * strChannelName, const char * strStreamUrl)
|
||||
+{
|
||||
+ std::string concat(strChannelName);
|
||||
+ concat.append(strStreamUrl);
|
||||
+
|
||||
+ const char* strString = concat.c_str();
|
||||
+ int iId = 0;
|
||||
+ int c;
|
||||
+ while (c = *strString++)
|
||||
+ iId = ((iId << 5) + iId) + c; /* iId * 33 + c */
|
||||
+
|
||||
+ return abs(iId);
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/addons/pvr.iptvsimple/src/PVRIptvData.h b/addons/pvr.iptvsimple/src/PVRIptvData.h
|
||||
index 944a734..c49b0cc 100644
|
||||
--- a/addons/pvr.iptvsimple/src/PVRIptvData.h
|
||||
+++ b/addons/pvr.iptvsimple/src/PVRIptvData.h
|
||||
@@ -103,6 +103,7 @@ protected:
|
||||
virtual int GetCachedFileContents(const std::string &strCachedName, const std::string &strFilePath, std::string &strContent);
|
||||
virtual void ApplyChannelsLogos();
|
||||
virtual CStdString ReadMarkerValue(std::string &strLine, const char * strMarkerName);
|
||||
+ virtual int GetChannelId(const char * strChannelName, const char * strStreamUrl);
|
||||
|
||||
protected:
|
||||
virtual void *Process(void);
|
||||
diff --git a/addons/pvr.iptvsimple/src/client.cpp b/addons/pvr.iptvsimple/src/client.cpp
|
||||
index b80f483..b8c55b4 100644
|
||||
--- a/addons/pvr.iptvsimple/src/client.cpp
|
||||
+++ b/addons/pvr.iptvsimple/src/client.cpp
|
||||
@@ -54,6 +54,7 @@ std::string g_strTvgPath = "";
|
||||
std::string g_strM3UPath = "";
|
||||
std::string g_strLogoPath = "";
|
||||
int g_iEPGTimeShift = 0;
|
||||
+int g_iStartNumber = 1;
|
||||
bool g_bTSOverride = true;
|
||||
|
||||
extern std::string PathCombine(const std::string &strPath, const std::string &strFileName)
|
||||
@@ -102,7 +103,10 @@ void ADDON_ReadSettings(void)
|
||||
{
|
||||
g_strM3UPath = GetClientFilePath(M3U_FILE_NAME);
|
||||
}
|
||||
-
|
||||
+ if (!XBMC->GetSetting("startNum", &g_iStartNumber))
|
||||
+ {
|
||||
+ g_iStartNumber = 1;
|
||||
+ }
|
||||
if (!XBMC->GetSetting("epgPathType", &iPathType))
|
||||
{
|
||||
iPathType = 1;
|
||||
diff --git a/addons/pvr.iptvsimple/src/client.h b/addons/pvr.iptvsimple/src/client.h
|
||||
index bc81eeb..89500f1 100644
|
||||
--- a/addons/pvr.iptvsimple/src/client.h
|
||||
+++ b/addons/pvr.iptvsimple/src/client.h
|
||||
@@ -27,7 +27,7 @@
|
||||
#include "libXBMC_pvr.h"
|
||||
#include "libXBMC_gui.h"
|
||||
|
||||
-#define PVR_CLIENT_VERSION "0.1.3"
|
||||
+#define PVR_CLIENT_VERSION "1.8.1"
|
||||
#define M3U_FILE_NAME "iptv.m3u.cache"
|
||||
#define TVG_FILE_NAME "xmltv.xml.cache"
|
||||
|
||||
@@ -47,6 +47,7 @@ extern std::string g_strM3UPath;
|
||||
extern std::string g_strTvgPath;
|
||||
extern std::string g_strLogoPath;
|
||||
extern int g_iEPGTimeShift;
|
||||
+extern int g_iStartNumber;
|
||||
extern bool g_bTSOverride;
|
||||
|
||||
extern std::string PathCombine(const std::string &strPath, const std::string &strFileName);
|
@ -22,6 +22,42 @@
|
||||
#
|
||||
# runlevels: openelec
|
||||
|
||||
# prevent restrating XBMC at reboot or shutdown
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="xbmc.disabled"
|
||||
[ -f "$LOCKDIR/$LOCKFILE" ] && rm -f "$LOCKDIR/$LOCKFILE" &
|
||||
|
||||
# needed functions
|
||||
add_omit_pids() {
|
||||
omit_pids="$omit_pids -o $1"
|
||||
}
|
||||
|
||||
safe_shutdown () {
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
SHUTDOWN="/storage/.config/shutdown.sh"
|
||||
if [ -f $SHUTDOWN ]; then
|
||||
echo '!!! SHUTDOWN script detected !!!' | logger -t shutdown.sh $1
|
||||
cat "$SHUTDOWN" | logger -t shutdown.sh
|
||||
echo '!!! -End of shutdown script- !!!' | logger -t shutdown.sh $1
|
||||
sh $SHUTDOWN $1
|
||||
fi
|
||||
add_omit_pids $(pidof connmand)
|
||||
add_omit_pids $(pidof dbus-daemon)
|
||||
killall5 -15 $omit_pids
|
||||
for seq in `seq 1 10` ; do
|
||||
usleep 500000
|
||||
clear > /dev/tty1
|
||||
killall5 -18 $omit_pids || break
|
||||
done
|
||||
sync
|
||||
umount -a >/dev/null 2>&1
|
||||
if [ $1 = "reboot" ]; then
|
||||
reboot
|
||||
elif [ $1 = "poweroff" ]; then
|
||||
poweroff -f
|
||||
fi
|
||||
}
|
||||
|
||||
LIRCDEV="/var/run/lirc/lircd"
|
||||
[ -e /var/run/lirc/lircd.irtrans ] && LIRCDEV="/var/run/lirc/lircd.irtrans"
|
||||
XBMC_ARGS="--standalone -fs --lircdev $LIRCDEV"
|
||||
@ -42,6 +78,15 @@ fi
|
||||
-i /storage/.xbmc/userdata/RssFeeds.xml
|
||||
fi
|
||||
|
||||
# wait for dbus to start
|
||||
wait_for_dbus
|
||||
|
||||
# wait for network
|
||||
wait_for_inet_addr
|
||||
|
||||
# wait for udevadm settle to finish
|
||||
wait_for_udevadm_settle
|
||||
|
||||
# starting autostart script (will be removed later again, dont use it!!!)
|
||||
AUTOSTART="/storage/.config/autostart.sh"
|
||||
if [ -f $AUTOSTART ]; then
|
||||
@ -52,21 +97,9 @@ fi
|
||||
sh $AUTOSTART
|
||||
fi
|
||||
|
||||
wait_for_dbus
|
||||
|
||||
# waiting for Xorg to start
|
||||
wait_for_xorg
|
||||
|
||||
# wait for network
|
||||
wait_for_inet_addr
|
||||
|
||||
# wait for udevadm settle to finish
|
||||
wait_for_udevadm_settle
|
||||
|
||||
# prevent restrating XBMC at reboot or shutdown
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="xbmc.disabled"
|
||||
[ -f "$LOCKDIR/$LOCKFILE" ] && rm -f "$LOCKDIR/$LOCKFILE" &
|
||||
|
||||
# starting XBMC
|
||||
usleep $XBMC_STARTDELAY
|
||||
@ -81,25 +114,13 @@ fi
|
||||
|
||||
case "$RET" in
|
||||
0)
|
||||
if [ ! $(pidof console-kit-daemon) ]; then
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
_safe_shutdown
|
||||
poweroff -f
|
||||
fi
|
||||
safe_shutdown poweroff
|
||||
;;
|
||||
64)
|
||||
if [ ! $(pidof console-kit-daemon) ]; then
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
_safe_shutdown
|
||||
poweroff -f
|
||||
fi
|
||||
safe_shutdown poweroff
|
||||
;;
|
||||
66)
|
||||
if [ ! $(pidof console-kit-daemon) ]; then
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
_safe_shutdown
|
||||
reboot
|
||||
fi
|
||||
safe_shutdown reboot
|
||||
;;
|
||||
255)
|
||||
echo "Abnormal Exit. Exited with code $RET"
|
||||
|
@ -27,7 +27,6 @@ PYTHON_LIBDIR="`ls -d $INSTALL/usr/lib/python*`"
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp $PKG_DIR/scripts/cputemp $INSTALL/usr/bin
|
||||
cp $PKG_DIR/scripts/gputemp $INSTALL/usr/bin
|
||||
cp $PKG_DIR/scripts/wait_on_xbmc_exit $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/EventClients/Clients/XBMC\ Send/xbmc-send.py $INSTALL/usr/bin/xbmc-send
|
||||
cp $PKG_DIR/scripts/setwakeup.sh $INSTALL/usr/bin
|
||||
|
||||
|
29
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.26.01-PR2890.patch
vendored
Normal file
29
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.26.01-PR2890.patch
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
From 86a63c5040e307dcb633a5934ab1b3f9114009f5 Mon Sep 17 00:00:00 2001
|
||||
From: arnova <arnova@void.org>
|
||||
Date: Sun, 23 Jun 2013 23:16:55 +0200
|
||||
Subject: [PATCH] changed: Make more obvious we're passing a CFileItem
|
||||
|
||||
---
|
||||
xbmc/music/infoscanner/MusicInfoScanner.cpp | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xbmc/music/infoscanner/MusicInfoScanner.cpp b/xbmc/music/infoscanner/MusicInfoScanner.cpp
|
||||
index 84a155c..f93d613 100644
|
||||
--- a/xbmc/music/infoscanner/MusicInfoScanner.cpp
|
||||
+++ b/xbmc/music/infoscanner/MusicInfoScanner.cpp
|
||||
@@ -1009,8 +1009,10 @@ void CMusicInfoScanner::FindArtForAlbums(VECALBUMS &albums, const CStdString &pa
|
||||
}
|
||||
}
|
||||
if (albums.size() == 1 && !albumArt.empty())
|
||||
- { // assign to folder thumb as well
|
||||
- CMusicThumbLoader::SetCachedImage(path, "thumb", albumArt);
|
||||
+ {
|
||||
+ // assign to folder thumb as well
|
||||
+ CFileItem albumItem(path, true);
|
||||
+ CMusicThumbLoader::SetCachedImage(albumItem, "thumb", albumArt);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.6
|
||||
|
1875
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.26.02-PR2890.patch
vendored
Normal file
1875
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.26.02-PR2890.patch
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,14 @@
|
||||
diff -Naur xbmc-12.2.0/xbmc/powermanagement/linux/UPowerSyscall.cpp xbmc-12.2.0.patch/xbmc/powermanagement/linux/UPowerSyscall.cpp
|
||||
--- xbmc-12.2.0/xbmc/powermanagement/linux/UPowerSyscall.cpp 2013-05-02 17:00:05.000000000 +0200
|
||||
+++ xbmc-12.2.0.patch/xbmc/powermanagement/linux/UPowerSyscall.cpp 2013-07-07 17:05:46.921656229 +0200
|
||||
@@ -85,8 +85,8 @@
|
||||
m_connection = NULL;
|
||||
}
|
||||
|
||||
- m_CanPowerdown = false;
|
||||
- m_CanReboot = false;
|
||||
+ m_CanPowerdown = true;
|
||||
+ m_CanReboot = true;
|
||||
|
||||
UpdateCapabilities();
|
||||
|
30
packages/mediacenter/xbmc/profile.d/01-xbmc-path.conf
Normal file
30
packages/mediacenter/xbmc/profile.d/01-xbmc-path.conf
Normal file
@ -0,0 +1,30 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
# Mediacenter environment variables.
|
||||
#
|
||||
# This file contains non-OpenELEC evironment variables as well as OpenELEC
|
||||
# evironment variables that are not user defined.
|
||||
################################################################################
|
||||
|
||||
XBMC_HOME="/usr/share/xbmc"
|
||||
XBMC_USER_HOME="$HOME/.xbmc"
|
||||
|
||||
export XBMC_HOME
|
||||
export XBMC_USER_HOME
|
@ -23,10 +23,8 @@
|
||||
# evironment variables that are not user defined.
|
||||
################################################################################
|
||||
|
||||
PATH="/bin:/sbin:/usr/bin:/usr/sbin"
|
||||
|
||||
# hack: add addons to $PATH
|
||||
for addon in /storage/.xbmc/addons/*/bin; do
|
||||
for addon in $XBMC_USER_HOME/addons/*/bin; do
|
||||
if [ -d "$addon" ] ; then
|
||||
PATH="$PATH:$addon"
|
||||
fi
|
17
packages/mediacenter/xbmc/scripts/wait_on_xbmc_exit → packages/mediacenter/xbmc/profile.d/91-xbmc-startdelay.conf
Executable file → Normal file
17
packages/mediacenter/xbmc/scripts/wait_on_xbmc_exit → packages/mediacenter/xbmc/profile.d/91-xbmc-startdelay.conf
Executable file → Normal file
@ -1,5 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
@ -19,11 +17,12 @@
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
# Mediacenter environment variables.
|
||||
#
|
||||
# This file contains non-OpenELEC evironment variables as well as OpenELEC
|
||||
# evironment variables that are not user defined.
|
||||
################################################################################
|
||||
|
||||
count=0
|
||||
|
||||
while [ $(pidof xbmc.bin) -a $count -le 20 ]; do
|
||||
usleep 250000
|
||||
logger -t wait_on_xbmc_exit "### Waiting for XBMC to Exit - $count ###"
|
||||
count=$((count+1))
|
||||
done
|
||||
if [ -z "$XBMC_STARTDELAY" ]; then
|
||||
XBMC_STARTDELAY="1000000"
|
||||
fi
|
@ -23,14 +23,6 @@
|
||||
# evironment variables that are not user defined.
|
||||
################################################################################
|
||||
|
||||
if [ -z "$XBMC_STARTDELAY" ]; then
|
||||
XBMC_STARTDELAY="1000000"
|
||||
fi
|
||||
|
||||
XBMC_HOME="/usr/share/xbmc"
|
||||
|
||||
export XBMC_HOME
|
||||
|
||||
GPUTYPE="OTHER"
|
||||
|
||||
if [ -x /usr/bin/lspci ]; then
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bluez"
|
||||
PKG_VERSION="5.6"
|
||||
PKG_VERSION="5.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -48,7 +48,6 @@ cd $PKG_BUILD
|
||||
--enable-shared \
|
||||
--disable-gtk-doc \
|
||||
--disable-debug \
|
||||
--enable-threads \
|
||||
--disable-hh2serial-gps \
|
||||
--disable-openconnect \
|
||||
$CONNMAN_OPENVPN \
|
||||
|
@ -22,7 +22,7 @@
|
||||
#
|
||||
# runlevels: openelec, textmode
|
||||
|
||||
mkdir -p /storage/.cache/connman
|
||||
mkdir -p $CONFIG_CACHE/connman
|
||||
mkdir -p /storage/.config/vpn-config
|
||||
mkdir -p /run/connman
|
||||
|
||||
@ -36,15 +36,15 @@ fi
|
||||
|
||||
# creating initial settings file
|
||||
progress "creating initial connman settings file"
|
||||
if [ ! -f /storage/.cache/connman/settings ]; then
|
||||
cp /usr/share/connman/settings /storage/.cache/connman
|
||||
if [ ! -f $CONFIG_CACHE/connman/settings ]; then
|
||||
cp /usr/share/connman/settings $CONFIG_CACHE/connman
|
||||
fi
|
||||
|
||||
(
|
||||
# setup hostname
|
||||
if [ -f /storage/.cache/hostname ] ; then
|
||||
if [ -f $CONFIG_CACHE/hostname ] ; then
|
||||
progress "Setup hostname"
|
||||
cat /storage/.cache/hostname > /proc/sys/kernel/hostname
|
||||
cat $CONFIG_CACHE/hostname > /proc/sys/kernel/hostname
|
||||
fi
|
||||
|
||||
# starting Connection manager
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="connman"
|
||||
PKG_VERSION="3ddffce"
|
||||
PKG_VERSION="df37290"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -0,0 +1,48 @@
|
||||
commit 0f41818097e3ada58c21a3a84af86ec3762294ce
|
||||
Author: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Thu Jul 4 18:42:29 2013 +0300
|
||||
|
||||
do not touch nat table before enabling tethering
|
||||
|
||||
TODO: remove when upstream does a better fix
|
||||
|
||||
diff --git a/src/connman.h b/src/connman.h
|
||||
index 96f8466..c94d854 100644
|
||||
--- a/src/connman.h
|
||||
+++ b/src/connman.h
|
||||
@@ -910,6 +910,8 @@ int __connman_nat_enable(const char *name, const char *address,
|
||||
unsigned char prefixlen);
|
||||
void __connman_nat_disable(const char *name);
|
||||
|
||||
+static connman_bool_t nat_enabled = FALSE;
|
||||
+
|
||||
struct firewall_context;
|
||||
|
||||
struct firewall_context *__connman_firewall_create(void);
|
||||
diff --git a/src/firewall.c b/src/firewall.c
|
||||
index c235d86..1e7dfa9 100644
|
||||
--- a/src/firewall.c
|
||||
+++ b/src/firewall.c
|
||||
@@ -421,7 +421,8 @@ static void flush_all_tables(void)
|
||||
|
||||
flush_table("filter");
|
||||
flush_table("mangle");
|
||||
- flush_table("nat");
|
||||
+ if (nat_enabled)
|
||||
+ flush_table("nat");
|
||||
}
|
||||
|
||||
int __connman_firewall_init(void)
|
||||
diff --git a/src/nat.c b/src/nat.c
|
||||
index 5447eb7..d5ceffd 100644
|
||||
--- a/src/nat.c
|
||||
+++ b/src/nat.c
|
||||
@@ -78,6 +78,8 @@ static int enable_nat(struct connman_nat *nat)
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
+ nat_enabled = TRUE;
|
||||
+
|
||||
return __connman_iptables_commit("nat");
|
||||
}
|
||||
|
@ -0,0 +1,22 @@
|
||||
commit 7b130774c0a0a31879218eedb680ed732a1ee94a
|
||||
Author: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Thu Jul 4 22:43:17 2013 +0300
|
||||
|
||||
ipv6 disabled by default
|
||||
|
||||
diff --git a/src/ipconfig.c b/src/ipconfig.c
|
||||
index a97a6f3..2b43935 100644
|
||||
--- a/src/ipconfig.c
|
||||
+++ b/src/ipconfig.c
|
||||
@@ -1118,10 +1118,7 @@ static struct connman_ipconfig *create_ipv6config(int index)
|
||||
ipv6config->enabled = FALSE;
|
||||
ipv6config->type = CONNMAN_IPCONFIG_TYPE_IPV6;
|
||||
|
||||
- if (is_ipv6_supported == FALSE)
|
||||
- ipv6config->method = CONNMAN_IPCONFIG_METHOD_OFF;
|
||||
- else
|
||||
- ipv6config->method = CONNMAN_IPCONFIG_METHOD_AUTO;
|
||||
+ ipv6config->method = CONNMAN_IPCONFIG_METHOD_OFF;
|
||||
|
||||
ipdevice = g_hash_table_lookup(ipdevice_hash, GINT_TO_POINTER(index));
|
||||
if (ipdevice != NULL)
|
@ -1,29 +0,0 @@
|
||||
|
||||
Betreff:
|
||||
[PATCH 1/5] tethering: Add debug print so we know when restarting
|
||||
Von:
|
||||
Jukka Rissanen <jukka.rissanen@linux.intel.com>
|
||||
Datum:
|
||||
25.06.2013 14:58
|
||||
An:
|
||||
connman@connman.net
|
||||
|
||||
---
|
||||
src/tethering.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/tethering.c b/src/tethering.c
|
||||
index 223873b..eb05056 100644
|
||||
--- a/src/tethering.c
|
||||
+++ b/src/tethering.c
|
||||
@@ -176,6 +176,7 @@ static void dhcp_server_stop(GDHCPServer *server)
|
||||
|
||||
static void tethering_restart(struct connman_ippool *pool, void *user_data)
|
||||
{
|
||||
+ DBG("pool %p", pool);
|
||||
__connman_tethering_set_disabled();
|
||||
__connman_tethering_set_enabled();
|
||||
}
|
||||
--
|
||||
1.7.11.7
|
||||
|
@ -1,77 +0,0 @@
|
||||
|
||||
Betreff:
|
||||
[PATCH 2/5] tethering: Use the prefix lenght from ippool instead of hard coded value
|
||||
Von:
|
||||
Jukka Rissanen <jukka.rissanen@linux.intel.com>
|
||||
Datum:
|
||||
25.06.2013 14:58
|
||||
An:
|
||||
connman@connman.net
|
||||
|
||||
We were always using prefix length 24 instead of the correct
|
||||
value from ippool.
|
||||
---
|
||||
src/bridge.c | 8 ++++----
|
||||
src/connman.h | 4 ++--
|
||||
src/tethering.c | 4 +++-
|
||||
3 files changed, 9 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/bridge.c b/src/bridge.c
|
||||
index e46cdda..1610f96 100644
|
||||
--- a/src/bridge.c
|
||||
+++ b/src/bridge.c
|
||||
@@ -111,8 +111,8 @@ int __connman_bridge_remove(const char *name)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-int __connman_bridge_enable(const char *name, const char *gateway,
|
||||
- const char *broadcast)
|
||||
+int __connman_bridge_enable(const char *name, const char *ip_address,
|
||||
+ int prefix_len, const char *broadcast)
|
||||
{
|
||||
int err, index;
|
||||
|
||||
@@ -121,8 +121,8 @@ int __connman_bridge_enable(const char *name, const char *gateway,
|
||||
return index;
|
||||
|
||||
err = __connman_inet_modify_address(RTM_NEWADDR,
|
||||
- NLM_F_REPLACE | NLM_F_ACK, index, AF_INET,
|
||||
- gateway, NULL, 24, broadcast);
|
||||
+ NLM_F_REPLACE | NLM_F_ACK, index, AF_INET,
|
||||
+ ip_address, NULL, prefix_len, broadcast);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
diff --git a/src/connman.h b/src/connman.h
|
||||
index 11dbc35..96f8466 100644
|
||||
--- a/src/connman.h
|
||||
+++ b/src/connman.h
|
||||
@@ -899,8 +899,8 @@ void __connman_ippool_deladdr(int index, const char *address,
|
||||
|
||||
int __connman_bridge_create(const char *name);
|
||||
int __connman_bridge_remove(const char *name);
|
||||
-int __connman_bridge_enable(const char *name, const char *gateway,
|
||||
- const char *broadcast);
|
||||
+int __connman_bridge_enable(const char *name, const char *ip_address,
|
||||
+ int prefix_len, const char *broadcast);
|
||||
int __connman_bridge_disable(const char *name);
|
||||
|
||||
int __connman_nat_init(void);
|
||||
diff --git a/src/tethering.c b/src/tethering.c
|
||||
index eb05056..0b373b9 100644
|
||||
--- a/src/tethering.c
|
||||
+++ b/src/tethering.c
|
||||
@@ -221,7 +221,9 @@ void __connman_tethering_set_enabled(void)
|
||||
start_ip = __connman_ippool_get_start_ip(dhcp_ippool);
|
||||
end_ip = __connman_ippool_get_end_ip(dhcp_ippool);
|
||||
|
||||
- err = __connman_bridge_enable(BRIDGE_NAME, gateway, broadcast);
|
||||
+ err = __connman_bridge_enable(BRIDGE_NAME, gateway,
|
||||
+ __connman_ipaddress_netmask_prefix_len(subnet_mask),
|
||||
+ broadcast);
|
||||
if (err < 0 && err != -EALREADY) {
|
||||
__connman_ippool_unref(dhcp_ippool);
|
||||
__connman_bridge_remove(BRIDGE_NAME);
|
||||
--
|
||||
1.7.11.7
|
||||
|
@ -1,57 +0,0 @@
|
||||
|
||||
Betreff:
|
||||
[PATCH 3/5] connection: Use netlink functions to set default gateway
|
||||
Von:
|
||||
Jukka Rissanen <jukka.rissanen@linux.intel.com>
|
||||
Datum:
|
||||
25.06.2013 14:58
|
||||
An:
|
||||
connman@connman.net
|
||||
|
||||
We were using earlier the ioctl() to set the default gateway.
|
||||
In some cases that could fail because the desired interface
|
||||
was not set when calling the ioctl().
|
||||
This happened with tethering with following scenario:
|
||||
* Ethernet cable (uplink connection) is not connected
|
||||
* Wifi tethering is started with address 192.168.1.1
|
||||
* Ethernet cable is connected, uplink address is 192.168.1.0/24
|
||||
* There is now a conflict, ippool resolves that in __connman_ippool_newaddr()
|
||||
and calls tethering_restart() which stops and then starts tethering
|
||||
* Because of the problems when calling the SIOCADDRT (we do not know
|
||||
to what interface the default route was added to), the default route
|
||||
of uplink connection was added to tethering interface (tether) instead
|
||||
of uplink interface (eth0). This caused the default route to disappear
|
||||
when tether interface was taken down.
|
||||
* Solution was to use the netlink interface to set the default gateway
|
||||
as we can unambiguously set the desired default route to be via the
|
||||
uplink interface
|
||||
|
||||
Thanks for Stephan Raue for reporting this issue.
|
||||
---
|
||||
src/connection.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/connection.c b/src/connection.c
|
||||
index c7b1f62..c0fdaf8 100644
|
||||
--- a/src/connection.c
|
||||
+++ b/src/connection.c
|
||||
@@ -479,12 +479,12 @@ static void set_default_gateway(struct gateway_data *data,
|
||||
}
|
||||
|
||||
if (do_ipv6 == TRUE && data->ipv6_gateway != NULL)
|
||||
- status6 = connman_inet_set_ipv6_gateway_address(index,
|
||||
- data->ipv6_gateway->gateway);
|
||||
+ status6 = __connman_inet_add_default_to_table(RT_TABLE_MAIN,
|
||||
+ index, data->ipv6_gateway->gateway);
|
||||
|
||||
if (do_ipv4 == TRUE && data->ipv4_gateway != NULL)
|
||||
- status4 = connman_inet_set_gateway_address(index,
|
||||
- data->ipv4_gateway->gateway);
|
||||
+ status4 = __connman_inet_add_default_to_table(RT_TABLE_MAIN,
|
||||
+ index, data->ipv4_gateway->gateway);
|
||||
|
||||
if (status4 < 0 || status6 < 0)
|
||||
return;
|
||||
--
|
||||
1.7.11.7
|
||||
|
@ -1,156 +0,0 @@
|
||||
|
||||
Betreff:
|
||||
[PATCH 4/5] inet: Remove unused gateway setting functions
|
||||
Von:
|
||||
Jukka Rissanen <jukka.rissanen@linux.intel.com>
|
||||
Datum:
|
||||
25.06.2013 14:58
|
||||
An:
|
||||
connman@connman.net
|
||||
|
||||
No need for these functions any more as we are using the netlink
|
||||
variants to set the default gateway.
|
||||
---
|
||||
include/inet.h | 2 --
|
||||
src/inet.c | 98 ----------------------------------------------------------
|
||||
2 files changed, 100 deletions(-)
|
||||
|
||||
diff --git a/include/inet.h b/include/inet.h
|
||||
index 8f7a35c..10d9dae 100644
|
||||
--- a/include/inet.h
|
||||
+++ b/include/inet.h
|
||||
@@ -50,7 +50,6 @@ int connman_inet_del_host_route(int index, const char *host);
|
||||
int connman_inet_add_network_route(int index, const char *host, const char *gateway,
|
||||
const char *netmask);
|
||||
int connman_inet_del_network_route(int index, const char *host);
|
||||
-int connman_inet_set_gateway_address(int index, const char *gateway);
|
||||
int connman_inet_clear_gateway_address(int index, const char *gateway);
|
||||
int connman_inet_set_gateway_interface(int index);
|
||||
int connman_inet_clear_gateway_interface(int index);
|
||||
@@ -66,7 +65,6 @@ int connman_inet_add_ipv6_host_route(int index, const char *host,
|
||||
int connman_inet_del_ipv6_network_route(int index, const char *host,
|
||||
unsigned char prefix_len);
|
||||
int connman_inet_del_ipv6_host_route(int index, const char *host);
|
||||
-int connman_inet_set_ipv6_gateway_address(int index, const char *gateway);
|
||||
int connman_inet_clear_ipv6_gateway_address(int index, const char *gateway);
|
||||
int connman_inet_set_ipv6_gateway_interface(int index);
|
||||
int connman_inet_clear_ipv6_gateway_interface(int index);
|
||||
diff --git a/src/inet.c b/src/inet.c
|
||||
index ed98dd5..840f9b1 100644
|
||||
--- a/src/inet.c
|
||||
+++ b/src/inet.c
|
||||
@@ -727,47 +727,6 @@ int connman_inet_add_ipv6_host_route(int index, const char *host,
|
||||
return connman_inet_add_ipv6_network_route(index, host, gateway, 128);
|
||||
}
|
||||
|
||||
-int connman_inet_set_ipv6_gateway_address(int index, const char *gateway)
|
||||
-{
|
||||
- struct in6_rtmsg rt;
|
||||
- int sk, err = 0;
|
||||
-
|
||||
- DBG("index %d gateway %s", index, gateway);
|
||||
-
|
||||
- if (gateway == NULL)
|
||||
- return -EINVAL;
|
||||
-
|
||||
- memset(&rt, 0, sizeof(rt));
|
||||
-
|
||||
- if (inet_pton(AF_INET6, gateway, &rt.rtmsg_gateway) < 0) {
|
||||
- err = -errno;
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- rt.rtmsg_flags = RTF_UP | RTF_GATEWAY;
|
||||
- rt.rtmsg_metric = 1;
|
||||
- rt.rtmsg_dst_len = 0;
|
||||
- rt.rtmsg_ifindex = index;
|
||||
-
|
||||
- sk = socket(AF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0);
|
||||
- if (sk < 0) {
|
||||
- err = -errno;
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- if (ioctl(sk, SIOCADDRT, &rt) < 0 && errno != EEXIST)
|
||||
- err = -errno;
|
||||
-
|
||||
- close(sk);
|
||||
-
|
||||
-out:
|
||||
- if (err < 0)
|
||||
- connman_error("Set default IPv6 gateway error (%s)",
|
||||
- strerror(-err));
|
||||
-
|
||||
- return err;
|
||||
-}
|
||||
-
|
||||
int connman_inet_clear_ipv6_gateway_address(int index, const char *gateway)
|
||||
{
|
||||
struct in6_rtmsg rt;
|
||||
@@ -809,63 +768,6 @@ out:
|
||||
return err;
|
||||
}
|
||||
|
||||
-int connman_inet_set_gateway_address(int index, const char *gateway)
|
||||
-{
|
||||
- struct ifreq ifr;
|
||||
- struct rtentry rt;
|
||||
- struct sockaddr_in addr;
|
||||
- int sk, err = 0;
|
||||
-
|
||||
- DBG("index %d gateway %s", index, gateway);
|
||||
-
|
||||
- sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
|
||||
- if (sk < 0) {
|
||||
- err = -errno;
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- memset(&ifr, 0, sizeof(ifr));
|
||||
- ifr.ifr_ifindex = index;
|
||||
-
|
||||
- if (ioctl(sk, SIOCGIFNAME, &ifr) < 0) {
|
||||
- err = -errno;
|
||||
- close(sk);
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- DBG("ifname %s", ifr.ifr_name);
|
||||
-
|
||||
- memset(&rt, 0, sizeof(rt));
|
||||
- rt.rt_flags = RTF_UP | RTF_GATEWAY;
|
||||
-
|
||||
- memset(&addr, 0, sizeof(addr));
|
||||
- addr.sin_family = AF_INET;
|
||||
- addr.sin_addr.s_addr = INADDR_ANY;
|
||||
- memcpy(&rt.rt_dst, &addr, sizeof(rt.rt_dst));
|
||||
-
|
||||
- memset(&addr, 0, sizeof(addr));
|
||||
- addr.sin_family = AF_INET;
|
||||
- addr.sin_addr.s_addr = inet_addr(gateway);
|
||||
- memcpy(&rt.rt_gateway, &addr, sizeof(rt.rt_gateway));
|
||||
-
|
||||
- memset(&addr, 0, sizeof(addr));
|
||||
- addr.sin_family = AF_INET;
|
||||
- addr.sin_addr.s_addr = INADDR_ANY;
|
||||
- memcpy(&rt.rt_genmask, &addr, sizeof(rt.rt_genmask));
|
||||
-
|
||||
- if (ioctl(sk, SIOCADDRT, &rt) < 0 && errno != EEXIST)
|
||||
- err = -errno;
|
||||
-
|
||||
- close(sk);
|
||||
-
|
||||
-out:
|
||||
- if (err < 0)
|
||||
- connman_error("Setting default gateway route failed (%s)",
|
||||
- strerror(-err));
|
||||
-
|
||||
- return err;
|
||||
-}
|
||||
-
|
||||
int connman_inet_set_gateway_interface(int index)
|
||||
{
|
||||
struct ifreq ifr;
|
||||
--
|
||||
1.7.11.7
|
||||
|
@ -1,36 +0,0 @@
|
||||
|
||||
Betreff:
|
||||
[PATCH] tethering: Cleanup tethering when connman is shutting down
|
||||
Von:
|
||||
Jukka Rissanen <jukka.rissanen@linux.intel.com>
|
||||
Datum:
|
||||
26.06.2013 09:40
|
||||
An:
|
||||
connman@connman.net
|
||||
|
||||
We do not want to leave the tether interface and bridge hanging
|
||||
around after shutdown.
|
||||
---
|
||||
src/tethering.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/tethering.c b/src/tethering.c
|
||||
index 0b373b9..03ed02a 100644
|
||||
--- a/src/tethering.c
|
||||
+++ b/src/tethering.c
|
||||
@@ -532,10 +532,10 @@ int __connman_tethering_init(void)
|
||||
|
||||
void __connman_tethering_cleanup(void)
|
||||
{
|
||||
- DBG("");
|
||||
+ DBG("enabled %d", tethering_enabled);
|
||||
|
||||
__sync_synchronize();
|
||||
- if (tethering_enabled == 0) {
|
||||
+ if (tethering_enabled > 0) {
|
||||
if (tethering_dhcp_server)
|
||||
dhcp_server_stop(tethering_dhcp_server);
|
||||
__connman_bridge_disable(BRIDGE_NAME);
|
||||
--
|
||||
1.7.11.7
|
||||
|
@ -19,8 +19,8 @@
|
||||
################################################################################
|
||||
|
||||
wait_for_inet_addr () {
|
||||
if [ -f /storage/.cache/openelec/network_wait ]; then
|
||||
. /storage/.cache/openelec/network_wait
|
||||
if [ -f $CONFIG_CACHE/openelec/network_wait ]; then
|
||||
. $CONFIG_CACHE/openelec/network_wait
|
||||
|
||||
if [ "$WAIT_NETWORK" = "true" ] ; then
|
||||
progress "Wait for network"
|
@ -35,9 +35,9 @@
|
||||
OPTIONS="-o 'PasswordAuthentication no'"
|
||||
fi
|
||||
|
||||
RSA1_KEY="/storage/.cache/ssh/ssh_host_key"
|
||||
RSA2_KEY="/storage/.cache/ssh/ssh_host_rsa_key"
|
||||
DSA2_KEY="/storage/.cache/ssh/ssh_host_dsa_key"
|
||||
RSA1_KEY="$CONFIG_CACHE/ssh/ssh_host_key"
|
||||
RSA2_KEY="$CONFIG_CACHE/ssh/ssh_host_rsa_key"
|
||||
DSA2_KEY="$CONFIG_CACHE/ssh/ssh_host_dsa_key"
|
||||
|
||||
KEYGEN="/usr/bin/ssh-keygen"
|
||||
SSHD="/usr/sbin/sshd"
|
||||
@ -51,7 +51,7 @@
|
||||
if [ ! -s $RSA1_KEY ] ; then
|
||||
progress "SSH: generating SSH1 RSA key"
|
||||
|
||||
mkdir -p /storage/.cache/ssh
|
||||
mkdir -p $CONFIG_CACHE/ssh
|
||||
$KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null
|
||||
chmod 600 $RSA1_KEY
|
||||
fi
|
||||
@ -60,7 +60,7 @@
|
||||
if [ ! -s $RSA2_KEY ] ; then
|
||||
progress "SSH: generating SSH2 RSA key"
|
||||
|
||||
mkdir -p /storage/.cache/ssh
|
||||
mkdir -p $CONFIG_CACHE/ssh
|
||||
$KEYGEN -q -t rsa -f $RSA2_KEY -C '' -N '' >&/dev/null
|
||||
chmod 600 $RSA2_KEY
|
||||
fi
|
||||
@ -69,7 +69,7 @@
|
||||
if [ ! -s $DSA2_KEY ] ; then
|
||||
progress "SSH: generating SSH2 DSA key"
|
||||
|
||||
mkdir -p /storage/.cache/ssh
|
||||
mkdir -p $CONFIG_CACHE/ssh
|
||||
$KEYGEN -q -t dsa -f $DSA2_KEY -C '' -N '' >&/dev/null
|
||||
chmod 600 $DSA2_KEY
|
||||
fi
|
||||
|
@ -35,7 +35,3 @@ PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
if [ "$SSHGUARD_SUPPORT" = yes ]; then
|
||||
PKG_DEPENDS="$PKG_DEPENDS sshguard"
|
||||
fi
|
||||
|
||||
|
@ -1,36 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
ac_cv_func_malloc_0_nonnull=yes \
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
--datadir=/usr/share \
|
||||
--localstatedir=/var \
|
||||
--with-firewall="iptables" \
|
||||
--with-iptables="/usr/sbin/iptables" \
|
||||
|
||||
make
|
@ -1,26 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/sbin
|
||||
cp -P $PKG_BUILD/src/sshguard $INSTALL/usr/sbin
|
@ -1,36 +0,0 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sshguard"
|
||||
PKG_VERSION="1.5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="http://www.sshguard.net/"
|
||||
PKG_URL="$SOURCEFORGE_SRC/project/sshguard/sshguard/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="iptables"
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="security"
|
||||
PKG_SHORTDESC="sshguard: monitors servers from their logging activity."
|
||||
PKG_LONGDESC="Sshguard monitors servers from their logging activity. When logs convey that someone is doing a Bad Thing, sshguard reacts by blocking he/she/it for a bit. Sshguard has a touchy personality: when a naughty tyke insists disturbing your host, it reacts firmer and firmer."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
@ -1,12 +0,0 @@
|
||||
diff -Naur sshguard-1.5/configure.ac sshguard-1.5.patch/configure.ac
|
||||
--- sshguard-1.5/configure.ac 2011-02-09 13:01:47.000000000 +0100
|
||||
+++ sshguard-1.5.patch/configure.ac 2013-01-12 01:13:22.735102536 +0100
|
||||
@@ -5,7 +5,7 @@
|
||||
AC_INIT(sshguard, 1.5, mij@sshguard.net)
|
||||
AM_INIT_AUTOMAKE
|
||||
AC_CONFIG_SRCDIR([src/simclist.c])
|
||||
-AM_CONFIG_HEADER([src/config.h])
|
||||
+AC_CONFIG_HEADERS([src/config.h])
|
||||
# test if we are on Solaris, which requires outstanding practices
|
||||
AC_CANONICAL_BUILD
|
||||
AS_CASE([$build_os],
|
@ -1,41 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
--bindir=/usr/bin \
|
||||
--sbindir=/usr/bin \
|
||||
--sysconfdir=/etc \
|
||||
--libexecdir=/usr/lib/ConsoleKit \
|
||||
--localstatedir=/var \
|
||||
--disable-static \
|
||||
--enable-shared \
|
||||
--disable-pam-module \
|
||||
--disable-docbook-docs \
|
||||
|
||||
make
|
||||
|
||||
$MAKEINSTALL
|
@ -1,67 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/etc/ConsoleKit/run-seat.d
|
||||
mkdir -p $INSTALL/etc/ConsoleKit/run-session.d
|
||||
mkdir -p $INSTALL/etc/ConsoleKit/seats.d
|
||||
cp -P $PKG_BUILD/data/00-primary.seat $INSTALL/etc/ConsoleKit/seats.d
|
||||
|
||||
mkdir -p $INSTALL/etc/dbus-1/system.d
|
||||
cp -P $PKG_BUILD/data/ConsoleKit.conf $INSTALL/etc/dbus-1/system.d
|
||||
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp -P $PKG_BUILD/tools/ck-log-system-restart $INSTALL/usr/bin
|
||||
cp -P $PKG_BUILD/tools/ck-log-system-start $INSTALL/usr/bin
|
||||
cp -P $PKG_BUILD/tools/ck-log-system-stop $INSTALL/usr/bin
|
||||
cp -P $PKG_BUILD/src/console-kit-daemon $INSTALL/usr/bin
|
||||
cp -P $PKG_BUILD/tools/.libs/ck-launch-session $INSTALL/usr/bin
|
||||
cp -P $PKG_BUILD/tools/ck-list-sessions $INSTALL/usr/bin
|
||||
cp -P $PKG_BUILD/tools/ck-history $INSTALL/usr/bin
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/libck-connector/.libs/*.so* $INSTALL/usr/lib
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/ConsoleKit
|
||||
cp -P $PKG_BUILD/tools/ck-collect-session-info $INSTALL/usr/lib/ConsoleKit
|
||||
cp -P $PKG_BUILD/tools/ck-get-x11-display-device $INSTALL/usr/lib/ConsoleKit
|
||||
cp -P $PKG_BUILD/tools/ck-get-x11-server-pid $INSTALL/usr/lib/ConsoleKit
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/ConsoleKit/run-seat.d
|
||||
mkdir -p $INSTALL/usr/lib/ConsoleKit/run-session.d
|
||||
mkdir -p $INSTALL/usr/lib/ConsoleKit/scripts
|
||||
# cp -P $PKG_BUILD/tools/linux/ck-system-restart $INSTALL/usr/lib/ConsoleKit/scripts
|
||||
# cp -P $PKG_BUILD/tools/linux/ck-system-stop $INSTALL/usr/lib/ConsoleKit/scripts
|
||||
cp -P $PKG_DIR/scripts/ck-system-restart $INSTALL/usr/lib/ConsoleKit/scripts
|
||||
cp -P $PKG_DIR/scripts/ck-system-stop $INSTALL/usr/lib/ConsoleKit/scripts
|
||||
|
||||
mkdir -p $INSTALL/usr/share/dbus-1/interfaces
|
||||
cp -P $PKG_BUILD/src/org.freedesktop.ConsoleKit.Manager.xml $INSTALL/usr/share/dbus-1/interfaces
|
||||
cp -P $PKG_BUILD/src/org.freedesktop.ConsoleKit.Seat.xml $INSTALL/usr/share/dbus-1/interfaces
|
||||
cp -P $PKG_BUILD/src/org.freedesktop.ConsoleKit.Session.xml $INSTALL/usr/share/dbus-1/interfaces
|
||||
|
||||
mkdir -p $INSTALL/usr/share/dbus-1/system-services
|
||||
cp -P $PKG_BUILD/data/org.freedesktop.ConsoleKit.service $INSTALL/usr/share/dbus-1/system-services
|
||||
|
||||
mkdir -p $INSTALL/usr/share/polkit-1/actions
|
||||
cp -P $PKG_BUILD/data/org.freedesktop.consolekit.policy $INSTALL/usr/share/polkit-1/actions
|
@ -1,36 +0,0 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="ConsoleKit"
|
||||
PKG_VERSION="0.4.5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.freedesktop.org/wiki/Software/ConsoleKit"
|
||||
PKG_URL="http://www.freedesktop.org/software/ConsoleKit/dist/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="dbus polkit libX11"
|
||||
PKG_BUILD_DEPENDS="toolchain dbus dbus-glib polkit libX11"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="system"
|
||||
PKG_SHORTDESC="ConsoleKit: a framework for defining and tracking users, login sessions, and seats."
|
||||
PKG_LONGDESC="ConsoleKit is a framework for defining and tracking users, login sessions, and seats."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
@ -1,25 +0,0 @@
|
||||
From e8d8a3dadcaa32eeb9f2f27f9774e52e5ec70dde Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sat, 8 Jun 2013 22:21:41 +0300
|
||||
Subject: [PATCH] do not spawn too much threads
|
||||
|
||||
---
|
||||
src/ck-sysdeps-linux.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/src/ck-sysdeps-linux.c b/src/ck-sysdeps-linux.c
|
||||
index a95272e..264fe22 100644
|
||||
--- a/src/ck-sysdeps-linux.c
|
||||
+++ b/src/ck-sysdeps-linux.c
|
||||
@@ -687,7 +687,7 @@ gboolean
|
||||
ck_get_max_num_consoles (guint *num)
|
||||
{
|
||||
if (num != NULL) {
|
||||
- *num = MAX_NR_CONSOLES;
|
||||
+ *num = 1;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
--
|
||||
1.7.2.5
|
||||
|
@ -1,31 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. /etc/profile.d/safe-shutdown.conf
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="xbmc.disabled"
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
wait_on_xbmc_exit
|
||||
killall sshd
|
||||
_safe_shutdown
|
||||
reboot
|
@ -1,31 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
. /etc/profile.d/safe-shutdown.conf
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="xbmc.disabled"
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
wait_on_xbmc_exit
|
||||
killall sshd
|
||||
_safe_shutdown
|
||||
poweroff
|
@ -26,8 +26,8 @@
|
||||
(
|
||||
progress "Starting Syslog daemon"
|
||||
|
||||
if [ -e /storage/.cache/syslog/remote ] ; then
|
||||
source /storage/.cache/syslog/remote
|
||||
if [ -e $CONFIG_CACHE/syslog/remote ] ; then
|
||||
source $CONFIG_CACHE/syslog/remote
|
||||
fi
|
||||
|
||||
SYSLOGD_OPTIONS="-L"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user