mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
111 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b5a1ab8ea | ||
|
|
6fa73db650 | ||
|
|
879921fb89 | ||
|
|
ab419fcc3b | ||
|
|
cc663e6bda | ||
|
|
a9bb981b86 | ||
|
|
6d487a521c | ||
|
|
4fd9d79002 | ||
|
|
7d1caea56b | ||
|
|
cd5f42c2ef | ||
|
|
4c41dd5830 | ||
|
|
d224757a50 | ||
|
|
4dfd19fd7d | ||
|
|
612763e8c0 | ||
|
|
079f817e3b | ||
|
|
e2484b09e5 | ||
|
|
b496914b31 | ||
|
|
f60889b387 | ||
|
|
dd862c5047 | ||
|
|
f92e4e6d8b | ||
|
|
31724f6800 | ||
|
|
77fd0d6b77 | ||
|
|
77e0cd2ea5 | ||
|
|
d49244082a | ||
|
|
6788154e07 | ||
|
|
b91b623c43 | ||
|
|
50b81a0686 | ||
|
|
3c68fe9947 | ||
|
|
d5da603132 | ||
|
|
1cf28d6a6b | ||
|
|
5096004835 | ||
|
|
19bf1f3c1d | ||
|
|
8ccbd4c7ef | ||
|
|
cef4eddba6 | ||
|
|
74bc1d6fb4 | ||
|
|
067c51a82a | ||
|
|
ca72183568 | ||
|
|
74f641c52f | ||
|
|
d7c4549aff | ||
|
|
c030abe5c0 | ||
|
|
8216d83201 | ||
|
|
9c1b0526a6 | ||
|
|
fec555173c | ||
|
|
135e76566a | ||
|
|
6e42a18924 | ||
|
|
e6ccd30789 | ||
|
|
aa25d20637 | ||
|
|
f983e02b9a | ||
|
|
5abc30299f | ||
|
|
baaa54b38a | ||
|
|
1ef63e8c28 | ||
|
|
3a9b1067fb | ||
|
|
d251c554f6 | ||
|
|
963662fc53 | ||
|
|
7f2866c5da | ||
|
|
912e3794db | ||
|
|
dc27f1ad64 | ||
|
|
ed161f9fd2 | ||
|
|
b4f044e4bd | ||
|
|
a12cb24851 | ||
|
|
03444341f1 | ||
|
|
d1880689d9 | ||
|
|
d47409ce1c | ||
|
|
10ef21d3f8 | ||
|
|
719a0e6fd5 | ||
|
|
caaf6ff27d | ||
|
|
4f050cc243 | ||
|
|
e7dedb6e6c | ||
|
|
5278f57941 | ||
|
|
a4e3845b91 | ||
|
|
2d9fc82796 | ||
|
|
cf55b2e446 | ||
|
|
60be736d7c | ||
|
|
da48eab9b6 | ||
|
|
305789f7f5 | ||
|
|
18d70a1a36 | ||
|
|
f8519f839e | ||
|
|
3fcd79ce7c | ||
|
|
685134ffef | ||
|
|
6c38a52a25 | ||
|
|
8382c54f31 | ||
|
|
79d9ff1c67 | ||
|
|
8a0a88c45c | ||
|
|
84bd75d9bd | ||
|
|
40225b9ef9 | ||
|
|
521df499e1 | ||
|
|
37728af595 | ||
|
|
6c353d3142 | ||
|
|
20d60164cd | ||
|
|
bb1082c2bb | ||
|
|
6640f3dc8d | ||
|
|
99496f656c | ||
|
|
727692604a | ||
|
|
e651d993c5 | ||
|
|
02fbd280a5 | ||
|
|
9ee5b04b40 | ||
|
|
7f4b55a4a1 | ||
|
|
b228b408d5 | ||
|
|
920305961c | ||
|
|
670dcd611a | ||
|
|
f796f8bbdb | ||
|
|
73d6987c06 | ||
|
|
40201f49a3 | ||
|
|
db33a7a98d | ||
|
|
0013d42deb | ||
|
|
5f2d6bad75 | ||
|
|
2ac8b9cfe8 | ||
|
|
7fbfe11a5e | ||
|
|
d6f4ef6d85 | ||
|
|
6009676903 | ||
|
|
3ecbf910cc |
@@ -35,6 +35,12 @@ Feature requests are great, but they usually end up lying around the issue
|
||||
tracker indefinitely. Sending a pull request is a much better way of getting a
|
||||
particular feature into OpenELEC.
|
||||
|
||||
Please dont ask us to add 3rdparty drivers unless you are the maintainer/developer of the driver,
|
||||
we have no manpower to support a non-mainlined kernel driver for your hardware.
|
||||
However, OpenELEC comes with minimal set of kernel drivers enabled, if you are sure that your hardware
|
||||
is supported in mainline kernel, feel free to send us a Pull Request to enable it in our
|
||||
kernel defconfigs. We are always happy to support known-working hardware.
|
||||
|
||||
### Reporting build failures
|
||||
|
||||
As buildsystem / core packages (toolchain) / random libraries change from time to time, it is required
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="@PKG_ADDON_ID@"
|
||||
name="@PKG_NAME@"
|
||||
name="@ADDON_NAME@"
|
||||
version="@ADDON_VERSION@"
|
||||
provider-name="@PROVIDER_NAME@">
|
||||
<requires>
|
||||
@@ -8,11 +8,8 @@
|
||||
<import addon="xbmc.python" version="2.1.0"/>
|
||||
@REQUIRES@
|
||||
</requires>
|
||||
<extension point="@PKG_ADDON_TYPE@"
|
||||
library="default.py">
|
||||
<provides>executable</provides>
|
||||
<extension point="xbmc.python.module" library="lib/">
|
||||
</extension>
|
||||
@EXTENSIONS@
|
||||
<extension point="xbmc.addon.metadata">
|
||||
<summary>@PKG_SHORTDESC@</summary>
|
||||
<description>
|
||||
24
config/addon/xbmc.python.script.xml
Normal file
24
config/addon/xbmc.python.script.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="@PKG_ADDON_ID@"
|
||||
name="@ADDON_NAME@"
|
||||
version="@ADDON_VERSION@"
|
||||
provider-name="@PROVIDER_NAME@">
|
||||
<requires>
|
||||
<import addon="os.openelec.tv" version="@OS_VERSION@"/>
|
||||
<import addon="xbmc.python" version="2.1.0"/>
|
||||
@REQUIRES@
|
||||
</requires>
|
||||
<extension point="xbmc.python.script" library="default.py">
|
||||
<provides>executable</provides>
|
||||
</extension>
|
||||
<extension point="xbmc.addon.metadata">
|
||||
<summary>@PKG_SHORTDESC@</summary>
|
||||
<description>
|
||||
@PKG_LONGDESC@
|
||||
</description>
|
||||
<disclaimer>
|
||||
@PKG_DISCLAIMER@
|
||||
</disclaimer>
|
||||
<platform>all</platform>
|
||||
</extension>
|
||||
</addon>
|
||||
24
config/addon/xbmc.service.xml
Normal file
24
config/addon/xbmc.service.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="@PKG_ADDON_ID@"
|
||||
name="@ADDON_NAME@"
|
||||
version="@ADDON_VERSION@"
|
||||
provider-name="@PROVIDER_NAME@">
|
||||
<requires>
|
||||
<import addon="os.openelec.tv" version="@OS_VERSION@"/>
|
||||
<import addon="xbmc.python" version="2.1.0"/>
|
||||
@REQUIRES@
|
||||
</requires>
|
||||
<extension point="xbmc.service" library="default.py">
|
||||
<provides>executable</provides>
|
||||
</extension>
|
||||
<extension point="xbmc.addon.metadata">
|
||||
<summary>@PKG_SHORTDESC@</summary>
|
||||
<description>
|
||||
@PKG_LONGDESC@
|
||||
</description>
|
||||
<disclaimer>
|
||||
@PKG_DISCLAIMER@
|
||||
</disclaimer>
|
||||
<platform>all</platform>
|
||||
</extension>
|
||||
</addon>
|
||||
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
OPENELEC_VERSION="4.97.1"
|
||||
OPENELEC_VERSION="5.0.0"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="5.0"
|
||||
|
||||
@@ -200,11 +200,6 @@
|
||||
# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage
|
||||
INITRAMFS_PARTED_SUPPORT="no"
|
||||
|
||||
# additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware)
|
||||
# Space separated list is supported,
|
||||
# e.g. FIRMWARE="dvb-firmware misc-firmware wlan-firmware"
|
||||
FIRMWARE="misc-firmware wlan-firmware dvb-firmware"
|
||||
|
||||
# build with swap support (yes / no)
|
||||
SWAP_SUPPORT="no"
|
||||
|
||||
|
||||
@@ -1,13 +1,21 @@
|
||||
4.3.1
|
||||
fix keymaps path
|
||||
|
||||
4.3.0
|
||||
rebuild for addon api bump
|
||||
|
||||
4.1.0
|
||||
rebuild for addon api bump
|
||||
|
||||
4.0.1
|
||||
rebuild
|
||||
|
||||
4.0.0
|
||||
rebuild for OpenELEC-4.0
|
||||
|
||||
3.1.1
|
||||
rebuild for OpenELEC-3.2
|
||||
|
||||
3.0.1
|
||||
- bump addon version
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="imon-mce"
|
||||
PKG_VERSION="4.3"
|
||||
PKG_REV="0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
|
||||
@@ -21,4 +21,4 @@
|
||||
. /etc/profile
|
||||
|
||||
sleep 1 && \
|
||||
ir-keytable -p rc6 -w /etc/rc_keymaps/imon_mce &
|
||||
ir-keytable -p rc6 -w /usr/lib/udev/rc_keymaps/imon_mce &
|
||||
@@ -1,3 +1,7 @@
|
||||
4.3.6
|
||||
- fix tv_grab_file with --quiet (again!)
|
||||
- fix crash on imx6
|
||||
|
||||
4.3.5
|
||||
- fix crash on imx6
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="tvheadend"
|
||||
PKG_VERSION="3.9.2182"
|
||||
PKG_REV="5"
|
||||
PKG_REV="6"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.tvheadend.org"
|
||||
@@ -37,7 +37,9 @@ pre_build_target() {
|
||||
cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME
|
||||
export CROSS_COMPILE=$TARGET_PREFIX
|
||||
# meh imx6..
|
||||
export CFLAGS="$CFLAGS -mno-unaligned-access"
|
||||
if [ "$TARGET_ARCH" == "arm" ] ; then
|
||||
export CFLAGS="$CFLAGS -mno-unaligned-access"
|
||||
fi
|
||||
}
|
||||
|
||||
configure_target() {
|
||||
|
||||
@@ -27,60 +27,14 @@ XMLTV_LOCATION_FILE=`grep XMLTV_LOCATION_FILE $ADDON_SETTINGS | awk '{print $3 }
|
||||
XMLTV_LOCATION_WEB=`grep XMLTV_LOCATION_WEB $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
|
||||
XMLTV_LOCATION_SCRIPT=`grep XMLTV_LOCATION_SCRIPT $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
|
||||
|
||||
dflag=
|
||||
vflag=
|
||||
cflag=
|
||||
|
||||
if [[ $# -lt 1 ]]; then
|
||||
if [ "$XMLTV_TYPE" = "FILE" ]; then
|
||||
cat "$XMLTV_LOCATION_FILE"
|
||||
exit 0
|
||||
elif [ "$XMLTV_TYPE" = "SCRIPT" ]; then
|
||||
if [ -e "$XMLTV_LOCATION_SCRIPT" ] ; then
|
||||
exec "$XMLTV_LOCATION_SCRIPT"
|
||||
fi
|
||||
elif [ "$XMLTV_TYPE" = "WEB" ]; then
|
||||
wget -qO - "$XMLTV_LOCATION_WEB"
|
||||
exit 0
|
||||
if [ "$XMLTV_TYPE" = "FILE" ]; then
|
||||
cat "$XMLTV_LOCATION_FILE"
|
||||
exit 0
|
||||
elif [ "$XMLTV_TYPE" = "SCRIPT" ]; then
|
||||
if [ -e "$XMLTV_LOCATION_SCRIPT" ] ; then
|
||||
exec "$XMLTV_LOCATION_SCRIPT"
|
||||
fi
|
||||
fi
|
||||
|
||||
for arg; do
|
||||
delim=""
|
||||
case "$arg" in
|
||||
#translate --gnu-long-options to -g (short options)
|
||||
--description) args="${args}-d ";;
|
||||
--version) args="${args}-v ";;
|
||||
--capabilities) args="${args}-c ";;
|
||||
--quiet) args="${args}-q ";;
|
||||
#pass through anything else
|
||||
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
||||
args="${args}${delim}${arg}${delim} ";;
|
||||
esac
|
||||
done
|
||||
|
||||
#Reset the positional parameters to the short options
|
||||
eval set -- $args
|
||||
|
||||
while getopts "dvcq" option; do
|
||||
case $option in
|
||||
d) dflag=1;;
|
||||
v) vflag=1;;
|
||||
c) cflag=1;;
|
||||
q) ;;
|
||||
\?) printf "unknown option: -%s\n" $OPTARG
|
||||
printf "Usage: %s: [--description] [--version] [--capabilities] \n" $(basename $0)
|
||||
exit 2
|
||||
;;
|
||||
esac >&2
|
||||
done
|
||||
|
||||
if [ "$dflag" ]; then
|
||||
printf "tv_grab_file is a simple grabber that just read the local or web XMLTV formated file\n"
|
||||
fi
|
||||
if [ "$vflag" ]; then
|
||||
printf "0.1\n"
|
||||
fi
|
||||
if [ "$cflag" ]; then
|
||||
printf "baseline\n"
|
||||
elif [ "$XMLTV_TYPE" = "WEB" ]; then
|
||||
wget -qO - "$XMLTV_LOCATION_WEB"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@@ -33,8 +33,9 @@ PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
# package specific configure options
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
|
||||
if [ $TARGET_ARCH == "x86_64" ] ; then
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-accuracy --enable-fpm=64bit"
|
||||
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --enable-accuracy --enable-fpm=64bit"
|
||||
fi
|
||||
|
||||
post_makeinstall_target() {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sqlite"
|
||||
PKG_VERSION="autoconf-3080702"
|
||||
PKG_VERSION="autoconf-3080704"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PublicDomain"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="vdpauinfo"
|
||||
PKG_VERSION="0.1"
|
||||
PKG_VERSION="0.9"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="arm-mem"
|
||||
PKG_VERSION="8a1fbee"
|
||||
PKG_VERSION="2e6f275"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="boost"
|
||||
PKG_VERSION="1_56_0"
|
||||
PKG_VERSION="1_57_0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gettext"
|
||||
PKG_VERSION="0.19.3"
|
||||
PKG_VERSION="0.19.4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libtool"
|
||||
PKG_VERSION="2.4.2"
|
||||
PKG_VERSION="2.4.4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
@@ -33,4 +33,5 @@ PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_CONFIGURE_OPTS_HOST="--enable-static --disable-shared"
|
||||
PKG_CONFIGURE_OPTS_HOST="--enable-static --disable-shared HELP2MAN=/bin/true"
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh
|
||||
index 5eca4ae..23901ff 100644
|
||||
--- a/build-aux/ltmain.sh
|
||||
+++ b/build-aux/ltmain.sh
|
||||
@@ -8333,7 +8333,7 @@ func_mode_link ()
|
||||
fi
|
||||
else
|
||||
# We cannot seem to hardcode it, guess we'll fake it.
|
||||
- add_dir=-L$libdir
|
||||
+ #add_dir=-L$libdir
|
||||
# Try looking first in the location we're being installed to.
|
||||
if test -n "$inst_prefix_dir"; then
|
||||
case $libdir in
|
||||
13
packages/devel/libtool/patches/libtool-02-use_ld.patch
Normal file
13
packages/devel/libtool/patches/libtool-02-use_ld.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh
|
||||
index 23901ff..df26ab5 100644
|
||||
--- a/build-aux/ltmain.sh
|
||||
+++ b/build-aux/ltmain.sh
|
||||
@@ -7250,7 +7250,7 @@ func_mode_link ()
|
||||
# -stdlib=* select c++ std lib with clang
|
||||
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
|
||||
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
|
||||
- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
|
||||
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*|-fuse-ld=*)
|
||||
func_quote_for_eval "$arg"
|
||||
arg=$func_quote_for_eval_result
|
||||
func_append compile_command " $arg"
|
||||
@@ -1,19 +0,0 @@
|
||||
When using sysroot we should append it to libdir which is helpful in cross builds
|
||||
as the system is staged in the sysroot. For normal build i.e. when lt_sysroot is not
|
||||
set it will still behave same and add -L/usr/lib to relink command
|
||||
|
||||
-Khem
|
||||
|
||||
Index: libtool-2.4/libltdl/config/ltmain.m4sh
|
||||
===================================================================
|
||||
--- libtool-2.4.orig/libltdl/config/ltmain.m4sh
|
||||
+++ libtool-2.4/libltdl/config/ltmain.m4sh
|
||||
@@ -6122,7 +6122,7 @@ func_mode_link ()
|
||||
fi
|
||||
else
|
||||
# We cannot seem to hardcode it, guess we'll fake it.
|
||||
- add_dir="-L$libdir"
|
||||
+ #add_dir="-L$libdir"
|
||||
# Try looking first in the location we're being installed to.
|
||||
if test -n "$inst_prefix_dir"; then
|
||||
case $libdir in
|
||||
@@ -1,13 +0,0 @@
|
||||
diff -Naur libtool-2.4-old/libltdl/m4/libtool.m4 libtool-2.4-new/libltdl/m4/libtool.m4
|
||||
--- libtool-2.4-old/libltdl/m4/libtool.m4 2010-09-22 01:41:19.000000000 -0700
|
||||
+++ libtool-2.4-new/libltdl/m4/libtool.m4 2010-09-23 20:25:25.000000000 -0700
|
||||
@@ -6905,6 +6905,9 @@
|
||||
*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
|
||||
*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
|
||||
esac
|
||||
+case "$CC $CFLAGS " in #(
|
||||
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
|
||||
+esac
|
||||
|
||||
dnl Parse the compiler output and extract the necessary
|
||||
dnl objects, libraries and library flags.
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur libtool-2.4-old/libltdl/config/ltmain.m4sh libtool-2.4-new/libltdl/config/ltmain.m4sh
|
||||
--- libtool-2.4-old/libltdl/config/ltmain.m4sh 2010-09-22 13:16:41.000000000 -0700
|
||||
+++ libtool-2.4-new/libltdl/config/ltmain.m4sh 2010-09-22 13:21:52.000000000 -0700
|
||||
@@ -5051,7 +5051,7 @@
|
||||
# -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
|
||||
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
|
||||
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
|
||||
- -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
|
||||
+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-fuse-ld=*)
|
||||
func_quote_for_eval "$arg"
|
||||
arg="$func_quote_for_eval_result"
|
||||
func_append compile_command " $arg"
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="Mesa"
|
||||
PKG_VERSION="10.3.4"
|
||||
PKG_VERSION="10.3.5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="c48462f"
|
||||
PKG_VERSION="2f9828c"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
Fix CVE-2014-9029
|
||||
|
||||
Patch taken from https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2014-9029
|
||||
|
||||
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
||||
---
|
||||
|
||||
--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c 2014-11-27 12:45:44.000000000 +0100
|
||||
+++ jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c 2014-11-27 12:44:58.000000000 +0100
|
||||
@@ -1281,7 +1281,7 @@ static int jpc_dec_process_coc(jpc_dec_t
|
||||
jpc_coc_t *coc = &ms->parms.coc;
|
||||
jpc_dec_tile_t *tile;
|
||||
|
||||
- if (JAS_CAST(int, coc->compno) > dec->numcomps) {
|
||||
+ if (JAS_CAST(int, coc->compno) >= dec->numcomps) {
|
||||
jas_eprintf("invalid component number in COC marker segment\n");
|
||||
return -1;
|
||||
}
|
||||
@@ -1307,7 +1307,7 @@ static int jpc_dec_process_rgn(jpc_dec_t
|
||||
jpc_rgn_t *rgn = &ms->parms.rgn;
|
||||
jpc_dec_tile_t *tile;
|
||||
|
||||
- if (JAS_CAST(int, rgn->compno) > dec->numcomps) {
|
||||
+ if (JAS_CAST(int, rgn->compno) >= dec->numcomps) {
|
||||
jas_eprintf("invalid component number in RGN marker segment\n");
|
||||
return -1;
|
||||
}
|
||||
@@ -1356,7 +1356,7 @@ static int jpc_dec_process_qcc(jpc_dec_t
|
||||
jpc_qcc_t *qcc = &ms->parms.qcc;
|
||||
jpc_dec_tile_t *tile;
|
||||
|
||||
- if (JAS_CAST(int, qcc->compno) > dec->numcomps) {
|
||||
+ if (JAS_CAST(int, qcc->compno) >= dec->numcomps) {
|
||||
jas_eprintf("invalid component number in QCC marker segment\n");
|
||||
return -1;
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libpng"
|
||||
PKG_VERSION="1.6.15"
|
||||
PKG_VERSION="1.6.16"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
# http://www.broadcom.com/support/802.11/linux_sta.php
|
||||
|
||||
PKG_NAME="bcm_sta"
|
||||
PKG_VERSION="6.20.155.1"
|
||||
PKG_VERSION="6.30.223.248"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="i386 x86_64"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
diff --git a/x86-32/Makefile b/x86-32/Makefile
|
||||
index bf30b03..d835350 100644
|
||||
--- a/x86-32/Makefile
|
||||
+++ b/x86-32/Makefile
|
||||
@@ -125,7 +125,7 @@ EXTRA_CFLAGS += -I$(src)/src/include
|
||||
EXTRA_CFLAGS += -I$(src)/src/wl/sys -I$(src)/src/wl/clm/api -I$(src)/src/wl/phy
|
||||
#EXTRA_CFLAGS += -DBCMDBG_ASSERT
|
||||
|
||||
-EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
|
||||
+EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped_$(BINARCH)
|
||||
|
||||
KBASE ?= /lib/modules/`uname -r`
|
||||
KBUILD_DIR ?= $(KBASE)/build
|
||||
diff --git a/x86-64/Makefile b/x86-64/Makefile
|
||||
index bf30b03..d835350 100644
|
||||
--- a/x86-64/Makefile
|
||||
+++ b/x86-64/Makefile
|
||||
@@ -125,7 +125,7 @@ EXTRA_CFLAGS += -I$(src)/src/include
|
||||
EXTRA_CFLAGS += -I$(src)/src/wl/sys -I$(src)/src/wl/clm/api -I$(src)/src/wl/phy
|
||||
#EXTRA_CFLAGS += -DBCMDBG_ASSERT
|
||||
|
||||
-EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
|
||||
+EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped_$(BINARCH)
|
||||
|
||||
KBASE ?= /lib/modules/`uname -r`
|
||||
KBUILD_DIR ?= $(KBASE)/build
|
||||
@@ -1,28 +0,0 @@
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c
|
||||
@@ -99,6 +99,10 @@ static void wl_dpc_rxwork(struct wl_task *task);
|
||||
|
||||
#endif
|
||||
|
||||
+#ifndef init_MUTEX
|
||||
+#define init_MUTEX(sem) sema_init(sem, 1)
|
||||
+#endif
|
||||
+
|
||||
static int wl_linux_watchdog(void *ctx);
|
||||
static
|
||||
int wl_found = 0;
|
||||
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c
|
||||
@@ -99,6 +99,10 @@ static void wl_dpc_rxwork(struct wl_task *task);
|
||||
|
||||
#endif
|
||||
|
||||
+#ifndef init_MUTEX
|
||||
+#define init_MUTEX(sem) sema_init(sem, 1)
|
||||
+#endif
|
||||
+
|
||||
static int wl_linux_watchdog(void *ctx);
|
||||
static
|
||||
int wl_found = 0;
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c
|
||||
@@ -385,7 +385,11 @@ static const struct net_device_ops wl_netdev_ops =
|
||||
#endif
|
||||
.ndo_get_stats = wl_get_stats,
|
||||
.ndo_set_mac_address = wl_set_mac_address,
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
|
||||
.ndo_set_multicast_list = wl_set_multicast_list,
|
||||
+#else
|
||||
+ .ndo_set_rx_mode = wl_set_multicast_list,
|
||||
+#endif
|
||||
.ndo_do_ioctl = wl_ioctl
|
||||
};
|
||||
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c
|
||||
@@ -385,7 +385,11 @@ static const struct net_device_ops wl_netdev_ops =
|
||||
#endif
|
||||
.ndo_get_stats = wl_get_stats,
|
||||
.ndo_set_mac_address = wl_set_mac_address,
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
|
||||
.ndo_set_multicast_list = wl_set_multicast_list,
|
||||
+#else
|
||||
+ .ndo_set_rx_mode = wl_set_multicast_list,
|
||||
+#endif
|
||||
.ndo_do_ioctl = wl_ioctl
|
||||
};
|
||||
@@ -1,25 +0,0 @@
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c
|
||||
@@ -40,7 +40,9 @@
|
||||
#include <linux/pci_ids.h>
|
||||
#define WLC_MAXBSSCFG 1
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)
|
||||
#include <asm/system.h>
|
||||
+#endif
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/pgtable.h>
|
||||
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c
|
||||
@@ -40,7 +40,9 @@
|
||||
#include <linux/pci_ids.h>
|
||||
#define WLC_MAXBSSCFG 1
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)
|
||||
#include <asm/system.h>
|
||||
+#endif
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/pgtable.h>
|
||||
@@ -1,133 +0,0 @@
|
||||
--- a/x86-32/src/include/bcmutils.h
|
||||
+++ b/x86-32/src/include/bcmutils.h
|
||||
@@ -214,7 +214,11 @@ typedef struct bcm_tlv {
|
||||
extern int bcm_format_flags(const bcm_bit_desc_t *bd, uint32 flags, char* buf, int len);
|
||||
extern int bcm_format_hex(char *str, const void *bytes, int len);
|
||||
#endif
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(void *buf, int buflen, uint key);
|
||||
+#else
|
||||
+extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(const void *buf, int buflen, uint key);
|
||||
+#endif
|
||||
|
||||
typedef uint32 mbool;
|
||||
|
||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c
|
||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c
|
||||
@@ -702,7 +702,11 @@ wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
else
|
||||
memset(&join_params.params.bssid, 0, ETHER_ADDR_LEN);
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
wl_ch_to_chanspec(params->channel, &join_params, &join_params_size);
|
||||
+#else
|
||||
+ wl_ch_to_chanspec(params->chandef.chan, &join_params, &join_params_size);
|
||||
+#endif
|
||||
|
||||
err = wl_dev_ioctl(dev, WLC_SET_SSID, &join_params, join_params_size);
|
||||
if (err) {
|
||||
@@ -1957,9 +1961,14 @@ static s32 wl_update_bss_info(struct wl_cfg80211_priv *wl)
|
||||
struct wlc_ssid *ssid;
|
||||
struct bcm_tlv *tim;
|
||||
s32 dtim_period;
|
||||
+ s32 err = 0;
|
||||
size_t ie_len;
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
u8 *ie;
|
||||
- s32 err = 0;
|
||||
+#else
|
||||
+ const u8 *ie;
|
||||
+ const struct cfg80211_bss_ies *ies;
|
||||
+#endif
|
||||
|
||||
ssid = &wl->profile->ssid;
|
||||
bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid,
|
||||
@@ -1988,8 +1997,22 @@ static s32 wl_update_bss_info(struct wl_cfg80211_priv *wl)
|
||||
ie_len = bi->ie_length;
|
||||
} else {
|
||||
WL_DBG(("Found the AP in the list - BSSID %pM\n", bss->bssid));
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
ie = bss->information_elements;
|
||||
ie_len = bss->len_information_elements;
|
||||
+#else
|
||||
+ rcu_read_lock();
|
||||
+ ies = (const struct cfg80211_bss_ies*)rcu_dereference(bss->ies);
|
||||
+ if (!ies) {
|
||||
+ /* This should never happen */
|
||||
+ rcu_read_unlock();
|
||||
+ err = -EIO;
|
||||
+ goto update_bss_info_out;
|
||||
+ }
|
||||
+ ie = ies->data;
|
||||
+ ie_len = (size_t)(ies->len);
|
||||
+ rcu_read_unlock();
|
||||
+#endif
|
||||
cfg80211_put_bss(bss);
|
||||
}
|
||||
|
||||
--- a/x86-64/src/include/bcmutils.h
|
||||
+++ b/x86-64/src/include/bcmutils.h
|
||||
@@ -214,7 +214,11 @@ typedef struct bcm_tlv {
|
||||
extern int bcm_format_flags(const bcm_bit_desc_t *bd, uint32 flags, char* buf, int len);
|
||||
extern int bcm_format_hex(char *str, const void *bytes, int len);
|
||||
#endif
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(void *buf, int buflen, uint key);
|
||||
+#else
|
||||
+extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(const void *buf, int buflen, uint key);
|
||||
+#endif
|
||||
|
||||
typedef uint32 mbool;
|
||||
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211.c
|
||||
@@ -702,7 +702,11 @@ wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
else
|
||||
memset(&join_params.params.bssid, 0, ETHER_ADDR_LEN);
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
wl_ch_to_chanspec(params->channel, &join_params, &join_params_size);
|
||||
+#else
|
||||
+ wl_ch_to_chanspec(params->chandef.chan, &join_params, &join_params_size);
|
||||
+#endif
|
||||
|
||||
err = wl_dev_ioctl(dev, WLC_SET_SSID, &join_params, join_params_size);
|
||||
if (err) {
|
||||
@@ -1957,9 +1961,14 @@ static s32 wl_update_bss_info(struct wl_cfg80211_priv *wl)
|
||||
struct wlc_ssid *ssid;
|
||||
struct bcm_tlv *tim;
|
||||
s32 dtim_period;
|
||||
+ s32 err = 0;
|
||||
size_t ie_len;
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
u8 *ie;
|
||||
- s32 err = 0;
|
||||
+#else
|
||||
+ const u8 *ie;
|
||||
+ const struct cfg80211_bss_ies *ies;
|
||||
+#endif
|
||||
|
||||
ssid = &wl->profile->ssid;
|
||||
bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid,
|
||||
@@ -1988,8 +1997,22 @@ static s32 wl_update_bss_info(struct wl_cfg80211_priv *wl)
|
||||
ie_len = bi->ie_length;
|
||||
} else {
|
||||
WL_DBG(("Found the AP in the list - BSSID %pM\n", bss->bssid));
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
|
||||
ie = bss->information_elements;
|
||||
ie_len = bss->len_information_elements;
|
||||
+#else
|
||||
+ rcu_read_lock();
|
||||
+ ies = (const struct cfg80211_bss_ies*)rcu_dereference(bss->ies);
|
||||
+ if (!ies) {
|
||||
+ /* This should never happen */
|
||||
+ rcu_read_unlock();
|
||||
+ err = -EIO;
|
||||
+ goto update_bss_info_out;
|
||||
+ }
|
||||
+ ie = ies->data;
|
||||
+ ie_len = (size_t)(ies->len);
|
||||
+ rcu_read_unlock();
|
||||
+#endif
|
||||
cfg80211_put_bss(bss);
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c 2013-03-29 18:12:43.447176381 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c 2013-03-29 18:12:56.595176453 +0100
|
||||
@@ -2013,8 +2013,12 @@
|
||||
ie_len = (size_t)(ies->len);
|
||||
rcu_read_unlock();
|
||||
#endif
|
||||
- cfg80211_put_bss(bss);
|
||||
- }
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
|
||||
+ cfg80211_put_bss(bss);
|
||||
+#else
|
||||
+ cfg80211_put_bss(wl_to_wiphy(wl), bss);
|
||||
+#endif
|
||||
+ }
|
||||
|
||||
tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
|
||||
if (tim) {
|
||||
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c 2013-03-29 18:12:43.447176381 +0100
|
||||
+++ a/x86-64/src/wl/sys/wl_cfg80211.c 2013-03-29 18:12:56.595176453 +0100
|
||||
@@ -2013,8 +2013,12 @@
|
||||
ie_len = (size_t)(ies->len);
|
||||
rcu_read_unlock();
|
||||
#endif
|
||||
- cfg80211_put_bss(bss);
|
||||
- }
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
|
||||
+ cfg80211_put_bss(bss);
|
||||
+#else
|
||||
+ cfg80211_put_bss(wl_to_wiphy(wl), bss);
|
||||
+#endif
|
||||
+ }
|
||||
|
||||
tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
|
||||
if (tim) {
|
||||
@@ -1,64 +0,0 @@
|
||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c
|
||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c
|
||||
@@ -46,7 +46,10 @@ u32 wl_dbg_level = WL_DBG_ERR | WL_DBG_INFO;
|
||||
|
||||
static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
|
||||
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
|
||||
-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+static s32 wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
|
||||
+ struct net_device *ndev,
|
||||
+#endif
|
||||
struct cfg80211_scan_request *request);
|
||||
static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
|
||||
static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
@@ -482,9 +485,15 @@ wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
|
||||
}
|
||||
|
||||
static s32
|
||||
-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
|
||||
+ struct net_device *ndev,
|
||||
+#endif
|
||||
struct cfg80211_scan_request *request)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
|
||||
+ struct net_device *ndev = request->wdev->netdev;
|
||||
+#endif
|
||||
struct wl_cfg80211_priv *wl = ndev_to_wl(ndev);
|
||||
struct cfg80211_ssid *ssids;
|
||||
struct wl_cfg80211_scan_req *sr = wl_to_sr(wl);
|
||||
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211.c
|
||||
@@ -46,7 +46,10 @@ u32 wl_dbg_level = WL_DBG_ERR | WL_DBG_INFO;
|
||||
|
||||
static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
|
||||
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
|
||||
-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+static s32 wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
|
||||
+ struct net_device *ndev,
|
||||
+#endif
|
||||
struct cfg80211_scan_request *request);
|
||||
static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
|
||||
static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
@@ -482,9 +485,15 @@ wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
|
||||
}
|
||||
|
||||
static s32
|
||||
-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
|
||||
+ struct net_device *ndev,
|
||||
+#endif
|
||||
struct cfg80211_scan_request *request)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
|
||||
+ struct net_device *ndev = request->wdev->netdev;
|
||||
+#endif
|
||||
struct wl_cfg80211_priv *wl = ndev_to_wl(ndev);
|
||||
struct cfg80211_ssid *ssids;
|
||||
struct wl_cfg80211_scan_req *sr = wl_to_sr(wl);
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2010-12-27 22:14:38.679428984 +0100
|
||||
@@ -251,7 +251,7 @@
|
||||
#define quote_str(s) to_str(s)
|
||||
|
||||
#ifndef BRCM_WLAN_IFNAME
|
||||
-#define BRCM_WLAN_IFNAME eth%d
|
||||
+#define BRCM_WLAN_IFNAME wlan%d
|
||||
#endif
|
||||
|
||||
static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2010-12-15 03:01:09.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2010-12-27 22:15:18.273865927 +0100
|
||||
@@ -251,7 +251,7 @@
|
||||
#define quote_str(s) to_str(s)
|
||||
|
||||
#ifndef BRCM_WLAN_IFNAME
|
||||
-#define BRCM_WLAN_IFNAME eth%d
|
||||
+#define BRCM_WLAN_IFNAME wlan%d
|
||||
#endif
|
||||
|
||||
static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
||||
@@ -1,228 +0,0 @@
|
||||
diff -Naur bcm_sta-6.20.155.1/x86-32/src/wl/sys/wl_linux.c bcm_sta-6.20.155.1.patch/x86-32/src/wl/sys/wl_linux.c
|
||||
--- bcm_sta-6.20.155.1/x86-32/src/wl/sys/wl_linux.c 2013-04-14 23:10:38.000000000 +0200
|
||||
+++ bcm_sta-6.20.155.1.patch/x86-32/src/wl/sys/wl_linux.c 2014-05-14 21:47:59.249976234 +0200
|
||||
@@ -2681,7 +2681,7 @@
|
||||
void
|
||||
wl_tkip_printstats(wl_info_t *wl, bool group_key)
|
||||
{
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
char debug_buf[512];
|
||||
int idx;
|
||||
if (wl->tkipmodops) {
|
||||
@@ -2843,6 +2843,7 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
static int
|
||||
wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
|
||||
{
|
||||
@@ -2897,18 +2898,89 @@
|
||||
return length;
|
||||
}
|
||||
|
||||
+#else
|
||||
+
|
||||
+static int
|
||||
+wl_proc_read(struct seq_file *seq, void *offset)
|
||||
+{
|
||||
+ wl_info_t * wl = (wl_info_t *)seq->private;
|
||||
+ int bcmerror, to_user;
|
||||
+
|
||||
+ WL_LOCK(wl);
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
|
||||
+ WL_UNLOCK(wl);
|
||||
+
|
||||
+ seq_printf(seq, "%d\n", to_user);
|
||||
+ return bcmerror;
|
||||
+}
|
||||
+
|
||||
+static ssize_t wl_proc_write(struct file *file, const char __user *buff,
|
||||
+ size_t length, loff_t *ppos)
|
||||
+{
|
||||
+ struct seq_file *seq = file->private_data;
|
||||
+ wl_info_t * wl = (wl_info_t *)seq->private;
|
||||
+ int bcmerror, from_user = 0;
|
||||
+
|
||||
+ if (length != 1) {
|
||||
+ WL_ERROR(("%s: Invalid data length\n", __FUNCTION__));
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+
|
||||
+ if (copy_from_user(&from_user, buff, 1)) {
|
||||
+ WL_ERROR(("%s: copy from user failed\n", __FUNCTION__));
|
||||
+ return -EFAULT;
|
||||
+ }
|
||||
+
|
||||
+ if (from_user >= 0x30)
|
||||
+ from_user -= 0x30;
|
||||
+
|
||||
+ WL_LOCK(wl);
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL);
|
||||
+ WL_UNLOCK(wl);
|
||||
+
|
||||
+ if (bcmerror < 0) {
|
||||
+ WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+ *ppos += length;
|
||||
+ return length;
|
||||
+}
|
||||
+
|
||||
+static int wl_proc_open(struct inode *inode, struct file *file)
|
||||
+{
|
||||
+ return single_open(file, wl_proc_read, PDE_DATA(inode));
|
||||
+}
|
||||
+
|
||||
+static const struct file_operations wl_proc_fops = {
|
||||
+ .owner = THIS_MODULE,
|
||||
+ .open = wl_proc_open,
|
||||
+ .read = seq_read,
|
||||
+ .write = wl_proc_write,
|
||||
+ .llseek = seq_lseek,
|
||||
+ .release = single_release,
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
static int
|
||||
wl_reg_proc_entry(wl_info_t *wl)
|
||||
{
|
||||
char tmp[32];
|
||||
sprintf(tmp, "%s%d", HYBRID_PROC, wl->pub->unit);
|
||||
- if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
|
||||
+
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
+ wl->proc_entry = create_proc_entry(tmp, 0644, NULL);
|
||||
+ if (wl->proc_entry) {
|
||||
+ wl->proc_entry->read_proc = wl_proc_read;
|
||||
+ wl->proc_entry->write_proc = wl_proc_write;
|
||||
+ wl->proc_entry->data = wl;
|
||||
+ }
|
||||
+#else
|
||||
+ wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_proc_fops, wl);
|
||||
+#endif
|
||||
+ if (!wl->proc_entry) {
|
||||
WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
|
||||
ASSERT(0);
|
||||
return -1;
|
||||
}
|
||||
- wl->proc_entry->read_proc = wl_proc_read;
|
||||
- wl->proc_entry->write_proc = wl_proc_write;
|
||||
- wl->proc_entry->data = wl;
|
||||
return 0;
|
||||
}
|
||||
diff -Naur bcm_sta-6.20.155.1/x86-64/src/wl/sys/wl_linux.c bcm_sta-6.20.155.1.patch/x86-64/src/wl/sys/wl_linux.c
|
||||
--- bcm_sta-6.20.155.1/x86-64/src/wl/sys/wl_linux.c 2013-04-14 23:10:38.000000000 +0200
|
||||
+++ bcm_sta-6.20.155.1.patch/x86-64/src/wl/sys/wl_linux.c 2014-05-14 21:48:16.002975186 +0200
|
||||
@@ -2681,7 +2681,7 @@
|
||||
void
|
||||
wl_tkip_printstats(wl_info_t *wl, bool group_key)
|
||||
{
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
char debug_buf[512];
|
||||
int idx;
|
||||
if (wl->tkipmodops) {
|
||||
@@ -2843,6 +2843,7 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
static int
|
||||
wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
|
||||
{
|
||||
@@ -2897,18 +2898,89 @@
|
||||
return length;
|
||||
}
|
||||
|
||||
+#else
|
||||
+
|
||||
+static int
|
||||
+wl_proc_read(struct seq_file *seq, void *offset)
|
||||
+{
|
||||
+ wl_info_t * wl = (wl_info_t *)seq->private;
|
||||
+ int bcmerror, to_user;
|
||||
+
|
||||
+ WL_LOCK(wl);
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
|
||||
+ WL_UNLOCK(wl);
|
||||
+
|
||||
+ seq_printf(seq, "%d\n", to_user);
|
||||
+ return bcmerror;
|
||||
+}
|
||||
+
|
||||
+static ssize_t wl_proc_write(struct file *file, const char __user *buff,
|
||||
+ size_t length, loff_t *ppos)
|
||||
+{
|
||||
+ struct seq_file *seq = file->private_data;
|
||||
+ wl_info_t * wl = (wl_info_t *)seq->private;
|
||||
+ int bcmerror, from_user = 0;
|
||||
+
|
||||
+ if (length != 1) {
|
||||
+ WL_ERROR(("%s: Invalid data length\n", __FUNCTION__));
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+
|
||||
+ if (copy_from_user(&from_user, buff, 1)) {
|
||||
+ WL_ERROR(("%s: copy from user failed\n", __FUNCTION__));
|
||||
+ return -EFAULT;
|
||||
+ }
|
||||
+
|
||||
+ if (from_user >= 0x30)
|
||||
+ from_user -= 0x30;
|
||||
+
|
||||
+ WL_LOCK(wl);
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL);
|
||||
+ WL_UNLOCK(wl);
|
||||
+
|
||||
+ if (bcmerror < 0) {
|
||||
+ WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+ *ppos += length;
|
||||
+ return length;
|
||||
+}
|
||||
+
|
||||
+static int wl_proc_open(struct inode *inode, struct file *file)
|
||||
+{
|
||||
+ return single_open(file, wl_proc_read, PDE_DATA(inode));
|
||||
+}
|
||||
+
|
||||
+static const struct file_operations wl_proc_fops = {
|
||||
+ .owner = THIS_MODULE,
|
||||
+ .open = wl_proc_open,
|
||||
+ .read = seq_read,
|
||||
+ .write = wl_proc_write,
|
||||
+ .llseek = seq_lseek,
|
||||
+ .release = single_release,
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
static int
|
||||
wl_reg_proc_entry(wl_info_t *wl)
|
||||
{
|
||||
char tmp[32];
|
||||
sprintf(tmp, "%s%d", HYBRID_PROC, wl->pub->unit);
|
||||
- if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
|
||||
+
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
|
||||
+ wl->proc_entry = create_proc_entry(tmp, 0644, NULL);
|
||||
+ if (wl->proc_entry) {
|
||||
+ wl->proc_entry->read_proc = wl_proc_read;
|
||||
+ wl->proc_entry->write_proc = wl_proc_write;
|
||||
+ wl->proc_entry->data = wl;
|
||||
+ }
|
||||
+#else
|
||||
+ wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_proc_fops, wl);
|
||||
+#endif
|
||||
+ if (!wl->proc_entry) {
|
||||
WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
|
||||
ASSERT(0);
|
||||
return -1;
|
||||
}
|
||||
- wl->proc_entry->read_proc = wl_proc_read;
|
||||
- wl->proc_entry->write_proc = wl_proc_write;
|
||||
- wl->proc_entry->data = wl;
|
||||
return 0;
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c
|
||||
@@ -1773,8 +1773,8 @@
|
||||
void
|
||||
wl_dump_ver(wl_info_t *wl, struct bcmstrbuf *b)
|
||||
{
|
||||
- bcm_bprintf(b, "wl%d: %s %s version %s\n", wl->pub->unit,
|
||||
- __DATE__, __TIME__, EPI_VERSION_STR);
|
||||
+ bcm_bprintf(b, "wl%d: version %s\n", wl->pub->unit,
|
||||
+ EPI_VERSION_STR);
|
||||
}
|
||||
|
||||
#if defined(BCMDBG)
|
||||
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
||||
+++b/x86-64/src/wl/sys/wl_linux.c
|
||||
@@ -1773,8 +1773,8 @@
|
||||
void
|
||||
wl_dump_ver(wl_info_t *wl, struct bcmstrbuf *b)
|
||||
{
|
||||
- bcm_bprintf(b, "wl%d: %s %s version %s\n", wl->pub->unit,
|
||||
- __DATE__, __TIME__, EPI_VERSION_STR);
|
||||
+ bcm_bprintf(b, "wl%d: version %s\n", wl->pub->unit,
|
||||
+ EPI_VERSION_STR);
|
||||
}
|
||||
|
||||
#if defined(BCMDBG)
|
||||
@@ -1,60 +0,0 @@
|
||||
diff -Naur bcm_sta-6.20.155.1/x86-32/src/wl/sys/wl_cfg80211.c bcm_sta-6.20.155.1.patch/x86-32/src/wl/sys/wl_cfg80211.c
|
||||
--- bcm_sta-6.20.155.1/x86-32/src/wl/sys/wl_cfg80211.c 2013-04-14 23:10:38.000000000 +0200
|
||||
+++ bcm_sta-6.20.155.1.patch/x86-32/src/wl/sys/wl_cfg80211.c 2014-05-14 21:50:23.219067311 +0200
|
||||
@@ -1792,7 +1792,26 @@
|
||||
wl_get_assoc_ies(wl);
|
||||
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
||||
wl_update_bss_info(wl);
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
|
||||
+ {
|
||||
+ struct wl_bss_info *bi;
|
||||
+ u16 bss_info_channel;
|
||||
+ struct ieee80211_channel *channel;
|
||||
+ u32 freq;
|
||||
+
|
||||
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
|
||||
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
|
||||
+
|
||||
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
|
||||
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
|
||||
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
|
||||
+
|
||||
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
|
||||
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
|
||||
+ }
|
||||
+#else
|
||||
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
|
||||
+#endif
|
||||
set_bit(WL_STATUS_CONNECTED, &wl->status);
|
||||
wl->profile->active = true;
|
||||
}
|
||||
diff -Naur bcm_sta-6.20.155.1/x86-64/src/wl/sys/wl_cfg80211.c bcm_sta-6.20.155.1.patch/x86-64/src/wl/sys/wl_cfg80211.c
|
||||
--- bcm_sta-6.20.155.1/x86-64/src/wl/sys/wl_cfg80211.c 2013-04-14 23:10:38.000000000 +0200
|
||||
+++ bcm_sta-6.20.155.1.patch/x86-64/src/wl/sys/wl_cfg80211.c 2014-05-14 21:50:45.102092217 +0200
|
||||
@@ -1792,7 +1792,26 @@
|
||||
wl_get_assoc_ies(wl);
|
||||
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
||||
wl_update_bss_info(wl);
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
|
||||
+ {
|
||||
+ struct wl_bss_info *bi;
|
||||
+ u16 bss_info_channel;
|
||||
+ struct ieee80211_channel *channel;
|
||||
+ u32 freq;
|
||||
+
|
||||
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
|
||||
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
|
||||
+
|
||||
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
|
||||
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
|
||||
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
|
||||
+
|
||||
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
|
||||
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
|
||||
+ }
|
||||
+#else
|
||||
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
|
||||
+#endif
|
||||
set_bit(WL_STATUS_CONNECTED, &wl->status);
|
||||
wl->profile->active = true;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
--- a/x86-32/Makefile 2014-06-26 10:42:08.000000000 +0000
|
||||
+++ b/x86-32/Makefile 2014-07-17 22:44:01.662297228 +0000
|
||||
@@ -126,6 +126,8 @@
|
||||
EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
|
||||
#EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
|
||||
|
||||
+EXTRA_CFLAGS += -Wno-date-time
|
||||
+
|
||||
EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
|
||||
|
||||
KBASE ?= /lib/modules/`uname -r`
|
||||
--- a/x86-64/Makefile 2014-06-26 10:42:08.000000000 +0000
|
||||
+++ b/x86-64/Makefile 2014-07-17 22:44:01.662297228 +0000
|
||||
@@ -126,6 +126,8 @@
|
||||
EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
|
||||
#EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
|
||||
|
||||
+EXTRA_CFLAGS += -Wno-date-time
|
||||
+
|
||||
EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
|
||||
|
||||
KBASE ?= /lib/modules/`uname -r`
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2014-06-26 14:42:08.000000000 +0400
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2014-10-23 06:28:36.987479544 +0400
|
||||
@@ -215,7 +217,7 @@
|
||||
#define to_str(s) #s
|
||||
#define quote_str(s) to_str(s)
|
||||
|
||||
-#define BRCM_WLAN_IFNAME eth%d
|
||||
+#define BRCM_WLAN_IFNAME wlan%d
|
||||
|
||||
static char intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
||||
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2014-06-26 14:42:08.000000000 +0400
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2014-10-23 06:28:36.987479544 +0400
|
||||
@@ -215,7 +217,7 @@
|
||||
#define to_str(s) #s
|
||||
#define quote_str(s) to_str(s)
|
||||
|
||||
-#define BRCM_WLAN_IFNAME eth%d
|
||||
+#define BRCM_WLAN_IFNAME wlan%d
|
||||
|
||||
static char intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
||||
@@ -0,0 +1,102 @@
|
||||
--- a/x86-32/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 12:42:08.000000000 +0200
|
||||
+++ b/x86-32/src/wl/sys/wl_cfg80211_hybrid.c 2014-10-08 18:47:07.549476082 +0200
|
||||
@@ -2071,7 +2071,22 @@
|
||||
wl_get_assoc_ies(wl);
|
||||
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
||||
wl_update_bss_info(wl);
|
||||
- cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
|
||||
+ {
|
||||
+ struct wl_bss_info *bi;
|
||||
+ u16 bss_info_channel;
|
||||
+ struct ieee80211_channel *channel;
|
||||
+ u32 freq;
|
||||
+
|
||||
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
|
||||
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
|
||||
+
|
||||
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
|
||||
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
|
||||
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
|
||||
+
|
||||
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
|
||||
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
|
||||
+ }
|
||||
set_bit(WL_STATUS_CONNECTED, &wl->status);
|
||||
wl->profile->active = true;
|
||||
}
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2014-06-26 12:42:08.000000000 +0200
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2014-10-08 18:47:19.526693719 +0200
|
||||
@@ -878,7 +878,7 @@
|
||||
static SIMPLE_DEV_PM_OPS(wl_pm_ops, wl_suspend, wl_resume);
|
||||
#endif
|
||||
|
||||
-static struct pci_driver wl_pci_driver = {
|
||||
+static struct pci_driver wl_pci_driver __refdata = {
|
||||
.name = "wl",
|
||||
.probe = wl_pci_probe,
|
||||
.remove = __devexit_p(wl_remove),
|
||||
@@ -1307,7 +1307,12 @@
|
||||
dev->priv = priv_link;
|
||||
#else
|
||||
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
|
||||
dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
|
||||
+#else
|
||||
+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN,
|
||||
+ ether_setup);
|
||||
+#endif
|
||||
if (!dev) {
|
||||
WL_ERROR(("wl%d: %s: alloc_netdev failed\n",
|
||||
(wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__));
|
||||
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 12:42:08.000000000 +0200
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211_hybrid.c 2014-10-08 18:47:07.549476082 +0200
|
||||
@@ -2071,7 +2071,22 @@
|
||||
wl_get_assoc_ies(wl);
|
||||
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
||||
wl_update_bss_info(wl);
|
||||
- cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
|
||||
+ {
|
||||
+ struct wl_bss_info *bi;
|
||||
+ u16 bss_info_channel;
|
||||
+ struct ieee80211_channel *channel;
|
||||
+ u32 freq;
|
||||
+
|
||||
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
|
||||
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
|
||||
+
|
||||
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
|
||||
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
|
||||
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
|
||||
+
|
||||
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
|
||||
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
|
||||
+ }
|
||||
set_bit(WL_STATUS_CONNECTED, &wl->status);
|
||||
wl->profile->active = true;
|
||||
}
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2014-06-26 12:42:08.000000000 +0200
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2014-10-08 18:47:19.526693719 +0200
|
||||
@@ -878,7 +878,7 @@
|
||||
static SIMPLE_DEV_PM_OPS(wl_pm_ops, wl_suspend, wl_resume);
|
||||
#endif
|
||||
|
||||
-static struct pci_driver wl_pci_driver = {
|
||||
+static struct pci_driver wl_pci_driver __refdata = {
|
||||
.name = "wl",
|
||||
.probe = wl_pci_probe,
|
||||
.remove = __devexit_p(wl_remove),
|
||||
@@ -1307,7 +1307,12 @@
|
||||
dev->priv = priv_link;
|
||||
#else
|
||||
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
|
||||
dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
|
||||
+#else
|
||||
+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN,
|
||||
+ ether_setup);
|
||||
+#endif
|
||||
if (!dev) {
|
||||
WL_ERROR(("wl%d: %s: alloc_netdev failed\n",
|
||||
(wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__));
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="dvb-firmware"
|
||||
PKG_VERSION="0.0.46"
|
||||
PKG_VERSION="0.0.47"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Free-to-use"
|
||||
|
||||
41
packages/linux-firmware/iwlwifi-firmware/package.mk
Normal file
41
packages/linux-firmware/iwlwifi-firmware/package.mk
Normal file
@@ -0,0 +1,41 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC 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 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="iwlwifi-firmware"
|
||||
PKG_VERSION="0.0.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Free-to-use"
|
||||
PKG_SITE="https://github.com/OpenELEC/iwlwifi-firmware"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="firmware"
|
||||
PKG_SHORTDESC="iwlwifi-firmware: firmwares for various Intel WLAN drivers"
|
||||
PKG_LONGDESC="iwlwifi-firmware: firmwares for various Intel WLAN drivers"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
make_target() {
|
||||
: # nothing todo
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
DESTDIR=$INSTALL ./install
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="misc-firmware"
|
||||
PKG_VERSION="0.0.12"
|
||||
PKG_VERSION="0.0.13"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Free-to-use"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="wlan-firmware"
|
||||
PKG_VERSION="0.0.25"
|
||||
PKG_VERSION="0.0.27"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Free-to-use"
|
||||
|
||||
@@ -23,7 +23,7 @@ case "$LINUX" in
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="3.17.4"
|
||||
PKG_VERSION="3.17.7"
|
||||
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
;;
|
||||
esac
|
||||
@@ -32,7 +32,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kernel.org"
|
||||
PKG_DEPENDS_HOST="ccache:host"
|
||||
PKG_DEPENDS_TARGET="toolchain cpio:host kmod:host pciutils xz:host wireless-regdb"
|
||||
PKG_DEPENDS_TARGET="toolchain cpio:host kmod:host pciutils xz:host wireless-regdb keyutils"
|
||||
PKG_DEPENDS_INIT="toolchain"
|
||||
PKG_NEED_UNPACK="$LINUX_DEPENDS"
|
||||
PKG_PRIORITY="optional"
|
||||
@@ -176,7 +176,7 @@ makeinstall_target() {
|
||||
if [ "$BOOTLOADER" = "u-boot" ]; then
|
||||
mkdir -p $INSTALL/usr/share/bootloader
|
||||
for dtb in arch/arm/boot/dts/*.dtb; do
|
||||
cp $dtb $INSTALL/usr/share/bootloader
|
||||
cp $dtb $INSTALL/usr/share/bootloader 2>/dev/null || :
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff -Naur linux-3.17.3/drivers/media/rc/ir-rc6-decoder.c linux-3.17.3.patch/drivers/media/rc/ir-rc6-decoder.c
|
||||
--- linux-3.17.3/drivers/media/rc/ir-rc6-decoder.c 2014-11-14 19:10:57.000000000 +0100
|
||||
+++ linux-3.17.3.patch/drivers/media/rc/ir-rc6-decoder.c 2014-11-20 00:59:40.082608912 +0100
|
||||
@@ -259,8 +259,8 @@
|
||||
case 32:
|
||||
if ((scancode & RC6_6A_LCC_MASK) == RC6_6A_MCE_CC) {
|
||||
protocol = RC_TYPE_RC6_MCE;
|
||||
- scancode &= ~RC6_6A_MCE_TOGGLE_MASK;
|
||||
toggle = !!(scancode & RC6_6A_MCE_TOGGLE_MASK);
|
||||
+ scancode &= ~RC6_6A_MCE_TOGGLE_MASK;
|
||||
} else {
|
||||
protocol = RC_BIT_RC6_6A_32;
|
||||
toggle = 0;
|
||||
@@ -1,50 +0,0 @@
|
||||
From 83d04c39f9048807a8500e575ae3f1718a3f45bb Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deucher <alexander.deucher@amd.com>
|
||||
Date: Mon, 13 Oct 2014 13:23:48 -0400
|
||||
Subject: drm/radeon: initialize sadb to NULL in the audio code
|
||||
|
||||
Fixes kfree of the sadb buffer when it's NULL.
|
||||
|
||||
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
||||
|
||||
diff --git a/drivers/gpu/drm/radeon/dce3_1_afmt.c b/drivers/gpu/drm/radeon/dce3_1_afmt.c
|
||||
index 950af15..6b1dbec 100644
|
||||
--- a/drivers/gpu/drm/radeon/dce3_1_afmt.c
|
||||
+++ b/drivers/gpu/drm/radeon/dce3_1_afmt.c
|
||||
@@ -32,7 +32,7 @@ static void dce3_2_afmt_write_speaker_allocation(struct drm_encoder *encoder)
|
||||
struct drm_connector *connector;
|
||||
struct radeon_connector *radeon_connector = NULL;
|
||||
u32 tmp;
|
||||
- u8 *sadb;
|
||||
+ u8 *sadb = NULL;
|
||||
int sad_count;
|
||||
|
||||
list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) {
|
||||
diff --git a/drivers/gpu/drm/radeon/dce6_afmt.c b/drivers/gpu/drm/radeon/dce6_afmt.c
|
||||
index c0bbf68..960a5f0 100644
|
||||
--- a/drivers/gpu/drm/radeon/dce6_afmt.c
|
||||
+++ b/drivers/gpu/drm/radeon/dce6_afmt.c
|
||||
@@ -155,7 +155,7 @@ void dce6_afmt_write_speaker_allocation(struct drm_encoder *encoder)
|
||||
struct drm_connector *connector;
|
||||
struct radeon_connector *radeon_connector = NULL;
|
||||
u32 offset, tmp;
|
||||
- u8 *sadb;
|
||||
+ u8 *sadb = NULL;
|
||||
int sad_count;
|
||||
|
||||
if (!dig || !dig->afmt || !dig->afmt->pin)
|
||||
diff --git a/drivers/gpu/drm/radeon/evergreen_hdmi.c b/drivers/gpu/drm/radeon/evergreen_hdmi.c
|
||||
index 2514d65..f6a5c30 100644
|
||||
--- a/drivers/gpu/drm/radeon/evergreen_hdmi.c
|
||||
+++ b/drivers/gpu/drm/radeon/evergreen_hdmi.c
|
||||
@@ -133,7 +133,7 @@ static void dce4_afmt_write_speaker_allocation(struct drm_encoder *encoder)
|
||||
struct drm_connector *connector;
|
||||
struct radeon_connector *radeon_connector = NULL;
|
||||
u32 tmp;
|
||||
- u8 *sadb;
|
||||
+ u8 *sadb = NULL;
|
||||
int sad_count;
|
||||
|
||||
list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) {
|
||||
--
|
||||
cgit v0.10.1
|
||||
152
packages/linux/patches/3.17.7/linux-010-intel-fix-gpu-hang.patch
vendored
Normal file
152
packages/linux/patches/3.17.7/linux-010-intel-fix-gpu-hang.patch
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
commit 0da5fe8cc74e6aec119ea0cc56f3e2cc92caccec
|
||||
Author: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Date: Tue Dec 16 10:02:27 2014 +0000
|
||||
|
||||
drm/i915: Disable PSMI sleep messages on all rings around context switches
|
||||
|
||||
There exists a current workaround to prevent a hang on context switch
|
||||
should the ring go to sleep in the middle of the restore,
|
||||
WaProgramMiArbOnOffAroundMiSetContext (applicable to all gen7+). In
|
||||
spite of disabling arbitration (which prevents the ring from powering
|
||||
down during the critical section) we were still hitting hangs that had
|
||||
the hallmarks of the known erratum. That is we are still seeing hangs
|
||||
"on the last instruction in the context restore". By comparing -nightly
|
||||
(broken) with requests (working), we were able to deduce that it was the
|
||||
semaphore LRI cross-talk that reproduced the original failure. The key
|
||||
was that requests implemented deferred semaphore signalling, and
|
||||
disabling that, i.e. emitting the semaphore signal to every other ring
|
||||
after every batch restored the frequent hang. Explicitly disabling PSMI
|
||||
sleep on the RCS ring was insufficient, all the rings had to be awake to
|
||||
prevent the hangs. Fortunately, we can reduce the wakelock to the
|
||||
MI_SET_CONTEXT operation itself, and so should be able to limit the extra
|
||||
power implications.
|
||||
|
||||
Since the MI_ARB_ON_OFF workaround is listed for all gen7 and above
|
||||
products, we should apply this extra hammer for all of the same
|
||||
platforms despite so far that we have only been able to reproduce the
|
||||
hang on certain ivb and hsw models. The last question is whether we want
|
||||
to always use the extra hammer or only when we know semaphores are in
|
||||
operation. At the moment, we only use LRI on non-RCS rings for
|
||||
semaphores, but that may change in the future with the possibility of
|
||||
reintroducing this bug under subtle conditions.
|
||||
|
||||
v2: Make it explicit that the PSMI LRI are an extension to the original
|
||||
workaround for the other rings.
|
||||
v3: Bikeshedding variable names and whitespacing
|
||||
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80660
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83677
|
||||
Cc: Simon Farnsworth <simon@farnz.org.uk>
|
||||
Cc: Daniel Vetter <daniel@ffwll.ch>
|
||||
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
||||
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Tested-by: Peter Frühberger <fritsch@xbmc.org>
|
||||
Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
||||
|
||||
Backported to 3.17:
|
||||
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
|
||||
|
||||
Conflicts:
|
||||
drivers/gpu/drm/i915/i915_gem_context.c
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
|
||||
index 3b99390..7f76ea2 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_gem_context.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
|
||||
@@ -563,7 +563,12 @@ mi_set_context(struct intel_engine_cs *ring,
|
||||
struct intel_context *new_context,
|
||||
u32 hw_flags)
|
||||
{
|
||||
- int ret;
|
||||
+ const int num_rings =
|
||||
+ /* Use an extended w/a on ivb+ if signalling from other rings */
|
||||
+ i915_semaphore_is_enabled(ring->dev) ?
|
||||
+ hweight32(INTEL_INFO(ring->dev)->ring_mask) - 1 :
|
||||
+ 0;
|
||||
+ int len, i, ret;
|
||||
|
||||
/* w/a: If Flush TLB Invalidation Mode is enabled, driver must do a TLB
|
||||
* invalidation prior to MI_SET_CONTEXT. On GEN6 we don't set the value
|
||||
@@ -576,15 +581,30 @@ mi_set_context(struct intel_engine_cs *ring,
|
||||
return ret;
|
||||
}
|
||||
|
||||
- ret = intel_ring_begin(ring, 6);
|
||||
+ len = 4;
|
||||
+ if (INTEL_INFO(ring->dev)->gen >= 7)
|
||||
+ len += 2 + (num_rings ? 4*num_rings + 2 : 0);
|
||||
+
|
||||
+ ret = intel_ring_begin(ring, len);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* WaProgramMiArbOnOffAroundMiSetContext:ivb,vlv,hsw,bdw,chv */
|
||||
- if (INTEL_INFO(ring->dev)->gen >= 7)
|
||||
+ if (INTEL_INFO(ring->dev)->gen >= 7) {
|
||||
intel_ring_emit(ring, MI_ARB_ON_OFF | MI_ARB_DISABLE);
|
||||
- else
|
||||
- intel_ring_emit(ring, MI_NOOP);
|
||||
+ if (num_rings) {
|
||||
+ struct intel_engine_cs *signaller;
|
||||
+
|
||||
+ intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(num_rings));
|
||||
+ for_each_ring(signaller, to_i915(ring->dev), i) {
|
||||
+ if (signaller == ring)
|
||||
+ continue;
|
||||
+
|
||||
+ intel_ring_emit(ring, RING_PSMI_CTL(signaller->mmio_base));
|
||||
+ intel_ring_emit(ring, _MASKED_BIT_ENABLE(GEN6_PSMI_SLEEP_MSG_DISABLE));
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
|
||||
intel_ring_emit(ring, MI_NOOP);
|
||||
intel_ring_emit(ring, MI_SET_CONTEXT);
|
||||
@@ -599,10 +619,21 @@ mi_set_context(struct intel_engine_cs *ring,
|
||||
*/
|
||||
intel_ring_emit(ring, MI_NOOP);
|
||||
|
||||
- if (INTEL_INFO(ring->dev)->gen >= 7)
|
||||
+ if (INTEL_INFO(ring->dev)->gen >= 7) {
|
||||
+ if (num_rings) {
|
||||
+ struct intel_engine_cs *signaller;
|
||||
+
|
||||
+ intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(num_rings));
|
||||
+ for_each_ring(signaller, to_i915(ring->dev), i) {
|
||||
+ if (signaller == ring)
|
||||
+ continue;
|
||||
+
|
||||
+ intel_ring_emit(ring, RING_PSMI_CTL(signaller->mmio_base));
|
||||
+ intel_ring_emit(ring, _MASKED_BIT_DISABLE(GEN6_PSMI_SLEEP_MSG_DISABLE));
|
||||
+ }
|
||||
+ }
|
||||
intel_ring_emit(ring, MI_ARB_ON_OFF | MI_ARB_ENABLE);
|
||||
- else
|
||||
- intel_ring_emit(ring, MI_NOOP);
|
||||
+ }
|
||||
|
||||
intel_ring_advance(ring);
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
|
||||
index f29b44c..df02a15 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_reg.h
|
||||
+++ b/drivers/gpu/drm/i915/i915_reg.h
|
||||
@@ -1029,6 +1029,7 @@ enum punit_power_well {
|
||||
#define GEN6_VERSYNC (RING_SYNC_1(VEBOX_RING_BASE))
|
||||
#define GEN6_VEVSYNC (RING_SYNC_2(VEBOX_RING_BASE))
|
||||
#define GEN6_NOSYNC 0
|
||||
+#define RING_PSMI_CTL(base) ((base)+0x50)
|
||||
#define RING_MAX_IDLE(base) ((base)+0x54)
|
||||
#define RING_HWS_PGA(base) ((base)+0x80)
|
||||
#define RING_HWS_PGA_GEN6(base) ((base)+0x2080)
|
||||
@@ -1354,6 +1355,7 @@ enum punit_power_well {
|
||||
#define GEN6_BLITTER_FBC_NOTIFY (1<<3)
|
||||
|
||||
#define GEN6_RC_SLEEP_PSMI_CONTROL 0x2050
|
||||
+#define GEN6_PSMI_SLEEP_MSG_DISABLE (1 << 0)
|
||||
#define GEN8_RC_SEMA_IDLE_MSG_DISABLE (1 << 12)
|
||||
#define GEN8_FF_DOP_CLOCK_GATE_DISABLE (1<<10)
|
||||
|
||||
|
||||
37
packages/linux/patches/3.17.7/linux-011-intel-force-cs-stall.patch
vendored
Normal file
37
packages/linux/patches/3.17.7/linux-011-intel-force-cs-stall.patch
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
From 78e2b1bdd84264d6a9d84759da26547f887552cd Mon Sep 17 00:00:00 2001
|
||||
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Date: Tue, 16 Dec 2014 08:44:32 +0000
|
||||
Subject: [PATCH] drm/i915: Force the CS stall for invalidate flushes
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
In order to act as a full command barrier by itself, we need to tell the
|
||||
pipecontrol to actually stall the command streamer while the flush runs.
|
||||
We require the full command barrier before operations like
|
||||
MI_SET_CONTEXT, which currently rely on a prior invalidate flush.
|
||||
|
||||
References: https://bugs.freedesktop.org/show_bug.cgi?id=83677
|
||||
Cc: Simon Farnsworth <simon@farnz.org.uk>
|
||||
Cc: Daniel Vetter <daniel@ffwll.ch>
|
||||
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
||||
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
||||
---
|
||||
drivers/gpu/drm/i915/intel_ringbuffer.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
index b02cf69..ae17e77 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
@@ -369,6 +369,8 @@ gen7_render_ring_flush(struct intel_engine_cs *ring,
|
||||
flags |= PIPE_CONTROL_QW_WRITE;
|
||||
flags |= PIPE_CONTROL_GLOBAL_GTT_IVB;
|
||||
|
||||
+ flags |= PIPE_CONTROL_STALL_AT_SCOREBOARD;
|
||||
+
|
||||
/* Workaround: we must issue a pipe_control with CS-stall bit
|
||||
* set before a pipe_control command that has the state cache
|
||||
* invalidate bit set. */
|
||||
49
packages/linux/patches/3.17.7/linux-012-intel-fix-ivb-stall.patch
vendored
Normal file
49
packages/linux/patches/3.17.7/linux-012-intel-fix-ivb-stall.patch
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
From 32431fd81d65259d490e53e3cfc7e1a2ad781fe3 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Date: Tue, 16 Dec 2014 08:44:31 +0000
|
||||
Subject: [PATCH] drm/i915: Invalidate media caches on gen7
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
In the gen7 pipe control there is an extra bit to flush the media
|
||||
caches, so let's set it during cache invalidation flushes.
|
||||
|
||||
v2: Rename to MEDIA_STATE_CLEAR to be more inline with spec.
|
||||
|
||||
Cc: Simon Farnsworth <simon@farnz.org.uk>
|
||||
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
||||
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
|
||||
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
||||
---
|
||||
drivers/gpu/drm/i915/i915_reg.h | 1 +
|
||||
drivers/gpu/drm/i915/intel_ringbuffer.c | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
|
||||
index c01e5f3..d9780e2 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_reg.h
|
||||
+++ b/drivers/gpu/drm/i915/i915_reg.h
|
||||
@@ -370,6 +370,7 @@
|
||||
#define PIPE_CONTROL_STORE_DATA_INDEX (1<<21)
|
||||
#define PIPE_CONTROL_CS_STALL (1<<20)
|
||||
#define PIPE_CONTROL_TLB_INVALIDATE (1<<18)
|
||||
+#define PIPE_CONTROL_MEDIA_STATE_CLEAR (1<<16)
|
||||
#define PIPE_CONTROL_QW_WRITE (1<<14)
|
||||
#define PIPE_CONTROL_POST_SYNC_OP_MASK (3<<14)
|
||||
#define PIPE_CONTROL_DEPTH_STALL (1<<13)
|
||||
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
index 0a80e41..b02cf69 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
|
||||
@@ -362,6 +362,7 @@ gen7_render_ring_flush(struct intel_engine_cs *ring,
|
||||
flags |= PIPE_CONTROL_VF_CACHE_INVALIDATE;
|
||||
flags |= PIPE_CONTROL_CONST_CACHE_INVALIDATE;
|
||||
flags |= PIPE_CONTROL_STATE_CACHE_INVALIDATE;
|
||||
+ flags |= PIPE_CONTROL_MEDIA_STATE_CLEAR;
|
||||
/*
|
||||
* TLB invalidate requires a post-sync write.
|
||||
*/
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="OpenELEC-settings"
|
||||
PKG_VERSION="0.5.6"
|
||||
PKG_VERSION="0.5.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="prop."
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-audioencoder-flac"
|
||||
PKG_VERSION="84bdf32"
|
||||
PKG_VERSION="a960eba"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
diff -Naur xbmc-audioencoder-flac-7aee9d0/CMakeLists.txt xbmc-audioencoder-flac-7aee9d0.patch/CMakeLists.txt
|
||||
--- xbmc-audioencoder-flac-7aee9d0/CMakeLists.txt 2014-07-18 23:48:22.000000000 +0200
|
||||
+++ xbmc-audioencoder-flac-7aee9d0.patch/CMakeLists.txt 2014-10-20 13:03:49.565070141 +0200
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
enable_language(CXX)
|
||||
|
||||
-find_package(xbmc REQUIRED)
|
||||
+find_package(kodi REQUIRED)
|
||||
find_package(FLAC REQUIRED)
|
||||
find_package(Ogg REQUIRED)
|
||||
|
||||
diff -Naur xbmc-audioencoder-flac-7aee9d0/src/EncoderFlac.cpp xbmc-audioencoder-flac-7aee9d0.patch/src/EncoderFlac.cpp
|
||||
--- xbmc-audioencoder-flac-7aee9d0/src/EncoderFlac.cpp 2014-07-18 23:48:22.000000000 +0200
|
||||
+++ xbmc-audioencoder-flac-7aee9d0.patch/src/EncoderFlac.cpp 2014-10-20 02:13:58.806998666 +0200
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
#include <FLAC/stream_encoder.h>
|
||||
#include <FLAC/metadata.h>
|
||||
-#include "xbmc/xbmc_audioenc_dll.h"
|
||||
+#include "kodi/xbmc_audioenc_dll.h"
|
||||
#include <string.h>
|
||||
|
||||
extern "C" {
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-audioencoder-lame"
|
||||
PKG_VERSION="46592f8"
|
||||
PKG_VERSION="6f8384f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-audioencoder-vorbis"
|
||||
PKG_VERSION="f75f329"
|
||||
PKG_VERSION="fa0de15"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-pvr-addons"
|
||||
PKG_VERSION="14d9828"
|
||||
PKG_VERSION="9f63d1b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi-theme-Confluence"
|
||||
PKG_VERSION="14-ffad6b8"
|
||||
PKG_VERSION="14-ad747d9"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="kodi"
|
||||
PKG_VERSION="14-ffad6b8"
|
||||
PKG_VERSION="14-ad747d9"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
@@ -398,6 +398,7 @@ make_target() {
|
||||
|
||||
# setup default skin inside the sources
|
||||
sed -i -e "s|skin.confluence|$SKIN_DIR|g" $ROOT/$PKG_BUILD/xbmc/settings/Settings.h
|
||||
sed -i -e "s|skin.confluence|$SKIN_DIR|g" $ROOT/$PKG_BUILD/system/settings/settings.xml
|
||||
|
||||
make externals
|
||||
make kodi.bin
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From d4d83054ad9096c31d3c91bcbbf1919de1aa76f0 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sun, 29 Jun 2014 22:59:00 +0300
|
||||
Subject: [PATCH] revert b6bec7a
|
||||
|
||||
this reverts upstream commit b6bec7a (part of xbmc/pull/4761):
|
||||
|
||||
> From b6bec7a44fec728c28aa0cedc96288539a71e324 Mon Sep 17 00:00:00 2001
|
||||
> From: Trent Nelson <trent.nelson@pivosgroup.com>
|
||||
> Date: Wed, 21 May 2014 17:16:54 +0800
|
||||
> Subject: [PATCH] [PVR] Make sure client addons are disabled first time we see
|
||||
> them.
|
||||
|
||||
pvr client addons should NOT be disabled after pvr database reset
|
||||
---
|
||||
xbmc/pvr/addons/PVRClients.cpp | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xbmc/pvr/addons/PVRClients.cpp b/xbmc/pvr/addons/PVRClients.cpp
|
||||
index b403fd6..809c244 100644
|
||||
--- a/xbmc/pvr/addons/PVRClients.cpp
|
||||
+++ b/xbmc/pvr/addons/PVRClients.cpp
|
||||
@@ -1126,8 +1126,7 @@ bool CPVRClients::UpdateAddons(void)
|
||||
for (unsigned iClientPtr = 0; iClientPtr < m_addons.size(); iClientPtr++)
|
||||
{
|
||||
const AddonPtr clientAddon = m_addons.at(iClientPtr);
|
||||
- bool newRegistration = false;
|
||||
- if (RegisterClient(clientAddon, &newRegistration) < 0 || newRegistration)
|
||||
+ if (RegisterClient(clientAddon) < 0)
|
||||
{
|
||||
CAddonMgr::Get().DisableAddon(clientAddon->ID(), true);
|
||||
usableClients--;
|
||||
--
|
||||
1.9.1
|
||||
|
||||
2742
packages/mediacenter/kodi/patches/kodi-999.92-PR5805-v2.patch
Normal file
2742
packages/mediacenter/kodi/patches/kodi-999.92-PR5805-v2.patch
Normal file
File diff suppressed because it is too large
Load Diff
12
packages/mediacenter/kodi/patches/kodi-999.99-fix-3692.patch
Normal file
12
packages/mediacenter/kodi/patches/kodi-999.99-fix-3692.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff -Naur kodi-14-88f9fb0/xbmc/filesystem/File.cpp kodi-14-88f9fb0.patch/xbmc/filesystem/File.cpp
|
||||
--- kodi-14-88f9fb0/xbmc/filesystem/File.cpp 2014-12-14 16:05:16.000000000 +0100
|
||||
+++ kodi-14-88f9fb0.patch/xbmc/filesystem/File.cpp 2014-12-14 20:16:01.033786616 +0100
|
||||
@@ -298,7 +298,7 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
- if (m_pFile->GetChunkSize() && !(m_flags & READ_CHUNKED))
|
||||
+ if (m_pFile->GetChunkSize() > 1 && !(m_flags & READ_CHUNKED))
|
||||
{
|
||||
m_pBuffer = new CFileStreamBuffer(0);
|
||||
m_pBuffer->Attach(m_pFile);
|
||||
@@ -2,6 +2,7 @@
|
||||
Description=Kodi user autostart script
|
||||
Before=kodi.service
|
||||
After=graphical.target
|
||||
ConditionPathExists=/storage/.config/autostart.sh
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user