Compare commits

...

65 Commits

Author SHA1 Message Date
Stephan Raue
00c2004d1a config/version: set version to 4.0.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-13 23:35:21 +02:00
Stephan Raue
e486a19f89 projects/RPi/patches/linux: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-13 23:05:41 +02:00
Stephan Raue
2b8b7cdee3 linux: update to linux-3.14.4
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-13 18:59:02 +02:00
Stephan Raue
385b41cad1 projects/Cuboxi/linux: add PWM, PWM-IMX and PWM-LED support
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-13 02:16:56 +02:00
Stephan Raue
0edc046f1b bcm2835-bootloader: update to bcm2835-bootloader-c0319ac
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-13 02:16:56 +02:00
Stephan Raue
5c2342f64b bcm2835-driver: update to bcm2835-driver-c0319ac
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-13 02:16:55 +02:00
Stephan Raue
77514cb8a3 projects/RPi/patches/linux: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-13 02:16:55 +02:00
Stephan Raue
549bc75e1c Mesa: add upstream patches to enable geometry shaders with LLVM-3.4.1 on radeonsi
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-12 18:29:00 +02:00
Stephan Raue
2d45ef07de llvm: update to llvm-3.4.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-12 18:29:00 +02:00
Stephan Raue
866c635d44 projects/RPi/patches/xbmc: update RPi patch, this should fix #3181, this should fix #2981
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-12 18:29:00 +02:00
Stephan Raue
671f55afef xbmc: update to xbmc-13-692cfba
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-12 18:29:00 +02:00
Christian Hewitt
f4a58d4b14 openvpn: enable management interface
This allows https://github.com/brianhornsby/script.openvpn to work as a
openvpn configuration interface. Once this has been road-tested we can
remove currently-broken openvpn support from connman and OE settings.
2014-05-11 11:48:53 +02:00
Stephan Raue
25bf0a9381 Mesa: update to Mesa-10.1.3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-10 11:03:51 +02:00
Stephan Raue
cdb75b0e83 dvb-firmware: update to dvb-firmware-0.0.41
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-09 11:28:35 +02:00
Stephan Raue
da58897544 libva-driver-intel: update to libva-driver-intel-1.3.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-09 11:17:05 +02:00
Stephan Raue
b9ad07f793 libva: update to libva-1.3.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-09 11:17:05 +02:00
Stephan Raue
45d9551fa2 xf86-input-evdev: update to xf86-input-evdev-2.8.4
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-09 11:17:05 +02:00
Stefan Saraev
41e7553762 libva-driver-intel: add upstream patches 2014-05-09 11:14:59 +02:00
Stefan Saraev
59e057eed8 service.openelec.settings: update to service.openelec.settings-0.3.16 2014-05-06 22:11:51 +02:00
Stephan Raue
2e72cf036a xbmc: update to xbmc-13-16232cc
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-06 21:17:20 +02:00
Stephan Raue
c67ade7017 linux: update to linux-3.14.3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-06 21:17:20 +02:00
Stephan Raue
de7ddab5e6 Mesa: update to Mesa-10.1.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-06 21:17:20 +02:00
Stephan Raue
6efdb1e75e config/version: set version back to devel
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-06 21:17:20 +02:00
Stephan Raue
91de6a70c0 config/version: set version to 4.0.0
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-05 18:07:52 +02:00
Stephan Raue
265568da70 xbmc: add PR4653
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-05 18:07:52 +02:00
Stephan Raue
98bb6e8957 projects/RPi/linux: enable CMA support
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-05 14:53:15 +02:00
Stephan Raue
b86ee200ec xbmc: revert PR4642
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-05 14:48:11 +02:00
Stephan Raue
bdaceee408 projects/RPi/patches/linux: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-05 13:15:38 +02:00
Stephan Raue
16573216de linux: add upstream patch, this should fix #3080, thanks to Anssi Hannula
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-05 01:44:05 +02:00
Stephan Raue
e83618d39c xbmc: add PR4650
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-05 01:44:05 +02:00
Stephan Raue
b03f058f73 xbmc: add PR4649
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-05 01:44:05 +02:00
jenkins101
e4cee7c88f lircd_helper: lircd needs to start if there is a .config/lircd.conf
else we need every working remote in udev, 98-lircd.rules.
I dont think we want to maintane this. :-)

Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-04 15:06:10 +02:00
Stephan Raue
4adbf4f08e xbmc: add PR4647
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-04 14:44:27 +02:00
Stephan Raue
ffbc33a64a xbmc-pvr-addons: update to xbmc-pvr-addons-f38b2eb
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-04 14:44:26 +02:00
Stephan Raue
62c2b52a0c xbmc: update to xbmc-13-0d1d803
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-04 12:59:23 +02:00
Stephan Raue
3c0eaec162 bluez: update to bluez-5.18
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-04 12:59:23 +02:00
Stephan Raue
022ca91a6e projects/RPi/patches/linux: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-04 02:27:56 +02:00
Stephan Raue
54c9505cb4 bcm2835-bootloader: update to bcm2835-bootloader-680ac93
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-04 02:26:23 +02:00
Stephan Raue
512c595e88 bcm2835-driver: update to bcm2835-driver-680ac93
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-04 02:26:23 +02:00
Stephan Raue
b00e8011f4 projects/RPi/xbmc: update advancedsettings.xml, this fixes #3079
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-03 19:34:52 +02:00
andreasmn
89ee8cc204 init: optimized wake-on-lan script 2014-05-03 18:26:53 +02:00
Stephan Raue
a2b61f7c1c projects/RPi/patches/xbmc: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-03 17:58:46 +02:00
Stephan Raue
0a80bf3131 xbmc: add PR4642
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-03 17:58:46 +02:00
Stephan Raue
2cddc473ee xbmc: update to xbmc-13-60bd97b
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-03 17:58:46 +02:00
Stephan Raue
25c9b41d0b xbmc: add PR4641
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-03 16:19:47 +02:00
Peter Smorada
3f28eaef94 iptables - adds state and iprange moduls
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-03 12:47:51 +02:00
Stephan Raue
1dcb88e1c2 libdrm: update to libdrm-2.4.54
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-03 02:08:06 +02:00
Stephan Raue
8b85b8345d plymouth-lite: update splash, thanks to 'klojum'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-03 02:08:06 +02:00
Stephan Raue
428cddc4ea plymouth-lite: remove old splash files
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-03 02:08:06 +02:00
fritsch
ecd049c42a Linux: Revert 47f467ac740ebf0475a5176ddb1741acba6aad4e - it causes pixelation for USB tuners 2014-05-03 02:08:06 +02:00
Stefan Saraev
0fad3c88e4 libsmbclient: Wrap more function calls in talloc_stackframe() to protect against talloc_tos() calls
see https://bugzilla.samba.org/show_bug.cgi?id=8449
2014-05-02 15:34:32 +02:00
Stephan Raue
31552a2169 gettext: update to gettext-0.18.3.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-01 18:19:52 +02:00
Stephan Raue
1b89dae25d projects/*/linux: add TiVO Slide Bluetooth support
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-30 23:44:44 +02:00
Stephan Raue
5e57bf92bf xbmc: add PR4624
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-30 23:02:18 +02:00
Stephan Raue
50ecbe0b50 projects/Cuboxi/patches/linux: update to linux-3.10.38
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-30 15:36:54 +02:00
Stephan Raue
cd9c15bc2c linux: add CEC upstream fix
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-30 15:36:54 +02:00
Stephan Raue
2ec8b1bc94 linux: update CEC support patch from 74fc2e85c0
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-30 15:36:54 +02:00
Stephan Raue
998146fc2d xf86-input-evdev: update to xf86-input-evdev-2.8.3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-30 15:36:53 +02:00
jenkins101
9c02a8dd2b projects/Cuboxi: added patches from wolfgar and mk1. fixing CEC on Cuboxi 2014-04-30 15:36:53 +02:00
Stephan Raue
a29c5fba5e tools/mkpkg: move mkpkg_xbmc script to mkpkg_xbmc-gotham, add mkpkg_xbmc which checks out xbmc master
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-29 13:19:09 +02:00
Stephan Raue
93267e3e28 projects/Cuboxi/options: dont build with 'RTL8812AU' driver support
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-29 13:19:09 +02:00
Stephan Raue
cc0cae480a xbmc: add upstream patch, this fixes #3148, thanks to 'JoseAntonioRodriguez' and 'fernetmenta'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-29 13:19:09 +02:00
Stephan Raue
85721b2b0b util-linux: update to util-linux-2.24.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-29 13:19:09 +02:00
Sören Beye
e701d06a52 Fixed a typo 2014-04-29 13:17:34 +02:00
Stephan Raue
a847567948 config/version: set version back to devel
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-04-29 00:36:27 +02:00
93 changed files with 8669 additions and 6629 deletions

View File

@@ -1,5 +1,5 @@
# VERSION: set full version, use "devel" for development version
OPENELEC_VERSION="3.95.7"
OPENELEC_VERSION="4.0.1"
# OS_VERSION: OS Version
OS_VERSION="4.0"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="gettext"
PKG_VERSION="0.18.3.1"
PKG_VERSION="0.18.3.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -52,7 +52,7 @@ else
fi
if [ "$XBMCPLAYER_DRIVER" = "libfslvpuwrap" ]; then
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-imx6"
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --enable-imx6"
else
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-imx6"
fi

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="Mesa"
PKG_VERSION="10.1.1"
PKG_VERSION="10.1.3"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"

View File

@@ -0,0 +1,26 @@
diff -Naur Mesa-10.1.3/configure.ac Mesa-10.1.3.patch/configure.ac
--- Mesa-10.1.3/configure.ac 2014-05-09 16:15:36.000000000 +0200
+++ Mesa-10.1.3.patch/configure.ac 2014-05-12 11:20:15.124212119 +0200
@@ -1602,6 +1602,13 @@
AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
[#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
+
+ dnl In LLVM 3.4.1 patch level was defined in config.h and not
+ dnl llvm-config.h
+ AC_COMPUTE_INT([LLVM_VERSION_PATCH], [LLVM_VERSION_PATCH],
+ [#include "${LLVM_INCLUDEDIR}/llvm/Config/config.h"],
+ LLVM_VERSION_PATCH=0) dnl Default if LLVM_VERSION_PATCH not found
+
AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
[#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
@@ -1627,7 +1634,7 @@
LLVM_COMPONENTS="${LLVM_COMPONENTS} option"
fi
fi
- DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT"
+ DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DLLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
MESA_LLVM=1
dnl Check for Clang internal headers

View File

@@ -0,0 +1,119 @@
From 93c2ebbd83604263fa46351a7efcde382322024b Mon Sep 17 00:00:00 2001
From: Tom Stellard <thomas.stellard@amd.com>
Date: Fri, 09 May 2014 08:24:42 +0000
Subject: radeonsi: Enable geometry shaders with LLVM 3.4.1
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
CC: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
---
diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c
index e0b211f..38ad077 100644
--- a/src/gallium/drivers/radeonsi/si_descriptors.c
+++ b/src/gallium/drivers/radeonsi/si_descriptors.c
@@ -152,7 +152,7 @@ static void si_update_descriptors(struct si_context *sctx,
7 + /* copy */
(4 + desc->element_dw_size) * util_bitcount(desc->dirty_mask) + /* update */
4; /* pointer update */
-#if HAVE_LLVM >= 0x0305
+#if LLVM_SUPPORTS_GEOM_SHADERS
if (desc->shader_userdata_reg >= R_00B130_SPI_SHADER_USER_DATA_VS_0 &&
desc->shader_userdata_reg < R_00B230_SPI_SHADER_USER_DATA_GS_0)
desc->atom.num_dw += 4; /* second pointer update */
@@ -177,7 +177,7 @@ static void si_emit_shader_pointer(struct si_context *sctx,
radeon_emit(cs, va);
radeon_emit(cs, va >> 32);
-#if HAVE_LLVM >= 0x0305
+#if LLVM_SUPPORTS_GEOM_SHADERS
if (desc->shader_userdata_reg >= R_00B130_SPI_SHADER_USER_DATA_VS_0 &&
desc->shader_userdata_reg < R_00B230_SPI_SHADER_USER_DATA_GS_0) {
radeon_emit(cs, PKT3(PKT3_SET_SH_REG, 2, 0));
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index e5d0a95..07c00cf 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -225,7 +225,7 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
return 4;
case PIPE_CAP_GLSL_FEATURE_LEVEL:
- return HAVE_LLVM >= 0x0305 ? 330 : 140;
+ return (LLVM_SUPPORTS_GEOM_SHADERS) ? 330 : 140;
case PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE:
return MIN2(sscreen->b.info.vram_size, 0xFFFFFFFF);
@@ -309,7 +309,7 @@ static int si_get_shader_param(struct pipe_screen* pscreen, unsigned shader, enu
case PIPE_SHADER_VERTEX:
break;
case PIPE_SHADER_GEOMETRY:
-#if HAVE_LLVM < 0x0305
+#if !(LLVM_SUPPORTS_GEOM_SHADERS)
return 0;
#endif
break;
diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h
index 1601a4b..de42477 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.h
+++ b/src/gallium/drivers/radeonsi/si_pipe.h
@@ -39,6 +39,10 @@
#define SI_MAX_DRAW_CS_DWORDS 18
+#define LLVM_SUPPORTS_GEOM_SHADERS \
+ ((HAVE_LLVM >= 0x0305) || \
+ (HAVE_LLVM == 0x0304 && LLVM_VERSION_PATCH >= 1))
+
struct si_pipe_compute;
struct si_screen {
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 9d048c5..a98be24 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -2174,7 +2174,7 @@ static void *si_create_fs_state(struct pipe_context *ctx,
return si_create_shader_state(ctx, state, PIPE_SHADER_FRAGMENT);
}
-#if HAVE_LLVM >= 0x0305
+#if LLVM_SUPPORTS_GEOM_SHADERS
static void *si_create_gs_state(struct pipe_context *ctx,
const struct pipe_shader_state *state)
@@ -2204,7 +2204,7 @@ static void si_bind_vs_shader(struct pipe_context *ctx, void *state)
sctx->vs_shader = sel;
}
-#if HAVE_LLVM >= 0x0305
+#if LLVM_SUPPORTS_GEOM_SHADERS
static void si_bind_gs_shader(struct pipe_context *ctx, void *state)
{
@@ -2272,7 +2272,7 @@ static void si_delete_vs_shader(struct pipe_context *ctx, void *state)
si_delete_shader_selector(ctx, sel);
}
-#if HAVE_LLVM >= 0x0305
+#if LLVM_SUPPORTS_GEOM_SHADERS
static void si_delete_gs_shader(struct pipe_context *ctx, void *state)
{
@@ -2769,7 +2769,7 @@ static void si_bind_vs_sampler_states(struct pipe_context *ctx, unsigned count,
si_set_sampler_states(sctx, pm4, count, states,
&sctx->samplers[PIPE_SHADER_VERTEX],
R_00B130_SPI_SHADER_USER_DATA_VS_0);
-#if HAVE_LLVM >= 0x0305
+#if LLVM_SUPPORTS_GEOM_SHADERS
si_set_sampler_states(sctx, pm4, count, states,
&sctx->samplers[PIPE_SHADER_VERTEX],
R_00B330_SPI_SHADER_USER_DATA_ES_0);
@@ -3001,7 +3001,7 @@ void si_init_state_functions(struct si_context *sctx)
sctx->b.b.bind_fs_state = si_bind_ps_shader;
sctx->b.b.delete_vs_state = si_delete_vs_shader;
sctx->b.b.delete_fs_state = si_delete_ps_shader;
-#if HAVE_LLVM >= 0x0305
+#if LLVM_SUPPORTS_GEOM_SHADERS
sctx->b.b.create_gs_state = si_create_gs_state;
sctx->b.b.bind_gs_state = si_bind_gs_shader;
sctx->b.b.delete_gs_state = si_delete_gs_shader;
--
cgit v0.9.0.2-2-gbebe

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="bcm2835-driver"
PKG_VERSION="cd50136"
PKG_VERSION="c0319ac"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="nonfree"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libdrm"
PKG_VERSION="2.4.53"
PKG_VERSION="2.4.54"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,12 +17,13 @@
################################################################################
PKG_NAME="llvm"
PKG_VERSION="3.4"
PKG_VERSION="3.4.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://llvm.org/"
PKG_URL="http://llvm.org/releases/3.4/${PKG_NAME}-${PKG_VERSION}.src.tar.gz"
PKG_URL="http://llvm.org/releases/$PKG_VERSION/${PKG_NAME}-${PKG_VERSION}.src.tar.gz"
PKG_SOURCE_DIR="${PKG_NAME}-${PKG_VERSION}.src"
PKG_DEPENDS_HOST=""
PKG_DEPENDS_TARGET="toolchain llvm:host"
PKG_PRIORITY="optional"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="dvb-firmware"
PKG_VERSION="0.0.40"
PKG_VERSION="0.0.41"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Free-to-use"

View File

@@ -23,7 +23,7 @@ case "$LINUX" in
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
*)
PKG_VERSION="3.14.2"
PKG_VERSION="3.14.4"
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
esac

View File

@@ -0,0 +1,43 @@
From b6d7efd33fd2843fbafe2b2d4b8119b217779a6a Mon Sep 17 00:00:00 2001
From: fritsch <Peter.Fruehberger@gmail.com>
Date: Sat, 3 May 2014 00:08:24 +0200
Subject: [PATCH] Revert "Revert "xhci: Set scatter-gather limit to avoid
failed block writes.""
This reverts commit 47f467ac740ebf0475a5176ddb1741acba6aad4e.
---
drivers/usb/host/xhci.c | 4 ++--
drivers/usb/host/xhci.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 5a646a6..cfa5995 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -4716,8 +4716,8 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
struct device *dev = hcd->self.controller;
int retval;
- /* Accept arbitrarily long scatter-gather lists */
- hcd->self.sg_tablesize = ~0;
+ /* Limit the block layer scatter-gather lists to half a segment. */
+ hcd->self.sg_tablesize = TRBS_PER_SEGMENT / 2;
/* support to build packet from discontinuous buffers */
hcd->self.no_sg_constraint = 1;
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 03c74b7..c283cf1 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1260,7 +1260,7 @@ union xhci_trb {
* since the command ring is 64-byte aligned.
* It must also be greater than 16.
*/
-#define TRBS_PER_SEGMENT 64
+#define TRBS_PER_SEGMENT 256
/* Allow two commands + a link TRB, along with any reserved command TRBs */
#define MAX_RSVD_CMD_TRBS (TRBS_PER_SEGMENT - 3)
#define TRB_SEGMENT_SIZE (TRBS_PER_SEGMENT*16)
--
1.9.1

View File

@@ -0,0 +1,55 @@
From 299db7189ad00fdddae62c9841c25a4b7c835ce5 Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi.hannula@iki.fi>
Date: Mon, 5 May 2014 01:32:48 +0300
Subject: [PATCH 1/2] ALSA: hda - hdmi: Set converter channel count even
without sink
Since commit 1df5a06a ("ALSA: hda - hdmi: Fix programmed active channel
count") channel count is no longer being set if monitor_present is 0.
This is because setting the count was moved after the CA value is
determined, which is only after the monitor_present check in
hdmi_setup_audio_infoframe().
Unfortunately, in some cases, such as with a non-spec-compliant codec or
with a problematic video driver, monitor_present is always 0. As a
specific example, this seems to happen with gen1 ATV (SiI1390 codec),
causing left-channel-only stereo playback (multi-channel playback has
apparently never worked with this codec despite it reporting 8 channels,
reason unknown).
Simply setting converter channel count without setting the pin infoframe
and channel mapping as well does not theoretically make much sense as
this will just mean they are out-of-sync and multichannel playback will
have a wrong channel mapping.
However, adding back just setting the converter channel count even in
no-monitor case is the safest change which at least fixes the stereo
playback regression on SiI1390 codec. Do that.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Reported-by: Stephan Raue <stephan@openelec.tv>
Tested-by: Stephan Raue <stephan@openelec.tv>
Cc: <stable@vger.kernel.org> # 3.12+
---
sound/pci/hda/patch_hdmi.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 0cb5b89cd0c8..1edbb9c47c2d 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -1127,8 +1127,10 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec,
AMP_OUT_UNMUTE);
eld = &per_pin->sink_eld;
- if (!eld->monitor_present)
+ if (!eld->monitor_present) {
+ hdmi_set_channel_count(codec, per_pin->cvt_nid, channels);
return;
+ }
if (!non_pcm && per_pin->chmap_set)
ca = hdmi_manual_channel_allocation(channels, per_pin->chmap);
--
1.8.4.5

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="service.openelec.settings"
PKG_VERSION="0.3.15"
PKG_VERSION="0.3.16"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="prop."

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="xbmc-pvr-addons"
PKG_VERSION="82dd3c4"
PKG_VERSION="f38b2eb"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1,64 +0,0 @@
From 720574030a20b6d4f98ced3203cda35404e8d42b Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Sun, 30 Mar 2014 20:52:24 +0300
Subject: [PATCH] vnsi5: confluence color fixes
---
.../addon/resources/skins/skin.confluence/720p/Admin.xml | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/addons/pvr.vdr.vnsi/addon/resources/skins/skin.confluence/720p/Admin.xml b/addons/pvr.vdr.vnsi/addon/resources/skins/skin.confluence/720p/Admin.xml
index d81f85a..c4054a3 100644
--- a/addons/pvr.vdr.vnsi/addon/resources/skins/skin.confluence/720p/Admin.xml
+++ b/addons/pvr.vdr.vnsi/addon/resources/skins/skin.confluence/720p/Admin.xml
@@ -91,7 +91,7 @@
<width>380</width>
<height>55</height>
<font>font24_title</font>
- <textcolor>grey3</textcolor>
+ <textcolor>grey2</textcolor>
<align>right</align>
<aligny>center</aligny>
<label>$INFO[ListItem.Label]</label>
@@ -270,7 +270,7 @@
<width>250</width>
<height>30</height>
<font>font16caps</font>
- <textcolor>grey3</textcolor>
+ <textcolor>grey2</textcolor>
<focusedcolor>white</focusedcolor>
<texturefocus border="0,2,0,2">MenuItemFO.png</texturefocus>
<texturenofocus border="0,2,0,2">MenuItemNF.png</texturenofocus>
@@ -289,7 +289,8 @@
<texturenofocus border="5">MenuItemNF.png</texturenofocus>
<label>$ADDON[pvr.vdr.vnsi 30109]</label>
<font>font16caps</font>
- <textcolor>grey3</textcolor>
+ <textcolor>grey2</textcolor>
+ <focusedcolor>white</focusedcolor>
<onleft>10</onleft>
<onright>36</onright>
<onup>32</onup>
@@ -305,7 +306,8 @@
<texturenofocus border="5">MenuItemNF.png</texturenofocus>
<label>$ADDON[pvr.vdr.vnsi 30110]</label>
<font>font16caps</font>
- <textcolor>grey3</textcolor>
+ <textcolor>grey2</textcolor>
+ <focusedcolor>white</focusedcolor>
<onleft>10</onleft>
<onright>36</onright>
<onup>33</onup>
@@ -321,7 +323,8 @@
<texturenofocus border="5">MenuItemNF.png</texturenofocus>
<label>$ADDON[pvr.vdr.vnsi 30113]</label>
<font>font16caps</font>
- <textcolor>grey3</textcolor>
+ <textcolor>grey2</textcolor>
+ <focusedcolor>white</focusedcolor>
<onleft>10</onleft>
<onright>36</onright>
<onup>34</onup>
--
1.9.1

View File

@@ -1,8 +1,7 @@
diff --git a/addons/Makefile.include.am b/addons/Makefile.include.am
index 81c55a5..5324046 100644
--- a/addons/Makefile.include.am
+++ b/addons/Makefile.include.am
@@ -36,7 +36,9 @@ else
diff -Naur xbmc-pvr-addons-f38b2eb/addons/Makefile.include.am xbmc-pvr-addons-f38b2eb.patch/addons/Makefile.include.am
--- xbmc-pvr-addons-f38b2eb/addons/Makefile.include.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/Makefile.include.am 2014-05-04 14:35:47.618601552 +0200
@@ -36,7 +36,9 @@
mkdir -m 755 -p $(DESTDIR)@LIBDIR@/$(ADDONNAME)
mkdir -m 755 -p $(DESTDIR)@DATADIR@/$(ADDONNAME)
cp -f @BINPREFIX@$(ADDONBINNAME)@BIN_EXT@ $(DESTDIR)@LIBDIR@/$(ADDONNAME) ; chmod 655 $(DESTDIR)@LIBDIR@/$(ADDONNAME)/@BINPREFIX@$(ADDONBINNAME)@BIN_EXT@
@@ -13,11 +12,10 @@ index 81c55a5..5324046 100644
endif
all: @BUILD_TYPE@
diff --git a/addons/pvr.argustv/Makefile.am b/addons/pvr.argustv/Makefile.am
index c8d334b..87344be 100644
--- a/addons/pvr.argustv/Makefile.am
+++ b/addons/pvr.argustv/Makefile.am
@@ -10,11 +10,11 @@ ADDONNAME = pvr.argustv
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.argustv/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.argustv/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.argustv/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.argustv/Makefile.am 2014-05-04 14:35:47.618601552 +0200
@@ -10,11 +10,11 @@
LIBNAME = libargustv-addon
lib_LTLIBRARIES = libargustv-addon.la
@@ -31,11 +29,10 @@ index c8d334b..87344be 100644
libargustv_addon_la_SOURCES = src/activerecording.cpp \
src/channel.cpp \
diff --git a/addons/pvr.demo/Makefile.am b/addons/pvr.demo/Makefile.am
index 88081b5..c9b53b7 100644
--- a/addons/pvr.demo/Makefile.am
+++ b/addons/pvr.demo/Makefile.am
@@ -10,7 +10,7 @@ ADDONNAME = pvr.demo
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.demo/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.demo/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.demo/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.demo/Makefile.am 2014-05-04 14:35:47.618601552 +0200
@@ -10,7 +10,7 @@
LIBNAME = libpvrdemo-addon
lib_LTLIBRARIES = libpvrdemo-addon.la
@@ -44,11 +41,10 @@ index 88081b5..c9b53b7 100644
include ../Makefile.include.am
diff --git a/addons/pvr.dvblink/Makefile.am b/addons/pvr.dvblink/Makefile.am
index 422aa7e..17f0c0f 100644
--- a/addons/pvr.dvblink/Makefile.am
+++ b/addons/pvr.dvblink/Makefile.am
@@ -10,7 +10,7 @@ ADDONNAME = pvr.dvblink
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.dvblink/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.dvblink/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.dvblink/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.dvblink/Makefile.am 2014-05-04 14:38:41.761644652 +0200
@@ -10,11 +10,11 @@
LIBNAME = libdvblink-addon
lib_LTLIBRARIES = libdvblink-addon.la
@@ -57,11 +53,27 @@ index 422aa7e..17f0c0f 100644
include ../Makefile.include.am
diff --git a/addons/pvr.hts/Makefile.am b/addons/pvr.hts/Makefile.am
index 9a04a49..e732e0c 100644
--- a/addons/pvr.hts/Makefile.am
+++ b/addons/pvr.hts/Makefile.am
@@ -10,7 +10,7 @@ ADDONNAME = pvr.hts
-INCLUDES+=-Isrc
+INCLUDES+=-I$(srcdir)/src
libdvblink_addon_la_SOURCES = src/client.cpp \
src/base64.cpp \
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.dvbviewer/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.dvbviewer/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.dvbviewer/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.dvbviewer/Makefile.am 2014-05-04 14:36:53.759689719 +0200
@@ -10,7 +10,7 @@
LIBNAME = libdvbviewer-addon
lib_LTLIBRARIES = libdvbviewer-addon.la
-LIBS = @abs_top_srcdir@/lib/tinyxml/libtinyxml.la
+LIBS = @abs_top_builddir@/lib/tinyxml/libtinyxml.la
include ../Makefile.include.am
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.hts/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.hts/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.hts/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.hts/Makefile.am 2014-05-04 14:35:47.618601552 +0200
@@ -10,7 +10,7 @@
LIBNAME = libtvheadend-addon
lib_LTLIBRARIES = libtvheadend-addon.la
@@ -70,11 +82,10 @@ index 9a04a49..e732e0c 100644
include ../Makefile.include.am
diff --git a/addons/pvr.mediaportal.tvserver/Makefile.am b/addons/pvr.mediaportal.tvserver/Makefile.am
index eae58bb..cc7c696 100644
--- a/addons/pvr.mediaportal.tvserver/Makefile.am
+++ b/addons/pvr.mediaportal.tvserver/Makefile.am
@@ -10,11 +10,11 @@ ADDONNAME = pvr.mediaportal.tvserver
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.mediaportal.tvserver/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.mediaportal.tvserver/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.mediaportal.tvserver/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.mediaportal.tvserver/Makefile.am 2014-05-04 14:35:47.618601552 +0200
@@ -10,11 +10,11 @@
LIBNAME = libmediaportal-addon
lib_LTLIBRARIES = libmediaportal-addon.la
@@ -88,11 +99,10 @@ index eae58bb..cc7c696 100644
libmediaportal_addon_la_SOURCES = src/Cards.cpp \
src/channels.cpp \
diff --git a/addons/pvr.mythtv.cmyth/Makefile.am b/addons/pvr.mythtv.cmyth/Makefile.am
index dcc5901..a70a68a 100644
--- a/addons/pvr.mythtv.cmyth/Makefile.am
+++ b/addons/pvr.mythtv.cmyth/Makefile.am
@@ -10,7 +10,7 @@ ADDONNAME = pvr.mythtv.cmyth
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.mythtv.cmyth/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.mythtv.cmyth/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.mythtv.cmyth/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.mythtv.cmyth/Makefile.am 2014-05-04 14:35:47.618601552 +0200
@@ -10,7 +10,7 @@
LIBNAME = libmythtvcmyth-addon
lib_LTLIBRARIES = libmythtvcmyth-addon.la
@@ -101,11 +111,10 @@ index dcc5901..a70a68a 100644
AM_CPPFLAGS = -I$(abs_top_srcdir)/lib/cmyth/include
diff --git a/addons/pvr.nextpvr/Makefile.am b/addons/pvr.nextpvr/Makefile.am
index 8b96235..da82559 100644
--- a/addons/pvr.nextpvr/Makefile.am
+++ b/addons/pvr.nextpvr/Makefile.am
@@ -10,11 +10,11 @@ ADDONNAME = pvr.nextpvr
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.nextpvr/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.nextpvr/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.nextpvr/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.nextpvr/Makefile.am 2014-05-04 14:35:47.618601552 +0200
@@ -10,11 +10,11 @@
LIBNAME = libnextpvr-addon
lib_LTLIBRARIES = libnextpvr-addon.la
@@ -119,11 +128,10 @@ index 8b96235..da82559 100644
libnextpvr_addon_la_SOURCES = src/client.cpp \
src/pvrclient-nextpvr.cpp \
diff --git a/addons/pvr.njoy/Makefile.am b/addons/pvr.njoy/Makefile.am
index 6395f44..b64575d 100644
--- a/addons/pvr.njoy/Makefile.am
+++ b/addons/pvr.njoy/Makefile.am
@@ -10,7 +10,7 @@ ADDONNAME = pvr.njoy
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.njoy/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.njoy/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.njoy/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.njoy/Makefile.am 2014-05-04 14:35:47.618601552 +0200
@@ -10,7 +10,7 @@
LIBNAME = libpvrnjoy-addon
lib_LTLIBRARIES = libpvrnjoy-addon.la
@@ -132,11 +140,10 @@ index 6395f44..b64575d 100644
include ../Makefile.include.am
diff --git a/addons/pvr.vuplus/Makefile.am b/addons/pvr.vuplus/Makefile.am
index 7fda63e..08fcc9b 100644
--- a/addons/pvr.vuplus/Makefile.am
+++ b/addons/pvr.vuplus/Makefile.am
@@ -10,7 +10,7 @@ ADDONNAME = pvr.vuplus
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.vuplus/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.vuplus/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.vuplus/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.vuplus/Makefile.am 2014-05-04 14:35:47.619601641 +0200
@@ -10,7 +10,7 @@
LIBNAME = libvuplus-addon
lib_LTLIBRARIES = libvuplus-addon.la
@@ -145,11 +152,10 @@ index 7fda63e..08fcc9b 100644
include ../Makefile.include.am
diff --git a/addons/pvr.wmc/Makefile.am b/addons/pvr.wmc/Makefile.am
index cdcc73b..bda8e3a 100644
--- a/addons/pvr.wmc/Makefile.am
+++ b/addons/pvr.wmc/Makefile.am
@@ -10,7 +10,7 @@ ADDONNAME = pvr.wmc
diff -Naur xbmc-pvr-addons-f38b2eb/addons/pvr.wmc/Makefile.am xbmc-pvr-addons-f38b2eb.patch/addons/pvr.wmc/Makefile.am
--- xbmc-pvr-addons-f38b2eb/addons/pvr.wmc/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/addons/pvr.wmc/Makefile.am 2014-05-04 14:35:47.619601641 +0200
@@ -10,7 +10,7 @@
LIBNAME = libpvrwmc-addon
lib_LTLIBRARIES = libpvrwmc-addon.la
@@ -158,11 +164,10 @@ index cdcc73b..bda8e3a 100644
include ../Makefile.include.am
diff --git a/lib/cmyth/libcmyth/Makefile.am b/lib/cmyth/libcmyth/Makefile.am
index de75de6..b15eb75 100644
--- a/lib/cmyth/libcmyth/Makefile.am
+++ b/lib/cmyth/libcmyth/Makefile.am
@@ -26,7 +26,7 @@ libcmyth_la_SOURCES = bookmark.c \
diff -Naur xbmc-pvr-addons-f38b2eb/lib/cmyth/libcmyth/Makefile.am xbmc-pvr-addons-f38b2eb.patch/lib/cmyth/libcmyth/Makefile.am
--- xbmc-pvr-addons-f38b2eb/lib/cmyth/libcmyth/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/lib/cmyth/libcmyth/Makefile.am 2014-05-04 14:35:47.619601641 +0200
@@ -26,7 +26,7 @@
storagegroup.c \
epginfo.c
@@ -171,11 +176,10 @@ index de75de6..b15eb75 100644
$(LIB): libcmyth.la
cp -f .libs/libcmyth.a .
diff --git a/lib/cmyth/librefmem/Makefile.am b/lib/cmyth/librefmem/Makefile.am
index 1bdfb35..68d21be 100644
--- a/lib/cmyth/librefmem/Makefile.am
+++ b/lib/cmyth/librefmem/Makefile.am
@@ -3,7 +3,7 @@ noinst_LTLIBRARIES = librefmem.la
diff -Naur xbmc-pvr-addons-f38b2eb/lib/cmyth/librefmem/Makefile.am xbmc-pvr-addons-f38b2eb.patch/lib/cmyth/librefmem/Makefile.am
--- xbmc-pvr-addons-f38b2eb/lib/cmyth/librefmem/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/lib/cmyth/librefmem/Makefile.am 2014-05-04 14:35:47.619601641 +0200
@@ -3,7 +3,7 @@
librefmem_la_SOURCES = alloc.c \
debug_refmem.c
@@ -184,11 +188,10 @@ index 1bdfb35..68d21be 100644
$(LIB): librefmem.la
cp -f .libs/librefmem.a .
diff --git a/lib/jsoncpp/Makefile.am b/lib/jsoncpp/Makefile.am
index 659b91c..3e4739c 100644
--- a/lib/jsoncpp/Makefile.am
+++ b/lib/jsoncpp/Makefile.am
@@ -4,7 +4,7 @@ libjsoncpp_la_SOURCES = src/lib_json/json_reader.cpp \
diff -Naur xbmc-pvr-addons-f38b2eb/lib/jsoncpp/Makefile.am xbmc-pvr-addons-f38b2eb.patch/lib/jsoncpp/Makefile.am
--- xbmc-pvr-addons-f38b2eb/lib/jsoncpp/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/lib/jsoncpp/Makefile.am 2014-05-04 14:35:47.619601641 +0200
@@ -4,7 +4,7 @@
src/lib_json/json_value.cpp \
src/lib_json/json_writer.cpp
@@ -197,11 +200,10 @@ index 659b91c..3e4739c 100644
$(LIB): libjsoncpp.la
cp -f .libs/libjsoncpp.a .
diff --git a/lib/libdvblinkremote/Makefile.am b/lib/libdvblinkremote/Makefile.am
index f8fbbbd..eee4c2a 100644
--- a/lib/libdvblinkremote/Makefile.am
+++ b/lib/libdvblinkremote/Makefile.am
@@ -26,10 +26,10 @@ libdvblinkremote_la_SOURCES = channel.cpp \
diff -Naur xbmc-pvr-addons-f38b2eb/lib/libdvblinkremote/Makefile.am xbmc-pvr-addons-f38b2eb.patch/lib/libdvblinkremote/Makefile.am
--- xbmc-pvr-addons-f38b2eb/lib/libdvblinkremote/Makefile.am 2014-05-04 14:27:57.000000000 +0200
+++ xbmc-pvr-addons-f38b2eb.patch/lib/libdvblinkremote/Makefile.am 2014-05-04 14:35:47.619601641 +0200
@@ -26,10 +26,10 @@
util.cpp \
xml_object_serializer_factory.cpp
@@ -214,5 +216,5 @@ index f8fbbbd..eee4c2a 100644
$(LIB): libdvblinkremote.la
cp -f .libs/libdvblinkremote.a .
- cp -f .libs/libdvblinkremote.la $(LIB)
\ No newline at end of file
\ Kein Zeilenumbruch am Dateiende.
+ cp -f .libs/libdvblinkremote.la $(LIB)

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="xbmc-theme-Confluence"
PKG_VERSION="13-2372235"
PKG_VERSION="13-692cfba"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="xbmc"
PKG_VERSION="13-2372235"
PKG_VERSION="13-692cfba"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1920,7 +1920,7 @@ index 083d1e9..40b8403 100644
if(!SetFullScreen(fullScreen, res, false))
return false;
- CBaseTexture* iconTexture = CTexture::LoadFromFile("special://xbmc/media/icon.png");
- CBaseTexture* iconTexture = CTexture::LoadFromFile("special://xbmc/media/icon256x256.png");
-
- if (iconTexture)
- SDL_WM_SetIcon(SDL_CreateRGBSurfaceFrom(iconTexture->GetPixels(), iconTexture->GetWidth(), iconTexture->GetHeight(), 32, iconTexture->GetPitch(), 0xff0000, 0x00ff00, 0x0000ff, 0xff000000L), NULL);
@@ -2520,7 +2520,7 @@ index 40b8403..858ea5e 100644
+ bRatio = vis->blue_mask / 255.0;
+
+ CTexture iconTexture;
+ iconTexture.LoadFromFile("special://xbmc/media/icon.png");
+ iconTexture.LoadFromFile("special://xbmc/media/icon256x256.png");
+ buf = iconTexture.GetPixels();
+
+ numBufBytes = iconTexture.GetWidth() * iconTexture.GetHeight() * 4;
@@ -5314,9 +5314,9 @@ index 869baa8..bfe3797 100644
bRatio = vis->blue_mask / 255.0;
- CTexture iconTexture;
- iconTexture.LoadFromFile("special://xbmc/media/icon.png");
- iconTexture.LoadFromFile("special://xbmc/media/icon256x256.png");
- buf = iconTexture.GetPixels();
+ CBaseTexture *iconTexture = CBaseTexture::LoadFromFile("special://xbmc/media/icon.png");
+ CBaseTexture *iconTexture = CBaseTexture::LoadFromFile("special://xbmc/media/icon256x256.png");
+
+ if (!iconTexture)
+ return false;
@@ -9104,46 +9104,6 @@ index 8525ede..c94f2e3 100644
1.9.1
From bd0d10452531941af72d9de8c920574312108608 Mon Sep 17 00:00:00 2001
From: Rainer Hochecker <fernetmenta@online.de>
Date: Mon, 18 Nov 2013 17:44:31 +0100
Subject: [PATCH 79/96] ActiveAE: correct time of buffered samples by resample
ratio
---
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 2 +-
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
index 6c5acfb..3ed310a 100644
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
@@ -102,7 +102,7 @@ float CEngineStats::GetDelay(CActiveAEStream *stream)
if (delay < 0)
delay = 0.0;
- delay += stream->m_bufferedTime;
+ delay += stream->m_bufferedTime / stream->m_streamResampleRatio;
return delay;
}
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp
index 99989b3..0287e73 100644
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp
@@ -58,6 +58,7 @@ CActiveAEStream::CActiveAEStream(AEAudioFormat *format)
m_forceResampler = false;
m_remapper = NULL;
m_remapBuffer = NULL;
+ m_streamResampleRatio = 1.0;
}
CActiveAEStream::~CActiveAEStream()
--
1.9.1
From 2ec9169c90eb33866d139a09b38ff04018cae905 Mon Sep 17 00:00:00 2001
From: Marcel Groothuis <margro.xbmc@gmail.com>
Date: Thu, 5 Dec 2013 22:02:50 +0100

View File

@@ -0,0 +1,13 @@
diff --git a/xbmc/windowing/WinEventsX11.cpp b/xbmc/windowing/WinEventsX11.cpp
index a5b4ba2..3586a6a 100644
--- a/xbmc/windowing/WinEventsX11.cpp
+++ b/xbmc/windowing/WinEventsX11.cpp
@@ -731,7 +731,7 @@ XBMCKey CWinEventsX11Imp::LookupXbmcKeySym(KeySym keysym)
// try ascii mappings
if (keysym>>8 == 0x00)
- return (XBMCKey)(keysym & 0xFF);
+ return (XBMCKey)tolower(keysym & 0xFF);
return (XBMCKey)keysym;
}

View File

@@ -1,62 +0,0 @@
From 6a926768eba981c6498f852fe26dfa6644da82ac Mon Sep 17 00:00:00 2001
From: "Chris \"Koying\" Browet" <cbro@semperpax.com>
Date: Wed, 23 Apr 2014 16:33:19 +0200
Subject: [PATCH] FIX: [linux] fix & optimize input device checking
---
xbmc/input/linux/LinuxInputDevices.cpp | 12 +++++++++++-
xbmc/input/linux/LinuxInputDevices.h | 1 +
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
index 4b642ae..f11ec01 100644
--- a/xbmc/input/linux/LinuxInputDevices.cpp
+++ b/xbmc/input/linux/LinuxInputDevices.cpp
@@ -936,6 +936,11 @@ char* CLinuxInputDevice::GetDeviceName()
return m_deviceName;
}
+std::string CLinuxInputDevice::GetFileName()
+{
+ return m_fileName;
+}
+
bool CLinuxInputDevice::IsUnplugged()
{
return m_bUnplugged;
@@ -945,6 +950,11 @@ bool CLinuxInputDevices::CheckDevice(const char *device)
{
int fd;
+ // Does the device exists?
+ struct stat buffer;
+ if (stat(device, &buffer) != 0)
+ return false;
+
/* Check if we are able to open the device */
fd = open(device, O_RDWR);
if (fd < 0)
@@ -1016,7 +1026,7 @@ void CLinuxInputDevices::CheckHotplugged()
for (size_t j = 0; j < m_devices.size(); j++)
{
- if (strcmp(m_devices[j]->GetDeviceName(),buf) == 0)
+ if (m_devices[j]->GetFileName().compare(buf) == 0)
{
ispresent = true;
break;
diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h
index c385ed7..a406d9c 100644
--- a/xbmc/input/linux/LinuxInputDevices.h
+++ b/xbmc/input/linux/LinuxInputDevices.h
@@ -42,6 +42,7 @@ class CLinuxInputDevice
~CLinuxInputDevice();
XBMC_Event ReadEvent();
char* GetDeviceName();
+ std::string GetFileName();
bool IsUnplugged();
private:
--
1.9.1

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libva-driver-intel"
PKG_VERSION="1.3.0"
PKG_VERSION="1.3.1"
PKG_REV="1"
PKG_ARCH="i386 x86_64"
PKG_LICENSE="GPL"

View File

@@ -0,0 +1,13 @@
diff --git a/src/i965_decoder_utils.c b/src/i965_decoder_utils.c
index 617bc15..f579f91 100644
--- a/src/i965_decoder_utils.c
+++ b/src/i965_decoder_utils.c
@@ -139,7 +139,7 @@ mpeg2_set_reference_surfaces(
ref_frames[n++].surface_id = ref_frames[0].surface_id;
}
- if (pic_param->picture_coding_extension.bits.progressive_frame)
+ if (pic_param->picture_coding_extension.bits.frame_pred_frame_dct)
return;
ref_frames[2].surface_id = VA_INVALID_ID;

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libva"
PKG_VERSION="1.3.0"
PKG_VERSION="1.3.1"
PKG_REV="1"
PKG_ARCH="i386 x86_64"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="bluez"
PKG_VERSION="5.17"
PKG_VERSION="5.18"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -38,7 +38,7 @@ PKG_CONFIGURE_OPTS_TARGET="ac_cv_have_decl_TUNSETPERSIST=no \
--enable-password-save \
--disable-plugins \
--enable-iproute2 IPROUTE=/sbin/ip \
--disable-management \
--enable-management \
--disable-socks \
--disable-http-proxy \
--disable-fragment \

View File

@@ -0,0 +1,138 @@
From d7758e2be5d810f2dcd068ccd3b577706f13120d Mon Sep 17 00:00:00 2001
From: Andrew Bartlett <abartlet@samba.org>
Date: Tue, 1 Apr 2014 17:03:34 +1300
Subject: [PATCH] libsmbclient: Wrap more function calls in talloc_stackframe()
to protect against talloc_tos() calls
BUG: https://bugzilla.samba.org/show_bug.cgi?id=8449
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
---
source3/libsmb/libsmb_context.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/source3/libsmb/libsmb_context.c b/source3/libsmb/libsmb_context.c
index c2b88f5..ffa4d2d 100644
--- a/source3/libsmb/libsmb_context.c
+++ b/source3/libsmb/libsmb_context.c
@@ -560,6 +560,7 @@ SMBCCTX *
smbc_init_context(SMBCCTX *context)
{
int pid;
+ TALLOC_CTX *frame;
if (!context) {
errno = EBADF;
@@ -571,11 +572,14 @@ smbc_init_context(SMBCCTX *context)
return NULL;
}
+ frame = talloc_stackframe();
+
if ((!smbc_getFunctionAuthData(context) &&
!smbc_getFunctionAuthDataWithContext(context)) ||
smbc_getDebug(context) < 0 ||
smbc_getDebug(context) > 100) {
+ TALLOC_FREE(frame);
errno = EINVAL;
return NULL;
@@ -594,6 +598,7 @@ smbc_init_context(SMBCCTX *context)
}
if (!user) {
+ TALLOC_FREE(frame);
errno = ENOMEM;
return NULL;
}
@@ -602,6 +607,7 @@ smbc_init_context(SMBCCTX *context)
SAFE_FREE(user);
if (!smbc_getUser(context)) {
+ TALLOC_FREE(frame);
errno = ENOMEM;
return NULL;
}
@@ -624,6 +630,7 @@ smbc_init_context(SMBCCTX *context)
pid = getpid();
netbios_name = (char *)SMB_MALLOC(17);
if (!netbios_name) {
+ TALLOC_FREE(frame);
errno = ENOMEM;
return NULL;
}
@@ -632,6 +639,7 @@ smbc_init_context(SMBCCTX *context)
}
if (!netbios_name) {
+ TALLOC_FREE(frame);
errno = ENOMEM;
return NULL;
}
@@ -640,6 +648,7 @@ smbc_init_context(SMBCCTX *context)
SAFE_FREE(netbios_name);
if (!smbc_getNetbiosName(context)) {
+ TALLOC_FREE(frame);
errno = ENOMEM;
return NULL;
}
@@ -659,6 +668,7 @@ smbc_init_context(SMBCCTX *context)
}
if (!workgroup) {
+ TALLOC_FREE(frame);
errno = ENOMEM;
return NULL;
}
@@ -667,6 +677,7 @@ smbc_init_context(SMBCCTX *context)
SAFE_FREE(workgroup);
if (!smbc_getWorkgroup(context)) {
+ TALLOC_FREE(frame);
errno = ENOMEM;
return NULL;
}
@@ -692,6 +703,7 @@ smbc_init_context(SMBCCTX *context)
smb_panic("error unlocking 'initialized_ctx_count'");
}
+ TALLOC_FREE(frame);
return context;
}
@@ -727,12 +739,15 @@ void smbc_set_credentials_with_fallback(SMBCCTX *context,
smbc_bool use_kerberos = false;
const char *signing_state = "off";
struct user_auth_info *auth_info = NULL;
+ TALLOC_CTX *frame;
if (! context) {
return;
}
+ frame = talloc_stackframe();
+
if (! workgroup || ! *workgroup) {
workgroup = smbc_getWorkgroup(context);
}
@@ -749,6 +764,7 @@ void smbc_set_credentials_with_fallback(SMBCCTX *context,
if (! auth_info) {
DEBUG(0, ("smbc_set_credentials_with_fallback: allocation fail\n"));
+ TALLOC_FREE(frame);
return;
}
@@ -777,4 +793,5 @@ void smbc_set_credentials_with_fallback(SMBCCTX *context,
TALLOC_FREE(context->internal->auth_info);
context->internal->auth_info = auth_info;
+ TALLOC_FREE(frame);
}
--
1.9.1.423.g4596e3a

View File

@@ -80,6 +80,7 @@
case $boot in
CIFS=*|SMB=*|ISCSI=*|NBD=*|NFS=*)
UPDATE_DISABLED=yes
FLASH_NETBOOT=yes
;;
esac
;;
@@ -94,9 +95,6 @@
wol_mac=*)
wol_mac="${arg#*=}"
;;
wol_ip=*)
wol_ip="${arg#*=}"
;;
wol_wait=*)
wol_wait="${arg#*=}"
;;
@@ -415,22 +413,40 @@
fi
}
wakeonlan() {
if [ "$STORAGE_NETBOOT" = "yes" ]; then
wol_ip=${disk%:*}
wol_ip=${wol_ip#*=}
elif [ "$FLASH_NETBOOT" = "yes" ]; then
wol_ip=${boot%:*}
wol_ip=${wol_ip#*=}
else
return 0
fi
if [ -n "$wol_ip" -a -n "$wol_mac" -a -n "$wol_wait" ]; then
progress "Sending Magic Packet (WOL) if needed"
if ! ping -q -c 2 "$wol_ip" &>/dev/null; then
ether-wake "$wol_mac"
sleep "$wol_wait"
fi
fi
}
mount_flash() {
progress "Mounting flash"
wakeonlan
mount_part "$boot" "/flash" "ro,noatime"
}
mount_storage() {
if [ -n "$wol_ip" ] && [ -n "$wol_mac" ] && [ -n "$wol_wait" ]; then
if ! (/bin/busybox ping -q -c 2 "$wol_ip" > /dev/null 2>&1); then
/bin/busybox ether-wake "$wol_mac"
/bin/busybox sleep "$wol_wait"
fi
fi
mount_storage() {
progress "Mounting storage"
wakeonlan
if [ -n "$disk" ]; then
if [ -n "$OVERLAY" ]; then
OVERLAY_DIR=`cat /sys/class/net/eth0/address | tr -d :`

View File

@@ -27,9 +27,6 @@ case "$ACTION" in
if [ "x$DRIVER" = "x" ]; then
exit 1;
fi
if [ "x$CONFIG" = "x" ]; then
exit 1;
fi
mkdir -p '/run/lirc'
@@ -40,12 +37,16 @@ case "$ACTION" in
LIRCD_CONFIG="$LIRCD_CONFIG --output=/run/lirc/lircd-$DEVICE"
LIRCD_CONFIG="$LIRCD_CONFIG --pidfile=/run/lirc/lircd-$DEVICE.pid"
if [ -e "/storage/.config/$CONFIG" ]; then
LIRCD_CONFIG="$LIRCD_CONFIG /storage/.config/$CONFIG"
elif [ -e "/storage/.config/lircd.conf" ]; then
if [ -e "/storage/.config/lircd.conf" ]; then
LIRCD_CONFIG="$LIRCD_CONFIG /storage/.config/lircd.conf"
elif [ -e "/etc/lirc/$CONFIG" ]; then
LIRCD_CONFIG="$LIRCD_CONFIG /etc/lirc/$CONFIG"
elif [ -n "$CONFIG" ]; then
if [ -e "/storage/.config/$CONFIG" ]; then
LIRCD_CONFIG="$LIRCD_CONFIG /storage/.config/$CONFIG"
elif [ -e "/etc/lirc/$CONFIG" ]; then
LIRCD_CONFIG="$LIRCD_CONFIG /etc/lirc/$CONFIG"
else
exit 1
fi
else
exit 1
fi

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="util-linux"
PKG_VERSION="2.24.1"
PKG_VERSION="2.24.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="bcm2835-bootloader"
PKG_VERSION="cd50136"
PKG_VERSION="c0319ac"
PKG_REV="1"
PKG_ARCH="arm"
PKG_LICENSE="nonfree"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 KiB

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 997 KiB

After

Width:  |  Height:  |  Size: 439 KiB

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="xf86-input-evdev"
PKG_VERSION="2.8.2"
PKG_VERSION="2.8.4"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/i386 3.14.0 Kernel Configuration
# Linux/i386 3.14.2 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -658,21 +658,38 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_NETFILTER_ADVANCED is not set
CONFIG_NETFILTER_ADVANCED=y
# CONFIG_BRIDGE_NETFILTER is not set
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
# CONFIG_NETFILTER_NETLINK_ACCT is not set
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
# CONFIG_NF_CONNTRACK_MARK is not set
# CONFIG_NF_CONNTRACK_PROCFS is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
# CONFIG_NF_CT_PROTO_DCCP is not set
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=m
# CONFIG_NF_CONNTRACK_H323 is not set
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
# CONFIG_NF_CONNTRACK_SNMP is not set
# CONFIG_NF_CONNTRACK_PPTP is not set
# CONFIG_NF_CONNTRACK_SANE is not set
CONFIG_NF_CONNTRACK_SIP=m
# CONFIG_NF_CONNTRACK_TFTP is not set
CONFIG_NF_CT_NETLINK=m
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
# CONFIG_NF_NAT_AMANDA is not set
@@ -687,21 +704,72 @@ CONFIG_NETFILTER_XTABLES=m
# Xtables combined modules
#
# CONFIG_NETFILTER_XT_MARK is not set
# CONFIG_NETFILTER_XT_CONNMARK is not set
#
# Xtables targets
#
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
# CONFIG_NETFILTER_XT_TARGET_LED is not set
# CONFIG_NETFILTER_XT_TARGET_LOG is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
#
# Xtables matches
#
# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_BPF is not set
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
# CONFIG_NETFILTER_XT_MATCH_STATE is not set
# CONFIG_NETFILTER_XT_MATCH_CPU is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ECN is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_HL is not set
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_MAC is not set
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
CONFIG_NETFILTER_XT_MATCH_STATE=m
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set
@@ -711,15 +779,22 @@ CONFIG_NETFILTER_XTABLES=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_TTL is not set
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
# CONFIG_IP_NF_TARGET_SYNPROXY is not set
# CONFIG_IP_NF_TARGET_ULOG is not set
CONFIG_NF_NAT_IPV4=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
# CONFIG_IP_NF_TARGET_NETMAP is not set
# CONFIG_IP_NF_TARGET_REDIRECT is not set
# CONFIG_NF_NAT_PPTP is not set
# CONFIG_NF_NAT_H323 is not set
# CONFIG_IP_NF_MANGLE is not set
# CONFIG_IP_NF_RAW is not set
# CONFIG_IP_NF_ARPTABLES is not set
#
# IPv6: Netfilter Configuration
@@ -727,11 +802,20 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
# CONFIG_IP6_NF_MATCH_AH is not set
# CONFIG_IP6_NF_MATCH_EUI64 is not set
# CONFIG_IP6_NF_MATCH_FRAG is not set
# CONFIG_IP6_NF_MATCH_OPTS is not set
# CONFIG_IP6_NF_MATCH_HL is not set
# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
# CONFIG_IP6_NF_MATCH_MH is not set
# CONFIG_IP6_NF_MATCH_RT is not set
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
# CONFIG_IP6_NF_MANGLE is not set
# CONFIG_IP6_NF_RAW is not set
# CONFIG_NF_NAT_IPV6 is not set
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
@@ -2480,7 +2564,7 @@ CONFIG_HID_SPINELPLUS=y
CONFIG_HID_SUNPLUS=y
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
CONFIG_HID_TIVO=y
CONFIG_HID_TOPSEED=y
# CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set

View File

@@ -1,4 +1,4 @@
# Name of the Distro to build (full name, without special charcters)
# Name of the Distro to build (full name, without special characters)
DISTRONAME="OpenELEC"
# short project description

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 3.10.37 Kernel Configuration
# Linux/arm 3.10.38 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_MIGHT_HAVE_PCI=y
@@ -631,21 +631,38 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_NETFILTER_ADVANCED is not set
CONFIG_NETFILTER_ADVANCED=y
# CONFIG_BRIDGE_NETFILTER is not set
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
# CONFIG_NETFILTER_NETLINK_ACCT is not set
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
# CONFIG_NF_CONNTRACK_MARK is not set
# CONFIG_NF_CONNTRACK_PROCFS is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
# CONFIG_NF_CT_PROTO_DCCP is not set
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=m
# CONFIG_NF_CONNTRACK_H323 is not set
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
# CONFIG_NF_CONNTRACK_SNMP is not set
# CONFIG_NF_CONNTRACK_PPTP is not set
# CONFIG_NF_CONNTRACK_SANE is not set
CONFIG_NF_CONNTRACK_SIP=m
# CONFIG_NF_CONNTRACK_TFTP is not set
CONFIG_NF_CT_NETLINK=m
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
# CONFIG_NF_NAT_AMANDA is not set
@@ -659,21 +676,68 @@ CONFIG_NETFILTER_XTABLES=m
# Xtables combined modules
#
# CONFIG_NETFILTER_XT_MARK is not set
# CONFIG_NETFILTER_XT_CONNMARK is not set
#
# Xtables targets
#
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
# CONFIG_NETFILTER_XT_TARGET_LED is not set
# CONFIG_NETFILTER_XT_TARGET_LOG is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
#
# Xtables matches
#
# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_BPF is not set
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
# CONFIG_NETFILTER_XT_MATCH_STATE is not set
# CONFIG_NETFILTER_XT_MATCH_CPU is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ECN is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_HL is not set
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_MAC is not set
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
CONFIG_NETFILTER_XT_MATCH_STATE=m
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set
@@ -683,15 +747,21 @@ CONFIG_NETFILTER_XTABLES=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_TTL is not set
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
# CONFIG_IP_NF_TARGET_ULOG is not set
CONFIG_NF_NAT_IPV4=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
# CONFIG_IP_NF_TARGET_NETMAP is not set
# CONFIG_IP_NF_TARGET_REDIRECT is not set
# CONFIG_NF_NAT_PPTP is not set
# CONFIG_NF_NAT_H323 is not set
# CONFIG_IP_NF_MANGLE is not set
# CONFIG_IP_NF_RAW is not set
# CONFIG_IP_NF_ARPTABLES is not set
#
# IPv6: Netfilter Configuration
@@ -699,11 +769,19 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
# CONFIG_IP6_NF_MATCH_AH is not set
# CONFIG_IP6_NF_MATCH_EUI64 is not set
# CONFIG_IP6_NF_MATCH_FRAG is not set
# CONFIG_IP6_NF_MATCH_OPTS is not set
# CONFIG_IP6_NF_MATCH_HL is not set
# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
# CONFIG_IP6_NF_MATCH_MH is not set
# CONFIG_IP6_NF_MATCH_RT is not set
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
# CONFIG_IP6_NF_MANGLE is not set
# CONFIG_IP6_NF_RAW is not set
# CONFIG_NF_NAT_IPV6 is not set
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
@@ -1395,6 +1473,7 @@ CONFIG_INPUT_MISC=y
# CONFIG_INPUT_CM109 is not set
CONFIG_INPUT_UINPUT=y
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_PWM_BEEPER is not set
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
# CONFIG_INPUT_DA9052_ONKEY is not set
# CONFIG_INPUT_ADXL34X is not set
@@ -2462,7 +2541,7 @@ CONFIG_HID_SPINELPLUS=y
CONFIG_HID_SUNPLUS=y
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
CONFIG_HID_TIVO=y
CONFIG_HID_TOPSEED=y
# CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set
@@ -2794,6 +2873,7 @@ CONFIG_LEDS_CLASS=y
# CONFIG_LEDS_PCA9633 is not set
# CONFIG_LEDS_DA9052 is not set
# CONFIG_LEDS_DAC124S085 is not set
CONFIG_LEDS_PWM=y
CONFIG_LEDS_REGULATOR=y
# CONFIG_LEDS_BD2802 is not set
# CONFIG_LEDS_LT3593 is not set
@@ -3021,7 +3101,8 @@ CONFIG_CLKSRC_MMIO=y
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_PWM is not set
CONFIG_PWM=y
CONFIG_PWM_IMX=y
CONFIG_IRQCHIP=y
CONFIG_ARM_GIC=y
# CONFIG_IPACK_BUS is not set

View File

@@ -1,4 +1,4 @@
# Name of the Distro to build (full name, without special charcters)
# Name of the Distro to build (full name, without special characters)
DISTRONAME="OpenELEC"
# short project description
@@ -174,7 +174,7 @@
# for a list of additinoal drivers see packages/linux-drivers
# Space separated list is supported,
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8188EU RTL8812AU dvbhdhomerun"
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8188EU dvbhdhomerun"
# build and install bluetooth support (yes / no)
BLUETOOTH_SUPPORT="yes"

View File

@@ -0,0 +1,214 @@
From d821a5f9b03a436950570ee9d7741452248f72e8 Mon Sep 17 00:00:00 2001
From: wolfgar <stephan.rafin@laposte.net>
Date: Wed, 23 Apr 2014 03:16:04 +0200
Subject: [PATCH 1/2] Fix physical address retrieval and notify new address
after unplug/plug
---
src/lib/adapter/IMX/IMXCECAdapterCommunication.cpp | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/lib/adapter/IMX/IMXCECAdapterCommunication.cpp b/src/lib/adapter/IMX/IMXCECAdapterCommunication.cpp
index 54e5662..a226a70 100644
--- a/src/lib/adapter/IMX/IMXCECAdapterCommunication.cpp
+++ b/src/lib/adapter/IMX/IMXCECAdapterCommunication.cpp
@@ -189,14 +189,18 @@ cec_vendor_id CIMXCECAdapterCommunication::GetVendorId(void)
uint16_t CIMXCECAdapterCommunication::GetPhysicalAddress(void)
{
uint32_t info;
+ uint16_t phy_addr;
if (m_dev->Ioctl(HDMICEC_IOC_GETPHYADDRESS, &info) != 0)
{
LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: HDMICEC_IOC_GETPHYADDRESS failed !", __func__);
return CEC_INVALID_PHYSICAL_ADDRESS;
}
+ /* Rebuild 16 bit raw value from fsl 32 bits value */
+ phy_addr = ((info & 0x0f) << 12) | (info & 0x0f00) |
+ ((info & 0x0f0000) >> 12) | ((info & 0x0f000000) >> 24);
- return info;
+ return phy_addr;
}
@@ -266,6 +270,13 @@ void *CIMXCECAdapterCommunication::Process(void)
if (!IsStopped())
m_callback->OnCommandReceived(cmd);
}
+
+ if (event.event_type == MESSAGE_TYPE_CONNECTED)
+ /* HDMI has just been reconnected - Notify phy address*/
+ {
+ uint16_t iNewAddress = GetPhysicalAddress();
+ m_callback->HandlePhysicalAddressChanged(iNewAddress);
+ }
/* We are not interested in other events */
} /*else {
LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s: Read returned %d", __func__, ret);
--
1.7.9.5
From 42c3c07a79b8155635851c2eed9558b221b89047 Mon Sep 17 00:00:00 2001
From: wolfgar <stephan.rafin@laposte.net>
Date: Sat, 26 Apr 2014 01:48:06 +0200
Subject: [PATCH 2/2] Grab enhancements from mk01 commit
https://github.com/mk01/libcec/commit/40ac7550fe22a9fed665eec0aec1882498f838d6#diff-f2ea3f151edca2fc91b2f3cea1159c9bR336
---
src/lib/adapter/IMX/IMXCECAdapterCommunication.cpp | 58 ++++++++++++++++----
src/lib/adapter/IMX/IMXCECAdapterCommunication.h | 9 ++-
2 files changed, 55 insertions(+), 12 deletions(-)
diff --git a/src/lib/adapter/IMX/IMXCECAdapterCommunication.cpp b/src/lib/adapter/IMX/IMXCECAdapterCommunication.cpp
index a226a70..1f70989 100644
--- a/src/lib/adapter/IMX/IMXCECAdapterCommunication.cpp
+++ b/src/lib/adapter/IMX/IMXCECAdapterCommunication.cpp
@@ -88,6 +88,8 @@ CIMXCECAdapterCommunication::CIMXCECAdapterCommunication(IAdapterCommunicationCa
m_iNextMessage = 0;
//m_logicalAddresses.Clear();
m_logicalAddress = CECDEVICE_UNKNOWN;
+ m_bLogicalAddressRegistered = false;
+ m_bInitialised = false;
m_dev = new CCDevSocket(CEC_IMX_PATH);
}
@@ -110,10 +112,11 @@ bool CIMXCECAdapterCommunication::Open(uint32_t iTimeoutMs, bool UNUSED(bSkipChe
if (m_dev->Open(iTimeoutMs))
{
if (!bStartListening || CreateThread()) {
- if (m_dev->Ioctl(HDMICEC_IOC_STARTDEVICE, NULL) != 0) {
- LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: Unable to start device\n", __func__);
+ if (m_dev->Ioctl(HDMICEC_IOC_STARTDEVICE, NULL) == 0) {
+ m_bInitialised = true;
+ return true;
}
- return true;
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: Unable to start device\n", __func__);
}
m_dev->Close();
}
@@ -125,10 +128,16 @@ bool CIMXCECAdapterCommunication::Open(uint32_t iTimeoutMs, bool UNUSED(bSkipChe
void CIMXCECAdapterCommunication::Close(void)
{
StopThread(0);
+
+ CLockObject lock(m_mutex);
+ if (!m_bInitialised) {
+ return;
+ }
if (m_dev->Ioctl(HDMICEC_IOC_STOPDEVICE, NULL) != 0) {
LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: Unable to stop device\n", __func__);
}
m_dev->Close();
+ m_bInitialised = false;
}
@@ -210,31 +219,60 @@ cec_logical_addresses CIMXCECAdapterCommunication::GetLogicalAddresses(void)
addresses.Clear();
CLockObject lock(m_mutex);
- if ( m_logicalAddress != CECDEVICE_UNKNOWN)
+ if ((m_logicalAddress & (CECDEVICE_UNKNOWN | CECDEVICE_UNREGISTERED)) == 0)
addresses.Set(m_logicalAddress);
return addresses;
}
+void CIMXCECAdapterCommunication::HandleLogicalAddressLost(cec_logical_address UNUSED(oldAddress))
+{
+ UnregisterLogicalAddress();
+}
-bool CIMXCECAdapterCommunication::SetLogicalAddresses(const cec_logical_addresses &addresses)
+bool CIMXCECAdapterCommunication::UnregisterLogicalAddress(void)
{
- int log_addr = addresses.primary;
+ CLockObject lock(m_mutex);
+ if (!m_bLogicalAddressRegistered)
+ return true;
+
+ if (m_dev->Ioctl(HDMICEC_IOC_SETLOGICALADDRESS, (void *)CECDEVICE_BROADCAST) != 0)
+ {
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: HDMICEC_IOC_SETLOGICALADDRESS failed !", __func__);
+ return false;
+ }
+ m_logicalAddress = CECDEVICE_UNKNOWN;
+ m_bLogicalAddressRegistered = false;
+ return true;
+}
+
+bool CIMXCECAdapterCommunication::RegisterLogicalAddress(const cec_logical_address address)
+{
CLockObject lock(m_mutex);
- if (m_logicalAddress == log_addr)
- return true;
- if (m_dev->Ioctl(HDMICEC_IOC_SETLOGICALADDRESS, (void *)log_addr) != 0)
+ if (m_logicalAddress == address && m_bLogicalAddressRegistered)
+ {
+ return true;
+ }
+
+ if (m_dev->Ioctl(HDMICEC_IOC_SETLOGICALADDRESS, (void *)address) != 0)
{
LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: HDMICEC_IOC_SETLOGICALADDRESS failed !", __func__);
return false;
}
- m_logicalAddress = (cec_logical_address)log_addr;
+ m_logicalAddress = address;
+ m_bLogicalAddressRegistered = true;
return true;
}
+bool CIMXCECAdapterCommunication::SetLogicalAddresses(const cec_logical_addresses &addresses)
+{
+ int log_addr = addresses.primary;
+
+ return RegisterLogicalAddress((cec_logical_address)log_addr);
+}
void *CIMXCECAdapterCommunication::Process(void)
{
diff --git a/src/lib/adapter/IMX/IMXCECAdapterCommunication.h b/src/lib/adapter/IMX/IMXCECAdapterCommunication.h
index 910dd39..ce5c4cb 100644
--- a/src/lib/adapter/IMX/IMXCECAdapterCommunication.h
+++ b/src/lib/adapter/IMX/IMXCECAdapterCommunication.h
@@ -85,7 +85,9 @@ namespace CEC
cec_adapter_type GetAdapterType(void) { return ADAPTERTYPE_IMX; }
uint16_t GetAdapterVendorId(void) const { return IMX_ADAPTER_VID; }
uint16_t GetAdapterProductId(void) const { return IMX_ADAPTER_PID; }
+ void HandleLogicalAddressLost(cec_logical_address UNUSED(oldAddress));
void SetActiveSource(bool UNUSED(bSetTo), bool UNUSED(bClientUnregistered)) {}
+ bool RegisterLogicalAddress(const cec_logical_address address);
///}
/** @name PLATFORM::CThread implementation */
@@ -94,7 +96,8 @@ namespace CEC
///}
private:
- bool IsInitialised(void) const { return m_dev != 0; };
+ bool IsInitialised(void) const { return m_bInitialised; };
+ bool UnregisterLogicalAddress(void);
std::string m_strError; /**< current error message */
@@ -103,7 +106,9 @@ namespace CEC
PLATFORM::CMutex m_mutex;
PLATFORM::CCDevSocket *m_dev; /**< the device connection */
-
+ bool m_bLogicalAddressRegistered;
+ bool m_bInitialised;
+
PLATFORM::CMutex m_messageMutex;
uint32_t m_iNextMessage;
std::map<uint32_t, CAdapterMessageQueueEntry *> m_messages;
--
1.7.9.5

View File

@@ -0,0 +1,719 @@
diff --git a/Makefile b/Makefile
index bd9fb5b72fc0..bd51b50a567b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
VERSION = 3
PATCHLEVEL = 10
-SUBLEVEL = 37
+SUBLEVEL = 38
EXTRAVERSION =
NAME = TOSSUG Baby Fish
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 9ac9f1666339..2668b3142fa2 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -25,7 +25,7 @@ config SPARC
select RTC_DRV_M48T59
select HAVE_DMA_ATTRS
select HAVE_DMA_API_DEBUG
- select HAVE_ARCH_JUMP_LABEL
+ select HAVE_ARCH_JUMP_LABEL if SPARC64
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW
select ARCH_WANT_IPC_PARSE_VERSION
diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h
index e562d3caee57..ad7e178337f1 100644
--- a/arch/sparc/include/asm/uaccess_64.h
+++ b/arch/sparc/include/asm/uaccess_64.h
@@ -262,8 +262,8 @@ extern unsigned long __must_check __clear_user(void __user *, unsigned long);
extern __must_check long strlen_user(const char __user *str);
extern __must_check long strnlen_user(const char __user *str, long n);
-#define __copy_to_user_inatomic ___copy_to_user
-#define __copy_from_user_inatomic ___copy_from_user
+#define __copy_to_user_inatomic __copy_to_user
+#define __copy_from_user_inatomic __copy_from_user
struct pt_regs;
extern unsigned long compute_effective_address(struct pt_regs *,
diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c
index baf4366e2d6a..906cbf0f8608 100644
--- a/arch/sparc/kernel/pci.c
+++ b/arch/sparc/kernel/pci.c
@@ -399,8 +399,8 @@ static void apb_fake_ranges(struct pci_dev *dev,
apb_calc_first_last(map, &first, &last);
res = bus->resource[1];
res->flags = IORESOURCE_MEM;
- region.start = (first << 21);
- region.end = (last << 21) + ((1 << 21) - 1);
+ region.start = (first << 29);
+ region.end = (last << 29) + ((1 << 29) - 1);
pcibios_bus_to_resource(dev, res, &region);
}
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
index baebab215492..b9cc9763faf4 100644
--- a/arch/sparc/kernel/process_64.c
+++ b/arch/sparc/kernel/process_64.c
@@ -57,9 +57,12 @@ void arch_cpu_idle(void)
{
if (tlb_type != hypervisor) {
touch_nmi_watchdog();
+ local_irq_enable();
} else {
unsigned long pstate;
+ local_irq_enable();
+
/* The sun4v sleeping code requires that we have PSTATE.IE cleared over
* the cpu sleep hypervisor call.
*/
@@ -81,7 +84,6 @@ void arch_cpu_idle(void)
: "=&r" (pstate)
: "i" (PSTATE_IE));
}
- local_irq_enable();
}
#ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
index 73ec8a798d95..c79c687fbe1e 100644
--- a/arch/sparc/kernel/syscalls.S
+++ b/arch/sparc/kernel/syscalls.S
@@ -189,7 +189,8 @@ linux_sparc_syscall32:
mov %i0, %l5 ! IEU1
5: call %l7 ! CTI Group brk forced
srl %i5, 0, %o5 ! IEU1
- ba,a,pt %xcc, 3f
+ ba,pt %xcc, 3f
+ sra %o0, 0, %o0
/* Linux native system calls enter here... */
.align 32
@@ -217,7 +218,6 @@ linux_sparc_syscall:
3: stx %o0, [%sp + PTREGS_OFF + PT_V9_I0]
ret_sys_call:
ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %g3
- sra %o0, 0, %o0
mov %ulo(TSTATE_XCARRY | TSTATE_ICARRY), %g2
sllx %g2, 32, %g2
diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
index 63bdb29b2549..4f7c82cdd0f5 100644
--- a/arch/x86/kernel/early-quirks.c
+++ b/arch/x86/kernel/early-quirks.c
@@ -202,18 +202,15 @@ static void __init intel_remapping_check(int num, int slot, int func)
revision = read_pci_config_byte(num, slot, func, PCI_REVISION_ID);
/*
- * Revision 13 of all triggering devices id in this quirk have
- * a problem draining interrupts when irq remapping is enabled,
- * and should be flagged as broken. Additionally revisions 0x12
- * and 0x22 of device id 0x3405 has this problem.
+ * Revision <= 13 of all triggering devices id in this quirk
+ * have a problem draining interrupts when irq remapping is
+ * enabled, and should be flagged as broken. Additionally
+ * revision 0x22 of device id 0x3405 has this problem.
*/
- if (revision == 0x13)
+ if (revision <= 0x13)
set_irq_remapping_broken();
- else if ((device == 0x3405) &&
- ((revision == 0x12) ||
- (revision == 0x22)))
+ else if (device == 0x3405 && revision == 0x22)
set_irq_remapping_broken();
-
}
#define QFLAG_APPLY_ONCE 0x1
diff --git a/drivers/char/ipmi/ipmi_bt_sm.c b/drivers/char/ipmi/ipmi_bt_sm.c
index a22a7a502740..8156cafad11a 100644
--- a/drivers/char/ipmi/ipmi_bt_sm.c
+++ b/drivers/char/ipmi/ipmi_bt_sm.c
@@ -352,7 +352,7 @@ static inline void write_all_bytes(struct si_sm_data *bt)
static inline int read_all_bytes(struct si_sm_data *bt)
{
- unsigned char i;
+ unsigned int i;
/*
* length is "framing info", minimum = 4: NetFn, Seq, Cmd, cCode.
diff --git a/drivers/staging/comedi/drivers/8255_pci.c b/drivers/staging/comedi/drivers/8255_pci.c
index 05bcf0dffb8c..e54031c558e8 100644
--- a/drivers/staging/comedi/drivers/8255_pci.c
+++ b/drivers/staging/comedi/drivers/8255_pci.c
@@ -59,6 +59,7 @@ Configuration Options: not applicable, uses PCI auto config
#include "../comedidev.h"
#include "8255.h"
+#include "mite.h"
enum pci_8255_boardid {
BOARD_ADLINK_PCI7224,
@@ -82,6 +83,7 @@ struct pci_8255_boardinfo {
const char *name;
int dio_badr;
int n_8255;
+ unsigned int has_mite:1;
};
static const struct pci_8255_boardinfo pci_8255_boards[] = {
@@ -129,36 +131,43 @@ static const struct pci_8255_boardinfo pci_8255_boards[] = {
.name = "ni_pci-dio-96",
.dio_badr = 1,
.n_8255 = 4,
+ .has_mite = 1,
},
[BOARD_NI_PCIDIO96B] = {
.name = "ni_pci-dio-96b",
.dio_badr = 1,
.n_8255 = 4,
+ .has_mite = 1,
},
[BOARD_NI_PXI6508] = {
.name = "ni_pxi-6508",
.dio_badr = 1,
.n_8255 = 4,
+ .has_mite = 1,
},
[BOARD_NI_PCI6503] = {
.name = "ni_pci-6503",
.dio_badr = 1,
.n_8255 = 1,
+ .has_mite = 1,
},
[BOARD_NI_PCI6503B] = {
.name = "ni_pci-6503b",
.dio_badr = 1,
.n_8255 = 1,
+ .has_mite = 1,
},
[BOARD_NI_PCI6503X] = {
.name = "ni_pci-6503x",
.dio_badr = 1,
.n_8255 = 1,
+ .has_mite = 1,
},
[BOARD_NI_PXI_6503] = {
.name = "ni_pxi-6503",
.dio_badr = 1,
.n_8255 = 1,
+ .has_mite = 1,
},
};
@@ -166,6 +175,25 @@ struct pci_8255_private {
void __iomem *mmio_base;
};
+static int pci_8255_mite_init(struct pci_dev *pcidev)
+{
+ void __iomem *mite_base;
+ u32 main_phys_addr;
+
+ /* ioremap the MITE registers (BAR 0) temporarily */
+ mite_base = pci_ioremap_bar(pcidev, 0);
+ if (!mite_base)
+ return -ENOMEM;
+
+ /* set data window to main registers (BAR 1) */
+ main_phys_addr = pci_resource_start(pcidev, 1);
+ writel(main_phys_addr | WENAB, mite_base + MITE_IODWBSR);
+
+ /* finished with MITE registers */
+ iounmap(mite_base);
+ return 0;
+}
+
static int pci_8255_mmio(int dir, int port, int data, unsigned long iobase)
{
void __iomem *mmio_base = (void __iomem *)iobase;
@@ -205,6 +233,12 @@ static int pci_8255_auto_attach(struct comedi_device *dev,
if (ret)
return ret;
+ if (board->has_mite) {
+ ret = pci_8255_mite_init(pcidev);
+ if (ret)
+ return ret;
+ }
+
is_mmio = (pci_resource_flags(pcidev, board->dio_badr) &
IORESOURCE_MEM) != 0;
if (is_mmio) {
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index 59d26ef538d8..3723c0ebb316 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -1267,12 +1267,13 @@ static void pty_line_name(struct tty_driver *driver, int index, char *p)
*
* Locking: None
*/
-static void tty_line_name(struct tty_driver *driver, int index, char *p)
+static ssize_t tty_line_name(struct tty_driver *driver, int index, char *p)
{
if (driver->flags & TTY_DRIVER_UNNUMBERED_NODE)
- strcpy(p, driver->name);
+ return sprintf(p, "%s", driver->name);
else
- sprintf(p, "%s%d", driver->name, index + driver->name_base);
+ return sprintf(p, "%s%d", driver->name,
+ index + driver->name_base);
}
/**
@@ -3538,9 +3539,19 @@ static ssize_t show_cons_active(struct device *dev,
if (i >= ARRAY_SIZE(cs))
break;
}
- while (i--)
- count += sprintf(buf + count, "%s%d%c",
- cs[i]->name, cs[i]->index, i ? ' ':'\n');
+ while (i--) {
+ int index = cs[i]->index;
+ struct tty_driver *drv = cs[i]->device(cs[i], &index);
+
+ /* don't resolve tty0 as some programs depend on it */
+ if (drv && (cs[i]->index > 0 || drv->major != TTY_MAJOR))
+ count += tty_line_name(drv, index, buf + count);
+ else
+ count += sprintf(buf + count, "%s%d",
+ cs[i]->name, cs[i]->index);
+
+ count += sprintf(buf + count, "%c", i ? ' ':'\n');
+ }
console_unlock();
return count;
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index b8b60b660c8f..4354b9127713 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -3161,6 +3161,8 @@ static int barrier_all_devices(struct btrfs_fs_info *info)
/* send down all the barriers */
head = &info->fs_devices->devices;
list_for_each_entry_rcu(dev, head, dev_list) {
+ if (dev->missing)
+ continue;
if (!dev->bdev) {
errors_send++;
continue;
@@ -3175,6 +3177,8 @@ static int barrier_all_devices(struct btrfs_fs_info *info)
/* wait for all the barriers */
list_for_each_entry_rcu(dev, head, dev_list) {
+ if (dev->missing)
+ continue;
if (!dev->bdev) {
errors_wait++;
continue;
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index a2b625e279db..84d817b842a8 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -2511,6 +2511,27 @@ ext4_ext_rm_leaf(handle_t *handle, struct inode *inode,
ex_ee_block = le32_to_cpu(ex->ee_block);
ex_ee_len = ext4_ext_get_actual_len(ex);
+ /*
+ * If we're starting with an extent other than the last one in the
+ * node, we need to see if it shares a cluster with the extent to
+ * the right (towards the end of the file). If its leftmost cluster
+ * is this extent's rightmost cluster and it is not cluster aligned,
+ * we'll mark it as a partial that is not to be deallocated.
+ */
+
+ if (ex != EXT_LAST_EXTENT(eh)) {
+ ext4_fsblk_t current_pblk, right_pblk;
+ long long current_cluster, right_cluster;
+
+ current_pblk = ext4_ext_pblock(ex) + ex_ee_len - 1;
+ current_cluster = (long long)EXT4_B2C(sbi, current_pblk);
+ right_pblk = ext4_ext_pblock(ex + 1);
+ right_cluster = (long long)EXT4_B2C(sbi, right_pblk);
+ if (current_cluster == right_cluster &&
+ EXT4_PBLK_COFF(sbi, right_pblk))
+ *partial_cluster = -right_cluster;
+ }
+
trace_ext4_ext_rm_leaf(inode, start, ex, *partial_cluster);
while (ex >= EXT_FIRST_EXTENT(eh) &&
@@ -4032,7 +4053,7 @@ int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
struct ext4_extent newex, *ex, *ex2;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
ext4_fsblk_t newblock = 0;
- int free_on_err = 0, err = 0, depth;
+ int free_on_err = 0, err = 0, depth, ret;
unsigned int allocated = 0, offset = 0;
unsigned int allocated_clusters = 0;
struct ext4_allocation_request ar;
@@ -4093,9 +4114,13 @@ int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
if (!ext4_ext_is_uninitialized(ex))
goto out;
- allocated = ext4_ext_handle_uninitialized_extents(
+ ret = ext4_ext_handle_uninitialized_extents(
handle, inode, map, path, flags,
allocated, newblock);
+ if (ret < 0)
+ err = ret;
+ else
+ allocated = ret;
goto out3;
}
}
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index e3ab1e4dc442..387213ac2608 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -87,16 +87,29 @@ static inline struct inode *wb_inode(struct list_head *head)
#define CREATE_TRACE_POINTS
#include <trace/events/writeback.h>
+static void bdi_wakeup_thread(struct backing_dev_info *bdi)
+{
+ spin_lock_bh(&bdi->wb_lock);
+ if (test_bit(BDI_registered, &bdi->state))
+ mod_delayed_work(bdi_wq, &bdi->wb.dwork, 0);
+ spin_unlock_bh(&bdi->wb_lock);
+}
+
static void bdi_queue_work(struct backing_dev_info *bdi,
struct wb_writeback_work *work)
{
trace_writeback_queue(bdi, work);
spin_lock_bh(&bdi->wb_lock);
+ if (!test_bit(BDI_registered, &bdi->state)) {
+ if (work->done)
+ complete(work->done);
+ goto out_unlock;
+ }
list_add_tail(&work->list, &bdi->work_list);
- spin_unlock_bh(&bdi->wb_lock);
-
mod_delayed_work(bdi_wq, &bdi->wb.dwork, 0);
+out_unlock:
+ spin_unlock_bh(&bdi->wb_lock);
}
static void
@@ -112,7 +125,7 @@ __bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages,
work = kzalloc(sizeof(*work), GFP_ATOMIC);
if (!work) {
trace_writeback_nowork(bdi);
- mod_delayed_work(bdi_wq, &bdi->wb.dwork, 0);
+ bdi_wakeup_thread(bdi);
return;
}
@@ -159,7 +172,7 @@ void bdi_start_background_writeback(struct backing_dev_info *bdi)
* writeback as soon as there is no other work to do.
*/
trace_writeback_wake_background(bdi);
- mod_delayed_work(bdi_wq, &bdi->wb.dwork, 0);
+ bdi_wakeup_thread(bdi);
}
/*
@@ -1016,7 +1029,7 @@ void bdi_writeback_workfn(struct work_struct *work)
current->flags |= PF_SWAPWRITE;
if (likely(!current_is_workqueue_rescuer() ||
- list_empty(&bdi->bdi_list))) {
+ !test_bit(BDI_registered, &bdi->state))) {
/*
* The normal path. Keep writing back @bdi until its
* work_list is empty. Note that this path is also taken
@@ -1038,10 +1051,10 @@ void bdi_writeback_workfn(struct work_struct *work)
trace_writeback_pages_written(pages_written);
}
- if (!list_empty(&bdi->work_list) ||
- (wb_has_dirty_io(wb) && dirty_writeback_interval))
- queue_delayed_work(bdi_wq, &wb->dwork,
- msecs_to_jiffies(dirty_writeback_interval * 10));
+ if (!list_empty(&bdi->work_list))
+ mod_delayed_work(bdi_wq, &wb->dwork, 0);
+ else if (wb_has_dirty_io(wb) && dirty_writeback_interval)
+ bdi_wakeup_thread_delayed(bdi);
current->flags &= ~PF_SWAPWRITE;
}
diff --git a/fs/jffs2/compr_rtime.c b/fs/jffs2/compr_rtime.c
index 16a5047903a6..406d9cc84ba8 100644
--- a/fs/jffs2/compr_rtime.c
+++ b/fs/jffs2/compr_rtime.c
@@ -33,7 +33,7 @@ static int jffs2_rtime_compress(unsigned char *data_in,
unsigned char *cpage_out,
uint32_t *sourcelen, uint32_t *dstlen)
{
- short positions[256];
+ unsigned short positions[256];
int outpos = 0;
int pos=0;
@@ -74,7 +74,7 @@ static int jffs2_rtime_decompress(unsigned char *data_in,
unsigned char *cpage_out,
uint32_t srclen, uint32_t destlen)
{
- short positions[256];
+ unsigned short positions[256];
int outpos = 0;
int pos=0;
diff --git a/fs/jffs2/nodelist.h b/fs/jffs2/nodelist.h
index e4619b00f7c5..fa35ff79ab35 100644
--- a/fs/jffs2/nodelist.h
+++ b/fs/jffs2/nodelist.h
@@ -231,7 +231,7 @@ struct jffs2_tmp_dnode_info
uint32_t version;
uint32_t data_crc;
uint32_t partial_crc;
- uint16_t csize;
+ uint32_t csize;
uint16_t overlapped;
};
diff --git a/fs/jffs2/nodemgmt.c b/fs/jffs2/nodemgmt.c
index 03310721712f..b6bd4affd9ad 100644
--- a/fs/jffs2/nodemgmt.c
+++ b/fs/jffs2/nodemgmt.c
@@ -179,6 +179,7 @@ int jffs2_reserve_space(struct jffs2_sb_info *c, uint32_t minsize,
spin_unlock(&c->erase_completion_lock);
schedule();
+ remove_wait_queue(&c->erase_wait, &wait);
} else
spin_unlock(&c->erase_completion_lock);
} else if (ret)
@@ -211,20 +212,25 @@ out:
int jffs2_reserve_space_gc(struct jffs2_sb_info *c, uint32_t minsize,
uint32_t *len, uint32_t sumsize)
{
- int ret = -EAGAIN;
+ int ret;
minsize = PAD(minsize);
jffs2_dbg(1, "%s(): Requested 0x%x bytes\n", __func__, minsize);
- spin_lock(&c->erase_completion_lock);
- while(ret == -EAGAIN) {
+ while (true) {
+ spin_lock(&c->erase_completion_lock);
ret = jffs2_do_reserve_space(c, minsize, len, sumsize);
if (ret) {
jffs2_dbg(1, "%s(): looping, ret is %d\n",
__func__, ret);
}
+ spin_unlock(&c->erase_completion_lock);
+
+ if (ret == -EAGAIN)
+ cond_resched();
+ else
+ break;
}
- spin_unlock(&c->erase_completion_lock);
if (!ret)
ret = jffs2_prealloc_raw_node_refs(c, c->nextblock, 1);
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
index c3881553f7d1..4cfdbf28fc6a 100644
--- a/include/linux/backing-dev.h
+++ b/include/linux/backing-dev.h
@@ -95,7 +95,7 @@ struct backing_dev_info {
unsigned int max_ratio, max_prop_frac;
struct bdi_writeback wb; /* default writeback info for this bdi */
- spinlock_t wb_lock; /* protects work_list */
+ spinlock_t wb_lock; /* protects work_list & wb.dwork scheduling */
struct list_head work_list;
diff --git a/kernel/exit.c b/kernel/exit.c
index 7bb73f9d09db..6682b2ea5b11 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -570,9 +570,6 @@ static void reparent_leader(struct task_struct *father, struct task_struct *p,
struct list_head *dead)
{
list_move_tail(&p->sibling, &p->real_parent->children);
-
- if (p->exit_state == EXIT_DEAD)
- return;
/*
* If this is a threaded reparent there is no need to
* notify anyone anything has happened.
@@ -580,9 +577,19 @@ static void reparent_leader(struct task_struct *father, struct task_struct *p,
if (same_thread_group(p->real_parent, father))
return;
- /* We don't want people slaying init. */
+ /*
+ * We don't want people slaying init.
+ *
+ * Note: we do this even if it is EXIT_DEAD, wait_task_zombie()
+ * can change ->exit_state to EXIT_ZOMBIE. If this is the final
+ * state, do_notify_parent() was already called and ->exit_signal
+ * doesn't matter.
+ */
p->exit_signal = SIGCHLD;
+ if (p->exit_state == EXIT_DEAD)
+ return;
+
/* If it has exited notify the new parent about this child's death. */
if (!p->ptrace &&
p->exit_state == EXIT_ZOMBIE && thread_group_empty(p)) {
@@ -794,6 +801,8 @@ void do_exit(long code)
exit_shm(tsk);
exit_files(tsk);
exit_fs(tsk);
+ if (group_dead)
+ disassociate_ctty(1);
exit_task_namespaces(tsk);
exit_task_work(tsk);
check_stack_usage();
@@ -809,13 +818,9 @@ void do_exit(long code)
cgroup_exit(tsk, 1);
- if (group_dead)
- disassociate_ctty(1);
-
module_put(task_thread_info(tsk)->exec_domain->module);
proc_exit_connector(tsk);
-
/*
* FIXME: do that only when needed, using sched_exit tracepoint
*/
diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
index 6917e8edb48e..e32703d5e0ab 100644
--- a/kernel/pid_namespace.c
+++ b/kernel/pid_namespace.c
@@ -312,7 +312,9 @@ static void *pidns_get(struct task_struct *task)
struct pid_namespace *ns;
rcu_read_lock();
- ns = get_pid_ns(task_active_pid_ns(task));
+ ns = task_active_pid_ns(task);
+ if (ns)
+ get_pid_ns(ns);
rcu_read_unlock();
return ns;
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
index 9064b919a406..9bea1d7dd21f 100644
--- a/kernel/user_namespace.c
+++ b/kernel/user_namespace.c
@@ -148,7 +148,7 @@ static u32 map_id_range_down(struct uid_gid_map *map, u32 id, u32 count)
/* Find the matching extent */
extents = map->nr_extents;
- smp_read_barrier_depends();
+ smp_rmb();
for (idx = 0; idx < extents; idx++) {
first = map->extent[idx].first;
last = first + map->extent[idx].count - 1;
@@ -172,7 +172,7 @@ static u32 map_id_down(struct uid_gid_map *map, u32 id)
/* Find the matching extent */
extents = map->nr_extents;
- smp_read_barrier_depends();
+ smp_rmb();
for (idx = 0; idx < extents; idx++) {
first = map->extent[idx].first;
last = first + map->extent[idx].count - 1;
@@ -195,7 +195,7 @@ static u32 map_id_up(struct uid_gid_map *map, u32 id)
/* Find the matching extent */
extents = map->nr_extents;
- smp_read_barrier_depends();
+ smp_rmb();
for (idx = 0; idx < extents; idx++) {
first = map->extent[idx].lower_first;
last = first + map->extent[idx].count - 1;
@@ -611,9 +611,8 @@ static ssize_t map_write(struct file *file, const char __user *buf,
* were written before the count of the extents.
*
* To achieve this smp_wmb() is used on guarantee the write
- * order and smp_read_barrier_depends() is guaranteed that we
- * don't have crazy architectures returning stale data.
- *
+ * order and smp_rmb() is guaranteed that we don't have crazy
+ * architectures returning stale data.
*/
mutex_lock(&id_map_mutex);
diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index 502517492258..eea1a9dfac38 100644
--- a/mm/backing-dev.c
+++ b/mm/backing-dev.c
@@ -287,13 +287,19 @@ int bdi_has_dirty_io(struct backing_dev_info *bdi)
* Note, we wouldn't bother setting up the timer, but this function is on the
* fast-path (used by '__mark_inode_dirty()'), so we save few context switches
* by delaying the wake-up.
+ *
+ * We have to be careful not to postpone flush work if it is scheduled for
+ * earlier. Thus we use queue_delayed_work().
*/
void bdi_wakeup_thread_delayed(struct backing_dev_info *bdi)
{
unsigned long timeout;
timeout = msecs_to_jiffies(dirty_writeback_interval * 10);
- mod_delayed_work(bdi_wq, &bdi->wb.dwork, timeout);
+ spin_lock_bh(&bdi->wb_lock);
+ if (test_bit(BDI_registered, &bdi->state))
+ queue_delayed_work(bdi_wq, &bdi->wb.dwork, timeout);
+ spin_unlock_bh(&bdi->wb_lock);
}
/*
@@ -306,9 +312,6 @@ static void bdi_remove_from_list(struct backing_dev_info *bdi)
spin_unlock_bh(&bdi_lock);
synchronize_rcu_expedited();
-
- /* bdi_list is now unused, clear it to mark @bdi dying */
- INIT_LIST_HEAD(&bdi->bdi_list);
}
int bdi_register(struct backing_dev_info *bdi, struct device *parent,
@@ -359,6 +362,11 @@ static void bdi_wb_shutdown(struct backing_dev_info *bdi)
*/
bdi_remove_from_list(bdi);
+ /* Make sure nobody queues further work */
+ spin_lock_bh(&bdi->wb_lock);
+ clear_bit(BDI_registered, &bdi->state);
+ spin_unlock_bh(&bdi->wb_lock);
+
/*
* Drain work list and shutdown the delayed_work. At this point,
* @bdi->bdi_list is empty telling bdi_Writeback_workfn() that @bdi
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index dcaa6dbbab2c..cfca44f8d048 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -3619,7 +3619,13 @@ static void hci_le_ltk_request_evt(struct hci_dev *hdev, struct sk_buff *skb)
hci_send_cmd(hdev, HCI_OP_LE_LTK_REPLY, sizeof(cp), &cp);
- if (ltk->type & HCI_SMP_STK) {
+ /* Ref. Bluetooth Core SPEC pages 1975 and 2004. STK is a
+ * temporary key used to encrypt a connection following
+ * pairing. It is used during the Encrypted Session Setup to
+ * distribute the keys. Later, security can be re-established
+ * using a distributed LTK.
+ */
+ if (ltk->type == HCI_SMP_STK_SLAVE) {
list_del(&ltk->list);
kfree(ltk);
}

View File

@@ -0,0 +1,731 @@
From 74fc2e85c080b0ddc2a4b2565eda97c55300303d Mon Sep 17 00:00:00 2001
From: wolfgar <stephan.rafin@laposte.net>
Date: Sat, 26 Apr 2014 16:50:32 +0200
Subject: [PATCH] Merge all CEC driver changes to 3.10 This commit pushes all
changes I did in the 3.0.35 kernel to improve/fix its behavior with libcec
port for imx6
It also fixes CEC clock handling in case of FB mode change event
and of HDMI cable disconnection
---
drivers/mxc/hdmi-cec/mxc_hdmi-cec.c | 327 +++++++++++++++---------------------
drivers/video/mxc/mxc_hdmi.c | 14 +-
2 files changed, 147 insertions(+), 194 deletions(-)
diff --git a/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c b/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
index d0113ee..3a8aff4 100644
--- a/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
+++ b/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
@@ -55,6 +55,8 @@
#define MESSAGE_TYPE_CONNECTED 4
#define MESSAGE_TYPE_SEND_SUCCESS 5
+#define CEC_TX_INPROGRESS -1
+#define CEC_TX_AVAIL 0
struct hdmi_cec_priv {
int receive_error;
@@ -63,7 +65,9 @@ struct hdmi_cec_priv {
bool cec_state;
u8 last_msg[MAX_MESSAGE_LEN];
u8 msg_len;
- u8 latest_cec_stat;
+ int tx_answer;
+ u16 latest_cec_stat;
+ u8 link_status;
spinlock_t irq_lock;
struct delayed_work hdmi_cec_work;
struct mutex lock;
@@ -76,6 +80,7 @@ struct hdmi_cec_event {
struct list_head list;
};
+
static LIST_HEAD(head);
static int hdmi_cec_major;
@@ -84,11 +89,14 @@ static struct hdmi_cec_priv hdmi_cec_data;
static u8 open_count;
static wait_queue_head_t hdmi_cec_queue;
+static wait_queue_head_t tx_cec_queue;
+
static irqreturn_t mxc_hdmi_cec_isr(int irq, void *data)
{
struct hdmi_cec_priv *hdmi_cec = data;
- u8 cec_stat = 0;
+ u16 cec_stat = 0;
unsigned long flags;
+ u8 phy_stat0;
spin_lock_irqsave(&hdmi_cec->irq_lock, flags);
@@ -96,16 +104,24 @@ static irqreturn_t mxc_hdmi_cec_isr(int irq, void *data)
cec_stat = hdmi_readb(HDMI_IH_CEC_STAT0);
hdmi_writeb(cec_stat, HDMI_IH_CEC_STAT0);
-
+ phy_stat0 = hdmi_readb(HDMI_PHY_STAT0) & 0x02;
+ if (hdmi_cec->link_status ^ phy_stat0) {
+ /* HPD value changed */
+ hdmi_cec->link_status = phy_stat0;
+ if (hdmi_cec->link_status)
+ cec_stat |= 0x80; /* Connected */
+ else
+ cec_stat |= 0x100; /* Disconnected */
+ }
if ((cec_stat & (HDMI_IH_CEC_STAT0_ERROR_INIT | \
HDMI_IH_CEC_STAT0_NACK | HDMI_IH_CEC_STAT0_EOM | \
- HDMI_IH_CEC_STAT0_DONE)) == 0) {
+ HDMI_IH_CEC_STAT0_DONE | 0x180)) == 0) {
spin_unlock_irqrestore(&hdmi_cec->irq_lock, flags);
return IRQ_HANDLED;
}
-
pr_debug("HDMI CEC interrupt received\n");
- hdmi_cec->latest_cec_stat = cec_stat;
+ /* FIXME : there is a race with latest_cec_stat */
+ hdmi_cec->latest_cec_stat = cec_stat ;
schedule_delayed_work(&(hdmi_cec->hdmi_cec_work), msecs_to_jiffies(20));
@@ -118,115 +134,70 @@ void mxc_hdmi_cec_handle(u16 cec_stat)
{
u8 val = 0, i = 0;
struct hdmi_cec_event *event = NULL;
-
- /* The current transmission is successful (for initiator only). */
+ /*The current transmission is successful (for initiator only).*/
if (!open_count)
return;
if (cec_stat & HDMI_IH_CEC_STAT0_DONE) {
-
- event = vmalloc(sizeof(struct hdmi_cec_event));
- if (NULL == event) {
- pr_err("%s: Not enough memory!\n", __func__);
- return;
- }
-
- memset(event, 0, sizeof(struct hdmi_cec_event));
- event->event_type = MESSAGE_TYPE_SEND_SUCCESS;
-
- mutex_lock(&hdmi_cec_data.lock);
- list_add_tail(&event->list, &head);
- mutex_unlock(&hdmi_cec_data.lock);
-
- wake_up(&hdmi_cec_queue);
+ hdmi_cec_data.tx_answer = cec_stat;
+ wake_up(&tx_cec_queue);
}
-
- /* EOM is detected so that the received data is ready
- * in the receiver data buffer
- */
+ /*EOM is detected so that the received data is ready in the receiver data buffer*/
if (cec_stat & HDMI_IH_CEC_STAT0_EOM) {
-
hdmi_writeb(0x02, HDMI_IH_CEC_STAT0);
-
event = vmalloc(sizeof(struct hdmi_cec_event));
if (NULL == event) {
pr_err("%s: Not enough memory!\n", __func__);
return;
}
memset(event, 0, sizeof(struct hdmi_cec_event));
-
event->msg_len = hdmi_readb(HDMI_CEC_RX_CNT);
if (!event->msg_len) {
pr_err("%s: Invalid CEC message length!\n", __func__);
return;
}
event->event_type = MESSAGE_TYPE_RECEIVE_SUCCESS;
-
for (i = 0; i < event->msg_len; i++)
event->msg[i] = hdmi_readb(HDMI_CEC_RX_DATA0+i);
hdmi_writeb(0x0, HDMI_CEC_LOCK);
-
mutex_lock(&hdmi_cec_data.lock);
list_add_tail(&event->list, &head);
mutex_unlock(&hdmi_cec_data.lock);
-
wake_up(&hdmi_cec_queue);
}
-
- /* An error is detected on cec line (for initiator only). */
+ /*An error is detected on cec line (for initiator only). */
if (cec_stat & HDMI_IH_CEC_STAT0_ERROR_INIT) {
-
mutex_lock(&hdmi_cec_data.lock);
hdmi_cec_data.send_error++;
- if (hdmi_cec_data.send_error > 5) {
- pr_err("%s:Re-transmission is attempted more than 5 times!\n",
- __func__);
+ if (hdmi_cec_data.send_error > 2) {
+ pr_err("%s:Re-transmission is attempted more than 2 times!\n", __func__);
hdmi_cec_data.send_error = 0;
mutex_unlock(&hdmi_cec_data.lock);
+ hdmi_cec_data.tx_answer = cec_stat;
+ wake_up(&tx_cec_queue);
return;
}
-
- for (i = 0; i < hdmi_cec_data.msg_len; i++) {
- hdmi_writeb(hdmi_cec_data.last_msg[i],
- HDMI_CEC_TX_DATA0 + i);
- }
+ for (i = 0; i < hdmi_cec_data.msg_len; i++)
+ hdmi_writeb(hdmi_cec_data.last_msg[i], HDMI_CEC_TX_DATA0+i);
hdmi_writeb(hdmi_cec_data.msg_len, HDMI_CEC_TX_CNT);
-
val = hdmi_readb(HDMI_CEC_CTRL);
val |= 0x01;
hdmi_writeb(val, HDMI_CEC_CTRL);
mutex_unlock(&hdmi_cec_data.lock);
}
-
- /* A frame is not acknowledged in a directly addressed message.
- * Or a frame is negatively acknowledged in
- * a broadcast message (for initiator only).
- */
+ /*A frame is not acknowledged in a directly addressed message. Or a frame is negatively acknowledged in
+ a broadcast message (for initiator only).*/
if (cec_stat & HDMI_IH_CEC_STAT0_NACK) {
- event = vmalloc(sizeof(struct hdmi_cec_event));
- if (NULL == event) {
- pr_err("%s: Not enough memory\n", __func__);
- return;
- }
- memset(event, 0, sizeof(struct hdmi_cec_event));
- event->event_type = MESSAGE_TYPE_NOACK;
-
- mutex_lock(&hdmi_cec_data.lock);
- list_add_tail(&event->list, &head);
- mutex_unlock(&hdmi_cec_data.lock);
-
- wake_up(&hdmi_cec_queue);
+ hdmi_cec_data.tx_answer = cec_stat;
+ wake_up(&tx_cec_queue);
}
-
- /* An error is notified by a follower.
- * Abnormal logic data bit error (for follower).
- */
+ /*An error is notified by a follower. Abnormal logic data bit error (for follower).*/
if (cec_stat & HDMI_IH_CEC_STAT0_ERROR_FOLL) {
hdmi_cec_data.receive_error++;
}
-
- /* HDMI cable connected */
+ /*HDMI cable connected*/
if (cec_stat & 0x80) {
+ pr_info("HDMI link connected\n");
event = vmalloc(sizeof(struct hdmi_cec_event));
if (NULL == event) {
pr_err("%s: Not enough memory\n", __func__);
@@ -234,16 +205,14 @@ void mxc_hdmi_cec_handle(u16 cec_stat)
}
memset(event, 0, sizeof(struct hdmi_cec_event));
event->event_type = MESSAGE_TYPE_CONNECTED;
-
mutex_lock(&hdmi_cec_data.lock);
list_add_tail(&event->list, &head);
mutex_unlock(&hdmi_cec_data.lock);
-
wake_up(&hdmi_cec_queue);
}
-
- /* HDMI cable disconnected */
+ /*HDMI cable disconnected*/
if (cec_stat & 0x100) {
+ pr_info("HDMI link disconnected\n");
event = vmalloc(sizeof(struct hdmi_cec_event));
if (NULL == event) {
pr_err("%s: Not enough memory!\n", __func__);
@@ -251,30 +220,24 @@ void mxc_hdmi_cec_handle(u16 cec_stat)
}
memset(event, 0, sizeof(struct hdmi_cec_event));
event->event_type = MESSAGE_TYPE_DISCONNECTED;
-
mutex_lock(&hdmi_cec_data.lock);
list_add_tail(&event->list, &head);
mutex_unlock(&hdmi_cec_data.lock);
-
wake_up(&hdmi_cec_queue);
}
-
return;
}
EXPORT_SYMBOL(mxc_hdmi_cec_handle);
-
static void mxc_hdmi_cec_worker(struct work_struct *work)
{
u8 val;
-
mxc_hdmi_cec_handle(hdmi_cec_data.latest_cec_stat);
- val = HDMI_IH_CEC_STAT0_WAKEUP | HDMI_IH_CEC_STAT0_ERROR_FOLL |
- HDMI_IH_CEC_STAT0_ARB_LOST;
+ val = HDMI_IH_CEC_STAT0_WAKEUP | HDMI_IH_CEC_STAT0_ERROR_FOLL | HDMI_IH_CEC_STAT0_ARB_LOST;
hdmi_writeb(val, HDMI_IH_MUTE_CEC_STAT0);
}
/*!
- * @brief open function for vpu file operation
+ * @brief open function for cec file operation
*
* @return 0 on success or negative error code on error
*/
@@ -285,13 +248,11 @@ static int hdmi_cec_open(struct inode *inode, struct file *filp)
mutex_unlock(&hdmi_cec_data.lock);
return -EBUSY;
}
-
open_count = 1;
filp->private_data = (void *)(&hdmi_cec_data);
hdmi_cec_data.Logical_address = 15;
hdmi_cec_data.cec_state = false;
mutex_unlock(&hdmi_cec_data.lock);
-
return 0;
}
@@ -299,36 +260,40 @@ static ssize_t hdmi_cec_read(struct file *file, char __user *buf, size_t count,
loff_t *ppos)
{
struct hdmi_cec_event *event = NULL;
-
pr_debug("function : %s\n", __func__);
+
if (!open_count)
return -ENODEV;
-
mutex_lock(&hdmi_cec_data.lock);
if (false == hdmi_cec_data.cec_state) {
mutex_unlock(&hdmi_cec_data.lock);
return -EACCES;
}
- mutex_unlock(&hdmi_cec_data.lock);
- /* delete from list */
- mutex_lock(&hdmi_cec_data.lock);
if (list_empty(&head)) {
- mutex_unlock(&hdmi_cec_data.lock);
- return -EACCES;
+ if (file->f_flags & O_NONBLOCK) {
+ mutex_unlock(&hdmi_cec_data.lock);
+ return -EAGAIN;
+ } else {
+ do {
+ mutex_unlock(&hdmi_cec_data.lock);
+ if (wait_event_interruptible(hdmi_cec_queue, (!list_empty(&head))))
+ return -ERESTARTSYS;
+ mutex_lock(&hdmi_cec_data.lock);
+ } while (list_empty(&head));
+ }
}
+
event = list_first_entry(&head, struct hdmi_cec_event, list);
list_del(&event->list);
mutex_unlock(&hdmi_cec_data.lock);
-
if (copy_to_user(buf, event,
- sizeof(struct hdmi_cec_event) - sizeof(struct list_head))) {
+ sizeof(struct hdmi_cec_event) - sizeof(struct list_head))) {
vfree(event);
return -EFAULT;
}
vfree(event);
-
- return sizeof(struct hdmi_cec_event);
+ return (sizeof(struct hdmi_cec_event) - sizeof(struct list_head));
}
static ssize_t hdmi_cec_write(struct file *file, const char __user *buf,
@@ -339,58 +304,77 @@ static ssize_t hdmi_cec_write(struct file *file, const char __user *buf,
u8 msg_len = 0, val = 0;
pr_debug("function : %s\n", __func__);
+
if (!open_count)
return -ENODEV;
-
mutex_lock(&hdmi_cec_data.lock);
if (false == hdmi_cec_data.cec_state) {
mutex_unlock(&hdmi_cec_data.lock);
return -EACCES;
}
+ /* Ensure that there is only one writer who is the only listener of tx_cec_queue */
+ if (hdmi_cec_data.tx_answer != CEC_TX_AVAIL) {
+ mutex_unlock(&hdmi_cec_data.lock);
+ return -EBUSY;
+ }
mutex_unlock(&hdmi_cec_data.lock);
-
if (count > MAX_MESSAGE_LEN)
return -EINVAL;
-
- mutex_lock(&hdmi_cec_data.lock);
- hdmi_cec_data.send_error = 0;
memset(&msg, 0, MAX_MESSAGE_LEN);
ret = copy_from_user(&msg, buf, count);
- if (ret) {
- ret = -EACCES;
- goto end;
- }
-
+ if (ret)
+ return -EACCES;
+ mutex_lock(&hdmi_cec_data.lock);
+ hdmi_cec_data.send_error = 0;
+ hdmi_cec_data.tx_answer = CEC_TX_INPROGRESS;
msg_len = count;
hdmi_writeb(msg_len, HDMI_CEC_TX_CNT);
- for (i = 0; i < msg_len; i++) {
+ for (i = 0; i < msg_len; i++)
hdmi_writeb(msg[i], HDMI_CEC_TX_DATA0+i);
- }
-
val = hdmi_readb(HDMI_CEC_CTRL);
val |= 0x01;
hdmi_writeb(val, HDMI_CEC_CTRL);
memcpy(hdmi_cec_data.last_msg, msg, msg_len);
hdmi_cec_data.msg_len = msg_len;
+ mutex_unlock(&hdmi_cec_data.lock);
- i = 0;
- val = hdmi_readb(HDMI_CEC_CTRL);
- while ((val & 0x01) == 0x1) {
- msleep(50);
- i++;
- if (i > 3) {
- ret = -EIO;
- goto end;
- }
- val = hdmi_readb(HDMI_CEC_CTRL);
+ ret = wait_event_interruptible_timeout(tx_cec_queue, hdmi_cec_data.tx_answer != CEC_TX_INPROGRESS, HZ);
+
+ if (ret < 0) {
+ ret = -ERESTARTSYS;
+ goto tx_out;
}
-end:
- mutex_unlock(&hdmi_cec_data.lock);
+ if (hdmi_cec_data.tx_answer & HDMI_IH_CEC_STAT0_DONE)
+ /* msg correctly sent */
+ ret = msg_len;
+ else
+ ret = -EIO;
+ tx_out:
+ hdmi_cec_data.tx_answer = CEC_TX_AVAIL;
return ret;
}
+
+static void hdmi_stop_device(void)
+{
+ u8 val;
+
+ hdmi_writeb(0x10, HDMI_CEC_CTRL);
+ val = HDMI_IH_CEC_STAT0_WAKEUP | HDMI_IH_CEC_STAT0_ERROR_FOLL | HDMI_IH_CEC_STAT0_ERROR_INIT | HDMI_IH_CEC_STAT0_ARB_LOST | \
+ HDMI_IH_CEC_STAT0_NACK | HDMI_IH_CEC_STAT0_EOM | HDMI_IH_CEC_STAT0_DONE;
+ hdmi_writeb(val, HDMI_CEC_MASK);
+ hdmi_writeb(val, HDMI_IH_MUTE_CEC_STAT0);
+ hdmi_writeb(0x0, HDMI_CEC_POLARITY);
+ val = hdmi_readb(HDMI_MC_CLKDIS);
+ val |= HDMI_MC_CLKDIS_CECCLK_DISABLE;
+ hdmi_writeb(val, HDMI_MC_CLKDIS);
+ mutex_lock(&hdmi_cec_data.lock);
+ hdmi_cec_data.cec_state = false;
+ mutex_unlock(&hdmi_cec_data.lock);
+}
+
/*!
* @brief IO ctrl function for vpu file operation
* @param cmd IO ctrl command
@@ -402,93 +386,59 @@ static long hdmi_cec_ioctl(struct file *filp, u_int cmd,
int ret = 0, status = 0;
u8 val = 0, msg = 0;
struct mxc_edid_cfg hdmi_edid_cfg;
-
pr_debug("function : %s\n", __func__);
if (!open_count)
return -ENODEV;
-
switch (cmd) {
case HDMICEC_IOC_SETLOGICALADDRESS:
mutex_lock(&hdmi_cec_data.lock);
if (false == hdmi_cec_data.cec_state) {
mutex_unlock(&hdmi_cec_data.lock);
+ pr_err("Trying to set logical address while not started\n");
return -EACCES;
}
-
hdmi_cec_data.Logical_address = (u8)arg;
-
if (hdmi_cec_data.Logical_address <= 7) {
val = 1 << hdmi_cec_data.Logical_address;
hdmi_writeb(val, HDMI_CEC_ADDR_L);
hdmi_writeb(0, HDMI_CEC_ADDR_H);
- } else if (hdmi_cec_data.Logical_address > 7 &&
- hdmi_cec_data.Logical_address <= 15) {
+ } else if (hdmi_cec_data.Logical_address > 7 && hdmi_cec_data.Logical_address <= 15) {
val = 1 << (hdmi_cec_data.Logical_address - 8);
hdmi_writeb(val, HDMI_CEC_ADDR_H);
hdmi_writeb(0, HDMI_CEC_ADDR_L);
- } else {
+ } else
ret = -EINVAL;
- }
-
- /* Send Polling message with same source
- * and destination address
- */
+ /*Send Polling message with same source and destination address*/
if (0 == ret && 15 != hdmi_cec_data.Logical_address) {
- msg = (hdmi_cec_data.Logical_address << 4) |
- hdmi_cec_data.Logical_address;
+ msg = (hdmi_cec_data.Logical_address << 4)|hdmi_cec_data.Logical_address;
hdmi_writeb(1, HDMI_CEC_TX_CNT);
hdmi_writeb(msg, HDMI_CEC_TX_DATA0);
-
val = hdmi_readb(HDMI_CEC_CTRL);
val |= 0x01;
hdmi_writeb(val, HDMI_CEC_CTRL);
}
-
mutex_unlock(&hdmi_cec_data.lock);
break;
-
case HDMICEC_IOC_STARTDEVICE:
val = hdmi_readb(HDMI_MC_CLKDIS);
val &= ~HDMI_MC_CLKDIS_CECCLK_DISABLE;
hdmi_writeb(val, HDMI_MC_CLKDIS);
-
hdmi_writeb(0x02, HDMI_CEC_CTRL);
-
- val = HDMI_IH_CEC_STAT0_ERROR_INIT | HDMI_IH_CEC_STAT0_NACK |
- HDMI_IH_CEC_STAT0_EOM | HDMI_IH_CEC_STAT0_DONE;
+ /* Force read unlock */
+ hdmi_writeb(0x0, HDMI_CEC_LOCK);
+ val = HDMI_IH_CEC_STAT0_ERROR_INIT | HDMI_IH_CEC_STAT0_NACK | HDMI_IH_CEC_STAT0_EOM | HDMI_IH_CEC_STAT0_DONE;
hdmi_writeb(val, HDMI_CEC_POLARITY);
-
- val = HDMI_IH_CEC_STAT0_WAKEUP | HDMI_IH_CEC_STAT0_ERROR_FOLL |
- HDMI_IH_CEC_STAT0_ARB_LOST;
+ val = HDMI_IH_CEC_STAT0_WAKEUP | HDMI_IH_CEC_STAT0_ERROR_FOLL | HDMI_IH_CEC_STAT0_ARB_LOST;
hdmi_writeb(val, HDMI_CEC_MASK);
hdmi_writeb(val, HDMI_IH_MUTE_CEC_STAT0);
-
+ hdmi_cec_data.link_status = hdmi_readb(HDMI_PHY_STAT0) & 0x02;
mutex_lock(&hdmi_cec_data.lock);
hdmi_cec_data.cec_state = true;
mutex_unlock(&hdmi_cec_data.lock);
break;
-
case HDMICEC_IOC_STOPDEVICE:
- hdmi_writeb(0x10, HDMI_CEC_CTRL);
-
- val = HDMI_IH_CEC_STAT0_WAKEUP | HDMI_IH_CEC_STAT0_ERROR_FOLL |
- HDMI_IH_CEC_STAT0_ERROR_INIT | HDMI_IH_CEC_STAT0_ARB_LOST |
- HDMI_IH_CEC_STAT0_NACK | HDMI_IH_CEC_STAT0_EOM |
- HDMI_IH_CEC_STAT0_DONE;
- hdmi_writeb(val, HDMI_CEC_MASK);
- hdmi_writeb(val, HDMI_IH_MUTE_CEC_STAT0);
-
- hdmi_writeb(0x0, HDMI_CEC_POLARITY);
-
- val = hdmi_readb(HDMI_MC_CLKDIS);
- val |= HDMI_MC_CLKDIS_CECCLK_DISABLE;
- hdmi_writeb(val, HDMI_MC_CLKDIS);
-
- mutex_lock(&hdmi_cec_data.lock);
- hdmi_cec_data.cec_state = false;
- mutex_unlock(&hdmi_cec_data.lock);
+ hdmi_stop_device();
break;
-
case HDMICEC_IOC_GETPHYADDRESS:
hdmi_get_edid_cfg(&hdmi_edid_cfg);
status = copy_to_user((void __user *)arg,
@@ -497,29 +447,25 @@ static long hdmi_cec_ioctl(struct file *filp, u_int cmd,
if (status)
ret = -EFAULT;
break;
-
default:
ret = -EINVAL;
break;
}
-
- return ret;
+ return ret;
}
/*!
-* @brief Release function for vpu file operation
-* @return 0 on success or negative error code on error
-*/
+ * @brief Release function for vpu file operation
+ * @return 0 on success or negative error code on error
+ */
static int hdmi_cec_release(struct inode *inode, struct file *filp)
{
mutex_lock(&hdmi_cec_data.lock);
-
if (open_count) {
open_count = 0;
hdmi_cec_data.cec_state = false;
hdmi_cec_data.Logical_address = 15;
}
-
mutex_unlock(&hdmi_cec_data.lock);
return 0;
@@ -531,20 +477,18 @@ static unsigned int hdmi_cec_poll(struct file *file, poll_table *wait)
pr_debug("function : %s\n", __func__);
- if (!open_count)
- return -ENODEV;
-
- if (false == hdmi_cec_data.cec_state)
- return -EACCES;
-
poll_wait(file, &hdmi_cec_queue, wait);
+ /* Always writable */
+ mask = (POLLOUT | POLLWRNORM);
+ mutex_lock(&hdmi_cec_data.lock);
if (!list_empty(&head))
- mask |= (POLLIN | POLLRDNORM);
-
+ mask |= (POLLIN | POLLRDNORM);
+ mutex_unlock(&hdmi_cec_data.lock);
return mask;
}
+
const struct file_operations hdmi_cec_fops = {
.owner = THIS_MODULE,
.read = hdmi_cec_read,
@@ -563,20 +507,18 @@ static int hdmi_cec_dev_probe(struct platform_device *pdev)
struct pinctrl *pinctrl;
int irq = platform_get_irq(pdev, 0);
- hdmi_cec_major = register_chrdev(hdmi_cec_major,
- "mxc_hdmi_cec", &hdmi_cec_fops);
+ hdmi_cec_major = register_chrdev(hdmi_cec_major, "mxc_hdmi_cec", &hdmi_cec_fops);
if (hdmi_cec_major < 0) {
dev_err(&pdev->dev, "hdmi_cec: unable to get a major for HDMI CEC\n");
err = -EBUSY;
goto out;
}
-
+
res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
if (unlikely(res == NULL)) {
dev_err(&pdev->dev, "hdmi_cec:No HDMI irq line provided\n");
goto err_out_chrdev;
}
-
spin_lock_init(&hdmi_cec_data.irq_lock);
err = devm_request_irq(&pdev->dev, irq, mxc_hdmi_cec_isr, IRQF_SHARED,
@@ -592,8 +534,8 @@ static int hdmi_cec_dev_probe(struct platform_device *pdev)
goto err_out_chrdev;
}
- temp_class = device_create(hdmi_cec_class, NULL,
- MKDEV(hdmi_cec_major, 0), NULL, "mxc_hdmi_cec");
+ temp_class = device_create(hdmi_cec_class, NULL, MKDEV(hdmi_cec_major, 0),
+ NULL, "mxc_hdmi_cec");
if (IS_ERR(temp_class)) {
err = PTR_ERR(temp_class);
goto err_out_class;
@@ -606,15 +548,14 @@ static int hdmi_cec_dev_probe(struct platform_device *pdev)
}
init_waitqueue_head(&hdmi_cec_queue);
+ init_waitqueue_head(&tx_cec_queue);
INIT_LIST_HEAD(&head);
mutex_init(&hdmi_cec_data.lock);
-
hdmi_cec_data.Logical_address = 15;
-
+ hdmi_cec_data.tx_answer = CEC_TX_AVAIL;
platform_set_drvdata(pdev, &hdmi_cec_data);
-
INIT_DELAYED_WORK(&hdmi_cec_data.hdmi_cec_work, mxc_hdmi_cec_worker);
dev_info(&pdev->dev, "HDMI CEC initialized\n");
@@ -631,12 +572,14 @@ static int hdmi_cec_dev_probe(struct platform_device *pdev)
static int hdmi_cec_dev_remove(struct platform_device *pdev)
{
+ if (hdmi_cec_data.cec_state)
+ hdmi_stop_device();
if (hdmi_cec_major > 0) {
device_destroy(hdmi_cec_class, MKDEV(hdmi_cec_major, 0));
class_destroy(hdmi_cec_class);
unregister_chrdev(hdmi_cec_major, "mxc_hdmi_cec");
hdmi_cec_major = 0;
- }
+}
return 0;
}
@@ -650,9 +593,9 @@ static struct platform_driver mxc_hdmi_cec_driver = {
.probe = hdmi_cec_dev_probe,
.remove = hdmi_cec_dev_remove,
.driver = {
- .name = "mxc_hdmi_cec",
+ .name = "mxc_hdmi_cec",
.of_match_table = imx_hdmi_cec_match,
- },
+ },
};
module_platform_driver(mxc_hdmi_cec_driver);
diff --git a/drivers/video/mxc/mxc_hdmi.c b/drivers/video/mxc/mxc_hdmi.c
index 20c6d70..88d62ce 100644
--- a/drivers/video/mxc/mxc_hdmi.c
+++ b/drivers/video/mxc/mxc_hdmi.c
@@ -1708,8 +1708,12 @@ static void mxc_hdmi_enable_video_path(struct mxc_hdmi *hdmi)
hdmi_writeb(0x16, HDMI_FC_CH1PREAM);
hdmi_writeb(0x21, HDMI_FC_CH2PREAM);
+ /* Save CEC clock */
+ clkdis = hdmi_readb(HDMI_MC_CLKDIS) & HDMI_MC_CLKDIS_CECCLK_DISABLE;
+ clkdis |= ~HDMI_MC_CLKDIS_CECCLK_DISABLE;
+
/* Enable pixel clock and tmds data path */
- clkdis = 0x7F;
+ clkdis = 0x7F & clkdis;
clkdis &= ~HDMI_MC_CLKDIS_PIXELCLK_DISABLE;
hdmi_writeb(clkdis, HDMI_MC_CLKDIS);
@@ -1990,10 +1994,16 @@ static void mxc_hdmi_power_off(struct mxc_dispdrv_handle *disp)
static void mxc_hdmi_cable_disconnected(struct mxc_hdmi *hdmi)
{
+ u8 clkdis;
+
dev_dbg(&hdmi->pdev->dev, "%s\n", __func__);
+ /* Save CEC clock */
+ clkdis = hdmi_readb(HDMI_MC_CLKDIS) & HDMI_MC_CLKDIS_CECCLK_DISABLE;
+ clkdis |= ~HDMI_MC_CLKDIS_CECCLK_DISABLE;
+
/* Disable All HDMI clock */
- hdmi_writeb(0xff, HDMI_MC_CLKDIS);
+ hdmi_writeb(0xff & clkdis, HDMI_MC_CLKDIS);
mxc_hdmi_phy_disable(hdmi);
--
1.9.1

View File

@@ -0,0 +1,76 @@
From 76796e32b20dd8f34aadad8fd91672017d143812 Mon Sep 17 00:00:00 2001
From: wolfgar <stephan.rafin@laposte.net>
Date: Tue, 29 Apr 2014 01:35:01 +0200
Subject: [PATCH] Fix a bug that could result in CEC interrupts to be
improperly muted in case the CEC_STAT register was 0, the worker was not
invoked and as a consequence the interrupts were not unmuted Also try to play
better with the interrupt sharing with hmdi_video
---
drivers/mxc/hdmi-cec/mxc_hdmi-cec.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c b/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
index 3a8aff4..85e259c 100644
--- a/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
+++ b/drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
@@ -97,6 +97,7 @@ static irqreturn_t mxc_hdmi_cec_isr(int irq, void *data)
u16 cec_stat = 0;
unsigned long flags;
u8 phy_stat0;
+ irqreturn_t ret = IRQ_HANDLED;
spin_lock_irqsave(&hdmi_cec->irq_lock, flags);
@@ -105,6 +106,13 @@ static irqreturn_t mxc_hdmi_cec_isr(int irq, void *data)
cec_stat = hdmi_readb(HDMI_IH_CEC_STAT0);
hdmi_writeb(cec_stat, HDMI_IH_CEC_STAT0);
phy_stat0 = hdmi_readb(HDMI_PHY_STAT0) & 0x02;
+
+ if ((cec_stat & (HDMI_IH_CEC_STAT0_ERROR_INIT | \
+ HDMI_IH_CEC_STAT0_NACK | HDMI_IH_CEC_STAT0_EOM | \
+ HDMI_IH_CEC_STAT0_DONE)) == 0) {
+ ret = IRQ_NONE;
+ cec_stat = 0;
+ }
if (hdmi_cec->link_status ^ phy_stat0) {
/* HPD value changed */
hdmi_cec->link_status = phy_stat0;
@@ -113,21 +121,14 @@ static irqreturn_t mxc_hdmi_cec_isr(int irq, void *data)
else
cec_stat |= 0x100; /* Disconnected */
}
- if ((cec_stat & (HDMI_IH_CEC_STAT0_ERROR_INIT | \
- HDMI_IH_CEC_STAT0_NACK | HDMI_IH_CEC_STAT0_EOM | \
- HDMI_IH_CEC_STAT0_DONE | 0x180)) == 0) {
- spin_unlock_irqrestore(&hdmi_cec->irq_lock, flags);
- return IRQ_HANDLED;
- }
pr_debug("HDMI CEC interrupt received\n");
- /* FIXME : there is a race with latest_cec_stat */
hdmi_cec->latest_cec_stat = cec_stat ;
schedule_delayed_work(&(hdmi_cec->hdmi_cec_work), msecs_to_jiffies(20));
spin_unlock_irqrestore(&hdmi_cec->irq_lock, flags);
- return IRQ_HANDLED;
+ return ret;
}
void mxc_hdmi_cec_handle(u16 cec_stat)
@@ -479,9 +480,9 @@ static unsigned int hdmi_cec_poll(struct file *file, poll_table *wait)
poll_wait(file, &hdmi_cec_queue, wait);
- /* Always writable */
- mask = (POLLOUT | POLLWRNORM);
mutex_lock(&hdmi_cec_data.lock);
+ if (hdmi_cec_data.tx_answer == CEC_TX_AVAIL)
+ mask = (POLLOUT | POLLWRNORM);
if (!list_empty(&head))
mask |= (POLLIN | POLLRDNORM);
mutex_unlock(&hdmi_cec_data.lock);
--
1.9.1

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/i386 3.14.0 Kernel Configuration
# Linux/i386 3.14.2 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -688,21 +688,38 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_NETFILTER_ADVANCED is not set
CONFIG_NETFILTER_ADVANCED=y
# CONFIG_BRIDGE_NETFILTER is not set
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
# CONFIG_NETFILTER_NETLINK_ACCT is not set
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
# CONFIG_NF_CONNTRACK_MARK is not set
# CONFIG_NF_CONNTRACK_PROCFS is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
# CONFIG_NF_CT_PROTO_DCCP is not set
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=m
# CONFIG_NF_CONNTRACK_H323 is not set
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
# CONFIG_NF_CONNTRACK_SNMP is not set
# CONFIG_NF_CONNTRACK_PPTP is not set
# CONFIG_NF_CONNTRACK_SANE is not set
CONFIG_NF_CONNTRACK_SIP=m
# CONFIG_NF_CONNTRACK_TFTP is not set
CONFIG_NF_CT_NETLINK=m
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
# CONFIG_NF_NAT_AMANDA is not set
@@ -717,21 +734,72 @@ CONFIG_NETFILTER_XTABLES=m
# Xtables combined modules
#
# CONFIG_NETFILTER_XT_MARK is not set
# CONFIG_NETFILTER_XT_CONNMARK is not set
#
# Xtables targets
#
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
# CONFIG_NETFILTER_XT_TARGET_LED is not set
# CONFIG_NETFILTER_XT_TARGET_LOG is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
#
# Xtables matches
#
# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_BPF is not set
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
# CONFIG_NETFILTER_XT_MATCH_STATE is not set
# CONFIG_NETFILTER_XT_MATCH_CPU is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ECN is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_HL is not set
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_MAC is not set
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
CONFIG_NETFILTER_XT_MATCH_STATE=m
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set
@@ -741,15 +809,22 @@ CONFIG_NETFILTER_XTABLES=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_TTL is not set
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
# CONFIG_IP_NF_TARGET_SYNPROXY is not set
# CONFIG_IP_NF_TARGET_ULOG is not set
CONFIG_NF_NAT_IPV4=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
# CONFIG_IP_NF_TARGET_NETMAP is not set
# CONFIG_IP_NF_TARGET_REDIRECT is not set
# CONFIG_NF_NAT_PPTP is not set
# CONFIG_NF_NAT_H323 is not set
# CONFIG_IP_NF_MANGLE is not set
# CONFIG_IP_NF_RAW is not set
# CONFIG_IP_NF_ARPTABLES is not set
#
# IPv6: Netfilter Configuration
@@ -757,11 +832,20 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
# CONFIG_IP6_NF_MATCH_AH is not set
# CONFIG_IP6_NF_MATCH_EUI64 is not set
# CONFIG_IP6_NF_MATCH_FRAG is not set
# CONFIG_IP6_NF_MATCH_OPTS is not set
# CONFIG_IP6_NF_MATCH_HL is not set
# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
# CONFIG_IP6_NF_MATCH_MH is not set
# CONFIG_IP6_NF_MATCH_RT is not set
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
# CONFIG_IP6_NF_MANGLE is not set
# CONFIG_IP6_NF_RAW is not set
# CONFIG_NF_NAT_IPV6 is not set
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
@@ -2938,7 +3022,7 @@ CONFIG_HID_SPINELPLUS=y
CONFIG_HID_SUNPLUS=y
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
CONFIG_HID_TIVO=y
CONFIG_HID_TOPSEED=y
# CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 3.14.0 Kernel Configuration
# Linux/x86_64 3.14.2 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -676,21 +676,38 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_NETFILTER_ADVANCED is not set
CONFIG_NETFILTER_ADVANCED=y
# CONFIG_BRIDGE_NETFILTER is not set
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
# CONFIG_NETFILTER_NETLINK_ACCT is not set
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
# CONFIG_NF_CONNTRACK_MARK is not set
# CONFIG_NF_CONNTRACK_PROCFS is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
# CONFIG_NF_CT_PROTO_DCCP is not set
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=m
# CONFIG_NF_CONNTRACK_H323 is not set
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
# CONFIG_NF_CONNTRACK_SNMP is not set
# CONFIG_NF_CONNTRACK_PPTP is not set
# CONFIG_NF_CONNTRACK_SANE is not set
CONFIG_NF_CONNTRACK_SIP=m
# CONFIG_NF_CONNTRACK_TFTP is not set
CONFIG_NF_CT_NETLINK=m
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
# CONFIG_NF_NAT_AMANDA is not set
@@ -705,21 +722,72 @@ CONFIG_NETFILTER_XTABLES=m
# Xtables combined modules
#
# CONFIG_NETFILTER_XT_MARK is not set
# CONFIG_NETFILTER_XT_CONNMARK is not set
#
# Xtables targets
#
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
# CONFIG_NETFILTER_XT_TARGET_LED is not set
# CONFIG_NETFILTER_XT_TARGET_LOG is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
#
# Xtables matches
#
# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_BPF is not set
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
# CONFIG_NETFILTER_XT_MATCH_STATE is not set
# CONFIG_NETFILTER_XT_MATCH_CPU is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ECN is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_HL is not set
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_MAC is not set
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
CONFIG_NETFILTER_XT_MATCH_STATE=m
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set
@@ -729,15 +797,22 @@ CONFIG_NETFILTER_XTABLES=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_TTL is not set
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
# CONFIG_IP_NF_TARGET_SYNPROXY is not set
# CONFIG_IP_NF_TARGET_ULOG is not set
CONFIG_NF_NAT_IPV4=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
# CONFIG_IP_NF_TARGET_NETMAP is not set
# CONFIG_IP_NF_TARGET_REDIRECT is not set
# CONFIG_NF_NAT_PPTP is not set
# CONFIG_NF_NAT_H323 is not set
# CONFIG_IP_NF_MANGLE is not set
# CONFIG_IP_NF_RAW is not set
# CONFIG_IP_NF_ARPTABLES is not set
#
# IPv6: Netfilter Configuration
@@ -745,11 +820,20 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
# CONFIG_IP6_NF_MATCH_AH is not set
# CONFIG_IP6_NF_MATCH_EUI64 is not set
# CONFIG_IP6_NF_MATCH_FRAG is not set
# CONFIG_IP6_NF_MATCH_OPTS is not set
# CONFIG_IP6_NF_MATCH_HL is not set
# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
# CONFIG_IP6_NF_MATCH_MH is not set
# CONFIG_IP6_NF_MATCH_RT is not set
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
# CONFIG_IP6_NF_MANGLE is not set
# CONFIG_IP6_NF_RAW is not set
# CONFIG_NF_NAT_IPV6 is not set
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
@@ -2916,7 +3000,7 @@ CONFIG_HID_SPINELPLUS=y
CONFIG_HID_SUNPLUS=y
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
CONFIG_HID_TIVO=y
CONFIG_HID_TOPSEED=y
# CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set

View File

@@ -1,4 +1,4 @@
# Name of the Distro to build (full name, without special charcters)
# Name of the Distro to build (full name, without special characters)
DISTRONAME="OpenELEC"
# short project description

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 3.14.0 Kernel Configuration
# Linux/arm 3.14.2 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -384,6 +384,7 @@ CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_NO_BOOTMEM=y
CONFIG_MEMORY_ISOLATION=y
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
@@ -397,7 +398,8 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_NEED_PER_CPU_KM=y
CONFIG_CLEANCACHE=y
CONFIG_FRONTSWAP=y
# CONFIG_CMA is not set
CONFIG_CMA=y
# CONFIG_CMA_DEBUG is not set
# CONFIG_ZBUD is not set
# CONFIG_ZSWAP is not set
# CONFIG_ZSMALLOC is not set
@@ -555,21 +557,38 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_NETFILTER_ADVANCED is not set
CONFIG_NETFILTER_ADVANCED=y
# CONFIG_BRIDGE_NETFILTER is not set
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
# CONFIG_NETFILTER_NETLINK_ACCT is not set
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
# CONFIG_NF_CONNTRACK_MARK is not set
# CONFIG_NF_CONNTRACK_PROCFS is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
# CONFIG_NF_CT_PROTO_DCCP is not set
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=m
# CONFIG_NF_CONNTRACK_H323 is not set
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
# CONFIG_NF_CONNTRACK_SNMP is not set
# CONFIG_NF_CONNTRACK_PPTP is not set
# CONFIG_NF_CONNTRACK_SANE is not set
CONFIG_NF_CONNTRACK_SIP=m
# CONFIG_NF_CONNTRACK_TFTP is not set
CONFIG_NF_CT_NETLINK=m
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
# CONFIG_NF_NAT_AMANDA is not set
@@ -584,21 +603,72 @@ CONFIG_NETFILTER_XTABLES=m
# Xtables combined modules
#
# CONFIG_NETFILTER_XT_MARK is not set
# CONFIG_NETFILTER_XT_CONNMARK is not set
#
# Xtables targets
#
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
# CONFIG_NETFILTER_XT_TARGET_LED is not set
# CONFIG_NETFILTER_XT_TARGET_LOG is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
#
# Xtables matches
#
# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_BPF is not set
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
# CONFIG_NETFILTER_XT_MATCH_STATE is not set
# CONFIG_NETFILTER_XT_MATCH_CPU is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ECN is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_HL is not set
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_MAC is not set
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
CONFIG_NETFILTER_XT_MATCH_STATE=m
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set
@@ -608,15 +678,22 @@ CONFIG_NETFILTER_XTABLES=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_TTL is not set
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
# CONFIG_IP_NF_TARGET_SYNPROXY is not set
# CONFIG_IP_NF_TARGET_ULOG is not set
CONFIG_NF_NAT_IPV4=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
# CONFIG_IP_NF_TARGET_NETMAP is not set
# CONFIG_IP_NF_TARGET_REDIRECT is not set
# CONFIG_NF_NAT_PPTP is not set
# CONFIG_NF_NAT_H323 is not set
# CONFIG_IP_NF_MANGLE is not set
# CONFIG_IP_NF_RAW is not set
# CONFIG_IP_NF_ARPTABLES is not set
#
# IPv6: Netfilter Configuration
@@ -624,11 +701,20 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
# CONFIG_IP6_NF_MATCH_AH is not set
# CONFIG_IP6_NF_MATCH_EUI64 is not set
# CONFIG_IP6_NF_MATCH_FRAG is not set
# CONFIG_IP6_NF_MATCH_OPTS is not set
# CONFIG_IP6_NF_MATCH_HL is not set
# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
# CONFIG_IP6_NF_MATCH_MH is not set
# CONFIG_IP6_NF_MATCH_RT is not set
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
# CONFIG_IP6_NF_MANGLE is not set
# CONFIG_IP6_NF_RAW is not set
# CONFIG_NF_NAT_IPV6 is not set
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
@@ -756,6 +842,18 @@ CONFIG_REGMAP_I2C=m
CONFIG_REGMAP_SPI=m
CONFIG_REGMAP_MMIO=m
CONFIG_DMA_SHARED_BUFFER=y
CONFIG_DMA_CMA=y
#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=5
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7
#
# Bus devices
@@ -1205,6 +1303,7 @@ CONFIG_HW_RANDOM_BCM2708=y
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_BRCM_CHAR_DRIVERS=y
CONFIG_BCM_VC_CMA=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
# CONFIG_I2C_COMPAT is not set
@@ -2109,7 +2208,7 @@ CONFIG_HID_SPINELPLUS=y
CONFIG_HID_SUNPLUS=y
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
CONFIG_HID_TIVO=y
CONFIG_HID_TOPSEED=y
# CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set

View File

@@ -1,4 +1,4 @@
# Name of the Distro to build (full name, without special charcters)
# Name of the Distro to build (full name, without special characters)
DISTRONAME="OpenELEC"
# short project description

View File

@@ -2,10 +2,8 @@
<advancedsettings>
<showexitbutton>false</showexitbutton>
<destroywindowcontrols>false</destroywindowcontrols>
<fanartres>720</fanartres>
<imageres>540</imageres>
<useddsfanart>false</useddsfanart>
<video>
<defaultplayer>omxplayer</defaultplayer>

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/i386 3.14.0 Kernel Configuration
# Linux/i386 3.14.2 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -688,21 +688,38 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_NETFILTER_ADVANCED is not set
CONFIG_NETFILTER_ADVANCED=y
# CONFIG_BRIDGE_NETFILTER is not set
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
# CONFIG_NETFILTER_NETLINK_ACCT is not set
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
# CONFIG_NF_CONNTRACK_MARK is not set
# CONFIG_NF_CONNTRACK_PROCFS is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
# CONFIG_NF_CT_PROTO_DCCP is not set
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=m
# CONFIG_NF_CONNTRACK_H323 is not set
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
# CONFIG_NF_CONNTRACK_SNMP is not set
# CONFIG_NF_CONNTRACK_PPTP is not set
# CONFIG_NF_CONNTRACK_SANE is not set
CONFIG_NF_CONNTRACK_SIP=m
# CONFIG_NF_CONNTRACK_TFTP is not set
CONFIG_NF_CT_NETLINK=m
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
# CONFIG_NF_NAT_AMANDA is not set
@@ -717,21 +734,72 @@ CONFIG_NETFILTER_XTABLES=m
# Xtables combined modules
#
# CONFIG_NETFILTER_XT_MARK is not set
# CONFIG_NETFILTER_XT_CONNMARK is not set
#
# Xtables targets
#
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
# CONFIG_NETFILTER_XT_TARGET_LED is not set
# CONFIG_NETFILTER_XT_TARGET_LOG is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
#
# Xtables matches
#
# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_BPF is not set
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
# CONFIG_NETFILTER_XT_MATCH_STATE is not set
# CONFIG_NETFILTER_XT_MATCH_CPU is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ECN is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_HL is not set
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_MAC is not set
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
CONFIG_NETFILTER_XT_MATCH_STATE=m
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set
@@ -741,15 +809,22 @@ CONFIG_NETFILTER_XTABLES=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_TTL is not set
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
# CONFIG_IP_NF_TARGET_SYNPROXY is not set
# CONFIG_IP_NF_TARGET_ULOG is not set
CONFIG_NF_NAT_IPV4=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
# CONFIG_IP_NF_TARGET_NETMAP is not set
# CONFIG_IP_NF_TARGET_REDIRECT is not set
# CONFIG_NF_NAT_PPTP is not set
# CONFIG_NF_NAT_H323 is not set
# CONFIG_IP_NF_MANGLE is not set
# CONFIG_IP_NF_RAW is not set
# CONFIG_IP_NF_ARPTABLES is not set
#
# IPv6: Netfilter Configuration
@@ -757,11 +832,20 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
# CONFIG_IP6_NF_MATCH_AH is not set
# CONFIG_IP6_NF_MATCH_EUI64 is not set
# CONFIG_IP6_NF_MATCH_FRAG is not set
# CONFIG_IP6_NF_MATCH_OPTS is not set
# CONFIG_IP6_NF_MATCH_HL is not set
# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
# CONFIG_IP6_NF_MATCH_MH is not set
# CONFIG_IP6_NF_MATCH_RT is not set
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
# CONFIG_IP6_NF_MANGLE is not set
# CONFIG_IP6_NF_RAW is not set
# CONFIG_NF_NAT_IPV6 is not set
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
@@ -2938,7 +3022,7 @@ CONFIG_HID_SPINELPLUS=y
CONFIG_HID_SUNPLUS=y
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
CONFIG_HID_TIVO=y
CONFIG_HID_TOPSEED=y
# CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 3.14.0 Kernel Configuration
# Linux/x86_64 3.14.2 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -675,21 +675,38 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_NETFILTER_ADVANCED is not set
CONFIG_NETFILTER_ADVANCED=y
# CONFIG_BRIDGE_NETFILTER is not set
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
# CONFIG_NETFILTER_NETLINK_ACCT is not set
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
# CONFIG_NF_CONNTRACK_MARK is not set
# CONFIG_NF_CONNTRACK_PROCFS is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
# CONFIG_NF_CT_PROTO_DCCP is not set
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=m
# CONFIG_NF_CONNTRACK_H323 is not set
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
# CONFIG_NF_CONNTRACK_SNMP is not set
# CONFIG_NF_CONNTRACK_PPTP is not set
# CONFIG_NF_CONNTRACK_SANE is not set
CONFIG_NF_CONNTRACK_SIP=m
# CONFIG_NF_CONNTRACK_TFTP is not set
CONFIG_NF_CT_NETLINK=m
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
# CONFIG_NF_NAT_AMANDA is not set
@@ -704,21 +721,72 @@ CONFIG_NETFILTER_XTABLES=m
# Xtables combined modules
#
# CONFIG_NETFILTER_XT_MARK is not set
# CONFIG_NETFILTER_XT_CONNMARK is not set
#
# Xtables targets
#
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
# CONFIG_NETFILTER_XT_TARGET_LED is not set
# CONFIG_NETFILTER_XT_TARGET_LOG is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
#
# Xtables matches
#
# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_BPF is not set
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
# CONFIG_NETFILTER_XT_MATCH_STATE is not set
# CONFIG_NETFILTER_XT_MATCH_CPU is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ECN is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_HL is not set
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_MAC is not set
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
CONFIG_NETFILTER_XT_MATCH_STATE=m
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set
@@ -728,15 +796,22 @@ CONFIG_NETFILTER_XTABLES=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_TTL is not set
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
# CONFIG_IP_NF_TARGET_SYNPROXY is not set
# CONFIG_IP_NF_TARGET_ULOG is not set
CONFIG_NF_NAT_IPV4=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
# CONFIG_IP_NF_TARGET_NETMAP is not set
# CONFIG_IP_NF_TARGET_REDIRECT is not set
# CONFIG_NF_NAT_PPTP is not set
# CONFIG_NF_NAT_H323 is not set
# CONFIG_IP_NF_MANGLE is not set
# CONFIG_IP_NF_RAW is not set
# CONFIG_IP_NF_ARPTABLES is not set
#
# IPv6: Netfilter Configuration
@@ -744,11 +819,20 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
# CONFIG_IP6_NF_MATCH_AH is not set
# CONFIG_IP6_NF_MATCH_EUI64 is not set
# CONFIG_IP6_NF_MATCH_FRAG is not set
# CONFIG_IP6_NF_MATCH_OPTS is not set
# CONFIG_IP6_NF_MATCH_HL is not set
# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
# CONFIG_IP6_NF_MATCH_MH is not set
# CONFIG_IP6_NF_MATCH_RT is not set
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
# CONFIG_IP6_NF_MANGLE is not set
# CONFIG_IP6_NF_RAW is not set
# CONFIG_NF_NAT_IPV6 is not set
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
@@ -2915,7 +2999,7 @@ CONFIG_HID_SPINELPLUS=y
CONFIG_HID_SUNPLUS=y
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
CONFIG_HID_TIVO=y
CONFIG_HID_TOPSEED=y
# CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set

View File

@@ -1,4 +1,4 @@
# Name of the Distro to build (full name, without special charcters)
# Name of the Distro to build (full name, without special characters)
DISTRONAME="OpenELEC"
# short project description

View File

@@ -21,8 +21,8 @@
PKG_NAME="xbmc"
PKG_VERSION=""
GIT_REPO="-b Gotham git://github.com/xbmc/xbmc.git"
DEST_DIR="$PKG_NAME"
GIT_REPO="-b master git://github.com/xbmc/xbmc.git"
DEST_DIR="$PKG_NAME-master"
echo "getting sources..."
if [ ! -d $DEST_DIR-latest ]; then
@@ -38,7 +38,7 @@ echo "getting sources..."
cd ..
if [ -z "$PKG_VERSION" ]; then
PKG_VERSION="13-$GIT_REV"
PKG_VERSION="14-$GIT_REV"
fi
echo "copying sources..."

80
tools/mkpkg/mkpkg_xbmc-gotham Executable file
View File

@@ -0,0 +1,80 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="xbmc"
PKG_VERSION=""
GIT_REPO="-b Gotham git://github.com/xbmc/xbmc.git"
DEST_DIR="$PKG_NAME"
echo "getting sources..."
if [ ! -d $DEST_DIR-latest ]; then
git clone $GIT_REPO $DEST_DIR-latest
fi
cd $DEST_DIR-latest
git pull
echo "getting version..."
GIT_REV=`git log -n1 --format=%h`
echo $GIT_REV
cd ..
if [ -z "$PKG_VERSION" ]; then
PKG_VERSION="13-$GIT_REV"
fi
echo "copying sources..."
rm -rf $PKG_NAME-$PKG_VERSION
cp -R $DEST_DIR-latest $PKG_NAME-$PKG_VERSION
echo "$GIT_REV" > $PKG_NAME-$PKG_VERSION/VERSION
echo "cleaning sources..."
rm -rf $PKG_NAME-$PKG_VERSION/.git
echo "seperating theme..."
rm -rf $PKG_NAME-theme-Confluence-$PKG_VERSION
mv $PKG_NAME-$PKG_VERSION/addons/skin.confluence $PKG_NAME-theme-Confluence-$PKG_VERSION
echo "cleaning sources..."
rm -rf $PKG_NAME-$PKG_VERSION/visualisations
rm -rf $PKG_NAME-$PKG_VERSION/lib/libSDL-*
rm -rf $PKG_NAME-$PKG_VERSION/lib/libcurl-*
for i in "Changelog" "Fake\ Episode\ Maker" "MingwBuildEnvironment" \
"PackageMaker" "Translator" "XBMCLive" "XprPack" \
"HardwareConfigure" "Mach5" "osx" "UpdateThumbs.py" "XBMCTex"; do
rm -rf $PKG_NAME-$PKG_VERSION/tools/$i
done
for i in dll a lib so bat; do
find $PKG_NAME-$PKG_VERSION -name *.$i -exec rm -rf {} ";"
done
# bundled win32 binaries
rm -r $PKG_NAME-$PKG_VERSION/xbmc/visualizations/XBMCProjectM/win32
echo "packing sources..."
tar cvJf $PKG_NAME-$PKG_VERSION.tar.xz $PKG_NAME-$PKG_VERSION
tar cvJf $PKG_NAME-theme-Confluence-$PKG_VERSION.tar.xz $PKG_NAME-theme-Confluence-$PKG_VERSION
echo "remove temporary sourcedir..."
rm -rf $PKG_NAME-$PKG_VERSION
rm -rf $PKG_NAME-theme-Confluence-$PKG_VERSION