mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
43 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9bca91c15c | ||
|
|
855cf7fb79 | ||
|
|
a610eb6487 | ||
|
|
e481ac3d75 | ||
|
|
58a9f28111 | ||
|
|
cceb400a22 | ||
|
|
0c2f5bfb0f | ||
|
|
ce3d8cf49c | ||
|
|
3d11fd01ca | ||
|
|
81725aa348 | ||
|
|
5928cb17fa | ||
|
|
17c238df36 | ||
|
|
f5d4592c71 | ||
|
|
d3b8a3ace1 | ||
|
|
c0662f2e80 | ||
|
|
cb75b105cf | ||
|
|
c7c4c7fb1e | ||
|
|
84f350e3ff | ||
|
|
db6bd00787 | ||
|
|
7cc94b7a45 | ||
|
|
65b15527f1 | ||
|
|
08a9141adb | ||
|
|
8523bebf19 | ||
|
|
475ef3bad8 | ||
|
|
9541172f6f | ||
|
|
146bacc838 | ||
|
|
14505f331c | ||
|
|
589317a042 | ||
|
|
8e300dbb5b | ||
|
|
677d887cc6 | ||
|
|
eee70e8d6b | ||
|
|
d30bf7cf15 | ||
|
|
45e9c4c68d | ||
|
|
727ed810df | ||
|
|
43e3e62552 | ||
|
|
c860c46d79 | ||
|
|
09975f85b6 | ||
|
|
94ecd0c100 | ||
|
|
f143d1c9f0 | ||
|
|
64acb5c518 | ||
|
|
d249255ad7 | ||
|
|
250140a453 | ||
|
|
9d1142b5f4 |
10
README.md
10
README.md
@@ -2,8 +2,8 @@
|
||||
|
||||
# OpenELEC - Open Embedded Linux Entertainment Center
|
||||
|
||||
OpenELEC runs [XBMC](http://xbmc.org), an award-winning free and open source (GPL) software media
|
||||
player and entertainment hub for digital media. For more info see http://xbmc.org .
|
||||
OpenELEC runs [Kodi](http://kodi.tv), an award-winning free and open source (GPL) software media
|
||||
player and entertainment hub for digital media. For more info see http://kodi.tv .
|
||||
The base system has been designed and built from the ground up to be as
|
||||
efficient as possible – consuming only tiny disk and memory footprints and
|
||||
providing cutting edge hardware support to deliver a set-top box experience.
|
||||
@@ -48,12 +48,12 @@ providing cutting edge hardware support to deliver a set-top box experience.
|
||||
* Minimal hardware requirements
|
||||
* Ultra fast boot
|
||||
* Optimized builds for platforms such as ION, Intel, Fusion
|
||||
* Simple configuration via XBMC itself
|
||||
* Simple configuration via Kodi itself
|
||||
* Plug and Play external storage
|
||||
|
||||
**Software**
|
||||
|
||||
* XBMC HTPC software – View/Manage all your media.
|
||||
* Kodi HTPC software – View/Manage all your media.
|
||||
* Samba server – File transfer from any PC client
|
||||
* SSH server – Remote console access for debugging
|
||||
* IR/Bluetooth Remote Control
|
||||
@@ -74,7 +74,7 @@ providing cutting edge hardware support to deliver a set-top box experience.
|
||||
next reboot.
|
||||
* Automatic mounting of filesystems is supported. Devices such as USB Flash
|
||||
sticks can be plugged into a running machine and will be mounted to /media,
|
||||
showing up in xbmc’s GUI.
|
||||
showing up in Kodi’s GUI.
|
||||
* Comments and questions are more than welcome, help is even better and patches
|
||||
are absolutely perfect!!
|
||||
|
||||
|
||||
@@ -32,12 +32,9 @@
|
||||
SIMD_SUPPORT="no"
|
||||
;;
|
||||
cortex-a7|cortex-a15)
|
||||
TARGET_SUBARCH=armv7-a
|
||||
TARGET_SUBARCH=armv7ve
|
||||
TARGET_ABI=eabi
|
||||
# It's not currently possible to specify the exact architecture variant (-mcpu)
|
||||
# that A7/A15 supports in the command line so use -mtune here.
|
||||
# see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57907
|
||||
TARGET_EXTRA_FLAGS="-mtune=$TARGET_CPU"
|
||||
TARGET_EXTRA_FLAGS="-mcpu=$TARGET_CPU"
|
||||
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
|
||||
SIMD_SUPPORT="yes"
|
||||
;;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
OPENELEC_VERSION="5.0.2"
|
||||
OPENELEC_VERSION="5.0.5"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="5.0"
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
4.3.8
|
||||
- update to vdr-2.1.10
|
||||
- update to vdr-plugin-restfulapi-0.2.1.1
|
||||
- update to vdr-plugin-vnsiserver-f2175ba
|
||||
|
||||
4.3.7
|
||||
- update to vdr-2.1.8
|
||||
- update to vdr-plugin-vnsiserver-b887bc8
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
PKG_NAME="vdr-addon"
|
||||
PKG_VERSION="4.3"
|
||||
PKG_REV="7"
|
||||
PKG_REV="8"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
|
||||
@@ -22,7 +22,7 @@ PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://espeak.sourceforge.net/"
|
||||
PKG_URL="http://downloads.sourceforge.net/$PKG_NAME/$PKG_NAME-$PKG_VERSION.zip"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.zip"
|
||||
PKG_SOURCE_DIR="$PKG_NAME/$PKG_NAME-$PKG_VERSION"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mpc"
|
||||
PKG_VERSION="1.0.2"
|
||||
PKG_VERSION="1.0.3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="374e3af"
|
||||
PKG_VERSION="69b787b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
||||
@@ -23,7 +23,7 @@ case "$LINUX" in
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
;;
|
||||
3.18)
|
||||
PKG_VERSION="3.18.6"
|
||||
PKG_VERSION="3.18.8"
|
||||
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
;;
|
||||
*)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-pvr-addons"
|
||||
PKG_VERSION="a0a437e"
|
||||
PKG_VERSION="da4c212"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-theme-Confluence"
|
||||
PKG_VERSION="14-b5dbdb5"
|
||||
PKG_VERSION="14-085163e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi"
|
||||
PKG_VERSION="14-b5dbdb5"
|
||||
PKG_VERSION="14-085163e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -Naur kodi-14-b5dbdb5.orig/xbmc/input/linux/LinuxInputDevices.cpp kodi-14-b5dbdb5/xbmc/input/linux/LinuxInputDevices.cpp
|
||||
--- kodi-14-b5dbdb5.orig/xbmc/input/linux/LinuxInputDevices.cpp 2015-02-20 22:00:07.688420179 -0800
|
||||
+++ kodi-14-b5dbdb5/xbmc/input/linux/LinuxInputDevices.cpp 2015-02-20 22:01:36.495680879 -0800
|
||||
@@ -255,6 +255,8 @@
|
||||
{ 378 , XBMCK_RIGHT }, // Green
|
||||
{ 381 , XBMCK_UP }, // Yellow
|
||||
{ 366 , XBMCK_DOWN }, // Blue
|
||||
+ // Rii i7 Home button
|
||||
+ { 172 , XBMCK_HOME },
|
||||
};
|
||||
|
||||
typedef enum
|
||||
@@ -1,51 +0,0 @@
|
||||
From 9e65311555962ea40eae8cf34f2a545957a0beb0 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sat, 7 Feb 2015 18:38:00 +0100
|
||||
Subject: [PATCH 1/2] dvdplayer: reset speed of video reference clock after
|
||||
refresh rate changed
|
||||
|
||||
---
|
||||
xbmc/video/VideoReferenceClock.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/xbmc/video/VideoReferenceClock.cpp b/xbmc/video/VideoReferenceClock.cpp
|
||||
index 9246a35..a3ee195 100644
|
||||
--- a/xbmc/video/VideoReferenceClock.cpp
|
||||
+++ b/xbmc/video/VideoReferenceClock.cpp
|
||||
@@ -280,6 +280,7 @@ void CVideoReferenceClock::UpdateRefreshrate()
|
||||
{
|
||||
CSingleLock SingleLock(m_CritSection);
|
||||
m_RefreshRate = m_pVideoSync->GetFps();
|
||||
+ m_ClockSpeed = 1.0;
|
||||
|
||||
CLog::Log(LOGDEBUG, "CVideoReferenceClock: Detected refreshrate: %.3f hertz", m_RefreshRate);
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From db557b5418b86d04dd6903ce04a9dee21df54882 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Sun, 8 Feb 2015 21:45:49 +0100
|
||||
Subject: [PATCH 2/2] dvdplayer: fix clock speed
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDClock.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDClock.cpp b/xbmc/cores/dvdplayer/DVDClock.cpp
|
||||
index 0a253e4..a496ec0 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDClock.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDClock.cpp
|
||||
@@ -218,7 +218,7 @@ int CDVDClock::UpdateFramerate(double fps, double* interval /*= NULL*/)
|
||||
|
||||
CSingleLock lock(m_speedsection);
|
||||
|
||||
- double weight = rate / (double)MathUtils::round_int(fps);
|
||||
+ double weight = MathUtils::round_int(rate) / (double)MathUtils::round_int(fps);
|
||||
|
||||
//set the speed of the videoreferenceclock based on fps, refreshrate and maximum speed adjust set by user
|
||||
if (m_maxspeedadjust > 0.05)
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
From 06010806542ef186fe11d7e0c56cc99c6d9e4cd5 Mon Sep 17 00:00:00 2001
|
||||
From: wsnipex <wsnipex@a1.net>
|
||||
Date: Fri, 6 Feb 2015 11:09:58 +0100
|
||||
Subject: [PATCH] [rtmp] re-add rtmp options
|
||||
|
||||
partially reverts 0339c8cdf564d056fc307c04d12370ccdc75499b
|
||||
fixes (#15756)
|
||||
---
|
||||
.../DVDInputStreams/DVDInputStreamRTMP.cpp | 31 ++++++++++++++++++++++
|
||||
.../dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h | 1 +
|
||||
2 files changed, 32 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
|
||||
index 324eadb..5d45448 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
|
||||
@@ -122,6 +122,19 @@ bool CDVDInputStreamRTMP::IsEOF()
|
||||
#undef AVC
|
||||
#define AVC(str) {(char *)str,sizeof(str)-1}
|
||||
|
||||
+/* librtmp option names are slightly different */
|
||||
+static const struct {
|
||||
+ const char *name;
|
||||
+ AVal key;
|
||||
+} options[] = {
|
||||
+ { "SWFPlayer", AVC("swfUrl") },
|
||||
+ { "PageURL", AVC("pageUrl") },
|
||||
+ { "PlayPath", AVC("playpath") },
|
||||
+ { "TcUrl", AVC("tcUrl") },
|
||||
+ { "IsLive", AVC("live") },
|
||||
+ { NULL }
|
||||
+};
|
||||
+
|
||||
bool CDVDInputStreamRTMP::Open(const char* strFile, const std::string& content)
|
||||
{
|
||||
if (m_sStreamPlaying)
|
||||
@@ -160,6 +173,23 @@ bool CDVDInputStreamRTMP::Open(const char* strFile, const std::string& content)
|
||||
}
|
||||
CLog::Log(LOGDEBUG, "RTMP canseek: %s", m_canSeek ? "true" : "false");
|
||||
|
||||
+ /* SetOpt and SetAVal copy pointers to the value. librtmp doesn't use the values until the Connect() call,
|
||||
+ * so value objects must stay allocated until then. To be extra safe, keep the values around until Close(),
|
||||
+ * in case librtmp needs them again.
|
||||
+ */
|
||||
+ m_optionvalues.clear();
|
||||
+ for (int i=0; options[i].name; i++)
|
||||
+ {
|
||||
+ std::string tmp = m_item.GetProperty(options[i].name).asString();
|
||||
+ if (!tmp.empty())
|
||||
+ {
|
||||
+ m_optionvalues.push_back(tmp);
|
||||
+ AVal av_tmp;
|
||||
+ SetAVal(av_tmp, m_optionvalues.back());
|
||||
+ m_libRTMP.SetOpt(m_rtmp, &options[i].key, &av_tmp);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (!m_libRTMP.Connect(m_rtmp, NULL) || !m_libRTMP.ConnectStream(m_rtmp, 0))
|
||||
return false;
|
||||
|
||||
@@ -177,6 +207,7 @@ void CDVDInputStreamRTMP::Close()
|
||||
if (m_rtmp)
|
||||
m_libRTMP.Close(m_rtmp);
|
||||
|
||||
+ m_optionvalues.clear();
|
||||
m_eof = true;
|
||||
m_bPaused = false;
|
||||
}
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h
|
||||
index 5568c14..dd00e5a 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.h
|
||||
@@ -51,6 +51,7 @@ class CDVDInputStreamRTMP
|
||||
bool m_canSeek;
|
||||
bool m_canPause;
|
||||
char* m_sStreamPlaying;
|
||||
+ std::vector<std::string> m_optionvalues;
|
||||
|
||||
RTMP *m_rtmp;
|
||||
DllLibRTMP m_libRTMP;
|
||||
@@ -1,23 +0,0 @@
|
||||
From 3eec72d4fd109e9f153a375138c1a997bcf86d9a Mon Sep 17 00:00:00 2001
|
||||
From: wsnipex <wsnipex@a1.net>
|
||||
Date: Sun, 8 Feb 2015 14:15:49 +0100
|
||||
Subject: [PATCH] [curl] don't return 0 in the write callback, it causes ftp
|
||||
content lenght requests to fail
|
||||
|
||||
---
|
||||
xbmc/filesystem/CurlFile.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/filesystem/CurlFile.cpp b/xbmc/filesystem/CurlFile.cpp
|
||||
index 7d68dab..e67d951 100644
|
||||
--- a/xbmc/filesystem/CurlFile.cpp
|
||||
+++ b/xbmc/filesystem/CurlFile.cpp
|
||||
@@ -100,7 +100,7 @@ extern "C" size_t write_callback(char *buffer,
|
||||
size_t nitems,
|
||||
void *userp)
|
||||
{
|
||||
- if(userp == NULL) return 0;
|
||||
+ if(userp == NULL) return size * nitems;
|
||||
|
||||
CCurlFile::CReadState *state = (CCurlFile::CReadState *)userp;
|
||||
return state->WriteCallback(buffer, size, nitems);
|
||||
73
packages/mediacenter/kodi/patches/kodi-999.98-PR6408.patch
Normal file
73
packages/mediacenter/kodi/patches/kodi-999.98-PR6408.patch
Normal file
@@ -0,0 +1,73 @@
|
||||
From d8fff72de0159160fb4ca1c249c8365e9e1b6785 Mon Sep 17 00:00:00 2001
|
||||
From: wsnipex <wsnipex@a1.net>
|
||||
Date: Wed, 11 Feb 2015 16:58:25 +0100
|
||||
Subject: [PATCH] [curl] use better method to stat shoutcast and friends
|
||||
|
||||
---
|
||||
xbmc/filesystem/CurlFile.cpp | 31 +++++++++++++++++++------------
|
||||
1 file changed, 19 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/xbmc/filesystem/CurlFile.cpp b/xbmc/filesystem/CurlFile.cpp
|
||||
index 7d68dab..ee63ff5 100644
|
||||
--- a/xbmc/filesystem/CurlFile.cpp
|
||||
+++ b/xbmc/filesystem/CurlFile.cpp
|
||||
@@ -123,6 +123,19 @@ extern "C" size_t header_callback(void *ptr, size_t size, size_t nmemb, void *st
|
||||
return state->HeaderCallback(ptr, size, nmemb);
|
||||
}
|
||||
|
||||
+/* used only by CCurlFile::Stat to bail out of unwanted transfers */
|
||||
+extern "C" int transfer_abort_callback(void *clientp,
|
||||
+ curl_off_t dltotal,
|
||||
+ curl_off_t dlnow,
|
||||
+ curl_off_t ultotal,
|
||||
+ curl_off_t ulnow)
|
||||
+{
|
||||
+ if(dlnow > 0)
|
||||
+ return 1;
|
||||
+ else
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
/* fix for silly behavior of realloc */
|
||||
static inline void* realloc_simple(void *ptr, size_t size)
|
||||
{
|
||||
@@ -1285,7 +1298,6 @@ int CCurlFile::Stat(const CURL& url, struct __stat64* buffer)
|
||||
SetRequestHeaders(m_state);
|
||||
g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_TIMEOUT, g_advancedSettings.m_curlconnecttimeout);
|
||||
g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_NOBODY, 1);
|
||||
- g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_WRITEDATA, NULL); /* will cause write failure*/
|
||||
g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_FILETIME , 1);
|
||||
|
||||
if(url2.IsProtocol("ftp"))
|
||||
@@ -1311,25 +1323,20 @@ int CCurlFile::Stat(const CURL& url, struct __stat64* buffer)
|
||||
|| result == CURLE_RECV_ERROR /* some silly shoutcast servers */ )
|
||||
{
|
||||
/* some http servers and shoutcast servers don't give us any data on a head request */
|
||||
- /* request normal and just fail out, it's their loss */
|
||||
+ /* request normal and just bail out via progress meter callback after we received data */
|
||||
/* somehow curl doesn't reset CURLOPT_NOBODY properly so reset everything */
|
||||
SetCommonOptions(m_state);
|
||||
SetRequestHeaders(m_state);
|
||||
g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_TIMEOUT, g_advancedSettings.m_curlconnecttimeout);
|
||||
- g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_RANGE, "0-0");
|
||||
- g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_WRITEDATA, NULL); /* will cause write failure*/
|
||||
- g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_FILETIME, 1);
|
||||
- result = g_curlInterface.easy_perform(m_state->m_easyHandle);
|
||||
- }
|
||||
+ g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_FILETIME, 1);
|
||||
+ g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_XFERINFOFUNCTION, transfer_abort_callback);
|
||||
+ g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_NOPROGRESS, 0);
|
||||
|
||||
- if( result == CURLE_HTTP_RANGE_ERROR )
|
||||
- {
|
||||
- /* crap can't use the range option, disable it and try again */
|
||||
- g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_RANGE, NULL);
|
||||
result = g_curlInterface.easy_perform(m_state->m_easyHandle);
|
||||
+
|
||||
}
|
||||
|
||||
- if( result != CURLE_WRITE_ERROR && result != CURLE_OK )
|
||||
+ if( result != CURLE_ABORTED_BY_CALLBACK && result != CURLE_OK )
|
||||
{
|
||||
g_curlInterface.easy_release(&m_state->m_easyHandle, NULL);
|
||||
errno = ENOENT;
|
||||
@@ -1,22 +0,0 @@
|
||||
From e4883edd68351acb8c991b02179a7ba7662edc4f Mon Sep 17 00:00:00 2001
|
||||
From: fritsch <peter.fruehberger@gmail.com>
|
||||
Date: Wed, 4 Feb 2015 22:32:03 +0100
|
||||
Subject: [PATCH] NFSFile: Chank ChunkSize to 1MB
|
||||
|
||||
---
|
||||
xbmc/filesystem/NFSFile.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/filesystem/NFSFile.h b/xbmc/filesystem/NFSFile.h
|
||||
index 4c01e4e..7afa6b8 100644
|
||||
--- a/xbmc/filesystem/NFSFile.h
|
||||
+++ b/xbmc/filesystem/NFSFile.h
|
||||
@@ -148,7 +148,7 @@ namespace XFILE
|
||||
//implement iocontrol for seek_possible for preventing the stat in File class for
|
||||
//getting this info ...
|
||||
virtual int IoControl(EIoControl request, void* param){ if(request == IOCTRL_SEEK_POSSIBLE) return 1;return -1;};
|
||||
- virtual int GetChunkSize() {return 1;}
|
||||
+ virtual int GetChunkSize() {return 1024*1024;}
|
||||
|
||||
virtual bool OpenForWrite(const CURL& url, bool bOverWrite = false);
|
||||
virtual bool Delete(const CURL& url);
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-restfulapi"
|
||||
PKG_VERSION="0.1.3"
|
||||
PKG_VERSION="0.2.1.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr-plugin-vnsiserver"
|
||||
PKG_VERSION="b887bc8"
|
||||
PKG_VERSION="f2175ba"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdr"
|
||||
PKG_VERSION="2.1.8"
|
||||
PKG_VERSION="2.1.10"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libssh"
|
||||
PKG_VERSION="0.6.3"
|
||||
PKG_VERSION="0.6.4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OpenSource"
|
||||
PKG_SITE="http://www.libssh.org/"
|
||||
PKG_URL="https://red.libssh.org/attachments/download/87/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_URL="https://red.libssh.org/attachments/download/107/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain zlib libressl"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="network"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="samba"
|
||||
PKG_VERSION="3.6.24"
|
||||
PKG_VERSION="3.6.25"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -208,6 +208,9 @@ post_install() {
|
||||
add_group root 0
|
||||
add_group users 100
|
||||
|
||||
add_user nobody x 65534 65534 "Nobody" "/" "/bin/sh"
|
||||
add_group nogroup 65534
|
||||
|
||||
enable_service debug-shell.service
|
||||
enable_service shell.service
|
||||
enable_service show-version.service
|
||||
|
||||
@@ -203,6 +203,10 @@ ATTRS{name}=="Nintendo Wii Remote", \
|
||||
ATTRS{name}=="BD Remote Control", \
|
||||
ENV{eventlircd_enable}="true", \
|
||||
ENV{eventlircd_evmap}="ps3remote.evmap"
|
||||
#PS3 BD Remote Version 2 (Bluetooth AND infrared 3 in 1 remote)
|
||||
ATTRS{name}=="Sony Computer Entertainment Inc BD Remote Control", \
|
||||
ENV{eventlircd_enable}="true", \
|
||||
ENV{eventlircd_evmap}="ps3remote.evmap"
|
||||
|
||||
LABEL="end-bluetooth"
|
||||
|
||||
|
||||
@@ -39,6 +39,11 @@ fi
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-libusb --enable-drivers=$LCD_DRIVER,!curses,!svga --enable-seamless-hbars"
|
||||
|
||||
pre_make_target() {
|
||||
# dont build parallel
|
||||
MAKEFLAGS=-j1
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf $INSTALL/etc/lcd*.conf
|
||||
rm -rf $INSTALL/usr/bin
|
||||
@@ -62,8 +67,5 @@ post_makeinstall_target() {
|
||||
}
|
||||
|
||||
post_install() {
|
||||
add_user nobody x 999 999 "Nobody" "/" "/bin/sh"
|
||||
add_group nobody 999
|
||||
|
||||
enable_service lcdd.service
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-bootloader"
|
||||
PKG_VERSION="374e3af"
|
||||
PKG_VERSION="69b787b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
||||
@@ -26,13 +26,15 @@ mkdir -p $RELEASE_DIR/3rdparty/bootloader
|
||||
cp -PR $BUILD/bcm2835-bootloader-*/fixup_x.dat $RELEASE_DIR/3rdparty/bootloader/fixup.dat
|
||||
cp -PR $BUILD/bcm2835-bootloader-*/start_x.elf $RELEASE_DIR/3rdparty/bootloader/start.elf
|
||||
|
||||
if [ -f $INSTALL/usr/share/bootloader/*.dtb ]; then
|
||||
cp -PR $INSTALL/usr/share/bootloader/*.dtb $RELEASE_DIR/3rdparty/bootloader/
|
||||
fi
|
||||
|
||||
for file in $INSTALL/usr/share/bootloader/overlays/* ; do
|
||||
if [ -f $file ]; then
|
||||
mkdir -p $RELEASE_DIR/3rdparty/bootloader/overlays
|
||||
cp -PR $file $RELEASE_DIR/3rdparty/bootloader/overlays
|
||||
for dtb in $INSTALL/usr/share/bootloader/*.dtb ; do
|
||||
if [ -f $dtb ]; then
|
||||
cp -PR $dtb $RELEASE_DIR/3rdparty/bootloader
|
||||
fi
|
||||
done
|
||||
|
||||
for overlays in $INSTALL/usr/share/bootloader/overlays/* ; do
|
||||
if [ -f $overlays ]; then
|
||||
mkdir -p $RELEASE_DIR/3rdparty/bootloader/overlays
|
||||
cp -PR $overlays $RELEASE_DIR/3rdparty/bootloader/overlays
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
cp -p $SYSTEM_ROOT/usr/share/bootloader/fixup.dat $BOOT_ROOT
|
||||
cp -p $SYSTEM_ROOT/usr/share/bootloader/start.elf $BOOT_ROOT
|
||||
|
||||
for dtb in $SYSTEM_ROOT/usr/share/bootloader/* ; do
|
||||
for dtb in $SYSTEM_ROOT/usr/share/bootloader/*.dtb ; do
|
||||
if [ -f $dtb ]; then
|
||||
cp -p $dtb $BOOT_ROOT
|
||||
fi
|
||||
|
||||
@@ -24,8 +24,18 @@
|
||||
# Easiest way to reproduce is to install gdrive addon and play a video from
|
||||
# there: http://forum.xbmc.org/showthread.php?tid=177557
|
||||
|
||||
# downgraded to 7.37.1 because 7.38/7.39/7.40 is broken
|
||||
# 7.38 had issues connecting our repository from a
|
||||
# threaded context.
|
||||
# 7.39 did not fix a single thing and is used nowhere in
|
||||
# the wild. If we experience issues we are on our owns
|
||||
# 7.40 has an issue with ftp thumbs the way Kodi works
|
||||
# 7.37.1 is the Ubuntu version which works nicely
|
||||
# Let's bump again when Ubuntu bumps or kodi bumps
|
||||
# curl is one of the central libs in kodi
|
||||
|
||||
PKG_NAME="curl"
|
||||
PKG_VERSION="7.40.0"
|
||||
PKG_VERSION="7.37.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xorg-server"
|
||||
PKG_VERSION="1.16.3"
|
||||
PKG_VERSION="1.16.4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -90,20 +90,10 @@ CONFIG_TICK_CPU_ACCOUNTING=y
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_TREE_PREEMPT_RCU=y
|
||||
CONFIG_PREEMPT_RCU=y
|
||||
CONFIG_RCU_STALL_COMMON=y
|
||||
CONFIG_RCU_FANOUT=32
|
||||
CONFIG_RCU_FANOUT_LEAF=16
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
CONFIG_TINY_RCU=y
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_RCU_STALL_COMMON is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
CONFIG_RCU_BOOST=y
|
||||
CONFIG_RCU_BOOST_PRIO=1
|
||||
CONFIG_RCU_BOOST_DELAY=500
|
||||
CONFIG_RCU_NOCB_CPU=y
|
||||
# CONFIG_RCU_NOCB_CPU_NONE is not set
|
||||
# CONFIG_RCU_NOCB_CPU_ZERO is not set
|
||||
CONFIG_RCU_NOCB_CPU_ALL=y
|
||||
CONFIG_BUILD_BIN2C=y
|
||||
CONFIG_IKCONFIG=m
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
@@ -263,7 +253,11 @@ CONFIG_IOSCHED_CFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
CONFIG_DEFAULT_NOOP=y
|
||||
CONFIG_DEFAULT_IOSCHED="noop"
|
||||
CONFIG_UNINLINE_SPIN_UNLOCK=y
|
||||
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_READ_UNLOCK=y
|
||||
CONFIG_INLINE_READ_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
|
||||
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
|
||||
# CONFIG_FREEZER is not set
|
||||
|
||||
@@ -362,9 +356,8 @@ CONFIG_VMSPLIT_2G=y
|
||||
CONFIG_PAGE_OFFSET=0x80000000
|
||||
CONFIG_ARCH_NR_GPIO=0
|
||||
# CONFIG_PREEMPT_NONE is not set
|
||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_PREEMPT_COUNT=y
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
# CONFIG_PREEMPT is not set
|
||||
CONFIG_HZ_FIXED=0
|
||||
# CONFIG_HZ_100 is not set
|
||||
# CONFIG_HZ_200 is not set
|
||||
@@ -3156,7 +3149,6 @@ CONFIG_PANIC_TIMEOUT=0
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_TIMER_STATS is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
|
||||
#
|
||||
# Lock Debugging (spinlocks, mutexes, etc...)
|
||||
@@ -3186,9 +3178,6 @@ CONFIG_PANIC_TIMEOUT=0
|
||||
# CONFIG_SPARSE_RCU_POINTER is not set
|
||||
# CONFIG_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
CONFIG_RCU_CPU_STALL_TIMEOUT=21
|
||||
CONFIG_RCU_CPU_STALL_VERBOSE=y
|
||||
# CONFIG_RCU_CPU_STALL_INFO is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 3.18.6 Kernel Configuration
|
||||
# Linux/arm 3.18.8 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
@@ -91,8 +91,8 @@ CONFIG_TICK_CPU_ACCOUNTING=y
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_TREE_PREEMPT_RCU=y
|
||||
CONFIG_PREEMPT_RCU=y
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_TASKS_RCU is not set
|
||||
CONFIG_RCU_STALL_COMMON=y
|
||||
# CONFIG_RCU_USER_QS is not set
|
||||
@@ -101,9 +101,6 @@ CONFIG_RCU_FANOUT_LEAF=16
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
# CONFIG_RCU_FAST_NO_HZ is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
CONFIG_RCU_BOOST=y
|
||||
CONFIG_RCU_BOOST_PRIO=1
|
||||
CONFIG_RCU_BOOST_DELAY=500
|
||||
CONFIG_RCU_NOCB_CPU=y
|
||||
# CONFIG_RCU_NOCB_CPU_NONE is not set
|
||||
# CONFIG_RCU_NOCB_CPU_ZERO is not set
|
||||
@@ -274,7 +271,11 @@ CONFIG_IOSCHED_CFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
CONFIG_DEFAULT_NOOP=y
|
||||
CONFIG_DEFAULT_IOSCHED="noop"
|
||||
CONFIG_UNINLINE_SPIN_UNLOCK=y
|
||||
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_READ_UNLOCK=y
|
||||
CONFIG_INLINE_READ_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
|
||||
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
|
||||
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||
CONFIG_RWSEM_SPIN_ON_OWNER=y
|
||||
@@ -407,9 +408,8 @@ CONFIG_NR_CPUS=4
|
||||
# CONFIG_ARM_PSCI is not set
|
||||
CONFIG_ARCH_NR_GPIO=0
|
||||
# CONFIG_PREEMPT_NONE is not set
|
||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_PREEMPT_COUNT=y
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
# CONFIG_PREEMPT is not set
|
||||
CONFIG_HZ_FIXED=0
|
||||
# CONFIG_HZ_100 is not set
|
||||
# CONFIG_HZ_200 is not set
|
||||
@@ -3311,7 +3311,6 @@ CONFIG_PANIC_TIMEOUT=0
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_SCHED_STACK_END_CHECK is not set
|
||||
# CONFIG_TIMER_STATS is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
|
||||
#
|
||||
# Lock Debugging (spinlocks, mutexes, etc...)
|
||||
@@ -3342,7 +3341,6 @@ CONFIG_PANIC_TIMEOUT=0
|
||||
# CONFIG_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
CONFIG_RCU_CPU_STALL_TIMEOUT=21
|
||||
CONFIG_RCU_CPU_STALL_VERBOSE=y
|
||||
# CONFIG_RCU_CPU_STALL_INFO is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
3246
projects/imx6/patches/linux/linux-225-ct2-devices.patch
Normal file
3246
projects/imx6/patches/linux/linux-225-ct2-devices.patch
Normal file
File diff suppressed because it is too large
Load Diff
192
projects/imx6/patches/linux/linux-226-pctv292e-devices.patch
Normal file
192
projects/imx6/patches/linux/linux-226-pctv292e-devices.patch
Normal file
@@ -0,0 +1,192 @@
|
||||
diff -rupN a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
|
||||
--- a/drivers/media/usb/em28xx/em28xx-cards.c 2015-02-23 14:54:18.000000000 +0100
|
||||
+++ b/drivers/media/usb/em28xx/em28xx-cards.c 2015-02-12 16:46:54.000000000 +0100
|
||||
@@ -448,6 +448,18 @@ static struct em28xx_reg_seq speedlink_v
|
||||
{ -1, -1, -1, -1},
|
||||
};
|
||||
|
||||
+static struct em28xx_reg_seq pctv_292e[] = {
|
||||
+ {EM2874_R80_GPIO_P0_CTRL, 0xff, 0xff, 0},
|
||||
+ {0x0d, 0xff, 0xff, 950},
|
||||
+ {EM2874_R80_GPIO_P0_CTRL, 0xbd, 0xff, 100},
|
||||
+ {EM2874_R80_GPIO_P0_CTRL, 0xfd, 0xff, 410},
|
||||
+ {EM2874_R80_GPIO_P0_CTRL, 0x7d, 0xff, 300},
|
||||
+ {EM2874_R80_GPIO_P0_CTRL, 0x7c, 0xff, 60},
|
||||
+ {0x0d, 0x42, 0xff, 50},
|
||||
+ {EM2874_R5F_TS_ENABLE, 0x85, 0xff, 0},
|
||||
+ {-1, -1, -1, -1},
|
||||
+};
|
||||
+
|
||||
/*
|
||||
* Button definitions
|
||||
*/
|
||||
@@ -2157,6 +2169,17 @@ struct em28xx_board em28xx_boards[] = {
|
||||
.has_dvb = 1,
|
||||
.ir_codes = RC_MAP_PINNACLE_PCTV_HD,
|
||||
},
|
||||
+ /* 2013:025f PCTV tripleStick (292e).
|
||||
+ * Empia EM28178, Silicon Labs Si2168, Silicon Labs Si2157 */
|
||||
+ [EM28178_BOARD_PCTV_292E] = {
|
||||
+ .name = "PCTV tripleStick (292e)",
|
||||
+ .def_i2c_bus = 1,
|
||||
+ .i2c_speed = EM28XX_I2C_CLK_WAIT_ENABLE | EM28XX_I2C_FREQ_400_KHZ,
|
||||
+ .tuner_type = TUNER_ABSENT,
|
||||
+ .tuner_gpio = pctv_292e,
|
||||
+ .has_dvb = 1,
|
||||
+ .ir_codes = RC_MAP_PINNACLE_PCTV_HD,
|
||||
+ },
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(em28xx_boards);
|
||||
|
||||
@@ -2330,6 +2353,8 @@ struct usb_device_id em28xx_id_table[] =
|
||||
.driver_info = EM2765_BOARD_SPEEDLINK_VAD_LAPLACE },
|
||||
{ USB_DEVICE(0x2013, 0x0258),
|
||||
.driver_info = EM28178_BOARD_PCTV_461E },
|
||||
+ { USB_DEVICE(0x2013, 0x025f),
|
||||
+ .driver_info = EM28178_BOARD_PCTV_292E },
|
||||
{ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(usb, em28xx_id_table);
|
||||
diff -rupN a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
|
||||
--- a/drivers/media/usb/em28xx/em28xx-dvb.c 2014-11-02 14:07:11.000000000 +0100
|
||||
+++ b/drivers/media/usb/em28xx/em28xx-dvb.c 2015-02-24 16:39:35.000000000 +0100
|
||||
@@ -53,6 +53,8 @@
|
||||
#include "mb86a20s.h"
|
||||
#include "m88ds3103.h"
|
||||
#include "m88ts2022.h"
|
||||
+#include "si2168.h"
|
||||
+#include "si2157.h"
|
||||
|
||||
MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>");
|
||||
MODULE_LICENSE("GPL");
|
||||
@@ -91,6 +93,7 @@ struct em28xx_dvb {
|
||||
struct semaphore pll_mutex;
|
||||
bool dont_attach_fe1;
|
||||
int lna_gpio;
|
||||
+ struct i2c_client *i2c_client_demod;
|
||||
struct i2c_client *i2c_client_tuner;
|
||||
};
|
||||
|
||||
@@ -719,6 +722,21 @@ static int em28xx_pctv_290e_set_lna(stru
|
||||
#endif
|
||||
}
|
||||
|
||||
+static int em28xx_pctv_292e_set_lna(struct dvb_frontend *fe)
|
||||
+{
|
||||
+ struct dtv_frontend_properties *c = &fe->dtv_property_cache;
|
||||
+ struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv;
|
||||
+ struct em28xx *dev = i2c_bus->dev;
|
||||
+ u8 lna;
|
||||
+
|
||||
+ if (c->lna == 1)
|
||||
+ lna = 0x01;
|
||||
+ else
|
||||
+ lna = 0x00;
|
||||
+
|
||||
+ return em28xx_write_reg_bits(dev, EM2874_R80_GPIO_P0_CTRL, lna, 0x01);
|
||||
+}
|
||||
+
|
||||
static int em28xx_mt352_terratec_xs_init(struct dvb_frontend *fe)
|
||||
{
|
||||
/* Values extracted from a USB trace of the Terratec Windows driver */
|
||||
@@ -1413,6 +1431,66 @@ static int em28xx_dvb_init(struct em28xx
|
||||
}
|
||||
}
|
||||
break;
|
||||
+ case EM28178_BOARD_PCTV_292E:
|
||||
+ {
|
||||
+ struct i2c_adapter *adapter;
|
||||
+ struct i2c_client *client;
|
||||
+ struct i2c_board_info info;
|
||||
+ struct si2168_config si2168_config;
|
||||
+ struct si2157_config si2157_config;
|
||||
+
|
||||
+ /* attach demod */
|
||||
+ memset(&si2168_config, 0, sizeof(si2168_config));
|
||||
+ si2168_config.i2c_adapter = &adapter;
|
||||
+ si2168_config.fe = &dvb->fe[0];
|
||||
+ si2168_config.ts_mode = SI2168_TS_PARALLEL;
|
||||
+ memset(&info, 0, sizeof(struct i2c_board_info));
|
||||
+ strlcpy(info.type, "si2168", I2C_NAME_SIZE);
|
||||
+ info.addr = 0x64;
|
||||
+ info.platform_data = &si2168_config;
|
||||
+ request_module(info.type);
|
||||
+ client = i2c_new_device(&dev->i2c_adap[dev->def_i2c_bus], &info);
|
||||
+ if (client == NULL || client->dev.driver == NULL) {
|
||||
+ result = -ENODEV;
|
||||
+ goto out_free;
|
||||
+ }
|
||||
+
|
||||
+ if (!try_module_get(client->dev.driver->owner)) {
|
||||
+ i2c_unregister_device(client);
|
||||
+ result = -ENODEV;
|
||||
+ goto out_free;
|
||||
+ }
|
||||
+
|
||||
+ dvb->i2c_client_demod = client;
|
||||
+
|
||||
+ /* attach tuner */
|
||||
+ memset(&si2157_config, 0, sizeof(si2157_config));
|
||||
+ si2157_config.fe = dvb->fe[0];
|
||||
+ memset(&info, 0, sizeof(struct i2c_board_info));
|
||||
+ strlcpy(info.type, "si2157", I2C_NAME_SIZE);
|
||||
+ info.addr = 0x60;
|
||||
+ info.platform_data = &si2157_config;
|
||||
+ request_module(info.type);
|
||||
+ client = i2c_new_device(adapter, &info);
|
||||
+ if (client == NULL || client->dev.driver == NULL) {
|
||||
+ module_put(dvb->i2c_client_demod->dev.driver->owner);
|
||||
+ i2c_unregister_device(dvb->i2c_client_demod);
|
||||
+ result = -ENODEV;
|
||||
+ goto out_free;
|
||||
+ }
|
||||
+
|
||||
+ if (!try_module_get(client->dev.driver->owner)) {
|
||||
+ i2c_unregister_device(client);
|
||||
+ module_put(dvb->i2c_client_demod->dev.driver->owner);
|
||||
+ i2c_unregister_device(dvb->i2c_client_demod);
|
||||
+ result = -ENODEV;
|
||||
+ goto out_free;
|
||||
+ }
|
||||
+
|
||||
+ dvb->i2c_client_tuner = client;
|
||||
+ dvb->fe[0]->ops.set_lna = em28xx_pctv_292e_set_lna;
|
||||
+ }
|
||||
+ break;
|
||||
default:
|
||||
em28xx_errdev("/2: The frontend of your DVB/ATSC card"
|
||||
" isn't supported yet\n");
|
||||
@@ -1485,6 +1563,10 @@ static int em28xx_dvb_fini(struct em28xx
|
||||
}
|
||||
|
||||
i2c_release_client(dvb->i2c_client_tuner);
|
||||
+ /* remove I2C demod */
|
||||
+ if (dvb->i2c_client_demod) {
|
||||
+ i2c_unregister_device(dvb->i2c_client_demod);
|
||||
+ }
|
||||
em28xx_unregister_dvb(dvb);
|
||||
kfree(dvb);
|
||||
dev->dvb = NULL;
|
||||
diff -rupN a/drivers/media/usb/em28xx/em28xx.h b/drivers/media/usb/em28xx/em28xx.h
|
||||
--- a/drivers/media/usb/em28xx/em28xx.h 2014-11-02 14:07:11.000000000 +0100
|
||||
+++ b/drivers/media/usb/em28xx/em28xx.h 2015-02-23 15:28:11.000000000 +0100
|
||||
@@ -137,6 +137,7 @@
|
||||
#define EM2874_BOARD_KWORLD_UB435Q_V2 90
|
||||
#define EM2765_BOARD_SPEEDLINK_VAD_LAPLACE 91
|
||||
#define EM28178_BOARD_PCTV_461E 92
|
||||
+#define EM28178_BOARD_PCTV_292E 94
|
||||
|
||||
/* Limits minimum and default number of buffers */
|
||||
#define EM28XX_MIN_BUF 4
|
||||
diff -rupN a/drivers/media/usb/em28xx/Kconfig b/drivers/media/usb/em28xx/Kconfig
|
||||
--- a/drivers/media/usb/em28xx/Kconfig 2014-11-02 14:07:11.000000000 +0100
|
||||
+++ b/drivers/media/usb/em28xx/Kconfig 2015-02-12 16:46:54.000000000 +0100
|
||||
@@ -55,6 +55,8 @@ config VIDEO_EM28XX_DVB
|
||||
select MEDIA_TUNER_TDA18271 if MEDIA_SUBDRV_AUTOSELECT
|
||||
select DVB_M88DS3103 if MEDIA_SUBDRV_AUTOSELECT
|
||||
select MEDIA_TUNER_M88TS2022 if MEDIA_SUBDRV_AUTOSELECT
|
||||
+ select DVB_SI2168 if MEDIA_SUBDRV_AUTOSELECT
|
||||
+ select MEDIA_TUNER_SI2157 if MEDIA_SUBDRV_AUTOSELECT
|
||||
---help---
|
||||
This adds support for DVB cards based on the
|
||||
Empiatech em28xx chips.
|
||||
48
projects/imx6/patches/linux/linux-999-9-fritz-stick-1.patch
Normal file
48
projects/imx6/patches/linux/linux-999-9-fritz-stick-1.patch
Normal file
@@ -0,0 +1,48 @@
|
||||
rt2800usb:fix efuse detection
|
||||
|
||||
From: Michael Braun <michael-dev@fami-braun.de>
|
||||
|
||||
The device 057c:8501 (AVM Fritz! WLAN v2 rev. B) currently does not
|
||||
load. One thing observed is that the vendors driver detects EFUSE mode
|
||||
for this device, but rt2800usb does not. This is due to rt2800usb
|
||||
lacking a check for the firmware mode present in the vendors driver,
|
||||
that this patch adopts for rt2800usb.
|
||||
|
||||
With this patch applied, the 'RF chipset' detection does no longer fail.
|
||||
|
||||
Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
|
||||
---
|
||||
drivers/net/wireless/rt2x00/rt2800usb.c | 16 +++++++++++++++-
|
||||
1 file changed, 15 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
|
||||
index a49c3d7..b601422 100644
|
||||
--- a/drivers/net/wireless/rt2x00/rt2800usb.c
|
||||
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
|
||||
@@ -735,11 +735,25 @@ static void rt2800usb_fill_rxdone(struct queue_entry *entry,
|
||||
/*
|
||||
* Device probe functions.
|
||||
*/
|
||||
+static int rt2800usb_efuse_detect(struct rt2x00_dev *rt2x00dev)
|
||||
+{
|
||||
+ __le32 fwMode;
|
||||
+
|
||||
+ rt2x00usb_vendor_request(rt2x00dev, USB_DEVICE_MODE,
|
||||
+ USB_VENDOR_REQUEST_IN, 0, 0x11, &fwMode,
|
||||
+ sizeof(fwMode), REGISTER_TIMEOUT_FIRMWARE);
|
||||
+
|
||||
+ if ((fwMode & 0x00000003) == 2)
|
||||
+ return 1;
|
||||
+
|
||||
+ return rt2800_efuse_detect(rt2x00dev);
|
||||
+}
|
||||
+
|
||||
static int rt2800usb_read_eeprom(struct rt2x00_dev *rt2x00dev)
|
||||
{
|
||||
int retval;
|
||||
|
||||
- if (rt2800_efuse_detect(rt2x00dev))
|
||||
+ if (rt2800usb_efuse_detect(rt2x00dev))
|
||||
retval = rt2800_read_eeprom_efuse(rt2x00dev);
|
||||
else
|
||||
retval = rt2x00usb_eeprom_read(rt2x00dev, rt2x00dev->eeprom,
|
||||
48
projects/imx6/patches/linux/linux-999-9-fritz-stick-2.patch
Normal file
48
projects/imx6/patches/linux/linux-999-9-fritz-stick-2.patch
Normal file
@@ -0,0 +1,48 @@
|
||||
rt2800usb:fix hang during firmware load
|
||||
|
||||
From: Michael Braun <michael-dev@fami-braun.de>
|
||||
|
||||
The device 057c:8501 (AVM Fritz! WLAN v2 rev. B) boots into a state that does not actually require loading a firmware file.
|
||||
The vendors driver finds out about this by checking a firmware state
|
||||
register, so this patch adopts this here.
|
||||
|
||||
Finally, with this patch applied, my wifi dongle actually becomes
|
||||
usefull (scan + connect to wpa network works).
|
||||
|
||||
Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
|
||||
---
|
||||
drivers/net/wireless/rt2x00/rt2800usb.c | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
|
||||
index b601422..71bf101 100644
|
||||
--- a/drivers/net/wireless/rt2x00/rt2800usb.c
|
||||
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
|
||||
@@ -240,6 +240,7 @@ static int rt2800usb_write_firmware(struct rt2x00_dev *rt2x00dev,
|
||||
int status;
|
||||
u32 offset;
|
||||
u32 length;
|
||||
+ __le32 fwMode;
|
||||
|
||||
/*
|
||||
* Check which section of the firmware we need.
|
||||
@@ -257,8 +258,17 @@ static int rt2800usb_write_firmware(struct rt2x00_dev *rt2x00dev,
|
||||
/*
|
||||
* Write firmware to device.
|
||||
*/
|
||||
- rt2x00usb_register_multiwrite(rt2x00dev, FIRMWARE_IMAGE_BASE,
|
||||
- data + offset, length);
|
||||
+ rt2x00usb_vendor_request(rt2x00dev, USB_DEVICE_MODE,
|
||||
+ USB_VENDOR_REQUEST_IN, 0, 0x11, &fwMode,
|
||||
+ sizeof(fwMode), REGISTER_TIMEOUT_FIRMWARE);
|
||||
+
|
||||
+ if ((fwMode & 0x00000003) == 2) {
|
||||
+ rt2x00_info(rt2x00dev,
|
||||
+ "Firmware loading not required - NIC in AutoRun mode\n");
|
||||
+ } else {
|
||||
+ rt2x00usb_register_multiwrite(rt2x00dev, FIRMWARE_IMAGE_BASE,
|
||||
+ data + offset, length);
|
||||
+ }
|
||||
|
||||
rt2x00usb_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
|
||||
rt2x00usb_register_write(rt2x00dev, H2M_MAILBOX_STATUS, ~0);
|
||||
Reference in New Issue
Block a user