mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
226 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0147f6a12 | ||
|
|
fc24b8019c | ||
|
|
7b32a97b27 | ||
|
|
398df5af31 | ||
|
|
54250b65b6 | ||
|
|
9de9b5e196 | ||
|
|
b9d2270148 | ||
|
|
5bef57fd04 | ||
|
|
a406469e03 | ||
|
|
e65d9950a7 | ||
|
|
9e303b9aa1 | ||
|
|
c9dbfb1a4b | ||
|
|
421e703840 | ||
|
|
5cb0cf883b | ||
|
|
3e7c7806ab | ||
|
|
7c01aa5598 | ||
|
|
073cac2232 | ||
|
|
412141f521 | ||
|
|
8423ab495e | ||
|
|
e2ff29aaba | ||
|
|
654f7f915e | ||
|
|
1871b22418 | ||
|
|
bfd530f8ae | ||
|
|
c0c146e966 | ||
|
|
adcfc51319 | ||
|
|
8bed71f6bd | ||
|
|
4f38d9317a | ||
|
|
1c9e03a7ae | ||
|
|
75b3c30417 | ||
|
|
bc28e915ea | ||
|
|
672e2beddb | ||
|
|
8d449ea3e9 | ||
|
|
802ccf6c06 | ||
|
|
7c53c9ce79 | ||
|
|
08d1947761 | ||
|
|
b587105ecf | ||
|
|
ca9779eed8 | ||
|
|
8534be20a7 | ||
|
|
4ef3138874 | ||
|
|
a7bcd79166 | ||
|
|
327474361b | ||
|
|
463dc63cf3 | ||
|
|
ea8d106ae5 | ||
|
|
e13e9c0dda | ||
|
|
9eb0eccb11 | ||
|
|
b2685567c3 | ||
|
|
dce8242e8f | ||
|
|
dfe2becd18 | ||
|
|
1c57a2c647 | ||
|
|
4d4bbf5c5c | ||
|
|
fabe07ab99 | ||
|
|
14c9ae2284 | ||
|
|
c9af0900b4 | ||
|
|
ff9995e982 | ||
|
|
16442f04bb | ||
|
|
95c0a28bed | ||
|
|
1f6d6dac80 | ||
|
|
ed466a366a | ||
|
|
d885625d24 | ||
|
|
7de221797a | ||
|
|
e84cf14798 | ||
|
|
77aa1eb581 | ||
|
|
51e8121f67 | ||
|
|
e7db42d3c6 | ||
|
|
05a6bab1ef | ||
|
|
34251ce19e | ||
|
|
7bec817c62 | ||
|
|
558aaffd5a | ||
|
|
86724c9b87 | ||
|
|
46a1abc03c | ||
|
|
6308070ac2 | ||
|
|
8c476b3056 | ||
|
|
30d5dda637 | ||
|
|
f85652573f | ||
|
|
1db6430a0c | ||
|
|
5bd4e7e1bb | ||
|
|
10e3f72ede | ||
|
|
6efdba41f7 | ||
|
|
449394cfd6 | ||
|
|
ff6f06149f | ||
|
|
919d71078b | ||
|
|
2a2a8cda2c | ||
|
|
f55a83afcb | ||
|
|
3ce4418833 | ||
|
|
cf2f80badf | ||
|
|
307cf64bfb | ||
|
|
0e5e0a9e04 | ||
|
|
83688801c7 | ||
|
|
fcaac62c5f | ||
|
|
b96a7982ac | ||
|
|
74881c1fd2 | ||
|
|
593b769300 | ||
|
|
477ade7b16 | ||
|
|
036bcad109 | ||
|
|
473b14446a | ||
|
|
ce45d89896 | ||
|
|
321b9dcd34 | ||
|
|
950033c06e | ||
|
|
a18834178b | ||
|
|
14c18a2de5 | ||
|
|
9553f6c11c | ||
|
|
22b62bed59 | ||
|
|
d1ff72f766 | ||
|
|
32502a5cf6 | ||
|
|
6fa2333414 | ||
|
|
152ceec969 | ||
|
|
6fbb705947 | ||
|
|
0e0a7de92f | ||
|
|
f02dead4a7 | ||
|
|
ed1cb4be13 | ||
|
|
29092e2ce5 | ||
|
|
114a9fb370 | ||
|
|
9d21adb6f3 | ||
|
|
a36921fbe6 | ||
|
|
c8f3e6708b | ||
|
|
6256e166aa | ||
|
|
a3c3fa5cce | ||
|
|
573e184cf5 | ||
|
|
fe325e7aed | ||
|
|
b088522f57 | ||
|
|
12f55ac1c6 | ||
|
|
b70a270365 | ||
|
|
a1a9217f8e | ||
|
|
91aa5ed603 | ||
|
|
f298846adb | ||
|
|
767ec892e2 | ||
|
|
07063e9a40 | ||
|
|
0121c1e36b | ||
|
|
7262ed18e4 | ||
|
|
3771c8eb3a | ||
|
|
bc003a1070 | ||
|
|
5c23e3fabc | ||
|
|
15505f80ca | ||
|
|
b7852952ba | ||
|
|
1a97097a30 | ||
|
|
58aaa9f266 | ||
|
|
ffc8962357 | ||
|
|
6069dd14c4 | ||
|
|
7b4edccf81 | ||
|
|
44bc649684 | ||
|
|
c5dbf3d94f | ||
|
|
fa51bfcf57 | ||
|
|
c546b5979a | ||
|
|
aa4fbd7ab1 | ||
|
|
82eb3158ae | ||
|
|
06461b6e7e | ||
|
|
6d16dc9399 | ||
|
|
efa8c1d95a | ||
|
|
a0c977ddfe | ||
|
|
945a7f338f | ||
|
|
0849a34c75 | ||
|
|
77f8e89bfe | ||
|
|
8db2e6705e | ||
|
|
4448113a7b | ||
|
|
bb5c5509f1 | ||
|
|
160ce21140 | ||
|
|
792e217186 | ||
|
|
4ed7faeba3 | ||
|
|
59c41e76a1 | ||
|
|
3f3e198c9b | ||
|
|
ccc1b39a15 | ||
|
|
ad1115e98e | ||
|
|
d9111f52a8 | ||
|
|
9c410eaeef | ||
|
|
e646610990 | ||
|
|
31001afd23 | ||
|
|
80c6730a0f | ||
|
|
004a391f18 | ||
|
|
6e9af9e243 | ||
|
|
f7c8509269 | ||
|
|
b768e322ed | ||
|
|
9029c645b0 | ||
|
|
b14d6da9cb | ||
|
|
96f52fc97f | ||
|
|
d4b844a7ed | ||
|
|
60744990c3 | ||
|
|
ef5d518eb9 | ||
|
|
e61360c9d3 | ||
|
|
2e24540df2 | ||
|
|
caeb39c657 | ||
|
|
a603e3bf18 | ||
|
|
9cb02d21a7 | ||
|
|
e5fa75cf69 | ||
|
|
28fe3c1b40 | ||
|
|
7e1f181168 | ||
|
|
708a34555a | ||
|
|
5e72c74419 | ||
|
|
b3011069c5 | ||
|
|
4f48a19924 | ||
|
|
86538ccb74 | ||
|
|
cd452f8288 | ||
|
|
7c1531f70d | ||
|
|
70064630d8 | ||
|
|
1405b245ea | ||
|
|
cf7af733c3 | ||
|
|
105ede1d39 | ||
|
|
917724673c | ||
|
|
768b7660e0 | ||
|
|
00221bea95 | ||
|
|
2af93e2b15 | ||
|
|
414abbc9e9 | ||
|
|
4d2ca4a68b | ||
|
|
2bf67bb4b0 | ||
|
|
7bccac2c21 | ||
|
|
991521fbbf | ||
|
|
20c48e1fe8 | ||
|
|
5a79bc7598 | ||
|
|
ba633c0e65 | ||
|
|
68391a604e | ||
|
|
b439e9450a | ||
|
|
e84de340b6 | ||
|
|
bc365bd295 | ||
|
|
21c2e30c78 | ||
|
|
2d59aa423e | ||
|
|
1e1dad760a | ||
|
|
80bcd9ba72 | ||
|
|
d0a3988215 | ||
|
|
4db0e6a9e4 | ||
|
|
3c1ef9bd37 | ||
|
|
7f01de9350 | ||
|
|
a9fd32bf62 | ||
|
|
26e29e2ef1 | ||
|
|
8e18629276 | ||
|
|
63cc19754c | ||
|
|
be0fd9c615 | ||
|
|
ee042d786f |
21
CHANGELOG
21
CHANGELOG
@@ -1,20 +1,5 @@
|
||||
OpenELEC (Version 2.1)
|
||||
OpenELEC (Version 3.0)
|
||||
|
||||
Changelog OpenELEC-2.0 to OpenELEC-2.1
|
||||
for a detailed Changelog from OpenELEC-2.0 to OpenELEC-3.0 see:
|
||||
https://github.com/OpenELEC/OpenELEC.tv/compare/2.0.0...3.0.0
|
||||
|
||||
Added packages:
|
||||
- add package 'ppp'
|
||||
- add package 'pptp'
|
||||
|
||||
Package updates:
|
||||
- update linux to linux-3.5
|
||||
- update dialog to dialog-1.1-20120215
|
||||
- update connman to connman-1.4
|
||||
|
||||
Added functions:
|
||||
- sshd can be enabled via OpenELEC Settings addon
|
||||
- add PPTP support
|
||||
|
||||
Changed functions:
|
||||
|
||||
Removed functions:
|
||||
|
||||
@@ -233,7 +233,7 @@ dashes="==========================="
|
||||
show_config() {
|
||||
dashes="==========================="
|
||||
config_message="$config_message\n $dashes$dashes$dashes"
|
||||
config_message="$config_message\n Configuration for $DISTRONAME"
|
||||
config_message="$config_message\n Configuration for $DISTRONAME ($([ "$OFFICIAL" = "yes" ] && echo "official" || echo "unofficial"))"
|
||||
config_message="$config_message\n $dashes$dashes$dashes"
|
||||
|
||||
# Build options
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
OPENELEC_VERSION="devel"
|
||||
OPENELEC_VERSION="3.0.2"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="3.0"
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
3.0.7
|
||||
- update to TVHeadend 3.3.511
|
||||
|
||||
3.0.6
|
||||
- update to TVHeadend 3.3.491
|
||||
- disable avahi support
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="tvheadend"
|
||||
PKG_VERSION="3.3.491"
|
||||
PKG_REV="6"
|
||||
PKG_VERSION="3.3.511"
|
||||
PKG_REV="7"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
From 30517cb122d0991f0ba51155c9afff6bdc2d8899 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Wed, 13 Mar 2013 21:30:55 +0200
|
||||
Subject: [PATCH] cwc: syslog: move some log messages to debug
|
||||
|
||||
---
|
||||
src/capmt.c | 4 ++--
|
||||
src/cwc.c | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/capmt.c b/src/capmt.c
|
||||
index ac507bd..9e12e86 100644
|
||||
--- a/src/capmt.c
|
||||
+++ b/src/capmt.c
|
||||
@@ -547,7 +547,7 @@ handle_ca0(capmt_t* capmt) {
|
||||
#endif
|
||||
|
||||
if(ct->ct_keystate != CT_RESOLVED)
|
||||
- tvhlog(LOG_INFO, "capmt", "Obtained key for service \"%s\"",t->s_svcname);
|
||||
+ tvhlog(LOG_DEBUG, "capmt", "Obtained key for service \"%s\"",t->s_svcname);
|
||||
|
||||
ct->ct_keystate = CT_RESOLVED;
|
||||
}
|
||||
@@ -851,7 +851,7 @@ capmt_table_input(struct th_descrambler *td, struct service *t,
|
||||
cce->cce_ecmsize = len;
|
||||
|
||||
if(ct->ct_keystate != CT_RESOLVED)
|
||||
- tvhlog(LOG_INFO, "capmt",
|
||||
+ tvhlog(LOG_DEBUG, "capmt",
|
||||
"Trying to obtain key for service \"%s\"",t->s_svcname);
|
||||
|
||||
buf[9] = pmtversion;
|
||||
diff --git a/src/cwc.c b/src/cwc.c
|
||||
index ebafd4f..904213f 100644
|
||||
--- a/src/cwc.c
|
||||
+++ b/src/cwc.c
|
||||
@@ -873,7 +873,7 @@ forbid:
|
||||
}
|
||||
|
||||
if(ct->cs_keystate != CS_RESOLVED)
|
||||
- tvhlog(LOG_INFO, "cwc",
|
||||
+ tvhlog(LOG_DEBUG, "cwc",
|
||||
"Obtained key for service \"%s\" in %"PRId64" ms, from %s:%i",
|
||||
t->s_svcname, delay, ct->cs_cwc->cwc_hostname,
|
||||
ct->cs_cwc->cwc_port);
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
From 07cdfdaf6af06ae08a779ccc9082a517757c6fd3 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Sutton <dev@adamsutton.me.uk>
|
||||
Date: Tue, 12 Mar 2013 15:35:21 +0000
|
||||
Subject: [PATCH] Fix #1660 - dvb: stop constant updating of dvb mux
|
||||
configuration files
|
||||
|
||||
---
|
||||
src/dvb/dvb_multiplex.c | 23 ++++++++++++++---------
|
||||
1 file changed, 14 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/dvb/dvb_multiplex.c b/src/dvb/dvb_multiplex.c
|
||||
index ff61558..692ebf1 100644
|
||||
--- a/src/dvb/dvb_multiplex.c
|
||||
+++ b/src/dvb/dvb_multiplex.c
|
||||
@@ -58,9 +58,6 @@
|
||||
{ "OK", TDMI_FE_OK },
|
||||
};
|
||||
|
||||
-static void tdmi_set_enable(th_dvb_mux_instance_t *tdmi, int enabled);
|
||||
-
|
||||
-
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -856,6 +853,9 @@ int dvb_mux_str2hier(const char *str)
|
||||
if (!networkname || !*networkname)
|
||||
return;
|
||||
|
||||
+ if (!strcmp(tdmi->tdmi_network ?: "", networkname))
|
||||
+ return;
|
||||
+
|
||||
free(tdmi->tdmi_network);
|
||||
tdmi->tdmi_network = strdup(networkname);
|
||||
dvb_mux_save(tdmi);
|
||||
@@ -879,8 +879,9 @@ int dvb_mux_str2hier(const char *str)
|
||||
if (tdmi->tdmi_transport_stream_id != 0xFFFF || tsid == 0xFFFF)
|
||||
return;
|
||||
|
||||
- tdmi->tdmi_transport_stream_id = tsid;
|
||||
-
|
||||
+ if (tdmi->tdmi_transport_stream_id == tsid)
|
||||
+ return;
|
||||
+
|
||||
dvb_mux_save(tdmi);
|
||||
|
||||
m = htsmsg_create_map();
|
||||
@@ -900,6 +901,9 @@ int dvb_mux_str2hier(const char *str)
|
||||
if (force)
|
||||
if (tdmi->tdmi_network_id != 0 || onid == 0)
|
||||
return;
|
||||
+
|
||||
+ if (tdmi->tdmi_network_id == onid)
|
||||
+ return;
|
||||
|
||||
tdmi->tdmi_network_id = onid;
|
||||
|
||||
@@ -915,13 +919,13 @@ int dvb_mux_str2hier(const char *str)
|
||||
/**
|
||||
*
|
||||
*/
|
||||
-static void
|
||||
+static int
|
||||
tdmi_set_enable(th_dvb_mux_instance_t *tdmi, int enabled)
|
||||
{
|
||||
th_dvb_adapter_t *tda = tdmi->tdmi_adapter;
|
||||
|
||||
if(tdmi->tdmi_enabled == enabled)
|
||||
- return;
|
||||
+ return 0;
|
||||
|
||||
if(tdmi->tdmi_enabled) {
|
||||
|
||||
@@ -940,6 +944,7 @@ int dvb_mux_str2hier(const char *str)
|
||||
mux_link_initial(tda, tdmi);
|
||||
|
||||
subscription_reschedule();
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -948,8 +953,8 @@ int dvb_mux_str2hier(const char *str)
|
||||
void
|
||||
dvb_mux_set_enable(th_dvb_mux_instance_t *tdmi, int enabled)
|
||||
{
|
||||
- tdmi_set_enable(tdmi, enabled);
|
||||
- dvb_mux_save(tdmi);
|
||||
+ if (tdmi_set_enable(tdmi, enabled))
|
||||
+ dvb_mux_save(tdmi);
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="alsa-lib"
|
||||
PKG_VERSION="1.0.26"
|
||||
PKG_VERSION="1.0.27"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
From: Takashi Iwai <tiwai <at> suse.de>
|
||||
Subject: [PATCH RFC 1/2] control: Simplify using snd_config_get_bool()
|
||||
Newsgroups: gmane.linux.alsa.devel
|
||||
Date: 2012-10-12 15:25:23 GMT (17 weeks, 8 hours and 26 minutes ago)
|
||||
snd_config_get_bool() was improved to parse also ASCII strings now,
|
||||
so we don't have to open-code the boolean parser in
|
||||
src/control/setup.c any longer.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai <at> suse.de>
|
||||
---
|
||||
src/control/setup.c | 37 ++++++-------------------------------
|
||||
1 file changed, 6 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/src/control/setup.c b/src/control/setup.c
|
||||
index eecda45..bd3599d 100644
|
||||
--- a/src/control/setup.c
|
||||
+++ b/src/control/setup.c
|
||||
@@ -400,7 +400,6 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
{
|
||||
snd_config_t *conf;
|
||||
snd_config_iterator_t i, next;
|
||||
- char *tmp;
|
||||
int iface = SND_CTL_ELEM_IFACE_MIXER;
|
||||
const char *name = NULL;
|
||||
long index = 0;
|
||||
@@ -464,33 +463,17 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
continue;
|
||||
}
|
||||
if (strcmp(id, "lock") == 0) {
|
||||
- if ((err = snd_config_get_ascii(n, &tmp)) < 0) {
|
||||
- SNDERR("field %s has an invalid type", id);
|
||||
- goto _err;
|
||||
- }
|
||||
- err = snd_config_get_bool_ascii(tmp);
|
||||
- if (err < 0) {
|
||||
- SNDERR("field %s is not a boolean", id);
|
||||
- free(tmp);
|
||||
+ err = snd_config_get_bool(n);
|
||||
+ if (err < 0)
|
||||
goto _err;
|
||||
- }
|
||||
lock = err;
|
||||
- free(tmp);
|
||||
continue;
|
||||
}
|
||||
if (strcmp(id, "preserve") == 0) {
|
||||
- if ((err = snd_config_get_ascii(n, &tmp)) < 0) {
|
||||
- SNDERR("field %s has an invalid type", id);
|
||||
- goto _err;
|
||||
- }
|
||||
- err = snd_config_get_bool_ascii(tmp);
|
||||
- if (err < 0) {
|
||||
- SNDERR("field %s is not a boolean", id);
|
||||
- free(tmp);
|
||||
+ err = snd_config_get_bool(n);
|
||||
+ if (err < 0)
|
||||
goto _err;
|
||||
- }
|
||||
preserve = err;
|
||||
- free(tmp);
|
||||
continue;
|
||||
}
|
||||
if (strcmp(id, "value") == 0) {
|
||||
@@ -502,18 +485,10 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
continue;
|
||||
}
|
||||
if (strcmp(id, "optional") == 0) {
|
||||
- if ((err = snd_config_get_ascii(n, &tmp)) < 0) {
|
||||
- SNDERR("field %s has an invalid type", id);
|
||||
- goto _err;
|
||||
- }
|
||||
- err = snd_config_get_bool_ascii(tmp);
|
||||
- if (err < 0) {
|
||||
- SNDERR("field %s is not a boolean", id);
|
||||
- free(tmp);
|
||||
+ err = snd_config_get_bool(n);
|
||||
+ if (err < 0)
|
||||
goto _err;
|
||||
- }
|
||||
optional = err;
|
||||
- free(tmp);
|
||||
continue;
|
||||
}
|
||||
SNDERR("Unknown field %s", id);
|
||||
--
|
||||
1.7.12.2
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
From 91e42790dd0a9489a94e3784d220d76ad2d98b36 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Sat, 16 Feb 2013 18:29:59 +0200
|
||||
Subject: [PATCH] Add workaround for conflicting IEC958 controls for HD-audio
|
||||
|
||||
When both an SPDIF and an HDMI output are present on HD-audio, both
|
||||
try to access IEC958 controls with index=0 although one of them must
|
||||
be wrong. For avoiding this conflict, the recent kernel code (3.9 and
|
||||
3.8 stable) moves the IEC958 controls of an SPDIF with index=16 once
|
||||
when the conflict happens.
|
||||
|
||||
In this patch, the corresponding support is added in alsa-lib side.
|
||||
The new "skip_rest" boolean flag is added to the hooked element
|
||||
definition which indicates that the rest of element array will be
|
||||
ignored once when this element is present and evaluated. With this
|
||||
new flag, the HD-audio config takes device=1 primarily, then take
|
||||
device=0 as fallback.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/conf/cards/HDA-Intel.conf | 16 ++++++++++++++++
|
||||
src/control/setup.c | 19 ++++++++++++++++---
|
||||
2 files changed, 32 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/conf/cards/HDA-Intel.conf b/src/conf/cards/HDA-Intel.conf
|
||||
index d4f2667..3957c12 100644
|
||||
--- a/src/conf/cards/HDA-Intel.conf
|
||||
+++ b/src/conf/cards/HDA-Intel.conf
|
||||
@@ -113,6 +113,22 @@ HDA-Intel.pcm.iec958.0 {
|
||||
hook_args [
|
||||
{
|
||||
name "IEC958 Playback Default"
|
||||
+ index 16
|
||||
+ optional true
|
||||
+ lock true
|
||||
+ preserve true
|
||||
+ value [ $AES0 $AES1 $AES2 $AES3 ]
|
||||
+ }
|
||||
+ {
|
||||
+ name "IEC958 Playback Switch"
|
||||
+ index 16
|
||||
+ optional true
|
||||
+ value true
|
||||
+ # if this element is present, skip the rest
|
||||
+ skip_rest true
|
||||
+ }
|
||||
+ {
|
||||
+ name "IEC958 Playback Default"
|
||||
lock true
|
||||
preserve true
|
||||
value [ $AES0 $AES1 $AES2 $AES3 ]
|
||||
diff --git a/src/control/setup.c b/src/control/setup.c
|
||||
index eecda45..72facb0 100644
|
||||
--- a/src/control/setup.c
|
||||
+++ b/src/control/setup.c
|
||||
@@ -396,7 +396,7 @@ static int snd_config_get_ctl_elem_value(snd_config_t *conf,
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data)
|
||||
+static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data, int *quit)
|
||||
{
|
||||
snd_config_t *conf;
|
||||
snd_config_iterator_t i, next;
|
||||
@@ -409,6 +409,7 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
int lock = 0;
|
||||
int preserve = 0;
|
||||
int optional = 0;
|
||||
+ int skip_rest = 0;
|
||||
snd_config_t *value = NULL, *mask = NULL;
|
||||
snd_sctl_elem_t *elem = NULL;
|
||||
int err;
|
||||
@@ -516,6 +517,13 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
free(tmp);
|
||||
continue;
|
||||
}
|
||||
+ if (strcmp(id, "skip_rest") == 0) {
|
||||
+ err = snd_config_get_bool(n);
|
||||
+ if (err < 0)
|
||||
+ goto _err;
|
||||
+ skip_rest = err;
|
||||
+ continue;
|
||||
+ }
|
||||
SNDERR("Unknown field %s", id);
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -564,6 +572,9 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
|
||||
if (! optional)
|
||||
SNDERR("Cannot obtain info for CTL elem (%s,'%s',%li,%li,%li): %s", snd_ctl_elem_iface_name(iface), name, index, device, subdevice, snd_strerror(err));
|
||||
goto _err;
|
||||
+ } else {
|
||||
+ if (skip_rest)
|
||||
+ *quit = 1;
|
||||
}
|
||||
snd_ctl_elem_value_set_id(elem->val, elem->id);
|
||||
snd_ctl_elem_value_set_id(elem->old, elem->id);
|
||||
@@ -619,7 +630,7 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd
|
||||
{
|
||||
snd_sctl_t *h;
|
||||
snd_config_iterator_t i, next;
|
||||
- int err;
|
||||
+ int err, quit = 0;
|
||||
|
||||
assert(sctl);
|
||||
assert(handle);
|
||||
@@ -639,11 +650,13 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd
|
||||
INIT_LIST_HEAD(&h->elems);
|
||||
snd_config_for_each(i, next, conf) {
|
||||
snd_config_t *n = snd_config_iterator_entry(i);
|
||||
- err = add_elem(h, n, private_data);
|
||||
+ err = add_elem(h, n, private_data, &quit);
|
||||
if (err < 0) {
|
||||
free_elems(h);
|
||||
return err;
|
||||
}
|
||||
+ if (quit)
|
||||
+ break;
|
||||
}
|
||||
*sctl = h;
|
||||
return 0;
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="alsa-plugins"
|
||||
PKG_VERSION="1.0.26"
|
||||
PKG_VERSION="1.0.27"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="alsa-utils"
|
||||
PKG_VERSION="1.0.26"
|
||||
PKG_VERSION="1.0.27"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur alsa-utils-1.0.26-old/configure.in alsa-utils-1.0.26-new/configure.in
|
||||
--- alsa-utils-1.0.26-old/configure.in 2012-09-06 01:45:44.000000000 -0700
|
||||
+++ alsa-utils-1.0.26-new/configure.in 2012-12-29 08:01:59.000000000 -0800
|
||||
@@ -290,7 +290,7 @@
|
||||
TESTSOUND="$dir/test.wav")
|
||||
AC_SUBST(TESTSOUND)
|
||||
|
||||
-AM_CONFIG_HEADER(include/aconfig.h)
|
||||
+AC_CONFIG_HEADERS(include/aconfig.h)
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mysql"
|
||||
PKG_VERSION="5.1.67"
|
||||
PKG_VERSION="5.1.68"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur mysql-5.1.67-old/configure.in mysql-5.1.67-new/configure.in
|
||||
--- mysql-5.1.67-old/configure.in 2012-12-13 02:05:51.000000000 -0800
|
||||
+++ mysql-5.1.67-new/configure.in 2012-12-30 08:39:00.000000000 -0800
|
||||
@@ -22,7 +22,7 @@
|
||||
AM_INIT_AUTOMAKE([1.9 tar-ustar])
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
-AM_CONFIG_HEADER([include/config.h])
|
||||
+AC_CONFIG_HEADERS([include/config.h])
|
||||
|
||||
# Request support for automake silent-rules if available.
|
||||
# Default to verbose output. One can use the configure-time
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sqlite"
|
||||
PKG_VERSION="autoconf-3071600"
|
||||
PKG_VERSION="autoconf-3071602"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PublicDomain"
|
||||
|
||||
@@ -30,6 +30,9 @@ cd $PKG_BUILD
|
||||
make PREFIX=/usr \
|
||||
CC="$TARGET_CC" \
|
||||
AR="$TARGET_AR" \
|
||||
HOST=_LINUX \
|
||||
HARDWARE_NAME=$TARGET_ARCH \
|
||||
BITS=$ACPICA_BITS \
|
||||
YACC=$ROOT/$TOOLCHAIN/bin/bison \
|
||||
CWARNINGFLAGS="-O2 $TARGET_CFLAGS"
|
||||
|
||||
|
||||
@@ -19,12 +19,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="acpica-unix2"
|
||||
PKG_VERSION="20130117"
|
||||
PKG_VERSION="20130328"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="i386 x86_64"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.acpica.org/"
|
||||
PKG_URL="https://www.acpica.org/download/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="https://acpica.org/sites/acpica/files/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain flex bison"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -uNr acpica-unix2-20130117-orig/generate/unix/Makefile.common acpica-unix2-20130117/generate/unix/Makefile.common
|
||||
--- acpica-unix2-20130117-orig/generate/unix/Makefile.common 2013-01-17 20:47:44.000000000 +0100
|
||||
+++ acpica-unix2-20130117/generate/unix/Makefile.common 2013-02-07 15:13:59.000000000 +0100
|
||||
@@ -6,7 +6,7 @@
|
||||
# Get the OS machine architecture. Anything with a "64" in the returned
|
||||
# string will be treated as a 64-bit OS. Otherwise, the default is 32-bit.
|
||||
#
|
||||
-HARDWARE_NAME := $(shell uname -m)
|
||||
+HARDWARE_NAME=$(BITS)
|
||||
BITS=0
|
||||
|
||||
#
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS="acpica cpuid dmidecode dstat evtest gdb hddtemp htop i2c-tools iftop pmtools powertop smem strace wireless_tools tcpdump iperf"
|
||||
PKG_DEPENDS="acpica cpuid dmidecode dstat evtest gdb hddtemp htop i2c-tools iftop pmtools powertop procps-ng smem strace wireless_tools tcpdump iperf"
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="debug"
|
||||
|
||||
@@ -23,8 +23,15 @@
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
make PREFIX=/usr \
|
||||
CC="$TARGET_CC" \
|
||||
AR="$TARGET_AR" \
|
||||
make CC="$TARGET_CC" \
|
||||
CFLAGS="$TARGET_CFLAGS -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Os -s -D_LINUX -DDEFINE_ALTERNATE_TYPES -I../include" \
|
||||
CPPFLAGS="$TARGET_CPPFLAGS" \
|
||||
-C acpidump acpidump
|
||||
|
||||
make CC="$TARGET_CC" \
|
||||
CFLAGS="$TARGET_CFLAGS -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Os -s -D_LINUX -DDEFINE_ALTERNATE_TYPES -I../include" \
|
||||
-C acpixtract acpixtract
|
||||
|
||||
make CC="$TARGET_CC" \
|
||||
CFLAGS="$TARGET_CFLAGS -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Os -s -D_LINUX -DDEFINE_ALTERNATE_TYPES -I../include" \
|
||||
-C madt madt
|
||||
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pmtools"
|
||||
PKG_VERSION="20071116"
|
||||
PKG_VERSION="20110323"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="i386 x86_64"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://lesswatts.org/projects/acpi/utilities.php"
|
||||
PKG_URL="https://lesswatts.org/patches/linux_acpi/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="http://mirror.linux.org.au/linux/kernel/people/lenb/acpi/utils/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
25
packages/debug/pmtools/patches/pmtools-madt.patch
Normal file
25
packages/debug/pmtools/patches/pmtools-madt.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
diff -Naur pmtools/madt/Makefile pmtools.patch/madt/Makefile
|
||||
--- pmtools/madt/Makefile 2005-11-11 18:07:04.000000000 +0100
|
||||
+++ pmtools.patch/madt/Makefile 2007-11-16 19:48:56.000000000 +0100
|
||||
@@ -1,6 +1,16 @@
|
||||
+PROG= madt
|
||||
+SRCS= madt.c
|
||||
+
|
||||
+all: madt
|
||||
+$(PROG) : $(SRCS)
|
||||
+ $(CC) $(CFLAGS) $(SRCS) -o $(PROG)
|
||||
+
|
||||
test: madt
|
||||
- ./madt < APIC
|
||||
-madt: madt.c acpi.h tables.c
|
||||
- cc -o madt madt.c
|
||||
-clean:
|
||||
- rm madt
|
||||
+ ./madt < example.APIC.dat
|
||||
+ ./madt < example.APIC.bad.dat
|
||||
+
|
||||
+CLEANFILES= $(PROG)
|
||||
+
|
||||
+clean :
|
||||
+ rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS)) *~
|
||||
+
|
||||
25
packages/debug/pmtools/unpack
Executable file
25
packages/debug/pmtools/unpack
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/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
|
||||
|
||||
mv $BUILD/$PKG_NAME $BUILD/$PKG_NAME-$PKG_VERSION
|
||||
37
packages/debug/procps-ng/build
Executable file
37
packages/debug/procps-ng/build
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/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
|
||||
|
||||
export CFLAGS="$CFLAGS -I$SYSROOT_PREFIX/usr/include/ncurses"
|
||||
export LIBS="-ltinfo"
|
||||
|
||||
cd $PKG_BUILD
|
||||
ac_cv_func_malloc_0_nonnull=yes \
|
||||
ac_cv_func_realloc_0_nonnull=yes \
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
--disable-skill \
|
||||
--disable-kill
|
||||
|
||||
make
|
||||
35
packages/debug/procps-ng/install
Executable file
35
packages/debug/procps-ng/install
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/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
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/
|
||||
cp $PKG_BUILD/proc/.libs/libprocps.so* $INSTALL/usr/lib/
|
||||
|
||||
mkdir -p $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/.libs/free $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/.libs/pgrep $INSTALL/usr/bin/
|
||||
ln -sf pgrep $INSTALL/usr/bin/pkill
|
||||
cp $PKG_BUILD/.libs/pmap $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/.libs/slabtop $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/.libs/vmstat $INSTALL/usr/bin/
|
||||
cp $PKG_BUILD/.libs/watch $INSTALL/usr/bin/
|
||||
36
packages/debug/procps-ng/meta
Normal file
36
packages/debug/procps-ng/meta
Normal file
@@ -0,0 +1,36 @@
|
||||
################################################################################
|
||||
# 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="procps-ng"
|
||||
PKG_VERSION="3.3.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://gitorious.org/procps/procps"
|
||||
PKG_URL="$SOURCEFORGE_SRC/procps-ng/Production/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS="ncurses"
|
||||
PKG_BUILD_DEPENDS="toolchain ncurses"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="debug"
|
||||
PKG_SHORTDESC="procps: Small useful utilities that give information about processes"
|
||||
PKG_LONGDESC="procps is the package that has a bunch of small useful utilities that give information about processes using the /proc filesystem. The package includes the programs ps, top, vmstat, w, kill, free, slabtop, and skill."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
@@ -22,10 +22,10 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
# wireless_tools fails to build on some systems with LTO enabled
|
||||
strip_lto
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
make PREFIX=/usr \
|
||||
CC="$TARGET_CC" \
|
||||
AR="$TARGET_AR" \
|
||||
CFLAGS="$TARGET_CFLAGS" \
|
||||
CPPFLAGS="$TARGET_CPPFLAGS" \
|
||||
make PREFIX=/usr CC="$CC" AR="$AR" \
|
||||
CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS"
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="boost"
|
||||
PKG_VERSION="1_52_0"
|
||||
PKG_VERSION="1_53_0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.boost.org/"
|
||||
PKG_URL="$SOURCEFORGE_SRC/boost/boost/1.52.0/${PKG_NAME}_${PKG_VERSION}.tar.bz2"
|
||||
PKG_URL="$SOURCEFORGE_SRC/boost/boost/1.53.0/${PKG_NAME}_${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS="zlib bzip2"
|
||||
PKG_BUILD_DEPENDS="toolchain boost-jam Python-host zlib bzip2"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -36,7 +36,6 @@ mkdir -p .objdir-target && cd .objdir-target
|
||||
--localstatedir=/var \
|
||||
--disable-static \
|
||||
--enable-shared \
|
||||
--disable-mpbsd \
|
||||
--disable-cxx \
|
||||
|
||||
make
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gmp"
|
||||
PKG_VERSION="5.0.5"
|
||||
PKG_VERSION="5.1.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://gmplib.org/"
|
||||
PKG_URL="http://ftp.sunet.se/pub/gnu/gmp/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="ftp://ftp.gmplib.org/pub/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
diff -Naur gmp-5.0.5/configure.in gmp-5.0.5.patch/configure.in
|
||||
--- gmp-5.0.5/configure.in 2012-05-06 13:19:49.000000000 +0200
|
||||
+++ gmp-5.0.5.patch/configure.in 2013-01-12 02:25:31.897257189 +0100
|
||||
@@ -65,8 +65,8 @@
|
||||
dnl Note that there's a copy of these options in the top-level Makefile.am,
|
||||
dnl so update there too if changing anything.
|
||||
dnl
|
||||
-AM_INIT_AUTOMAKE([1.8 gnu no-dependencies $(top_builddir)/ansi2knr])
|
||||
-AM_CONFIG_HEADER(config.h:config.in)
|
||||
+AM_INIT_AUTOMAKE([1.8 gnu no-dependencies])
|
||||
+AC_CONFIG_HEADERS(config.h:config.in)
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
|
||||
@@ -2228,9 +2228,6 @@
|
||||
echo " MPN_PATH=\"$path\""
|
||||
|
||||
|
||||
-# Automake ansi2knr support.
|
||||
-AM_C_PROTOTYPES
|
||||
-
|
||||
CL_AS_NOEXECSTACK
|
||||
|
||||
GMP_PROG_AR
|
||||
diff -Naur gmp-5.0.5/Makefile.am gmp-5.0.5.patch/Makefile.am
|
||||
--- gmp-5.0.5/Makefile.am 2012-05-06 13:19:49.000000000 +0200
|
||||
+++ gmp-5.0.5.patch/Makefile.am 2013-01-12 02:25:09.603364249 +0100
|
||||
@@ -25,7 +25,7 @@
|
||||
# Makefiles in subdirectories, but here we must omit it so automake gives
|
||||
# the actual ansi2knr build rule, not "cd $(top_builddir) && make ansi2knr".
|
||||
#
|
||||
-AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies ansi2knr
|
||||
+AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies
|
||||
|
||||
|
||||
# Libtool -version-info for libgmp.la and libmp.la. See "Versioning" in the
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="2bcb2bc"
|
||||
PKG_VERSION="4bec05a"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="dvb-firmware"
|
||||
PKG_VERSION="0.0.31"
|
||||
PKG_VERSION="0.0.35"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Free-to-use"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="wlan-firmware"
|
||||
PKG_VERSION="0.0.10"
|
||||
PKG_VERSION="0.0.11"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Free-to-use"
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/ene_ir.c linux-3.6.11.patch/drivers/media/rc/ene_ir.c
|
||||
--- linux-3.6.11/drivers/media/rc/ene_ir.c 2012-12-17 18:27:45.000000000 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/ene_ir.c 2012-12-28 22:52:22.571974437 +0100
|
||||
@@ -1000,7 +1000,7 @@
|
||||
dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL);
|
||||
rdev = rc_allocate_device();
|
||||
if (!dev || !rdev)
|
||||
- goto error1;
|
||||
+ goto failure;
|
||||
|
||||
/* validate resources */
|
||||
error = -ENODEV;
|
||||
@@ -1011,10 +1011,10 @@
|
||||
|
||||
if (!pnp_port_valid(pnp_dev, 0) ||
|
||||
pnp_port_len(pnp_dev, 0) < ENE_IO_SIZE)
|
||||
- goto error;
|
||||
+ goto failure;
|
||||
|
||||
if (!pnp_irq_valid(pnp_dev, 0))
|
||||
- goto error;
|
||||
+ goto failure;
|
||||
|
||||
spin_lock_init(&dev->hw_lock);
|
||||
|
||||
@@ -1030,7 +1030,7 @@
|
||||
/* detect hardware version and features */
|
||||
error = ene_hw_detect(dev);
|
||||
if (error)
|
||||
- goto error;
|
||||
+ goto failure;
|
||||
|
||||
if (!dev->hw_learning_and_tx_capable && txsim) {
|
||||
dev->hw_learning_and_tx_capable = true;
|
||||
@@ -1075,30 +1075,27 @@
|
||||
/* claim the resources */
|
||||
error = -EBUSY;
|
||||
if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
|
||||
- dev->hw_io = -1;
|
||||
- dev->irq = -1;
|
||||
- goto error;
|
||||
+ goto failure;
|
||||
}
|
||||
|
||||
dev->irq = pnp_irq(pnp_dev, 0);
|
||||
if (request_irq(dev->irq, ene_isr,
|
||||
IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) {
|
||||
- dev->irq = -1;
|
||||
- goto error;
|
||||
+ goto failure2;
|
||||
}
|
||||
|
||||
error = rc_register_device(rdev);
|
||||
if (error < 0)
|
||||
- goto error;
|
||||
+ goto failure3;
|
||||
|
||||
pr_notice("driver has been successfully loaded\n");
|
||||
return 0;
|
||||
-error:
|
||||
- if (dev && dev->irq >= 0)
|
||||
- free_irq(dev->irq, dev);
|
||||
- if (dev && dev->hw_io >= 0)
|
||||
- release_region(dev->hw_io, ENE_IO_SIZE);
|
||||
-error1:
|
||||
+
|
||||
+failure3:
|
||||
+ free_irq(dev->irq, dev);
|
||||
+failure2:
|
||||
+ release_region(dev->hw_io, ENE_IO_SIZE);
|
||||
+failure:
|
||||
rc_free_device(rdev);
|
||||
kfree(dev);
|
||||
return error;
|
||||
@@ -70,141 +70,7 @@ diff -Naur linux-3.6.11/drivers/media/rc/ati_remote.c linux-3.6.11.patch/drivers
|
||||
return err;
|
||||
}
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/ene_ir.c linux-3.6.11.patch/drivers/media/rc/ene_ir.c
|
||||
--- linux-3.6.11/drivers/media/rc/ene_ir.c 2012-12-28 22:53:15.840572260 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/ene_ir.c 2012-12-28 22:53:29.114472156 +0100
|
||||
@@ -1000,7 +1000,7 @@
|
||||
dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL);
|
||||
rdev = rc_allocate_device();
|
||||
if (!dev || !rdev)
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
|
||||
/* validate resources */
|
||||
error = -ENODEV;
|
||||
@@ -1011,10 +1011,10 @@
|
||||
|
||||
if (!pnp_port_valid(pnp_dev, 0) ||
|
||||
pnp_port_len(pnp_dev, 0) < ENE_IO_SIZE)
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
|
||||
if (!pnp_irq_valid(pnp_dev, 0))
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
|
||||
spin_lock_init(&dev->hw_lock);
|
||||
|
||||
@@ -1030,7 +1030,7 @@
|
||||
/* detect hardware version and features */
|
||||
error = ene_hw_detect(dev);
|
||||
if (error)
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
|
||||
if (!dev->hw_learning_and_tx_capable && txsim) {
|
||||
dev->hw_learning_and_tx_capable = true;
|
||||
@@ -1075,27 +1075,27 @@
|
||||
/* claim the resources */
|
||||
error = -EBUSY;
|
||||
if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
}
|
||||
|
||||
dev->irq = pnp_irq(pnp_dev, 0);
|
||||
if (request_irq(dev->irq, ene_isr,
|
||||
IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) {
|
||||
- goto failure2;
|
||||
+ goto exit_release_hw_io;
|
||||
}
|
||||
|
||||
error = rc_register_device(rdev);
|
||||
if (error < 0)
|
||||
- goto failure3;
|
||||
+ goto exit_free_irq;
|
||||
|
||||
pr_notice("driver has been successfully loaded\n");
|
||||
return 0;
|
||||
|
||||
-failure3:
|
||||
+exit_free_irq:
|
||||
free_irq(dev->irq, dev);
|
||||
-failure2:
|
||||
+exit_release_hw_io:
|
||||
release_region(dev->hw_io, ENE_IO_SIZE);
|
||||
-failure:
|
||||
+exit_free_dev_rdev:
|
||||
rc_free_device(rdev);
|
||||
kfree(dev);
|
||||
return error;
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/fintek-cir.c linux-3.6.11.patch/drivers/media/rc/fintek-cir.c
|
||||
--- linux-3.6.11/drivers/media/rc/fintek-cir.c 2012-12-28 22:53:15.839572268 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/fintek-cir.c 2012-12-28 22:53:29.115472147 +0100
|
||||
@@ -495,18 +495,18 @@
|
||||
/* input device for IR remote (and tx) */
|
||||
rdev = rc_allocate_device();
|
||||
if (!rdev)
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
|
||||
ret = -ENODEV;
|
||||
/* validate pnp resources */
|
||||
if (!pnp_port_valid(pdev, 0)) {
|
||||
dev_err(&pdev->dev, "IR PNP Port not valid!\n");
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
}
|
||||
|
||||
if (!pnp_irq_valid(pdev, 0)) {
|
||||
dev_err(&pdev->dev, "IR PNP IRQ not valid!\n");
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
}
|
||||
|
||||
fintek->cir_addr = pnp_port_start(pdev, 0);
|
||||
@@ -523,7 +523,7 @@
|
||||
|
||||
ret = fintek_hw_detect(fintek);
|
||||
if (ret)
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
|
||||
/* Initialize CIR & CIR Wake Logical Devices */
|
||||
fintek_config_mode_enable(fintek);
|
||||
@@ -556,15 +556,15 @@
|
||||
/* now claim resources */
|
||||
if (!request_region(fintek->cir_addr,
|
||||
fintek->cir_port_len, FINTEK_DRIVER_NAME))
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
|
||||
if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED,
|
||||
FINTEK_DRIVER_NAME, (void *)fintek))
|
||||
- goto failure2;
|
||||
+ goto exit_free_cir_addr;
|
||||
|
||||
ret = rc_register_device(rdev);
|
||||
if (ret)
|
||||
- goto failure3;
|
||||
+ goto exit_free_irq;
|
||||
|
||||
device_init_wakeup(&pdev->dev, true);
|
||||
fintek->rdev = rdev;
|
||||
@@ -574,11 +574,11 @@
|
||||
|
||||
return 0;
|
||||
|
||||
-failure3:
|
||||
+exit_free_irq:
|
||||
free_irq(fintek->cir_irq, fintek);
|
||||
-failure2:
|
||||
+exit_free_cir_addr:
|
||||
release_region(fintek->cir_addr, fintek->cir_port_len);
|
||||
-failure:
|
||||
+exit_free_dev_rdev:
|
||||
rc_free_device(rdev);
|
||||
kfree(fintek);
|
||||
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/gpio-ir-recv.c linux-3.6.11.patch/drivers/media/rc/gpio-ir-recv.c
|
||||
--- linux-3.6.11/drivers/media/rc/gpio-ir-recv.c 2012-12-28 22:53:15.839572268 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/gpio-ir-recv.c 2012-12-28 22:53:29.115472147 +0100
|
||||
@@ -263,154 +129,4 @@ diff -Naur linux-3.6.11/drivers/media/rc/gpio-ir-recv.c linux-3.6.11.patch/drive
|
||||
return rc;
|
||||
}
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/ite-cir.c linux-3.6.11.patch/drivers/media/rc/ite-cir.c
|
||||
--- linux-3.6.11/drivers/media/rc/ite-cir.c 2012-12-28 22:53:15.840572260 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/ite-cir.c 2012-12-28 22:58:06.139364653 +0100
|
||||
@@ -1472,7 +1472,7 @@
|
||||
/* input device for IR remote (and tx) */
|
||||
rdev = rc_allocate_device();
|
||||
if (!rdev)
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
itdev->rdev = rdev;
|
||||
|
||||
ret = -ENODEV;
|
||||
@@ -1498,12 +1498,12 @@
|
||||
if (!pnp_port_valid(pdev, io_rsrc_no) ||
|
||||
pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) {
|
||||
dev_err(&pdev->dev, "IR PNP Port not valid!\n");
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
}
|
||||
|
||||
if (!pnp_irq_valid(pdev, 0)) {
|
||||
dev_err(&pdev->dev, "PNP IRQ not valid!\n");
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
}
|
||||
|
||||
/* store resource values */
|
||||
@@ -1595,25 +1595,26 @@
|
||||
/* now claim resources */
|
||||
if (!request_region(itdev->cir_addr,
|
||||
dev_desc->io_region_size, ITE_DRIVER_NAME))
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
+
|
||||
|
||||
if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED,
|
||||
ITE_DRIVER_NAME, (void *)itdev))
|
||||
- goto failure2;
|
||||
+ goto exit_release_cir_addr;
|
||||
|
||||
ret = rc_register_device(rdev);
|
||||
if (ret)
|
||||
- goto failure3;
|
||||
+ goto exit_free_irq;
|
||||
|
||||
ite_pr(KERN_NOTICE, "driver has been successfully loaded\n");
|
||||
|
||||
return 0;
|
||||
|
||||
-failure3:
|
||||
+exit_free_irq:
|
||||
free_irq(itdev->cir_irq, itdev);
|
||||
-failure2:
|
||||
+exit_release_cir_addr:
|
||||
release_region(itdev->cir_addr, itdev->params.io_region_size);
|
||||
-failure:
|
||||
+exit_free_dev_rdev:
|
||||
rc_free_device(rdev);
|
||||
kfree(itdev);
|
||||
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/nuvoton-cir.c linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c
|
||||
--- linux-3.6.11/drivers/media/rc/nuvoton-cir.c 2012-12-28 22:53:15.839572268 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c 2012-12-28 22:53:29.118472125 +0100
|
||||
@@ -986,25 +986,25 @@
|
||||
/* input device for IR remote (and tx) */
|
||||
rdev = rc_allocate_device();
|
||||
if (!rdev)
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
|
||||
ret = -ENODEV;
|
||||
/* validate pnp resources */
|
||||
if (!pnp_port_valid(pdev, 0) ||
|
||||
pnp_port_len(pdev, 0) < CIR_IOREG_LENGTH) {
|
||||
dev_err(&pdev->dev, "IR PNP Port not valid!\n");
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
}
|
||||
|
||||
if (!pnp_irq_valid(pdev, 0)) {
|
||||
dev_err(&pdev->dev, "PNP IRQ not valid!\n");
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
}
|
||||
|
||||
if (!pnp_port_valid(pdev, 1) ||
|
||||
pnp_port_len(pdev, 1) < CIR_IOREG_LENGTH) {
|
||||
dev_err(&pdev->dev, "Wake PNP Port not valid!\n");
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
}
|
||||
|
||||
nvt->cir_addr = pnp_port_start(pdev, 0);
|
||||
@@ -1027,7 +1027,7 @@
|
||||
|
||||
ret = nvt_hw_detect(nvt);
|
||||
if (ret)
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
|
||||
/* Initialize CIR & CIR Wake Logical Devices */
|
||||
nvt_efm_enable(nvt);
|
||||
@@ -1070,23 +1070,23 @@
|
||||
/* now claim resources */
|
||||
if (!request_region(nvt->cir_addr,
|
||||
CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
|
||||
- goto failure;
|
||||
+ goto exit_free_dev_rdev;
|
||||
|
||||
if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED,
|
||||
NVT_DRIVER_NAME, (void *)nvt))
|
||||
- goto failure2;
|
||||
+ goto exit_release_cir_addr;
|
||||
|
||||
if (!request_region(nvt->cir_wake_addr,
|
||||
CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
|
||||
- goto failure3;
|
||||
+ goto exit_free_irq;
|
||||
|
||||
if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED,
|
||||
NVT_DRIVER_NAME, (void *)nvt))
|
||||
- goto failure4;
|
||||
+ goto exit_release_cir_wake_addr;
|
||||
|
||||
ret = rc_register_device(rdev);
|
||||
if (ret)
|
||||
- goto failure5;
|
||||
+ goto exit_free_wake_irq;
|
||||
|
||||
device_init_wakeup(&pdev->dev, true);
|
||||
nvt->rdev = rdev;
|
||||
@@ -1098,15 +1098,15 @@
|
||||
|
||||
return 0;
|
||||
|
||||
-failure5:
|
||||
+exit_free_wake_irq:
|
||||
free_irq(nvt->cir_wake_irq, nvt);
|
||||
-failure4:
|
||||
+exit_release_cir_wake_addr:
|
||||
release_region(nvt->cir_wake_addr, CIR_IOREG_LENGTH);
|
||||
-failure3:
|
||||
+exit_free_irq:
|
||||
free_irq(nvt->cir_irq, nvt);
|
||||
-failure2:
|
||||
+exit_release_cir_addr:
|
||||
release_region(nvt->cir_addr, CIR_IOREG_LENGTH);
|
||||
-failure:
|
||||
+exit_free_dev_rdev:
|
||||
rc_free_device(rdev);
|
||||
kfree(nvt);
|
||||
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/fintek-cir.c linux-3.6.11.patch/drivers/media/rc/fintek-cir.c
|
||||
--- linux-3.6.11/drivers/media/rc/fintek-cir.c 2012-12-28 22:59:21.808868854 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/fintek-cir.c 2012-12-28 22:59:37.532767678 +0100
|
||||
@@ -552,6 +552,8 @@
|
||||
/* rx resolution is hardwired to 50us atm, 1, 25, 100 also possible */
|
||||
rdev->rx_resolution = US_TO_NS(CIR_SAMPLE_PERIOD);
|
||||
|
||||
+ fintek->rdev = rdev;
|
||||
+
|
||||
ret = -EBUSY;
|
||||
/* now claim resources */
|
||||
if (!request_region(fintek->cir_addr,
|
||||
@@ -567,7 +569,7 @@
|
||||
goto exit_free_irq;
|
||||
|
||||
device_init_wakeup(&pdev->dev, true);
|
||||
- fintek->rdev = rdev;
|
||||
+
|
||||
fit_pr(KERN_NOTICE, "driver has been successfully loaded\n");
|
||||
if (debug)
|
||||
cir_dump_regs(fintek);
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/ite-cir.c linux-3.6.11.patch/drivers/media/rc/ite-cir.c
|
||||
--- linux-3.6.11/drivers/media/rc/ite-cir.c 2012-12-28 22:59:21.808868854 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/ite-cir.c 2012-12-28 22:59:37.533767672 +0100
|
||||
@@ -1591,6 +1591,8 @@
|
||||
rdev->driver_name = ITE_DRIVER_NAME;
|
||||
rdev->map_name = RC_MAP_RC6_MCE;
|
||||
|
||||
+ itdev->rdev = rdev;
|
||||
+
|
||||
ret = -EBUSY;
|
||||
/* now claim resources */
|
||||
if (!request_region(itdev->cir_addr,
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/nuvoton-cir.c linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c
|
||||
--- linux-3.6.11/drivers/media/rc/nuvoton-cir.c 2012-12-28 22:59:21.807868860 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c 2012-12-28 22:59:37.533767672 +0100
|
||||
@@ -1065,6 +1065,7 @@
|
||||
/* tx bits */
|
||||
rdev->tx_resolution = XYZ;
|
||||
#endif
|
||||
+ nvt->rdev = rdev;
|
||||
|
||||
ret = -EBUSY;
|
||||
/* now claim resources */
|
||||
@@ -1089,7 +1090,7 @@
|
||||
goto exit_free_wake_irq;
|
||||
|
||||
device_init_wakeup(&pdev->dev, true);
|
||||
- nvt->rdev = rdev;
|
||||
+
|
||||
nvt_pr(KERN_NOTICE, "driver has been successfully loaded\n");
|
||||
if (debug) {
|
||||
cir_dump_regs(nvt);
|
||||
@@ -1,174 +0,0 @@
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/ene_ir.c linux-3.6.11.patch/drivers/media/rc/ene_ir.c
|
||||
--- linux-3.6.11/drivers/media/rc/ene_ir.c 2012-12-28 23:03:21.859277264 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/ene_ir.c 2012-12-28 23:03:33.651196525 +0100
|
||||
@@ -1072,10 +1072,14 @@
|
||||
device_set_wakeup_capable(&pnp_dev->dev, true);
|
||||
device_set_wakeup_enable(&pnp_dev->dev, true);
|
||||
|
||||
+ error = rc_register_device(rdev);
|
||||
+ if (error < 0)
|
||||
+ goto exit_free_dev_rdev;
|
||||
+
|
||||
/* claim the resources */
|
||||
error = -EBUSY;
|
||||
if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
|
||||
- goto exit_free_dev_rdev;
|
||||
+ goto exit_unregister_device;
|
||||
}
|
||||
|
||||
dev->irq = pnp_irq(pnp_dev, 0);
|
||||
@@ -1084,17 +1088,13 @@
|
||||
goto exit_release_hw_io;
|
||||
}
|
||||
|
||||
- error = rc_register_device(rdev);
|
||||
- if (error < 0)
|
||||
- goto exit_free_irq;
|
||||
-
|
||||
pr_notice("driver has been successfully loaded\n");
|
||||
return 0;
|
||||
|
||||
-exit_free_irq:
|
||||
- free_irq(dev->irq, dev);
|
||||
exit_release_hw_io:
|
||||
release_region(dev->hw_io, ENE_IO_SIZE);
|
||||
+exit_unregister_device:
|
||||
+ rc_unregister_device(rdev);
|
||||
exit_free_dev_rdev:
|
||||
rc_free_device(rdev);
|
||||
kfree(dev);
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/ite-cir.c linux-3.6.11.patch/drivers/media/rc/ite-cir.c
|
||||
--- linux-3.6.11/drivers/media/rc/ite-cir.c 2012-12-28 23:03:21.858277269 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/ite-cir.c 2012-12-28 23:06:45.772856073 +0100
|
||||
@@ -1593,29 +1593,29 @@
|
||||
|
||||
itdev->rdev = rdev;
|
||||
|
||||
+ ret = rc_register_device(rdev);
|
||||
+ if (ret)
|
||||
+ goto exit_free_dev_rdev;
|
||||
+
|
||||
ret = -EBUSY;
|
||||
/* now claim resources */
|
||||
if (!request_region(itdev->cir_addr,
|
||||
dev_desc->io_region_size, ITE_DRIVER_NAME))
|
||||
- goto exit_free_dev_rdev;
|
||||
+ goto exit_unregister_device;
|
||||
|
||||
|
||||
if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED,
|
||||
ITE_DRIVER_NAME, (void *)itdev))
|
||||
goto exit_release_cir_addr;
|
||||
|
||||
- ret = rc_register_device(rdev);
|
||||
- if (ret)
|
||||
- goto exit_free_irq;
|
||||
-
|
||||
ite_pr(KERN_NOTICE, "driver has been successfully loaded\n");
|
||||
|
||||
return 0;
|
||||
|
||||
-exit_free_irq:
|
||||
- free_irq(itdev->cir_irq, itdev);
|
||||
exit_release_cir_addr:
|
||||
release_region(itdev->cir_addr, itdev->params.io_region_size);
|
||||
+exit_unregister_device:
|
||||
+ rc_unregister_device(rdev);
|
||||
exit_free_dev_rdev:
|
||||
rc_free_device(rdev);
|
||||
kfree(itdev);
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/nuvoton-cir.c linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c
|
||||
--- linux-3.6.11/drivers/media/rc/nuvoton-cir.c 2012-12-28 23:03:21.858277269 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c 2012-12-28 23:03:33.653196511 +0100
|
||||
@@ -1067,11 +1067,15 @@
|
||||
#endif
|
||||
nvt->rdev = rdev;
|
||||
|
||||
+ ret = rc_register_device(rdev);
|
||||
+ if (ret)
|
||||
+ goto exit_free_dev_rdev;
|
||||
+
|
||||
ret = -EBUSY;
|
||||
/* now claim resources */
|
||||
if (!request_region(nvt->cir_addr,
|
||||
CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
|
||||
- goto exit_free_dev_rdev;
|
||||
+ goto exit_unregister_device;
|
||||
|
||||
if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED,
|
||||
NVT_DRIVER_NAME, (void *)nvt))
|
||||
@@ -1085,10 +1089,6 @@
|
||||
NVT_DRIVER_NAME, (void *)nvt))
|
||||
goto exit_release_cir_wake_addr;
|
||||
|
||||
- ret = rc_register_device(rdev);
|
||||
- if (ret)
|
||||
- goto exit_free_wake_irq;
|
||||
-
|
||||
device_init_wakeup(&pdev->dev, true);
|
||||
|
||||
nvt_pr(KERN_NOTICE, "driver has been successfully loaded\n");
|
||||
@@ -1099,14 +1099,14 @@
|
||||
|
||||
return 0;
|
||||
|
||||
-exit_free_wake_irq:
|
||||
- free_irq(nvt->cir_wake_irq, nvt);
|
||||
exit_release_cir_wake_addr:
|
||||
release_region(nvt->cir_wake_addr, CIR_IOREG_LENGTH);
|
||||
exit_free_irq:
|
||||
free_irq(nvt->cir_irq, nvt);
|
||||
exit_release_cir_addr:
|
||||
release_region(nvt->cir_addr, CIR_IOREG_LENGTH);
|
||||
+exit_unregister_device:
|
||||
+ rc_unregister_device(rdev);
|
||||
exit_free_dev_rdev:
|
||||
rc_free_device(rdev);
|
||||
kfree(nvt);
|
||||
diff -Naur linux-3.6.11/drivers/media/rc/winbond-cir.c linux-3.6.11.patch/drivers/media/rc/winbond-cir.c
|
||||
--- linux-3.6.11/drivers/media/rc/winbond-cir.c 2012-12-28 23:03:21.858277269 +0100
|
||||
+++ linux-3.6.11.patch/drivers/media/rc/winbond-cir.c 2012-12-28 23:03:33.653196511 +0100
|
||||
@@ -1035,11 +1035,15 @@
|
||||
data->dev->timeout = MS_TO_NS(100);
|
||||
data->dev->allowed_protos = RC_TYPE_ALL;
|
||||
|
||||
+ err = rc_register_device(data->dev);
|
||||
+ if (err)
|
||||
+ goto exit_free_rc;
|
||||
+
|
||||
if (!request_region(data->wbase, WAKEUP_IOMEM_LEN, DRVNAME)) {
|
||||
dev_err(dev, "Region 0x%lx-0x%lx already in use!\n",
|
||||
data->wbase, data->wbase + WAKEUP_IOMEM_LEN - 1);
|
||||
err = -EBUSY;
|
||||
- goto exit_free_rc;
|
||||
+ goto exit_unregister_device;
|
||||
}
|
||||
|
||||
if (!request_region(data->ebase, EHFUNC_IOMEM_LEN, DRVNAME)) {
|
||||
@@ -1064,24 +1068,20 @@
|
||||
goto exit_release_sbase;
|
||||
}
|
||||
|
||||
- err = rc_register_device(data->dev);
|
||||
- if (err)
|
||||
- goto exit_free_irq;
|
||||
-
|
||||
device_init_wakeup(&device->dev, 1);
|
||||
|
||||
wbcir_init_hw(data);
|
||||
|
||||
return 0;
|
||||
|
||||
-exit_free_irq:
|
||||
- free_irq(data->irq, device);
|
||||
exit_release_sbase:
|
||||
release_region(data->sbase, SP_IOMEM_LEN);
|
||||
exit_release_ebase:
|
||||
release_region(data->ebase, EHFUNC_IOMEM_LEN);
|
||||
exit_release_wbase:
|
||||
release_region(data->wbase, WAKEUP_IOMEM_LEN);
|
||||
+exit_unregister_device:
|
||||
+ rc_unregister_device(data->dev);
|
||||
exit_free_rc:
|
||||
rc_free_device(data->dev);
|
||||
exit_unregister_led:
|
||||
13
packages/linux/patches/3.6.11/linux-214-Add-Terratec-H5-Rev3.patch
vendored
Normal file
13
packages/linux/patches/3.6.11/linux-214-Add-Terratec-H5-Rev3.patch
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
|
||||
index 9fd8cc7..1b359ba 100644
|
||||
--- a/drivers/media/video/em28xx/em28xx-cards.c
|
||||
+++ b/drivers/media/video/em28xx/em28xx-cards.c
|
||||
@@ -2066,6 +2066,8 @@ struct usb_device_id em28xx_id_table[] = {
|
||||
.driver_info = EM2884_BOARD_TERRATEC_H5 },
|
||||
{ USB_DEVICE(0x0ccd, 0x10ad), /* H5 Rev. 2 */
|
||||
.driver_info = EM2884_BOARD_TERRATEC_H5 },
|
||||
+ { USB_DEVICE(0x0ccd, 0x10b6), /* H5 Rev. 3 */
|
||||
+ .driver_info = EM2884_BOARD_TERRATEC_H5 },
|
||||
{ USB_DEVICE(0x0ccd, 0x0084),
|
||||
.driver_info = EM2860_BOARD_TERRATEC_AV350 },
|
||||
{ USB_DEVICE(0x0ccd, 0x0096),
|
||||
12142
packages/linux/patches/3.6.11/linux-221-ngene-octopus.patch
vendored
12142
packages/linux/patches/3.6.11/linux-221-ngene-octopus.patch
vendored
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,45 +0,0 @@
|
||||
The array channel_allocations[] is an ordered list, add function to get
|
||||
correct order by ca_index.
|
||||
|
||||
Signed-off-by: Wang Xingchao <xingchao.wang at intel.com>
|
||||
---
|
||||
sound/pci/hda/patch_hdmi.c | 15 ++++++++++++++-
|
||||
1 file changed, 14 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
|
||||
index d9439c5..6ac21d4 100644
|
||||
--- a/sound/pci/hda/patch_hdmi.c
|
||||
+++ b/sound/pci/hda/patch_hdmi.c
|
||||
@@ -469,6 +469,17 @@ static void init_channel_allocations(void)
|
||||
}
|
||||
}
|
||||
|
||||
+static int get_channel_allocation_order(int ca)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < ARRAY_SIZE(channel_allocations); i++) {
|
||||
+ if (channel_allocations[i].ca_index == ca)
|
||||
+ break;
|
||||
+ }
|
||||
+ return i;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* The transformation takes two steps:
|
||||
*
|
||||
@@ -541,9 +552,11 @@ static void hdmi_setup_channel_mapping(struct hda_codec *codec,
|
||||
{
|
||||
int i;
|
||||
int err;
|
||||
+ int order;
|
||||
|
||||
+ order = get_channel_allocation_order(ca);
|
||||
if (hdmi_channel_mapping[ca][1] == 0) {
|
||||
- for (i = 0; i < channel_allocations[ca].channels; i++)
|
||||
+ for (i = 0; i < channel_allocations[order].channels; i++)
|
||||
hdmi_channel_mapping[ca][i] = i | (i << 4);
|
||||
for (; i < 8; i++)
|
||||
hdmi_channel_mapping[ca][i] = 0xf | (i << 4);
|
||||
--
|
||||
1.7.9.5
|
||||
@@ -1,130 +0,0 @@
|
||||
HDMI channel remapping apparently effects HBR packets on Intel's chips.
|
||||
For compressed non-PCM audio, use "straight-through" channel mapping.
|
||||
For uncompressed multi-channel pcm audio, use normal channel mapping.
|
||||
|
||||
Signed-off-by: Wang Xingchao <xingchao.wang at intel.com>
|
||||
---
|
||||
sound/pci/hda/patch_hdmi.c | 36 ++++++++++++++++++++++++++++++++----
|
||||
1 file changed, 32 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
|
||||
index 6ac21d4..a87f8b2 100644
|
||||
--- a/sound/pci/hda/patch_hdmi.c
|
||||
+++ b/sound/pci/hda/patch_hdmi.c
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <sound/core.h>
|
||||
#include <sound/jack.h>
|
||||
+#include <sound/asoundef.h>
|
||||
#include "hda_codec.h"
|
||||
#include "hda_local.h"
|
||||
#include "hda_jack.h"
|
||||
@@ -60,6 +61,7 @@ struct hdmi_spec_per_cvt {
|
||||
u32 rates;
|
||||
u64 formats;
|
||||
unsigned int maxbps;
|
||||
+ bool non_pcm;
|
||||
};
|
||||
|
||||
struct hdmi_spec_per_pin {
|
||||
@@ -548,13 +550,17 @@ static void hdmi_debug_channel_mapping(struct hda_codec *codec,
|
||||
|
||||
static void hdmi_setup_channel_mapping(struct hda_codec *codec,
|
||||
hda_nid_t pin_nid,
|
||||
+ hda_nid_t cvt_nid,
|
||||
+ bool non_pcm,
|
||||
int ca)
|
||||
{
|
||||
int i;
|
||||
int err;
|
||||
int order;
|
||||
+ int non_pcm_mapping[8];
|
||||
|
||||
order = get_channel_allocation_order(ca);
|
||||
+
|
||||
if (hdmi_channel_mapping[ca][1] == 0) {
|
||||
for (i = 0; i < channel_allocations[order].channels; i++)
|
||||
hdmi_channel_mapping[ca][i] = i | (i << 4);
|
||||
@@ -562,10 +568,17 @@ static void hdmi_setup_channel_mapping(struct hda_codec *codec,
|
||||
hdmi_channel_mapping[ca][i] = 0xf | (i << 4);
|
||||
}
|
||||
|
||||
+ if (non_pcm) {
|
||||
+ for (i = 0; i < channel_allocations[order].channels; i++)
|
||||
+ non_pcm_mapping[i] = i | (i << 4);
|
||||
+ for (; i < 8; i++)
|
||||
+ non_pcm_mapping[i] = 0xf | (i << 4);
|
||||
+ }
|
||||
+
|
||||
for (i = 0; i < 8; i++) {
|
||||
err = snd_hda_codec_write(codec, pin_nid, 0,
|
||||
AC_VERB_SET_HDMI_CHAN_SLOT,
|
||||
- hdmi_channel_mapping[ca][i]);
|
||||
+ non_pcm ? non_pcm_mapping[i] : hdmi_channel_mapping[ca][i]);
|
||||
if (err) {
|
||||
snd_printdd(KERN_NOTICE
|
||||
"HDMI: channel mapping failed\n");
|
||||
@@ -699,15 +712,27 @@ static bool hdmi_infoframe_uptodate(struct hda_codec *codec, hda_nid_t pin_nid,
|
||||
}
|
||||
|
||||
static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx,
|
||||
- struct snd_pcm_substream *substream)
|
||||
+ hda_nid_t cvt_nid, struct snd_pcm_substream *substream)
|
||||
{
|
||||
struct hdmi_spec *spec = codec->spec;
|
||||
struct hdmi_spec_per_pin *per_pin = &spec->pins[pin_idx];
|
||||
+ struct hdmi_spec_per_cvt *per_cvt;
|
||||
+ struct hda_spdif_out *spdif;
|
||||
hda_nid_t pin_nid = per_pin->pin_nid;
|
||||
int channels = substream->runtime->channels;
|
||||
struct hdmi_eld *eld;
|
||||
int ca;
|
||||
+ int cvt_idx;
|
||||
union audio_infoframe ai;
|
||||
+ bool non_pcm = false;
|
||||
+
|
||||
+ cvt_idx = cvt_nid_to_cvt_index(spec, cvt_nid);
|
||||
+ per_cvt = &spec->cvts[cvt_idx];
|
||||
+
|
||||
+ mutex_lock(&codec->spdif_mutex);
|
||||
+ spdif = snd_hda_spdif_out_of_nid(codec, cvt_nid);
|
||||
+ non_pcm = !!(spdif->status & IEC958_AES0_NONAUDIO);
|
||||
+ mutex_unlock(&codec->spdif_mutex);
|
||||
|
||||
eld = &spec->pins[pin_idx].sink_eld;
|
||||
if (!eld->monitor_present)
|
||||
@@ -750,12 +775,14 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx,
|
||||
"pin=%d channels=%d\n",
|
||||
pin_nid,
|
||||
channels);
|
||||
- hdmi_setup_channel_mapping(codec, pin_nid, ca);
|
||||
+ hdmi_setup_channel_mapping(codec, pin_nid, cvt_nid, non_pcm, ca);
|
||||
hdmi_stop_infoframe_trans(codec, pin_nid);
|
||||
hdmi_fill_audio_infoframe(codec, pin_nid,
|
||||
ai.bytes, sizeof(ai));
|
||||
hdmi_start_infoframe_trans(codec, pin_nid);
|
||||
}
|
||||
+
|
||||
+ per_cvt->non_pcm = non_pcm;
|
||||
}
|
||||
|
||||
|
||||
@@ -1077,6 +1104,7 @@ static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t cvt_nid)
|
||||
|
||||
per_cvt->cvt_nid = cvt_nid;
|
||||
per_cvt->channels_min = 2;
|
||||
+ per_cvt->non_pcm = false;
|
||||
if (chans <= 16)
|
||||
per_cvt->channels_max = chans;
|
||||
|
||||
@@ -1164,7 +1192,7 @@ static int generic_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
|
||||
|
||||
hdmi_set_channel_count(codec, cvt_nid, substream->runtime->channels);
|
||||
|
||||
- hdmi_setup_audio_infoframe(codec, pin_idx, substream);
|
||||
+ hdmi_setup_audio_infoframe(codec, pin_idx, cvt_nid, substream);
|
||||
|
||||
pinctl = snd_hda_codec_read(codec, pin_nid, 0,
|
||||
AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
|
||||
--
|
||||
1.7.9.5
|
||||
@@ -1,27 +0,0 @@
|
||||
For HBR stream test, use straight channel mapping way.
|
||||
when switched back to "speaker-test -c8", even the audio
|
||||
infoframe is up-to-date, there should be correct channel mapping setup.
|
||||
|
||||
Signed-off-by: Wang Xingchao <xingchao.wang at intel.com>
|
||||
---
|
||||
sound/pci/hda/patch_hdmi.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
|
||||
index a87f8b2..bcb0939 100644
|
||||
--- a/sound/pci/hda/patch_hdmi.c
|
||||
+++ b/sound/pci/hda/patch_hdmi.c
|
||||
@@ -780,6 +780,11 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx,
|
||||
hdmi_fill_audio_infoframe(codec, pin_nid,
|
||||
ai.bytes, sizeof(ai));
|
||||
hdmi_start_infoframe_trans(codec, pin_nid);
|
||||
+ } else {
|
||||
+ /* For non-pcm audio switch, setup new channel mapping
|
||||
+ * accordingly */
|
||||
+ if (per_cvt->non_pcm != non_pcm)
|
||||
+ hdmi_setup_channel_mapping(codec, pin_nid, cvt_nid, non_pcm, ca);
|
||||
}
|
||||
|
||||
per_cvt->non_pcm = non_pcm;
|
||||
--
|
||||
1.7.9.5
|
||||
@@ -1,29 +0,0 @@
|
||||
From: Francois Romieu <romieu@fr.zoreil.com>
|
||||
Date: Fri, 31 Aug 2012 21:06:17 +0000 (+0200)
|
||||
Subject: r8169: add D-Link DGE-560T identifiers.
|
||||
X-Git-Tag: v3.7-rc1~145^2~236
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fstable%2Flinux-stable.git;a=commitdiff_plain;h=2a35cfa591ac63f17815c2d9432b799e37527980;hp=da210f559019ba1cd4ebee2a28ad158bfb95bab2
|
||||
|
||||
r8169: add D-Link DGE-560T identifiers.
|
||||
|
||||
This one includes a 8168. Not to be confused with the sky2 driven
|
||||
one whose PCI vendor and device ID are the same.
|
||||
|
||||
Reported-by: Neyuki Inaya <in@joblog.ru>
|
||||
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
|
||||
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
|
||||
index b47d5b3..0c96604 100644
|
||||
--- a/drivers/net/ethernet/realtek/r8169.c
|
||||
+++ b/drivers/net/ethernet/realtek/r8169.c
|
||||
@@ -287,6 +287,8 @@ static DEFINE_PCI_DEVICE_TABLE(rtl8169_pci_tbl) = {
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_0 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8168), 0, 0, RTL_CFG_1 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 },
|
||||
+ { PCI_VENDOR_ID_DLINK, 0x4300,
|
||||
+ PCI_VENDOR_ID_DLINK, 0x4b10, 0, 0, RTL_CFG_1 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4300), 0, 0, RTL_CFG_0 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4302), 0, 0, RTL_CFG_0 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_AT, 0xc107), 0, 0, RTL_CFG_0 },
|
||||
11
packages/linux/patches/3.7.10/linux-214-Add-Terratec-H5-Rev3.patch
vendored
Normal file
11
packages/linux/patches/3.7.10/linux-214-Add-Terratec-H5-Rev3.patch
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/drivers/media/usb/em28xx/em28xx-cards.c 2013-04-25 19:43:52.636526510 +0200
|
||||
+++ b/drivers/media/usb/em28xx/em28xx-cards.c 2013-04-25 19:44:08.784390961 +0200
|
||||
@@ -2073,6 +2073,8 @@
|
||||
.driver_info = EM2884_BOARD_TERRATEC_H5 },
|
||||
{ USB_DEVICE(0x0ccd, 0x10ad), /* H5 Rev. 2 */
|
||||
.driver_info = EM2884_BOARD_TERRATEC_H5 },
|
||||
+ { USB_DEVICE(0x0ccd, 0x10b6), /* H5 Rev. 3 */
|
||||
+ .driver_info = EM2884_BOARD_TERRATEC_H5 },
|
||||
{ USB_DEVICE(0x0ccd, 0x0084),
|
||||
.driver_info = EM2860_BOARD_TERRATEC_AV350 },
|
||||
{ USB_DEVICE(0x0ccd, 0x0096),
|
||||
@@ -979,9 +979,9 @@ diff -Naur linux-3.7.2/drivers/net/ethernet/jme.c linux-3.7.2.patch/drivers/net/
|
||||
.ndo_start_xmit = jme_start_xmit,
|
||||
.ndo_set_mac_address = jme_set_macaddr,
|
||||
- .ndo_set_rx_mode = jme_set_multi,
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
|
||||
+ .ndo_set_multicast_list = jme_set_multi,
|
||||
+#endif
|
||||
+ .ndo_set_rx_mode = jme_set_multi,
|
||||
+
|
||||
+
|
||||
.ndo_change_mtu = jme_change_mtu,
|
||||
.ndo_tx_timeout = jme_tx_timeout,
|
||||
- .ndo_fix_features = jme_fix_features,
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 083e2330c09b7a5f905020c10e9f52b5c1e17979 Mon Sep 17 00:00:00 2001
|
||||
From: Mengdong Lin <mengdong.lin@intel.com>
|
||||
Date: Thu, 28 Mar 2013 09:20:22 +0000
|
||||
Subject: ALSA: hda - bug fix on return value when getting HDMI ELD info
|
||||
|
||||
commit 2ef5692efad330b67a234e2c49edad38538751e7 upstream.
|
||||
|
||||
In function snd_hdmi_get_eld(), the variable 'ret' should be initialized to 0.
|
||||
Otherwise it will be returned uninitialized as non-zero after ELD info is got
|
||||
successfully. Thus hdmi_present_sense() will always assume ELD info is invalid
|
||||
by mistake, and /proc file system cannot show the proper ELD info.
|
||||
|
||||
Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
|
||||
Acked-by: David Henningsson <david.henningsson@canonical.com>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
---
|
||||
diff --git a/sound/pci/hda/hda_eld.c b/sound/pci/hda/hda_eld.c
|
||||
index 4c054f4..86f6468 100644
|
||||
--- a/sound/pci/hda/hda_eld.c
|
||||
+++ b/sound/pci/hda/hda_eld.c
|
||||
@@ -322,7 +322,7 @@ int snd_hdmi_get_eld(struct hdmi_eld *eld,
|
||||
struct hda_codec *codec, hda_nid_t nid)
|
||||
{
|
||||
int i;
|
||||
- int ret;
|
||||
+ int ret = 0;
|
||||
int size;
|
||||
unsigned char *buf;
|
||||
|
||||
--
|
||||
cgit v0.9.1
|
||||
40
packages/linux/patches/3.7.10/linux-990.12-hda-Enabling_Realtek_ALC671_codec.patch
vendored
Normal file
40
packages/linux/patches/3.7.10/linux-990.12-hda-Enabling_Realtek_ALC671_codec.patch
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
From 0187ab6184b36cc1f01424ef534648c198578dbe Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
|
||||
Date: Thu, 04 Apr 2013 06:40:38 +0000
|
||||
Subject: ALSA: hda - Enabling Realtek ALC 671 codec
|
||||
|
||||
commit 1d87caa69c04008e09f5ff47b5e6acb6116febc7 upstream.
|
||||
|
||||
* Added the device ID to the modalias list and assinged ALC662 patches
|
||||
for it
|
||||
* Added 4 port support for the device ID 0671 in alc662_parse_auto_config
|
||||
|
||||
Signed-off-by: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
---
|
||||
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
|
||||
index 47fb18d..ee975a2 100644
|
||||
--- a/sound/pci/hda/patch_realtek.c
|
||||
+++ b/sound/pci/hda/patch_realtek.c
|
||||
@@ -6720,7 +6720,8 @@ static int alc662_parse_auto_config(struct hda_codec *codec)
|
||||
const hda_nid_t *ssids;
|
||||
|
||||
if (codec->vendor_id == 0x10ec0272 || codec->vendor_id == 0x10ec0663 ||
|
||||
- codec->vendor_id == 0x10ec0665 || codec->vendor_id == 0x10ec0670)
|
||||
+ codec->vendor_id == 0x10ec0665 || codec->vendor_id == 0x10ec0670 ||
|
||||
+ codec->vendor_id == 0x10ec0671)
|
||||
ssids = alc663_ssids;
|
||||
else
|
||||
ssids = alc662_ssids;
|
||||
@@ -7173,6 +7174,7 @@ static const struct hda_codec_preset snd_hda_preset_realtek[] = {
|
||||
{ .id = 0x10ec0665, .name = "ALC665", .patch = patch_alc662 },
|
||||
{ .id = 0x10ec0668, .name = "ALC668", .patch = patch_alc662 },
|
||||
{ .id = 0x10ec0670, .name = "ALC670", .patch = patch_alc662 },
|
||||
+ { .id = 0x10ec0671, .name = "ALC671", .patch = patch_alc662 },
|
||||
{ .id = 0x10ec0680, .name = "ALC680", .patch = patch_alc680 },
|
||||
{ .id = 0x10ec0880, .name = "ALC880", .patch = patch_alc880 },
|
||||
{ .id = 0x10ec0882, .name = "ALC882", .patch = patch_alc882 },
|
||||
--
|
||||
cgit v0.9.1
|
||||
30
packages/linux/patches/3.7.10/linux-990.13-hda-fix_typo_in_proc_output.patch
vendored
Normal file
30
packages/linux/patches/3.7.10/linux-990.13-hda-fix_typo_in_proc_output.patch
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
From 05c05ef21a1cf71d16189cd4d8060b47f504db2b Mon Sep 17 00:00:00 2001
|
||||
From: David Henningsson <david.henningsson@canonical.com>
|
||||
Date: Thu, 04 Apr 2013 09:47:13 +0000
|
||||
Subject: ALSA: hda - fix typo in proc output
|
||||
|
||||
commit aeb3a97222832e5457c4b72d72235098ce4bfe8d upstream.
|
||||
|
||||
Rename "Digitial In" to "Digital In". This function is only used for
|
||||
proc output, so should not cause any problems to change.
|
||||
|
||||
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
---
|
||||
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
|
||||
index e46b6a3..622f726 100644
|
||||
--- a/sound/pci/hda/hda_codec.c
|
||||
+++ b/sound/pci/hda/hda_codec.c
|
||||
@@ -173,7 +173,7 @@ const char *snd_hda_get_jack_type(u32 cfg)
|
||||
"Line Out", "Speaker", "HP Out", "CD",
|
||||
"SPDIF Out", "Digital Out", "Modem Line", "Modem Hand",
|
||||
"Line In", "Aux", "Mic", "Telephony",
|
||||
- "SPDIF In", "Digitial In", "Reserved", "Other"
|
||||
+ "SPDIF In", "Digital In", "Reserved", "Other"
|
||||
};
|
||||
|
||||
return jack_types[(cfg & AC_DEFCFG_DEVICE)
|
||||
--
|
||||
cgit v0.9.1
|
||||
69
packages/linux/patches/3.7.10/linux-990.21-r8169-fix_auto_speed_down_issue.patch
vendored
Normal file
69
packages/linux/patches/3.7.10/linux-990.21-r8169-fix_auto_speed_down_issue.patch
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
From 77e2cc382c06a8be48f80e769991e9a4b36a03ce Mon Sep 17 00:00:00 2001
|
||||
From: hayeswang <hayeswang@realtek.com>
|
||||
Date: Sun, 31 Mar 2013 17:02:04 +0000
|
||||
Subject: r8169: fix auto speed down issue
|
||||
|
||||
commit e2409d83434d77874b461b78af6a19cd6e6a1280 upstream.
|
||||
|
||||
It would cause no link after suspending or shutdowning when the
|
||||
nic changes the speed to 10M and connects to a link partner which
|
||||
forces the speed to 100M.
|
||||
|
||||
Check the link partner ability to determine which speed to set.
|
||||
|
||||
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
|
||||
Acked-by: Francois Romieu <romieu@fr.zoreil.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
|
||||
---
|
||||
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
|
||||
index 998974f..2d849da 100644
|
||||
--- a/drivers/net/ethernet/realtek/r8169.c
|
||||
+++ b/drivers/net/ethernet/realtek/r8169.c
|
||||
@@ -3819,6 +3819,30 @@ static void rtl_init_mdio_ops(struct rtl8169_private *tp)
|
||||
}
|
||||
}
|
||||
|
||||
+static void rtl_speed_down(struct rtl8169_private *tp)
|
||||
+{
|
||||
+ u32 adv;
|
||||
+ int lpa;
|
||||
+
|
||||
+ rtl_writephy(tp, 0x1f, 0x0000);
|
||||
+ lpa = rtl_readphy(tp, MII_LPA);
|
||||
+
|
||||
+ if (lpa & (LPA_10HALF | LPA_10FULL))
|
||||
+ adv = ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full;
|
||||
+ else if (lpa & (LPA_100HALF | LPA_100FULL))
|
||||
+ adv = ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full |
|
||||
+ ADVERTISED_100baseT_Half | ADVERTISED_100baseT_Full;
|
||||
+ else
|
||||
+ adv = ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full |
|
||||
+ ADVERTISED_100baseT_Half | ADVERTISED_100baseT_Full |
|
||||
+ (tp->mii.supports_gmii ?
|
||||
+ ADVERTISED_1000baseT_Half |
|
||||
+ ADVERTISED_1000baseT_Full : 0);
|
||||
+
|
||||
+ rtl8169_set_speed(tp->dev, AUTONEG_ENABLE, SPEED_1000, DUPLEX_FULL,
|
||||
+ adv);
|
||||
+}
|
||||
+
|
||||
static void rtl_wol_suspend_quirk(struct rtl8169_private *tp)
|
||||
{
|
||||
void __iomem *ioaddr = tp->mmio_addr;
|
||||
@@ -3849,9 +3873,7 @@ static bool rtl_wol_pll_power_down(struct rtl8169_private *tp)
|
||||
if (!(__rtl8169_get_wol(tp) & WAKE_ANY))
|
||||
return false;
|
||||
|
||||
- rtl_writephy(tp, 0x1f, 0x0000);
|
||||
- rtl_writephy(tp, MII_BMCR, 0x0000);
|
||||
-
|
||||
+ rtl_speed_down(tp);
|
||||
rtl_wol_suspend_quirk(tp);
|
||||
|
||||
return true;
|
||||
--
|
||||
cgit v0.9.1
|
||||
@@ -0,0 +1,42 @@
|
||||
From 19a993879bb86c801995f55702ab6beaa5485f5e Mon Sep 17 00:00:00 2001
|
||||
From: Tim Gardner <tim.gardner@canonical.com>
|
||||
Date: Mon, 18 Feb 2013 19:56:28 +0000
|
||||
Subject: rt2x00: rt2x00pci_regbusy_read() - only print register access failure once
|
||||
|
||||
commit 83589b30f1e1dc9898986293c9336b8ce1705dec upstream.
|
||||
|
||||
BugLink: http://bugs.launchpad.net/bugs/1128840
|
||||
|
||||
It appears that when this register read fails it never recovers, so
|
||||
I think there is no need to repeat the same error message ad infinitum.
|
||||
|
||||
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
|
||||
Cc: Ivo van Doorn <IvDoorn@gmail.com>
|
||||
Cc: Gertjan van Wingerde <gwingerde@gmail.com>
|
||||
Cc: Helmut Schaa <helmut.schaa@googlemail.com>
|
||||
Cc: "John W. Linville" <linville@tuxdriver.com>
|
||||
Cc: linux-wireless@vger.kernel.org
|
||||
Cc: users@rt2x00.serialmonkey.com
|
||||
Cc: netdev@vger.kernel.org
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
---
|
||||
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c
|
||||
index a0c8cae..b1c673e 100644
|
||||
--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
|
||||
+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
|
||||
@@ -52,8 +52,8 @@ int rt2x00pci_regbusy_read(struct rt2x00_dev *rt2x00dev,
|
||||
udelay(REGISTER_BUSY_DELAY);
|
||||
}
|
||||
|
||||
- ERROR(rt2x00dev, "Indirect register access failed: "
|
||||
- "offset=0x%.08x, value=0x%.08x\n", offset, *reg);
|
||||
+ printk_once(KERN_ERR "%s() Indirect register access failed: "
|
||||
+ "offset=0x%.08x, value=0x%.08x\n", __func__, offset, *reg);
|
||||
*reg = ~0;
|
||||
|
||||
return 0;
|
||||
--
|
||||
cgit v0.9.1
|
||||
1577
packages/linux/patches/3.7.10/linux-995-CX24120-13Z_frontend.patch
vendored
Executable file
1577
packages/linux/patches/3.7.10/linux-995-CX24120-13Z_frontend.patch
vendored
Executable file
File diff suppressed because it is too large
Load Diff
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-addon-xvdr"
|
||||
PKG_VERSION="34070b5"
|
||||
PKG_VERSION="frodo-acd4e14"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-pvr-addons"
|
||||
PKG_VERSION="590f862"
|
||||
PKG_VERSION="frodo-d37ec1d"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-theme-Confluence"
|
||||
PKG_VERSION="12.1"
|
||||
PKG_VERSION="12.2.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<delay>175</delay>
|
||||
</refresh>
|
||||
</latency>
|
||||
<busydialogdelayms>750</busydialogdelayms>
|
||||
</video>
|
||||
<samba>
|
||||
<clienttimeout>30</clienttimeout>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc"
|
||||
PKG_VERSION="12.1"
|
||||
PKG_VERSION="12.2.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
107
packages/mediacenter/xbmc/patches/12.2.0/xbmc-601-add_multithread_support_for_hi10p-0.1.patch
vendored
Normal file
107
packages/mediacenter/xbmc/patches/12.2.0/xbmc-601-add_multithread_support_for_hi10p-0.1.patch
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
From ca0ddf0673dea966af5bf0bc562f9ff69a551cd9 Mon Sep 17 00:00:00 2001
|
||||
From: fritsch <peter.fruehberger@gmail.com>
|
||||
Date: Sat, 12 Jan 2013 13:03:50 +0100
|
||||
Subject: [PATCH] dvdplayer: Allow multithread decoding for hi10p content by
|
||||
default
|
||||
|
||||
This allows decoding of some hi10p material on e.g. AMD Fusion with
|
||||
both cores at the max. This introduces a new advancedsetting named
|
||||
disablehi10pmultithreading to disable hi10p decoded multithreaded.
|
||||
---
|
||||
.../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 18 ++++++++++++++++--
|
||||
.../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 1 +
|
||||
xbmc/settings/AdvancedSettings.cpp | 2 ++
|
||||
xbmc/settings/AdvancedSettings.h | 1 +
|
||||
4 files changed, 20 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||
index 8f81637..77ac6b1 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||
@@ -138,6 +138,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
|
||||
m_iScreenHeight = 0;
|
||||
m_iOrientation = 0;
|
||||
m_bSoftware = false;
|
||||
+ m_isHi10p = false;
|
||||
m_pHardware = NULL;
|
||||
m_iLastKeyframe = 0;
|
||||
m_dts = DVD_NOPTS_VALUE;
|
||||
@@ -187,7 +188,10 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
|
||||
case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
|
||||
case FF_PROFILE_H264_HIGH_444_INTRA:
|
||||
case FF_PROFILE_H264_CAVLC_444:
|
||||
+ // this is needed to not open the decoders
|
||||
m_bSoftware = true;
|
||||
+ // this we need to enable multithreading for hi10p via advancedsettings
|
||||
+ m_isHi10p = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -247,8 +251,18 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
|
||||
m_pCodecContext->codec_tag = hints.codec_tag;
|
||||
/* Only allow slice threading, since frame threading is more
|
||||
* sensitive to changes in frame sizes, and it causes crashes
|
||||
- * during HW accell */
|
||||
- m_pCodecContext->thread_type = FF_THREAD_SLICE;
|
||||
+ * during HW accell - so we unset it in this case.
|
||||
+ *
|
||||
+ * When we detect Hi10p and user did not disable hi10pmultithreading
|
||||
+ * via advancedsettings.xml we keep the ffmpeg default thread type.
|
||||
+ * */
|
||||
+ if(m_isHi10p && !g_advancedSettings.m_videoDisableHi10pMultithreading)
|
||||
+ {
|
||||
+ CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Keep default threading for Hi10p: %d",
|
||||
+ m_pCodecContext->thread_type);
|
||||
+ }
|
||||
+ else
|
||||
+ m_pCodecContext->thread_type = FF_THREAD_SLICE;
|
||||
|
||||
#if defined(TARGET_DARWIN_IOS)
|
||||
// ffmpeg with enabled neon will crash and burn if this is enabled
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
|
||||
index 61d0305..827b2d9 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
|
||||
@@ -114,6 +114,7 @@ class CDVDVideoCodecFFmpeg : public CDVDVideoCodec
|
||||
|
||||
std::string m_name;
|
||||
bool m_bSoftware;
|
||||
+ bool m_isHi10p;
|
||||
IHardwareDecoder *m_pHardware;
|
||||
int m_iLastKeyframe;
|
||||
double m_dts;
|
||||
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
|
||||
index 16800b7..1e0f3e0 100644
|
||||
--- a/xbmc/settings/AdvancedSettings.cpp
|
||||
+++ b/xbmc/settings/AdvancedSettings.cpp
|
||||
@@ -112,6 +112,7 @@ void CAdvancedSettings::Initialize()
|
||||
m_DXVANoDeintProcForProgressive = false;
|
||||
m_videoFpsDetect = 1;
|
||||
m_videoDefaultLatency = 0.0;
|
||||
+ m_videoDisableHi10pMultithreading = false;
|
||||
|
||||
m_musicUseTimeSeeking = true;
|
||||
m_musicTimeSeekForward = 10;
|
||||
@@ -498,6 +499,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file)
|
||||
XMLUtils::GetBoolean(pElement,"enablehighqualityhwscalers", m_videoEnableHighQualityHwScalers);
|
||||
XMLUtils::GetFloat(pElement,"autoscalemaxfps",m_videoAutoScaleMaxFps, 0.0f, 1000.0f);
|
||||
XMLUtils::GetBoolean(pElement,"allowmpeg4vdpau",m_videoAllowMpeg4VDPAU);
|
||||
+ XMLUtils::GetBoolean(pElement,"disablehi10pmultithreading",m_videoDisableHi10pMultithreading);
|
||||
XMLUtils::GetBoolean(pElement,"allowmpeg4vaapi",m_videoAllowMpeg4VAAPI);
|
||||
XMLUtils::GetBoolean(pElement, "disablebackgrounddeinterlace", m_videoDisableBackgroundDeinterlace);
|
||||
XMLUtils::GetInt(pElement, "useocclusionquery", m_videoCaptureUseOcclusionQuery, -1, 1);
|
||||
diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
|
||||
index 27887d4..fc05e41 100644
|
||||
--- a/xbmc/settings/AdvancedSettings.h
|
||||
+++ b/xbmc/settings/AdvancedSettings.h
|
||||
@@ -164,6 +164,7 @@ class CAdvancedSettings
|
||||
bool m_DXVAForceProcessorRenderer;
|
||||
bool m_DXVANoDeintProcForProgressive;
|
||||
int m_videoFpsDetect;
|
||||
+ bool m_videoDisableHi10pMultithreading;
|
||||
|
||||
CStdString m_videoDefaultPlayer;
|
||||
CStdString m_videoDefaultDVDPlayer;
|
||||
--
|
||||
1.7.10
|
||||
|
||||
57
packages/mediacenter/xbmc/patches/12.2.0/xbmc-602-add_as.xml_busy_dialog_delay_control.patch
vendored
Normal file
57
packages/mediacenter/xbmc/patches/12.2.0/xbmc-602-add_as.xml_busy_dialog_delay_control.patch
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
diff -Naur xbmc-12.1.8/xbmc/cores/dvdplayer/DVDPlayer.cpp xbmc-12.1.8.patch/xbmc/cores/dvdplayer/DVDPlayer.cpp
|
||||
--- xbmc-12.1.8/xbmc/cores/dvdplayer/DVDPlayer.cpp 2013-04-24 23:38:36.000000000 +0200
|
||||
+++ xbmc-12.1.8.patch/xbmc/cores/dvdplayer/DVDPlayer.cpp 2013-04-26 00:49:07.732011721 +0200
|
||||
@@ -470,7 +470,7 @@
|
||||
#endif
|
||||
|
||||
Create();
|
||||
- if(!m_ready.WaitMSec(100))
|
||||
+ if(!m_ready.WaitMSec(g_advancedSettings.m_videoBusyDialogDelay_ms))
|
||||
{
|
||||
CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY);
|
||||
if(dialog)
|
||||
diff -Naur xbmc-12.1.8/xbmc/cores/omxplayer/OMXPlayer.cpp xbmc-12.1.8.patch/xbmc/cores/omxplayer/OMXPlayer.cpp
|
||||
--- xbmc-12.1.8/xbmc/cores/omxplayer/OMXPlayer.cpp 2013-04-24 23:38:36.000000000 +0200
|
||||
+++ xbmc-12.1.8.patch/xbmc/cores/omxplayer/OMXPlayer.cpp 2013-04-26 00:50:56.974691417 +0200
|
||||
@@ -474,7 +474,7 @@
|
||||
g_renderManager.PreInit();
|
||||
|
||||
Create();
|
||||
- if(!m_ready.WaitMSec(100))
|
||||
+ if(!m_ready.WaitMSec(g_advancedSettings.m_videoBusyDialogDelay_ms))
|
||||
{
|
||||
CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY);
|
||||
if(dialog)
|
||||
diff -Naur xbmc-12.1.8/xbmc/settings/AdvancedSettings.cpp xbmc-12.1.8.patch/xbmc/settings/AdvancedSettings.cpp
|
||||
--- xbmc-12.1.8/xbmc/settings/AdvancedSettings.cpp 2013-04-26 00:48:59.375036542 +0200
|
||||
+++ xbmc-12.1.8.patch/xbmc/settings/AdvancedSettings.cpp 2013-04-26 00:49:07.732011721 +0200
|
||||
@@ -111,6 +111,7 @@
|
||||
m_DXVAForceProcessorRenderer = true;
|
||||
m_DXVANoDeintProcForProgressive = false;
|
||||
m_videoFpsDetect = 1;
|
||||
+ m_videoBusyDialogDelay_ms = 100;
|
||||
m_videoDefaultLatency = 0.0;
|
||||
m_videoDisableHi10pMultithreading = false;
|
||||
|
||||
@@ -592,6 +593,10 @@
|
||||
//0 = disable fps detect, 1 = only detect on timestamps with uniform spacing, 2 detect on all timestamps
|
||||
XMLUtils::GetInt(pElement, "fpsdetect", m_videoFpsDetect, 0, 2);
|
||||
|
||||
+ // controls the delay, in milliseconds, until
|
||||
+ // the busy dialog is shown when starting video playback.
|
||||
+ XMLUtils::GetInt(pElement, "busydialogdelayms", m_videoBusyDialogDelay_ms, 0, 1000);
|
||||
+
|
||||
// Store global display latency settings
|
||||
TiXmlElement* pVideoLatency = pElement->FirstChildElement("latency");
|
||||
if (pVideoLatency)
|
||||
diff -Naur xbmc-12.1.8/xbmc/settings/AdvancedSettings.h xbmc-12.1.8.patch/xbmc/settings/AdvancedSettings.h
|
||||
--- xbmc-12.1.8/xbmc/settings/AdvancedSettings.h 2013-04-26 00:48:59.383036518 +0200
|
||||
+++ xbmc-12.1.8.patch/xbmc/settings/AdvancedSettings.h 2013-04-26 00:49:07.732011721 +0200
|
||||
@@ -165,6 +165,7 @@
|
||||
bool m_DXVANoDeintProcForProgressive;
|
||||
int m_videoFpsDetect;
|
||||
bool m_videoDisableHi10pMultithreading;
|
||||
+ int m_videoBusyDialogDelay_ms;
|
||||
|
||||
CStdString m_videoDefaultPlayer;
|
||||
CStdString m_videoDefaultDVDPlayer;
|
||||
184
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.07-PR2435.patch
vendored
Normal file
184
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.07-PR2435.patch
vendored
Normal file
@@ -0,0 +1,184 @@
|
||||
From 2da77839fbf972e8c6f09c56d25f8c7bf999f3fa Mon Sep 17 00:00:00 2001
|
||||
From: dezi <dezi@kappa-mm.de>
|
||||
Date: Mon, 18 Mar 2013 12:29:27 +0000
|
||||
Subject: [PATCH] Added hotplug support for Linux input devices.
|
||||
|
||||
---
|
||||
xbmc/input/linux/LinuxInputDevices.cpp | 80 ++++++++++++++++++++++++++++++++++
|
||||
xbmc/input/linux/LinuxInputDevices.h | 6 +++
|
||||
2 files changed, 86 insertions(+)
|
||||
|
||||
diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
|
||||
index 9d253bb..1d3d315 100644
|
||||
--- a/xbmc/input/linux/LinuxInputDevices.cpp
|
||||
+++ b/xbmc/input/linux/LinuxInputDevices.cpp
|
||||
@@ -338,6 +338,7 @@
|
||||
m_deviceMinKeyCode = 0;
|
||||
m_deviceMaxKeyCode = 0;
|
||||
m_deviceMaxAxis = 0;
|
||||
+ m_bUnplugged = false;
|
||||
|
||||
Open();
|
||||
}
|
||||
@@ -744,7 +745,15 @@ XBMC_Event CLinuxInputDevice::ReadEvent()
|
||||
readlen = read(m_fd, &levt, sizeof(levt));
|
||||
|
||||
if (readlen <= 0)
|
||||
+ {
|
||||
+ if (errno == ENODEV)
|
||||
+ {
|
||||
+ CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName);
|
||||
+ m_bUnplugged = true;
|
||||
+ }
|
||||
+
|
||||
break;
|
||||
+ }
|
||||
|
||||
//printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str());
|
||||
|
||||
@@ -963,6 +972,16 @@ void CLinuxInputDevice::GetInfo(int fd)
|
||||
//printf("pref: %d\n", m_devicePreferredId);
|
||||
}
|
||||
|
||||
+char* CLinuxInputDevice::GetDeviceName()
|
||||
+{
|
||||
+ return m_deviceName;
|
||||
+}
|
||||
+
|
||||
+bool CLinuxInputDevice::IsUnplugged()
|
||||
+{
|
||||
+ return m_bUnplugged;
|
||||
+}
|
||||
+
|
||||
bool CLinuxInputDevices::CheckDevice(const char *device)
|
||||
{
|
||||
int fd;
|
||||
@@ -1021,6 +1040,41 @@ void CLinuxInputDevices::InitAvailable()
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Check for hot plugged devices.
|
||||
+ */
|
||||
+void CLinuxInputDevices::CheckHotplugged()
|
||||
+{
|
||||
+ CSingleLock lock(m_devicesListLock);
|
||||
+
|
||||
+ int deviceId = m_devices.size();
|
||||
+
|
||||
+ /* No devices specified. Try to guess some. */
|
||||
+ for (int i = 0; i < MAX_LINUX_INPUT_DEVICES; i++)
|
||||
+ {
|
||||
+ char buf[32];
|
||||
+ bool ispresent = false;
|
||||
+
|
||||
+ snprintf(buf, 32, "/dev/input/event%d", i);
|
||||
+
|
||||
+ for (size_t j = 0; j < m_devices.size(); j++)
|
||||
+ {
|
||||
+ if (strcmp(m_devices[j]->GetDeviceName(),buf) == 0)
|
||||
+ {
|
||||
+ ispresent = true;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!ispresent && CheckDevice(buf))
|
||||
+ {
|
||||
+ CLog::Log(LOGINFO, "Found input device %s", buf);
|
||||
+ m_devices.push_back(new CLinuxInputDevice(buf, deviceId));
|
||||
+ ++deviceId;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Open the device, fill out information about it,
|
||||
* allocate and fill private data, start input thread.
|
||||
*/
|
||||
@@ -1076,6 +1130,9 @@ bool CLinuxInputDevice::Open()
|
||||
{
|
||||
if (m_vt_fd < 0)
|
||||
m_vt_fd = open("/dev/tty0", O_RDWR | O_NOCTTY);
|
||||
+
|
||||
+ if (m_vt_fd < 0)
|
||||
+ m_vt_fd = open("/dev/tty1", O_RDWR | O_NOCTTY);
|
||||
|
||||
if (m_vt_fd < 0)
|
||||
CLog::Log(LOGWARNING, "no keymap support (requires /dev/tty0 - CONFIG_VT)");
|
||||
@@ -1195,6 +1252,23 @@ void CLinuxInputDevice::Close()
|
||||
|
||||
XBMC_Event CLinuxInputDevices::ReadEvent()
|
||||
{
|
||||
+ if (m_bReInitialize)
|
||||
+ {
|
||||
+ InitAvailable();
|
||||
+ m_bReInitialize = false;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ time_t now;
|
||||
+ time(&now);
|
||||
+
|
||||
+ if ((now - m_lastHotplugCheck) >= 10)
|
||||
+ {
|
||||
+ CheckHotplugged();
|
||||
+ m_lastHotplugCheck = now;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
CSingleLock lock(m_devicesListLock);
|
||||
|
||||
XBMC_Event event;
|
||||
@@ -1207,6 +1281,12 @@ XBMC_Event CLinuxInputDevices::ReadEvent()
|
||||
{
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ if (m_devices[i]->IsUnplugged())
|
||||
+ {
|
||||
+ m_bReInitialize = true;
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
|
||||
return event;
|
||||
diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h
|
||||
index 18224a9..b7626f4 100644
|
||||
--- a/xbmc/input/linux/LinuxInputDevices.h
|
||||
+++ b/xbmc/input/linux/LinuxInputDevices.h
|
||||
@@ -41,6 +41,8 @@ class CLinuxInputDevice
|
||||
CLinuxInputDevice(const std::string fileName, int index);
|
||||
~CLinuxInputDevice();
|
||||
XBMC_Event ReadEvent();
|
||||
+ char* GetDeviceName();
|
||||
+ bool IsUnplugged();
|
||||
|
||||
private:
|
||||
void SetupKeyboardAutoRepeat(int fd);
|
||||
@@ -76,12 +78,14 @@ class CLinuxInputDevice
|
||||
int m_deviceMaxKeyCode;
|
||||
int m_deviceMaxAxis;
|
||||
bool m_bSkipNonKeyEvents;
|
||||
+ bool m_bUnplugged;
|
||||
};
|
||||
|
||||
class CLinuxInputDevices
|
||||
{
|
||||
public:
|
||||
void InitAvailable();
|
||||
+ void CheckHotplugged();
|
||||
XBMC_Event ReadEvent();
|
||||
bool IsRemoteLowBattery();
|
||||
bool IsRemoteNotPaired();
|
||||
@@ -89,6 +93,8 @@ class CLinuxInputDevices
|
||||
CCriticalSection m_devicesListLock;
|
||||
bool CheckDevice(const char *device);
|
||||
std::vector<CLinuxInputDevice*> m_devices;
|
||||
+ bool m_bReInitialize;
|
||||
+ time_t m_lastHotplugCheck;
|
||||
};
|
||||
|
||||
#endif /* LINUXINPUTDEVICES_H_ */
|
||||
--
|
||||
1.8.1.5
|
||||
|
||||
60
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.08-PR2637.patch
vendored
Normal file
60
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.08-PR2637.patch
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
From d4c34400b9bdebbb1a943603a54fdf207034ddd1 Mon Sep 17 00:00:00 2001
|
||||
From: Dag Wieers <dag@wieers.com>
|
||||
Date: Sat, 20 Apr 2013 02:59:47 +0200
|
||||
Subject: [PATCH] Increase USB and CEC rescan interval to 5 seconds
|
||||
|
||||
In one of my investigations to see why XBMC performance is so bad (even when idle) I found one of the threads (in my case PeripheralBusCEC) scan a big sysfs tree recursively. On the 1Ghz AppleTV 1 device this would be about 2% of the CPU *every* second. For the USB thread we luckily have Udev events, but for CEC it is using sysfs polling which is quite expensive. It would be better to make use of Udev as well for CEC (where available) however 5 seconds should be fine for everyone.
|
||||
|
||||
In my own builds I even brought it down to 30 seconds. Which means 29 seconds of reduced CPU usage.
|
||||
|
||||
The CEC polling probably should be more restricted to specific sysfs sections, or preferably use Udev as well, when available.
|
||||
|
||||
PS XBMC needs a special idle-state where it can turn down these expensive threads to make sure hardware can go into deeper sleep states. Especially for devices that doesn't do suspend for various reasons this is a requirement. (The ATV1 device for instance gets warm even when idle) If we can combine display-sleep with low-power states and a less expensive main-loop, that would be already quite an improvement without needing a complete refactoring of the code.
|
||||
---
|
||||
xbmc/peripherals/bus/PeripheralBus.cpp | 2 +-
|
||||
xbmc/peripherals/bus/PeripheralBus.h | 2 +-
|
||||
xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xbmc/peripherals/bus/PeripheralBus.cpp b/xbmc/peripherals/bus/PeripheralBus.cpp
|
||||
index 0e673ee..f0219f1 100644
|
||||
--- a/xbmc/peripherals/bus/PeripheralBus.cpp
|
||||
+++ b/xbmc/peripherals/bus/PeripheralBus.cpp
|
||||
@@ -27,7 +27,7 @@
|
||||
using namespace std;
|
||||
using namespace PERIPHERALS;
|
||||
|
||||
-#define PERIPHERAL_DEFAULT_RESCAN_INTERVAL 1000
|
||||
+#define PERIPHERAL_DEFAULT_RESCAN_INTERVAL 5000
|
||||
|
||||
CPeripheralBus::CPeripheralBus(CPeripherals *manager, PeripheralBusType type) :
|
||||
CThread("PeripheralBus"),
|
||||
diff --git a/xbmc/peripherals/bus/PeripheralBus.h b/xbmc/peripherals/bus/PeripheralBus.h
|
||||
index cc368ac..24e1524 100644
|
||||
--- a/xbmc/peripherals/bus/PeripheralBus.h
|
||||
+++ b/xbmc/peripherals/bus/PeripheralBus.h
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
/*!
|
||||
* @class CPeripheralBus
|
||||
- * This represents a bus on the system. By default, this bus instance will scan for changes every second.
|
||||
+ * This represents a bus on the system. By default, this bus instance will scan for changes every 5 seconds.
|
||||
* If this bus only has to be updated after a notification sent by the system, set m_bNeedsPolling to false
|
||||
* in the constructor, and implement the OnDeviceAdded(), OnDeviceChanged() and OnDeviceRemoved() methods.
|
||||
*
|
||||
diff --git a/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp b/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp
|
||||
index da169c1..0db7423 100644
|
||||
--- a/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp
|
||||
+++ b/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp
|
||||
@@ -57,7 +57,7 @@ class PERIPHERALS::DllLibCEC : public DllDynamic, DllLibCECInterface
|
||||
m_dll(new DllLibCEC),
|
||||
m_cecAdapter(NULL)
|
||||
{
|
||||
- m_iRescanTime = 1000;
|
||||
+ m_iRescanTime = 5000;
|
||||
if (!m_dll->Load() || !m_dll->IsLoaded())
|
||||
{
|
||||
delete m_dll;
|
||||
--
|
||||
1.8.1.6
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,99 @@
|
||||
diff -Naur xbmc-12.1/xbmc/cores/omxplayer/OMXPlayerAudio.cpp xbmc-12.1.patch/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
|
||||
--- xbmc-12.1/xbmc/cores/omxplayer/OMXPlayerAudio.cpp 2013-04-07 22:10:57.264461705 +0200
|
||||
+++ xbmc-12.1.patch/xbmc/cores/omxplayer/OMXPlayerAudio.cpp 2013-04-07 22:18:08.064718783 +0200
|
||||
@@ -80,6 +80,7 @@
|
||||
m_send_eos = false;
|
||||
m_bad_state = false;
|
||||
m_hints_current.Clear();
|
||||
+ m_output_stalled = false;
|
||||
|
||||
m_av_clock->SetMasterClock(false);
|
||||
|
||||
@@ -154,6 +155,7 @@
|
||||
m_stalled = m_messageQueue.GetPacketCount(CDVDMsg::DEMUXER_PACKET) == 0;
|
||||
m_use_passthrough = (g_guiSettings.GetInt("audiooutput.mode") == AUDIO_HDMI) ? true : false ;
|
||||
m_use_hw_decode = g_advancedSettings.m_omxHWAudioDecode;
|
||||
+ m_output_stalled = m_stalled;
|
||||
}
|
||||
|
||||
bool OMXPlayerAudio::CloseStream(bool bWaitForBuffers)
|
||||
@@ -442,11 +444,11 @@
|
||||
}
|
||||
|
||||
if(bDropPacket)
|
||||
- m_stalled = false;
|
||||
+ m_stalled = m_output_stalled = false;
|
||||
|
||||
if(m_omxAudio.GetCacheTime() < 0.1 /*&& min(99,m_messageQueue.GetLevel() + MathUtils::round_int(100.0/8.0*GetCacheTime())) > 10*/)
|
||||
{
|
||||
- m_stalled = true;
|
||||
+ m_stalled = m_output_stalled = true;
|
||||
if(!m_av_clock->OMXAudioBuffer() && m_av_clock->HasVideo() && m_speed == DVD_PLAYSPEED_NORMAL)
|
||||
{
|
||||
clock_gettime(CLOCK_REALTIME, &m_starttime);
|
||||
@@ -454,6 +456,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ if (m_stalled && m_omxAudio.GetCacheTime() > 0.0)
|
||||
+ m_stalled = false;
|
||||
+
|
||||
// signal to our parent that we have initialized
|
||||
if(m_started == false)
|
||||
{
|
||||
@@ -478,6 +483,7 @@
|
||||
|
||||
if (ret == MSGQ_TIMEOUT)
|
||||
{
|
||||
+ m_stalled = true;
|
||||
Sleep(10);
|
||||
continue;
|
||||
}
|
||||
@@ -497,12 +503,14 @@
|
||||
CLog::Log(LOGINFO, "Audio: dts:%.0f pts:%.0f size:%d (s:%d f:%d d:%d l:%d) s:%d %d/%d late:%d,%d", pPacket->dts, pPacket->pts,
|
||||
(int)pPacket->iSize, m_started, m_flush, bPacketDrop, m_stalled, m_speed, 0, 0, (int)m_omxAudio.GetAudioRenderingLatency(), (int)m_hints_current.samplerate);
|
||||
#endif
|
||||
+
|
||||
+ m_stalled = false;
|
||||
if(Decode(pPacket, m_speed > DVD_PLAYSPEED_NORMAL || m_speed < 0 || bPacketDrop))
|
||||
{
|
||||
- if (m_stalled && (m_omxAudio.GetCacheTime() > (AUDIO_BUFFER_SECONDS * 0.75f)))
|
||||
+ if (m_output_stalled && (m_omxAudio.GetCacheTime() > (AUDIO_BUFFER_SECONDS * 0.75f)))
|
||||
{
|
||||
CLog::Log(LOGINFO, "COMXPlayerAudio - Switching to normal playback");
|
||||
- m_stalled = false;
|
||||
+ m_stalled = m_output_stalled = false;
|
||||
if(m_av_clock->HasVideo() && m_av_clock->OMXAudioBuffer())
|
||||
m_av_clock->OMXAudioBufferStop();
|
||||
}
|
||||
@@ -510,9 +518,9 @@
|
||||
// hard unlock audio out buffering
|
||||
clock_gettime(CLOCK_REALTIME, &m_endtime);
|
||||
//int iLevel = min(99,m_messageQueue.GetLevel() + MathUtils::round_int(100.0/8.0*GetCacheTime()));
|
||||
- if(/*iLevel < 10 &&*/ m_stalled && m_av_clock->OMXAudioBuffer() && (m_endtime.tv_sec - m_starttime.tv_sec) > 1)
|
||||
+ if(/*iLevel < 10 &&*/ m_output_stalled && m_av_clock->OMXAudioBuffer() && (m_endtime.tv_sec - m_starttime.tv_sec) > 1)
|
||||
{
|
||||
- m_stalled = false;
|
||||
+ m_stalled = m_output_stalled = false;
|
||||
if(m_av_clock->HasVideo() && m_av_clock->OMXAudioBuffer())
|
||||
m_av_clock->OMXAudioBufferStop();
|
||||
}
|
||||
@@ -563,6 +571,7 @@
|
||||
m_av_clock->UnLock();
|
||||
m_syncclock = true;
|
||||
m_stalled = true;
|
||||
+ m_output_stalled = true;
|
||||
m_started = false;
|
||||
|
||||
if (m_pAudioCodec)
|
||||
diff -Naur xbmc-12.1/xbmc/cores/omxplayer/OMXPlayerAudio.h xbmc-12.1.patch/xbmc/cores/omxplayer/OMXPlayerAudio.h
|
||||
--- xbmc-12.1/xbmc/cores/omxplayer/OMXPlayerAudio.h 2013-04-07 22:10:57.262461708 +0200
|
||||
+++ xbmc-12.1.patch/xbmc/cores/omxplayer/OMXPlayerAudio.h 2013-04-07 22:13:15.931280700 +0200
|
||||
@@ -76,6 +76,7 @@
|
||||
|
||||
bool m_stalled;
|
||||
bool m_started;
|
||||
+ bool m_output_stalled;
|
||||
|
||||
BitstreamStats m_audioStats;
|
||||
|
||||
69
packages/mediacenter/xbmc/patches/12.2.0/xbmc-995.04-OMXPlayer-some_caching_fixes_for_pvr.patch
vendored
Normal file
69
packages/mediacenter/xbmc/patches/12.2.0/xbmc-995.04-OMXPlayer-some_caching_fixes_for_pvr.patch
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
From eacf9a512d118e50a9777ae05460a2a344a408e6 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Thu, 28 Mar 2013 15:18:53 +0100
|
||||
Subject: [PATCH] OMXPlayer: some caching fixes for pvr
|
||||
|
||||
---
|
||||
xbmc/cores/omxplayer/OMXPlayer.cpp | 13 +++++++------
|
||||
1 file changed, 7 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp
|
||||
index 28addd3..34f3acb 100644
|
||||
--- a/xbmc/cores/omxplayer/OMXPlayer.cpp
|
||||
+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp
|
||||
@@ -1243,13 +1243,13 @@ void COMXPlayer::Process()
|
||||
if (!IsValidStream(m_CurrentAudio) && m_player_audio.IsStalled()) CloseAudioStream(true);
|
||||
if (!IsValidStream(m_CurrentVideo) && m_player_video.IsStalled()) CloseVideoStream(true);
|
||||
if (!IsValidStream(m_CurrentSubtitle) && m_player_subtitle.IsStalled()) CloseSubtitleStream(true);
|
||||
- if (!IsValidStream(m_CurrentTeletext)) CloseTeletextStream(true);
|
||||
+// if (!IsValidStream(m_CurrentTeletext)) CloseTeletextStream(true);
|
||||
|
||||
// see if we can find something better to play
|
||||
if (IsBetterStream(m_CurrentAudio, pStream)) OpenAudioStream (pStream->iId, pStream->source);
|
||||
if (IsBetterStream(m_CurrentVideo, pStream)) OpenVideoStream (pStream->iId, pStream->source);
|
||||
if (IsBetterStream(m_CurrentSubtitle, pStream)) OpenSubtitleStream(pStream->iId, pStream->source);
|
||||
- if (IsBetterStream(m_CurrentTeletext, pStream)) OpenTeletextStream(pStream->iId, pStream->source);
|
||||
+// if (IsBetterStream(m_CurrentTeletext, pStream)) OpenTeletextStream(pStream->iId, pStream->source);
|
||||
|
||||
if(m_change_volume)
|
||||
{
|
||||
@@ -2233,7 +2233,8 @@ void COMXPlayer::HandleMessages()
|
||||
// 1. disable audio
|
||||
// 2. skip frames and adjust their pts or the clock
|
||||
m_playSpeed = speed;
|
||||
- m_caching = CACHESTATE_DONE;
|
||||
+ if (m_caching != CACHESTATE_PVR && m_playSpeed != DVD_PLAYSPEED_NORMAL)
|
||||
+ SetCaching(CACHESTATE_DONE);
|
||||
m_av_clock.SetSpeed(speed);
|
||||
m_av_clock.OMXSetSpeed(speed);
|
||||
m_player_audio.SetSpeed(speed);
|
||||
@@ -3106,7 +3107,7 @@ bool COMXPlayer::CloseAudioStream(bool bWaitForBuffers)
|
||||
|
||||
CLog::Log(LOGNOTICE, "Closing audio stream");
|
||||
|
||||
- if(bWaitForBuffers)
|
||||
+ if(bWaitForBuffers && m_caching != CACHESTATE_PVR)
|
||||
SetCaching(CACHESTATE_DONE);
|
||||
|
||||
m_player_audio.CloseStream(bWaitForBuffers);
|
||||
@@ -3122,7 +3123,7 @@ bool COMXPlayer::CloseVideoStream(bool bWaitForBuffers)
|
||||
|
||||
CLog::Log(LOGNOTICE, "Closing video stream");
|
||||
|
||||
- if(bWaitForBuffers)
|
||||
+ if(bWaitForBuffers && m_caching != CACHESTATE_PVR)
|
||||
SetCaching(CACHESTATE_DONE);
|
||||
|
||||
m_player_video.CloseStream(bWaitForBuffers);
|
||||
@@ -3151,7 +3152,7 @@ bool COMXPlayer::CloseTeletextStream(bool bWaitForBuffers)
|
||||
|
||||
CLog::Log(LOGNOTICE, "Closing teletext stream");
|
||||
|
||||
- if(bWaitForBuffers)
|
||||
+ if(bWaitForBuffers && m_caching != CACHESTATE_PVR)
|
||||
SetCaching(CACHESTATE_DONE);
|
||||
|
||||
m_player_teletext.CloseStream(bWaitForBuffers);
|
||||
--
|
||||
1.8.1.5
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
From 5016973c68567e0691c9dc6c14d78de9e7d4558c Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Fri, 25 Jan 2013 23:00:13 +0000
|
||||
Subject: [PATCH] [rbp] Add support for new video codecs Latest firmware has a
|
||||
start_x.elf with support for additional codecs. These are
|
||||
MJPEG, VP6, VP8 and Ogg Theora. They are software GPU
|
||||
accelerated and should be good for SD resolutions. This
|
||||
update should be harmless with firmware that doesn't
|
||||
support the new codecs - they will fail to open and behave
|
||||
as before.
|
||||
|
||||
---
|
||||
xbmc/cores/omxplayer/OMXVideo.cpp | 33 +++++++++++++++++++++++++++++++++
|
||||
1 file changed, 33 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp
|
||||
index 9215fd9..45e10fe 100644
|
||||
--- a/xbmc/cores/omxplayer/OMXVideo.cpp
|
||||
+++ b/xbmc/cores/omxplayer/OMXVideo.cpp
|
||||
@@ -69,7 +69,10 @@
|
||||
#define OMX_MPEG2V_DECODER OMX_VIDEO_DECODER
|
||||
#define OMX_VC1_DECODER OMX_VIDEO_DECODER
|
||||
#define OMX_WMV3_DECODER OMX_VIDEO_DECODER
|
||||
+#define OMX_VP6_DECODER OMX_VIDEO_DECODER
|
||||
#define OMX_VP8_DECODER OMX_VIDEO_DECODER
|
||||
+#define OMX_THEORA_DECODER OMX_VIDEO_DECODER
|
||||
+#define OMX_MJPEG_DECODER OMX_VIDEO_DECODER
|
||||
|
||||
#define MAX_TEXT_LENGTH 1024
|
||||
|
||||
@@ -145,6 +148,7 @@ bool COMXVideo::NaluFormatStartCodes(enum CodecID codec, uint8_t *in_extradata,
|
||||
|
||||
bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, bool hdmi_clock_sync)
|
||||
{
|
||||
+ bool vflip = false;
|
||||
Close();
|
||||
|
||||
OMX_ERRORTYPE omx_err = OMX_ErrorNone;
|
||||
@@ -248,6 +252,18 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b
|
||||
m_codingType = OMX_VIDEO_CodingMPEG4;
|
||||
m_video_codec_name = "omx-h263";
|
||||
break;
|
||||
+ case CODEC_ID_VP6:
|
||||
+ // this form is encoded upside down
|
||||
+ vflip = true;
|
||||
+ // fall through
|
||||
+ case CODEC_ID_VP6F:
|
||||
+ case CODEC_ID_VP6A:
|
||||
+ // (role name) video_decoder.vp6
|
||||
+ // VP6
|
||||
+ decoder_name = OMX_VP6_DECODER;
|
||||
+ m_codingType = OMX_VIDEO_CodingVP6;
|
||||
+ m_video_codec_name = "omx-vp6";
|
||||
+ break;
|
||||
case CODEC_ID_VP8:
|
||||
// (role name) video_decoder.vp8
|
||||
// VP8
|
||||
@@ -255,6 +271,21 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b
|
||||
m_codingType = OMX_VIDEO_CodingVP8;
|
||||
m_video_codec_name = "omx-vp8";
|
||||
break;
|
||||
+ case CODEC_ID_THEORA:
|
||||
+ // (role name) video_decoder.theora
|
||||
+ // theora
|
||||
+ decoder_name = OMX_THEORA_DECODER;
|
||||
+ m_codingType = OMX_VIDEO_CodingTheora;
|
||||
+ m_video_codec_name = "omx-theora";
|
||||
+ break;
|
||||
+ case CODEC_ID_MJPEG:
|
||||
+ case CODEC_ID_MJPEGB:
|
||||
+ // (role name) video_decoder.mjpg
|
||||
+ // mjpg
|
||||
+ decoder_name = OMX_MJPEG_DECODER;
|
||||
+ m_codingType = OMX_VIDEO_CodingMJPEG;
|
||||
+ m_video_codec_name = "omx-mjpeg";
|
||||
+ break;
|
||||
case CODEC_ID_VC1:
|
||||
case CODEC_ID_WMV3:
|
||||
// (role name) video_decoder.vc1
|
||||
@@ -594,6 +625,8 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b
|
||||
configDisplay.transform = OMX_DISPLAY_ROT0;
|
||||
break;
|
||||
}
|
||||
+ if (vflip)
|
||||
+ configDisplay.transform = OMX_DISPLAY_MIRROR_ROT180;
|
||||
|
||||
omx_err = m_omx_render.SetConfig(OMX_IndexConfigDisplayRegion, &configDisplay);
|
||||
if(omx_err != OMX_ErrorNone)
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From 2c915ea56abd68cf2310eb9d01936d19a2f118ab Mon Sep 17 00:00:00 2001
|
||||
From: davilla <davilla@4pi.com>
|
||||
Date: Tue, 19 Mar 2013 13:41:53 -0400
|
||||
Subject: [PATCH] changed, assert(0) is nasty, this could just be a bad audio
|
||||
packet
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
|
||||
index 03ba5ea..e075cd6 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
|
||||
@@ -284,7 +284,7 @@ int CDVDPlayerAudio::DecodeFrame(DVDAudioFrame &audioframe, bool bDropPacket)
|
||||
CLog::Log(LOGERROR, "CDVDPlayerAudio:DecodeFrame - Codec tried to consume more data than available. Potential memory corruption");
|
||||
m_decode.Release();
|
||||
m_pAudioCodec->Reset();
|
||||
- assert(0);
|
||||
+ return DECODE_FLAG_ERROR;
|
||||
}
|
||||
|
||||
m_decode.data += len;
|
||||
--
|
||||
1.8.1.5
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From befdcfad8d2b14c9d935c3662a56853d617f884d Mon Sep 17 00:00:00 2001
|
||||
From: Voyager1 <voyager@xbmc.org>
|
||||
Date: Sat, 23 Mar 2013 07:19:46 +0100
|
||||
Subject: [PATCH] [dvdplayer] fix deadlock when trying to go to disc menu
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp
|
||||
index 3d2ca03..22c89dc 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDPlayer.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp
|
||||
@@ -3511,7 +3511,7 @@ bool CDVDPlayer::OnAction(const CAction &action)
|
||||
pMenus->OnMenu();
|
||||
// send a message to everyone that we've gone to the menu
|
||||
CGUIMessage msg(GUI_MSG_VIDEO_MENU_STARTED, 0, 0);
|
||||
- g_windowManager.SendMessage(msg);
|
||||
+ g_windowManager.SendThreadMessage(msg);
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
--
|
||||
1.8.1.5
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
--- xbmc-12.0.3/configure.in.orig 2013-03-01 13:21:58.791312360 +0100
|
||||
+++ xbmc-12.0.3/configure.in 2013-03-01 13:38:41.138311757 +0100
|
||||
@@ -990,9 +990,15 @@
|
||||
AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
|
||||
if echo "$ARCH" | grep -q freebsd; then
|
||||
AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
|
||||
+AC_CHECK_LIB([pthread], [pthread_set_name_np],
|
||||
+ AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
|
||||
+ AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
|
||||
else
|
||||
if test "$target_platform" != "target_android" ; then
|
||||
AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
|
||||
+ AC_CHECK_LIB([pthread], [pthread_setname_np],
|
||||
+ AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
|
||||
+ AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
|
||||
fi
|
||||
fi
|
||||
AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
|
||||
--- xbmc-12.0.3/xbmc/threads/platform/pthreads/ThreadImpl.cpp.orig 2013-03-01 14:40:50.080309513 +0100
|
||||
+++ xbmc-12.0.3/xbmc/threads/platform/pthreads/ThreadImpl.cpp 2013-03-01 14:40:20.548309531 +0100
|
||||
@@ -18,6 +18,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#if (defined HAVE_CONFIG_H) && (!defined WIN32)
|
||||
+ #include "config.h"
|
||||
+#endif
|
||||
#include <limits.h>
|
||||
#if defined(TARGET_ANDROID)
|
||||
#include <unistd.h>
|
||||
@@ -71,10 +74,16 @@
|
||||
m_ThreadOpaque.LwpId = syscall(SYS_gettid);
|
||||
#endif
|
||||
|
||||
+#if defined(HAVE_PTHREAD_SETNAME_NP)
|
||||
#ifdef TARGET_DARWIN
|
||||
#if(__MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 || __IPHONE_OS_VERSION_MIN_REQUIRED >= 30200)
|
||||
pthread_setname_np(m_ThreadName.c_str());
|
||||
#endif
|
||||
+#else
|
||||
+ pthread_setname_np(m_ThreadId, m_ThreadName.c_str());
|
||||
+#endif
|
||||
+#elif defined(HAVE_PTHREAD_SET_NAME_NP)
|
||||
+ pthread_set_name_np(m_ThreadId, m_ThreadName.c_str());
|
||||
#endif
|
||||
|
||||
#ifdef RLIMIT_NICE
|
||||
@@ -1,144 +0,0 @@
|
||||
From f2faaa846e03cbcc1ba11f09baad690c792035c5 Mon Sep 17 00:00:00 2001
|
||||
From: fritsch <Peter.Fruehberger@gmail.com>
|
||||
Date: Thu, 28 Feb 2013 00:17:03 +0100
|
||||
Subject: [PATCH] AE: Revisit Device Opening. Try to set periodSize of 100 ms
|
||||
and BufferSize of 800 ms
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 98 ++++++++++++++++-----------
|
||||
1 file changed, 59 insertions(+), 39 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
index fe40d17..821bd2e 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
@@ -38,7 +38,6 @@
|
||||
#endif
|
||||
|
||||
#define ALSA_OPTIONS (SND_PCM_NONBLOCK | SND_PCM_NO_AUTO_FORMAT | SND_PCM_NO_AUTO_CHANNELS | SND_PCM_NO_AUTO_RESAMPLE)
|
||||
-#define ALSA_PERIODS 16
|
||||
|
||||
#define ALSA_MAX_CHANNELS 16
|
||||
static enum AEChannel ALSAChannelMap[ALSA_MAX_CHANNELS + 1] = {
|
||||
@@ -328,59 +327,80 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format)
|
||||
}
|
||||
}
|
||||
|
||||
- unsigned int periods;
|
||||
-
|
||||
snd_pcm_uframes_t periodSize, bufferSize;
|
||||
snd_pcm_hw_params_get_buffer_size_max(hw_params, &bufferSize);
|
||||
+ snd_pcm_hw_params_get_period_size_max(hw_params, &periodSize, NULL);
|
||||
+
|
||||
+ /*
|
||||
+ We want to make sure, that we have approx 500 to 800 ms Buffer with
|
||||
+ a periodSize of approx 100 ms.
|
||||
+ It is calced:
|
||||
+ periodSize = sampleRate / 10
|
||||
+ buffersize = periodSize * 1 frame * 8.
|
||||
+ */
|
||||
+ periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 10);
|
||||
+ bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 8);
|
||||
+
|
||||
+ /*
|
||||
+ According to upstream we should set buffer size first - so make sure it is always at least
|
||||
+ double of period size to not get underruns
|
||||
+ */
|
||||
+ periodSize = std::min(periodSize, bufferSize / 2);
|
||||
|
||||
- bufferSize = std::min(bufferSize, (snd_pcm_uframes_t)8192);
|
||||
- periodSize = bufferSize / ALSA_PERIODS;
|
||||
- periods = ALSA_PERIODS;
|
||||
-
|
||||
- CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, periods %u, bufferSize %lu", periodSize, periods, bufferSize);
|
||||
+ CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, bufferSize %lu", periodSize, bufferSize);
|
||||
|
||||
- /* work on a copy of the hw params */
|
||||
snd_pcm_hw_params_t *hw_params_copy;
|
||||
snd_pcm_hw_params_alloca(&hw_params_copy);
|
||||
-
|
||||
- /* try to set the buffer size then the period size */
|
||||
- snd_pcm_hw_params_copy(hw_params_copy, hw_params);
|
||||
- snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize);
|
||||
- snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL);
|
||||
- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL);
|
||||
- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
|
||||
+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // copy what we have and is already working
|
||||
+
|
||||
+ // first trying bufferSize, PeriodSize
|
||||
+ // for more info see here:
|
||||
+ // http://mailman.alsa-project.org/pipermail/alsa-devel/2009-September/021069.html
|
||||
+ // the last three tries are done as within pulseaudio
|
||||
+
|
||||
+ // backup periodSize and bufferSize first. Restore them after every failed try
|
||||
+ snd_pcm_uframes_t periodSizeTemp, bufferSizeTemp;
|
||||
+ periodSizeTemp = periodSize;
|
||||
+ bufferSizeTemp = bufferSize;
|
||||
+ if (snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize) != 0
|
||||
+ || snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL) != 0
|
||||
+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
|
||||
{
|
||||
- /* try to set the period size then the buffer size */
|
||||
- snd_pcm_hw_params_copy(hw_params_copy, hw_params);
|
||||
- snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL);
|
||||
- snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize);
|
||||
- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL);
|
||||
- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
|
||||
+ bufferSize = bufferSizeTemp;
|
||||
+ periodSize = periodSizeTemp;
|
||||
+ // retry with PeriodSize, bufferSize
|
||||
+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // restore working copy
|
||||
+ if (snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL) != 0
|
||||
+ || snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize) != 0
|
||||
+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
|
||||
{
|
||||
- /* try to just set the buffer size */
|
||||
- snd_pcm_hw_params_copy(hw_params_copy, hw_params);
|
||||
- snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize);
|
||||
- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL);
|
||||
- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
|
||||
+ // try only periodSize
|
||||
+ periodSize = periodSizeTemp;
|
||||
+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // restore working copy
|
||||
+ if(snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL) != 0
|
||||
+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
|
||||
{
|
||||
- /* try to just set the period size */
|
||||
- snd_pcm_hw_params_copy(hw_params_copy, hw_params);
|
||||
- snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL);
|
||||
- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL);
|
||||
- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
|
||||
+ // try only BufferSize
|
||||
+ bufferSize = bufferSizeTemp;
|
||||
+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // restory working copy
|
||||
+ if (snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize) != 0
|
||||
+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
|
||||
{
|
||||
- CLog::Log(LOGERROR, "CAESinkALSA::InitializeHW - Failed to set the parameters");
|
||||
- return false;
|
||||
+ // set default that Alsa would choose
|
||||
+ CLog::Log(LOGWARNING, "CAESinkAlsa::IntializeHW - Using default alsa values - set failed");
|
||||
+ if (snd_pcm_hw_params(m_pcm, hw_params) != 0)
|
||||
+ {
|
||||
+ CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Could not init a valid sink");
|
||||
+ return false;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
+ // reread values when alsa default was kept
|
||||
+ snd_pcm_get_params(m_pcm, &bufferSize, &periodSize);
|
||||
}
|
||||
}
|
||||
-
|
||||
- snd_pcm_hw_params_get_period_size(hw_params_copy, &periodSize, NULL);
|
||||
- snd_pcm_hw_params_get_buffer_size(hw_params_copy, &bufferSize);
|
||||
|
||||
-
|
||||
- CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Got: periodSize %lu, periods %u, bufferSize %lu", periodSize, periods, bufferSize);
|
||||
+ CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Got: periodSize %lu, bufferSize %lu", periodSize, bufferSize);
|
||||
|
||||
/* set the format parameters */
|
||||
format.m_sampleRate = sampleRate;
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
From e1374217a66d1324f3482f6567448f0bc7ef2946 Mon Sep 17 00:00:00 2001
|
||||
From: spiff <spiff@xbmc.org>
|
||||
Date: Thu, 21 Mar 2013 14:40:52 +0100
|
||||
Subject: [PATCH] fixed: prevent infinite loop in add-on dependency checks
|
||||
|
||||
---
|
||||
xbmc/addons/AddonInstaller.cpp | 21 ++++++++++++++-------
|
||||
xbmc/addons/AddonInstaller.h | 10 ++++++++++
|
||||
2 files changed, 24 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp
|
||||
index b5ba7a0..3e655bb 100644
|
||||
--- a/xbmc/addons/AddonInstaller.cpp
|
||||
+++ b/xbmc/addons/AddonInstaller.cpp
|
||||
@@ -313,6 +313,14 @@ void CAddonInstaller::InstallFromXBMCRepo(const set<CStdString> &addonIDs)
|
||||
|
||||
bool CAddonInstaller::CheckDependencies(const AddonPtr &addon)
|
||||
{
|
||||
+ std::vector<std::string> preDeps;
|
||||
+ preDeps.push_back(addon->ID());
|
||||
+ return CheckDependencies(addon, preDeps);
|
||||
+}
|
||||
+
|
||||
+bool CAddonInstaller::CheckDependencies(const AddonPtr &addon,
|
||||
+ std::vector<std::string>& preDeps)
|
||||
+{
|
||||
if (!addon.get())
|
||||
return true; // a NULL addon has no dependencies
|
||||
ADDONDEPS deps = addon->GetDeps();
|
||||
@@ -333,16 +341,15 @@ bool CAddonInstaller::CheckDependencies(const AddonPtr &addon)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
- // prevent infinite loops
|
||||
- if (dep && dep->ID() == addon->ID())
|
||||
- {
|
||||
- CLog::Log(LOGERROR, "Addon %s depends on itself, ignoring", addon->ID().c_str());
|
||||
- return false;
|
||||
- }
|
||||
// at this point we have our dep, or the dep is optional (and we don't have it) so check that it's OK as well
|
||||
// TODO: should we assume that installed deps are OK?
|
||||
- if (dep && !CheckDependencies(dep))
|
||||
+ if (dep &&
|
||||
+ std::find(preDeps.begin(), preDeps.end(), dep->ID()) == preDeps.end() &&
|
||||
+ !CheckDependencies(dep, preDeps))
|
||||
+ {
|
||||
return false;
|
||||
+ }
|
||||
+ preDeps.push_back(dep->ID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
diff --git a/xbmc/addons/AddonInstaller.h b/xbmc/addons/AddonInstaller.h
|
||||
index b0ff2bd..5df69fb 100644
|
||||
--- a/xbmc/addons/AddonInstaller.h
|
||||
+++ b/xbmc/addons/AddonInstaller.h
|
||||
@@ -122,6 +122,16 @@ class CAddonInstaller : public IJobCallback
|
||||
*/
|
||||
bool DoInstall(const ADDON::AddonPtr &addon, const CStdString &hash = "", bool update = false, const CStdString &referer = "", bool background = true);
|
||||
|
||||
+ /*! \brief Check whether dependencies of an addon exist or are installable.
|
||||
+ Iterates through the addon's dependencies, checking they're installed or installable.
|
||||
+ Each dependency must also satisfies CheckDependencies in turn.
|
||||
+ \param addon the addon to check
|
||||
+ \param preDeps previous dependencies encountered during recursion. aids in avoiding infinite recursion
|
||||
+ \return true if dependencies are available, false otherwise.
|
||||
+ */
|
||||
+ bool CheckDependencies(const ADDON::AddonPtr &addon,
|
||||
+ std::vector<std::string>& preDeps);
|
||||
+
|
||||
void PrunePackageCache();
|
||||
int64_t EnumeratePackageFolder(std::map<CStdString,CFileItemList*>& result);
|
||||
|
||||
--
|
||||
1.8.1.5
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
From b5458130ba00c15ef468d6180a21994bff3daf42 Mon Sep 17 00:00:00 2001
|
||||
From: Voyager1 <voyager@xbmc.org>
|
||||
Date: Sat, 23 Mar 2013 07:32:09 +0100
|
||||
Subject: [PATCH] fixed: addoninstaller unguarded null pointer after
|
||||
b0825b1a212849e52fca27409ea87e81591f7cf4
|
||||
|
||||
---
|
||||
xbmc/addons/AddonInstaller.cpp | 11 ++++++-----
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp
|
||||
index 3e655bb..276467a 100644
|
||||
--- a/xbmc/addons/AddonInstaller.cpp
|
||||
+++ b/xbmc/addons/AddonInstaller.cpp
|
||||
@@ -343,13 +343,14 @@ bool CAddonInstaller::CheckDependencies(const AddonPtr &addon,
|
||||
}
|
||||
// at this point we have our dep, or the dep is optional (and we don't have it) so check that it's OK as well
|
||||
// TODO: should we assume that installed deps are OK?
|
||||
- if (dep &&
|
||||
- std::find(preDeps.begin(), preDeps.end(), dep->ID()) == preDeps.end() &&
|
||||
- !CheckDependencies(dep, preDeps))
|
||||
+ if (dep)
|
||||
{
|
||||
- return false;
|
||||
+ if (std::find(preDeps.begin(), preDeps.end(), dep->ID()) == preDeps.end() &&
|
||||
+ !CheckDependencies(dep, preDeps))
|
||||
+ return false;
|
||||
+ else
|
||||
+ preDeps.push_back(dep->ID());
|
||||
}
|
||||
- preDeps.push_back(dep->ID());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
--
|
||||
1.8.1.5
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
From cc39b66b38657787e99bf6369a77c993cd601c23 Mon Sep 17 00:00:00 2001
|
||||
From: ulion <ulion2002@gmail.com>
|
||||
Date: Sun, 24 Mar 2013 08:05:04 +0800
|
||||
Subject: [PATCH] Only add to preDeps when it's not in there.
|
||||
|
||||
---
|
||||
xbmc/addons/AddonInstaller.cpp | 8 +++-----
|
||||
1 file changed, 3 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp
|
||||
index 276467a..631a01c 100644
|
||||
--- a/xbmc/addons/AddonInstaller.cpp
|
||||
+++ b/xbmc/addons/AddonInstaller.cpp
|
||||
@@ -343,13 +343,11 @@ bool CAddonInstaller::CheckDependencies(const AddonPtr &addon,
|
||||
}
|
||||
// at this point we have our dep, or the dep is optional (and we don't have it) so check that it's OK as well
|
||||
// TODO: should we assume that installed deps are OK?
|
||||
- if (dep)
|
||||
+ if (dep && std::find(preDeps.begin(), preDeps.end(), dep->ID()) == preDeps.end())
|
||||
{
|
||||
- if (std::find(preDeps.begin(), preDeps.end(), dep->ID()) == preDeps.end() &&
|
||||
- !CheckDependencies(dep, preDeps))
|
||||
+ if (!CheckDependencies(dep, preDeps))
|
||||
return false;
|
||||
- else
|
||||
- preDeps.push_back(dep->ID());
|
||||
+ preDeps.push_back(dep->ID());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
--
|
||||
1.8.1.5
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
From eb4ae32119a83716d7fb930381d2848c02383cea Mon Sep 17 00:00:00 2001
|
||||
From: fritsch <peter.fruehberger@gmail.com>
|
||||
Date: Wed, 6 Mar 2013 07:52:59 +0100
|
||||
Subject: [PATCH] AE: Fix menu sounds by decreasing buffer(max 200 ms) and
|
||||
periodSize(50 ms)
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 19 ++++++++++---------
|
||||
1 file changed, 10 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
index 821bd2e..21891a5 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
@@ -332,18 +332,19 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format)
|
||||
snd_pcm_hw_params_get_period_size_max(hw_params, &periodSize, NULL);
|
||||
|
||||
/*
|
||||
- We want to make sure, that we have approx 500 to 800 ms Buffer with
|
||||
- a periodSize of approx 100 ms.
|
||||
- It is calced:
|
||||
- periodSize = sampleRate / 10
|
||||
- buffersize = periodSize * 1 frame * 8.
|
||||
+ We want to make sure, that we have max 200 ms Buffer with
|
||||
+ a periodSize of approx 50 ms. Choosing a higher bufferSize
|
||||
+ will cause problems with menu sounds. Buffer will be increased
|
||||
+ after those are fixed.
|
||||
+ periodSize = sampleRate / 20
|
||||
+ bufferSize = periodSize * 1 frame * 4.
|
||||
*/
|
||||
- periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 10);
|
||||
- bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 8);
|
||||
+ periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 20);
|
||||
+ bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 4);
|
||||
|
||||
/*
|
||||
- According to upstream we should set buffer size first - so make sure it is always at least
|
||||
- double of period size to not get underruns
|
||||
+ According to upstream we should set buffer size first - so make sure it is always at least
|
||||
+ double of period size to not get underruns
|
||||
*/
|
||||
periodSize = std::min(periodSize, bufferSize / 2);
|
||||
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
From 95ea48d4353516c59e70c962c4970da0bd511aac Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi@xbmc.org>
|
||||
Date: Mon, 11 Mar 2013 00:05:13 +0200
|
||||
Subject: [PATCH 1/2] AE: ALSA: Try to get 200ms buffer even if we did not get
|
||||
50ms periodsize
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
index 332f305..b905ada 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
@@ -340,11 +340,9 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format)
|
||||
a periodSize of approx 50 ms. Choosing a higher bufferSize
|
||||
will cause problems with menu sounds. Buffer will be increased
|
||||
after those are fixed.
|
||||
- periodSize = sampleRate / 20
|
||||
- bufferSize = periodSize * 1 frame * 4.
|
||||
*/
|
||||
periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 20);
|
||||
- bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 4);
|
||||
+ bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) sampleRate / 5);
|
||||
|
||||
/*
|
||||
According to upstream we should set buffer size first - so make sure it is always at least
|
||||
--
|
||||
1.7.10
|
||||
|
||||
|
||||
From 39f2487881b6fa2d52c58f7b2452420efc711cd5 Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi@xbmc.org>
|
||||
Date: Mon, 11 Mar 2013 00:12:54 +0200
|
||||
Subject: [PATCH 2/2] AE: ALSA: Try to get a minimum of 4 periods per buffer
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
index b905ada..94f6b80 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
@@ -346,9 +346,9 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format)
|
||||
|
||||
/*
|
||||
According to upstream we should set buffer size first - so make sure it is always at least
|
||||
- double of period size to not get underruns
|
||||
+ 4x period size to not get underruns (some systems seem to have issues with only 2 periods)
|
||||
*/
|
||||
- periodSize = std::min(periodSize, bufferSize / 2);
|
||||
+ periodSize = std::min(periodSize, bufferSize / 4);
|
||||
|
||||
CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, bufferSize %lu", periodSize, bufferSize);
|
||||
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
From 907f5086e76b0b6d0211c9bbd9da6c6fb54e891b Mon Sep 17 00:00:00 2001
|
||||
From: Juan Font <juanfontalonso@gmail.com>
|
||||
Date: Wed, 6 Mar 2013 09:50:15 +0100
|
||||
Subject: [PATCH 1/2] Avoid fps detection when probing the format if we will
|
||||
trust codec fps during playback.
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
||||
index 7d4e35b..4b62d75 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
||||
@@ -425,6 +425,9 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput)
|
||||
|
||||
// set the interrupt callback, appeared in libavformat 53.15.0
|
||||
m_pFormatContext->interrupt_callback = int_cb;
|
||||
+
|
||||
+ // Avoid detecting framerate if advancedsettings.xml says so
|
||||
+ m_pFormatContext->fps_probe_size = (!g_advancedSettings.m_videoFpsDetect) ? 0 : -1;
|
||||
|
||||
// analyse very short to speed up mjpeg playback start
|
||||
if (iformat && (strcmp(iformat->name, "mjpeg") == 0) && m_ioContext->seekable == 0)
|
||||
--
|
||||
1.7.10
|
||||
|
||||
|
||||
From e2966a346140fcd7a9742f17bfd7710bffbe1066 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Font <juanfontalonso@gmail.com>
|
||||
Date: Wed, 6 Mar 2013 10:33:32 +0100
|
||||
Subject: [PATCH 2/2] Improved code legibility.
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
||||
index 4b62d75..e84290d 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
|
||||
@@ -427,7 +427,7 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput)
|
||||
m_pFormatContext->interrupt_callback = int_cb;
|
||||
|
||||
// Avoid detecting framerate if advancedsettings.xml says so
|
||||
- m_pFormatContext->fps_probe_size = (!g_advancedSettings.m_videoFpsDetect) ? 0 : -1;
|
||||
+ m_pFormatContext->fps_probe_size = (g_advancedSettings.m_videoFpsDetect == 0) ? 0 : -1;
|
||||
|
||||
// analyse very short to speed up mjpeg playback start
|
||||
if (iformat && (strcmp(iformat->name, "mjpeg") == 0) && m_ioContext->seekable == 0)
|
||||
--
|
||||
1.7.10
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp 2013-03-28 00:07:58.432987577 +0100
|
||||
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp 2013-03-28 00:08:29.226987558 +0100
|
||||
@@ -440,7 +440,7 @@
|
||||
if (streaminfo)
|
||||
{
|
||||
/* too speed up dvd switches, only analyse very short */
|
||||
- if(m_pInput->IsStreamType(DVDSTREAM_TYPE_DVD))
|
||||
+ if(m_pInput->IsStreamType(DVDSTREAM_TYPE_DVD) || m_pInput->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER))
|
||||
m_pFormatContext->max_analyze_duration = 500000;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user